def do_entry(self, node, label, option): "Helper function for entry and secretentry widgets" box = g.HBox(False, 4) entry = g.Entry() if label: label_wid = g.Label(label) label_wid.set_alignment(1.0, 0.5) box.pack_start(label_wid, False, True, 0) box.pack_start(entry, True, True, 0) else: box = None self.may_add_tip(entry, node) entry.connect('changed', lambda e: self.check_widget(option)) def get(): return entry.get_chars(0, -1) def set(): entry.set_text(option.value) self.handlers[option] = (get, set) return (entry, [box or entry])
def __init__(self, document, uri, type): """'document' must be a subclass of Saveable. 'uri' is the file's current location, or a simple name (eg 'TextFile') if it has never been saved. 'type' is the MIME-type to use (eg 'text/plain'). """ g.VBox.__init__(self, False, 0) self.document = document self.initial_uri = uri drag_area = self._create_drag_area(type) self.pack_start(drag_area, True, True, 0) drag_area.show_all() entry = g.Entry() entry.connect('activate', lambda w: self.save_to_file_in_entry()) self.entry = entry self.pack_start(entry, False, True, 4) entry.show() entry.set_text(uri)
def choose_wm(message): box = rox.Dialog('Choose a window manager', None, g.DIALOG_MODAL | g.DIALOG_NO_SEPARATOR) box.add_button(g.STOCK_CLOSE, g.RESPONSE_CANCEL) box.add_button(g.STOCK_EXECUTE, g.RESPONSE_OK) box.set_position(g.WIN_POS_CENTER) box.vbox.pack_start(g.Label(message), True, True, 0) box.set_default_response(g.RESPONSE_OK) entry = g.Entry() entry.set_activates_default(True) box.vbox.pack_start(entry, False, True, 0) entry.set_text(get_window_manager()[0] or '') box.vbox.show_all() if box.run() == int(g.RESPONSE_OK): settings.settings.set('ROX/WindowManager', entry.get_text()) box.destroy() start() else: box.destroy()
def __init__(self, tb): g.Frame.__init__(self, _('Stack trace (innermost last)')) vbox = g.VBox(False, 0) self.add(vbox) inner = g.Frame() inner.set_shadow_type(g.SHADOW_IN) vbox.pack_start(inner, False, True, 0) self.savebox = None self.tb = tb self.model = g.ListStore(gobject.TYPE_STRING, gobject.TYPE_INT, gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_STRING) tree = g.TreeView(self.model) inner.add(tree) cell = g.CellRendererText() column = g.TreeViewColumn('File', cell, text = ExceptionExplorer.LEAF) cell.set_property('xalign', 1) tree.append_column(column) cell = g.CellRendererText() column = g.TreeViewColumn('Line', cell, text = ExceptionExplorer.LINE) tree.append_column(column) column = g.TreeViewColumn('Func', cell, text = ExceptionExplorer.FUNC) tree.append_column(column) column = g.TreeViewColumn('Code', cell, text = ExceptionExplorer.CODE) tree.append_column(column) inner.set_border_width(5) frames = [] while tb is not None: frames.insert(0, (tb.tb_frame, traceback.tb_lineno(tb))) tb = tb.tb_next f = self.tb.tb_frame if f: f = f.f_back # Skip the reporting frame while f is not None: frames.append((f, f.f_lineno)) f = f.f_back frames.reverse() new = None for f, lineno in frames: co = f.f_code filename = co.co_filename name = co.co_name line = linecache.getline(filename, lineno).strip() leafname = os.path.basename(filename) new = self.model.append() self.model.set(new, ExceptionExplorer.LEAF, leafname, ExceptionExplorer.LINE, lineno, ExceptionExplorer.FUNC, name, ExceptionExplorer.CODE, line, ExceptionExplorer.FILE, filename) def selected_frame(): selected = sel.get_selected() assert selected model, titer = selected frame, = model.get_path(titer) return frames[frame][0] vars = g.ListStore(str, str) sel = tree.get_selection() sel.set_mode(g.SELECTION_BROWSE) def select_frame(tree): vars.clear() for n, v in selected_frame().f_locals.iteritems(): value = `v` if len(value) > 500: value = value[:500] + ' ...' new = vars.append() vars.set(new, 0, str(n), 1, value) sel.connect('changed', select_frame) def show_source(tree, path, column): line = self.model[path][ExceptionExplorer.LINE] file = self.model[path][ExceptionExplorer.FILE] import launch launch.launch('http://rox.sourceforge.net/2005/interfaces/Edit', '-l%d' % line, file) tree.connect('row-activated', show_source) # Area to show the local variables tree = g.TreeView(vars) vbox.pack_start(g.Label(_('Local variables in selected frame:')), False, True, 0) cell = g.CellRendererText() column = g.TreeViewColumn('Name', cell, text = 0) cell.set_property('xalign', 1) tree.append_column(column) cell = g.CellRendererText() column = g.TreeViewColumn('Value', cell, text = 1) tree.append_column(column) inner = g.ScrolledWindow() inner.set_size_request(-1, 200) inner.set_policy(g.POLICY_AUTOMATIC, g.POLICY_ALWAYS) inner.set_shadow_type(g.SHADOW_IN) inner.add(tree) inner.set_border_width(5) vbox.pack_start(inner, True, True, 0) if new: sel.select_iter(new) hbox = g.HBox(False, 4) hbox.set_border_width(5) vbox.pack_start(hbox, False, True, 0) hbox.pack_start(g.Label('>>>'), False, True, 0) expr = g.Entry() hbox.pack_start(expr, True, True, 0) def activate(entry): expr = entry.get_text() frame = selected_frame() try: info(`eval(expr, frame.f_locals, frame.f_globals)`) except: extype, value = sys.exc_info()[:2] brief = ''.join(traceback.format_exception_only(extype, value)) alert(brief) entry.grab_focus() expr.connect('activate', activate) vbox.show_all()