def __init__(self, filename):
gtk.Dialog.__init__(self,
buttons=(_("Overwrite"), gtk.RESPONSE_OK,
gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL))
self.set_property("text", _("File Exists"))
text = \
_("The file {name} already exists. "
"Do you want to overwrite it?").format(name=filename)
self.format_secondary_text(text)
python类Dialog()的实例源码
def __init__(self, visualizer, node_index):
InformationWindow.__init__(self)
self.win = gtk.Dialog(parent=visualizer.window,
flags=gtk.DIALOG_DESTROY_WITH_PARENT|gtk.DIALOG_NO_SEPARATOR,
buttons=(gtk.STOCK_CLOSE, gtk.RESPONSE_CLOSE))
self.win.set_default_size(gtk.gdk.screen_width()/2, gtk.gdk.screen_height()/2)
self.win.connect("response", self._response_cb)
self.win.set_title("OLSR routing table for node %i" % node_index)
self.visualizer = visualizer
self.node_index = node_index
self.table_model = gtk.ListStore(str, str, str, int)
treeview = gtk.TreeView(self.table_model)
treeview.show()
sw = gtk.ScrolledWindow()
sw.set_properties(hscrollbar_policy=gtk.POLICY_AUTOMATIC,
vscrollbar_policy=gtk.POLICY_AUTOMATIC)
sw.show()
sw.add(treeview)
self.win.vbox.add(sw)
# Dest.
column = gtk.TreeViewColumn('Destination', gtk.CellRendererText(),
text=self.COLUMN_DESTINATION)
treeview.append_column(column)
# Next hop
column = gtk.TreeViewColumn('Next hop', gtk.CellRendererText(),
text=self.COLUMN_NEXT_HOP)
treeview.append_column(column)
# Interface
column = gtk.TreeViewColumn('Interface', gtk.CellRendererText(),
text=self.COLUMN_INTERFACE)
treeview.append_column(column)
# Num. Hops
column = gtk.TreeViewColumn('Num. Hops', gtk.CellRendererText(),
text=self.COLUMN_NUM_HOPS)
treeview.append_column(column)
self.visualizer.add_information_window(self)
self.win.show()
def __init__(self, visualizer, node_index):
InformationWindow.__init__(self)
self.win = gtk.Dialog(parent=visualizer.window,
flags=gtk.DIALOG_DESTROY_WITH_PARENT|gtk.DIALOG_NO_SEPARATOR,
buttons=(gtk.STOCK_CLOSE, gtk.RESPONSE_CLOSE))
self.win.connect("response", self._response_cb)
self.win.set_title("IPv4 routing table for node %i" % node_index)
self.visualizer = visualizer
self.node_index = node_index
self.table_model = gtk.ListStore(str, str, str, str, int)
treeview = gtk.TreeView(self.table_model)
treeview.show()
sw = gtk.ScrolledWindow()
sw.set_properties(hscrollbar_policy=gtk.POLICY_AUTOMATIC,
vscrollbar_policy=gtk.POLICY_AUTOMATIC)
sw.show()
sw.add(treeview)
self.win.vbox.add(sw)
self.win.set_default_size(600, 300)
# Dest.
column = gtk.TreeViewColumn('Destination', gtk.CellRendererText(),
text=self.COLUMN_DESTINATION)
treeview.append_column(column)
# Next hop
column = gtk.TreeViewColumn('Next hop', gtk.CellRendererText(),
text=self.COLUMN_NEXT_HOP)
treeview.append_column(column)
# Interface
column = gtk.TreeViewColumn('Interface', gtk.CellRendererText(),
text=self.COLUMN_INTERFACE)
treeview.append_column(column)
# Type
column = gtk.TreeViewColumn('Type', gtk.CellRendererText(),
text=self.COLUMN_TYPE)
treeview.append_column(column)
# Prio
column = gtk.TreeViewColumn('Prio', gtk.CellRendererText(),
text=self.COLUMN_PRIO)
treeview.append_column(column)
self.visualizer.add_information_window(self)
self.win.show()
def save_shot(self):
# create a new window
dialog = gtk.Dialog("Manual ScreenShot",
None,
gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT,
(gtk.STOCK_CANCEL, gtk.RESPONSE_REJECT,
gtk.STOCK_OK, gtk.RESPONSE_ACCEPT))
dialog.set_size_request(400, 250)
dialog.set_title("Manual ScreenShot Comment ECEL V2.0")
table = gtk.Table(5,2,False)
table.show()
# create ip row
ipLabel = gtk.Label("IP")
ipEntry = gtk.Entry()
table.attach(ipLabel, 0, 1, 0, 1)
table.attach(ipEntry, 1, 2, 0, 1)
ipLabel.show()
ipEntry.show()
# create Port row
portLabel = gtk.Label("Port")
portEntry = gtk.Entry()
table.attach(portLabel, 0, 1, 1, 2)
table.attach(portEntry, 1, 2, 1, 2)
portLabel.show()
portEntry.show()
# create initial row
initialLabel = gtk.Label("Initials")
initialEntry = gtk.Entry()
table.attach(initialLabel, 0, 1, 2, 3)
table.attach(initialEntry, 1, 2, 2, 3)
initialLabel.show()
initialEntry.show()
#create the comment entry field
maxChar = 64
commentEntry = gtk.Entry()
commentEntry.set_max_length(maxChar)
commentEntry.insert_text("Enter Comment")
commentEntry.select_region(0, len(commentEntry.get_text()))
table.attach(commentEntry, 0, 2, 3, 4)
commentEntry.show()
dialog.vbox.pack_start(table)
response = dialog.run()
self.ip_entry_text = ipEntry.get_text()
self.port_entry_text = portEntry.get_text()
self.initial_entry_text = initialEntry.get_text()
self.comment_entry_text = commentEntry.get_text()
dialog.hide_all()
dialog.destroy()
return response
def cb_ok(self, widget, data=None):
buf = self._text.get_buffer()
self.text = buf.get_text(buf.get_start_iter(),
buf.get_end_iter())
if isinstance(self._preamble, gtk.FileChooser):
self.preamble_file = self._preamble.get_filename()
if not self.preamble_file:
self.preamble_file = ""
else:
self.preamble_file = self._preamble.get_text()
if self.scale_factor is not None:
self.scale_factor = self._scale_adj.get_value()
try:
self.callback(self.text, self.preamble_file, self.scale_factor)
except StandardError, e:
err_msg = traceback.format_exc()
dlg = gtk.Dialog("Textext Error", self._window,
gtk.DIALOG_MODAL)
dlg.set_default_size(600, 400)
btn = dlg.add_button(gtk.STOCK_OK, gtk.RESPONSE_CLOSE)
btn.connect("clicked", lambda w, d=None: dlg.destroy())
msg = gtk.Label()
msg.set_markup("<b>Error occurred while converting text from Latex to SVG:</b>")
txtw = gtk.ScrolledWindow()
txtw.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
txtw.set_shadow_type(gtk.SHADOW_IN)
txt = gtk.TextView()
txt.set_editable(False)
txt.get_buffer().set_text(err_msg)
txtw.add(txt)
dlg.vbox.pack_start(msg, expand=False, fill=True)
dlg.vbox.pack_start(txtw, expand=True, fill=True)
dlg.show_all()
dlg.run()
return False
gtk.main_quit()
return False
def do_columns(self):
eset = self.get_current_editorset()
driver = directory.get_driver(eset.rthread.radio.__class__)
radio_name = "%s %s %s" % (eset.rthread.radio.VENDOR,
eset.rthread.radio.MODEL,
eset.rthread.radio.VARIANT)
d = gtk.Dialog(title=_("Select Columns"),
parent=self,
buttons=(gtk.STOCK_OK, gtk.RESPONSE_OK,
gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL))
vbox = gtk.VBox()
vbox.show()
sw = gtk.ScrolledWindow()
sw.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC)
sw.add_with_viewport(vbox)
sw.show()
d.vbox.pack_start(sw, 1, 1, 1)
d.set_size_request(-1, 300)
d.set_resizable(False)
labelstr = _("Visible columns for {radio}").format(radio=radio_name)
label = gtk.Label(labelstr)
label.show()
vbox.pack_start(label)
fields = []
memedit = eset.get_current_editor() # .editors["memedit"]
unsupported = memedit.get_unsupported_columns()
for colspec in memedit.cols:
if colspec[0].startswith("_"):
continue
elif colspec[0] in unsupported:
continue
label = colspec[0]
visible = memedit.get_column_visible(memedit.col(label))
widget = gtk.CheckButton(label)
widget.set_active(visible)
fields.append(widget)
vbox.pack_start(widget, 1, 1, 1)
widget.show()
res = d.run()
selected_columns = []
if res == gtk.RESPONSE_OK:
for widget in fields:
colnum = memedit.col(widget.get_label())
memedit.set_column_visible(colnum, widget.get_active())
if widget.get_active():
selected_columns.append(widget.get_label())
d.destroy()
CONF.set(driver, ",".join(selected_columns), "memedit_columns")
def __init__(self, src_radio, dst_radio, parent=None):
gtk.Dialog.__init__(self,
buttons=(gtk.STOCK_OK, gtk.RESPONSE_OK,
gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL),
title=self.TITLE,
parent=parent)
self.col_import = 0
self.col_nloc = 1
self.col_oloc = 2
self.col_name = 3
self.col_freq = 4
self.col_comm = 5
self.col_okay = 6
self.col_tmsg = 7
self.caps = {
self.col_import: self.ACTION,
self.col_nloc: _("To"),
self.col_oloc: _("From"),
self.col_name: _("Name"),
self.col_freq: _("Frequency"),
self.col_comm: _("Comment"),
}
self.tips = {
self.col_nloc: _("Location memory will be imported into"),
self.col_oloc: _("Location of memory in the file being imported"),
}
self.types = {
self.col_import: gobject.TYPE_BOOLEAN,
self.col_oloc: gobject.TYPE_INT,
self.col_nloc: gobject.TYPE_INT,
self.col_name: gobject.TYPE_STRING,
self.col_freq: gobject.TYPE_STRING,
self.col_comm: gobject.TYPE_STRING,
self.col_okay: gobject.TYPE_BOOLEAN,
self.col_tmsg: gobject.TYPE_STRING,
}
self.src_radio = src_radio
self.dst_radio = dst_radio
self.used_list = []
self.not_used_list = []
self.build_ui()
self.set_default_size(600, 400)
self.ww = WaitWindow(_("Preparing memory list..."), parent=parent)
self.ww.show()
self.ww.grind()
self.populate_list()
self.ww.hide()
def run(self):
r = gtk.Dialog.run(self)
if r != gtk.RESPONSE_OK:
return None
vendor = self.__vend.get_active_text()
model = self.__modl.get_active_text()
cs = CloneSettings()
cs.port = self.__port.get_active_text()
if model == _("Detect"):
try:
cs.radio_class = detect.DETECT_FUNCTIONS[vendor](cs.port)
if not cs.radio_class:
raise Exception(
_("Unable to detect radio on {port}").format(
port=cs.port))
except Exception, e:
d = inputdialog.ExceptionDialog(e)
d.run()
d.destroy()
return None
else:
for rclass in directory.DRV_TO_RADIO.values():
if rclass.MODEL == model:
cs.radio_class = rclass
break
alias_match = None
for alias in rclass.ALIASES:
if alias.MODEL == model:
alias_match = rclass
break
if alias_match:
cs.radio_class = rclass
LOG.debug(
'Chose %s alias for %s because model %s selected' % (
alias_match, cs.radio_class, model))
break
if not cs.radio_class:
common.show_error(
_("Internal error: Unable to upload to {model}").format(
model=model))
LOG.info(self.__vendors)
return None
conf = config.get("state")
conf.set("last_port", cs.port)
conf.set("last_vendor", cs.radio_class.VENDOR)
conf.set("last_model", model)
return cs
def show_diff_blob(title, result):
d = gtk.Dialog(title=title,
buttons=(gtk.STOCK_OK, gtk.RESPONSE_OK))
b = gtk.TextBuffer()
tags = b.get_tag_table()
for color in ["red", "blue", "green", "grey"]:
tag = gtk.TextTag(color)
tag.set_property("foreground", color)
tags.add(tag)
tag = gtk.TextTag("bold")
tag.set_property("weight", pango.WEIGHT_BOLD)
tags.add(tag)
try:
fontsize = CONF.get_int("diff_fontsize", "developer")
except Exception:
fontsize = 11
if fontsize < 4 or fontsize > 144:
LOG.info("Unsupported diff_fontsize %i. Using 11." % fontsize)
fontsize = 11
lines = result.split(os.linesep)
for line in lines:
if line.startswith("-"):
tags = ("red", "bold")
elif line.startswith("+"):
tags = ("blue", "bold")
else:
tags = ()
b.insert_with_tags_by_name(b.get_end_iter(), line + os.linesep, *tags)
v = gtk.TextView(b)
fontdesc = pango.FontDescription("Courier %i" % fontsize)
v.modify_font(fontdesc)
v.set_editable(False)
v.show()
s = gtk.ScrolledWindow()
s.add(v)
s.show()
d.vbox.pack_start(s, 1, 1, 1)
d.set_size_request(600, 400)
d.run()
d.destroy()