def __init__(self): toolbox.Tool.__init__(self) # create gui (a treeview in a scrolled window with a # buttonbox underneath) treeview = ProjectTreeView() scrollwindow = uihelper.add_scrollbars(treeview) buttons = [(gtk.STOCK_ADD, lambda sender: None), (gtk.STOCK_REMOVE, lambda sender: None)] buttonbox = uihelper.construct_hbuttonbox(buttons, labels=False) self.pack_start(scrollwindow, True, True) #self.pack_start(buttonbox, False, True) self.show_all() self.buttonbox = buttonbox self.treeview = treeview self.scrollwindow = scrollwindow # connect to callbacks treeview.connect( "row-activated", self.on_row_activated ) treeview.connect( "button-press-event", self.on_button_press_event ) treeview.connect( "popup-menu", self.on_popup_menu, 3, 0 ) # create actions for ui manager uimanager = globals.app.window.uimanager uihelper.add_actions(uimanager, "ProjectView", self.actions, self) uimanager.add_ui_from_string(globals.app.get_uistring('project_explorer'))
def __init__(self): toolbox.Tool.__init__(self) self.depends_on(globals.app, 'active_backend', 'active_layer_painter', 'active_line_painter') # GUI: treeview with buttons below # model: (object) = (layer object) model = gtk.ListStore(object) treeview = gtk.TreeView(model) treeview.set_headers_visible(False) cell = gtk.CellRendererText() column = gtk.TreeViewColumn('line', cell) def render_label(column, cell, model, iter): line = model.get_value(iter, 0) title = line.label or "<untitled line>" index = model.get_path(iter)[0] cell.set_property('text', "%d: %s" % (index, title)) column.set_cell_data_func(cell, render_label) treeview.append_column(column) treeview.connect("row-activated", self.on_row_activated) treeview.connect("cursor-changed", self.on_cursor_changed) buttons = [(gtk.STOCK_ADD, lambda sender: None), (gtk.STOCK_REMOVE, lambda sender: None), (gtk.STOCK_GO_UP, lambda sender: None),#self.on_move_selection, -1), (gtk.STOCK_GO_DOWN, lambda sender: None)]#self.on_move_selection, +1)] buttonbox = uihelper.construct_hbuttonbox(buttons, labels=False) box = gtk.VBox() box.pack_start(treeview, True, True) # box.pack_start(buttonbox, False, True) self.add(box) self.show_all() self.treeview = treeview self.buttonbox = buttonbox self.box = box self.auto_init()
def __init__(self, plot, layer, current_page=None): gtk.Window.__init__(self, gtk.WINDOW_TOPLEVEL) self.set_default_size(550, 500) self.set_title("[Edit Plot Layer]") self.plot = plot self.layer = layer # # frame above notebook that holds the current tab name # self.tab_label= gtk.Label() label = self.tab_label label.set_use_markup(True) topframe = gtk.Frame() topframe.add(label) def on_switch_page(notebook, page, page_num, tab_label): tab = notebook.get_nth_page(page_num) text = "\n<big><b>%s</b></big>\n" % tab.title tab_label.set_markup(text) # # populate notebook with tabs # self.tabdict = {} # list of tabs with a check_in/check_out method self.notebook = gtk.Notebook() nb = self.notebook nb.set_property('tab-pos', gtk.POS_LEFT) nb.connect("switch-page", on_switch_page, self.tab_label) for tab in [LayerTab(layer), AxesTab(layer.axes), LegendTab(layer.legend), LineTab(layer)]: nb.append_page(tab) nb.set_tab_label_text(tab, tab.title) self.tabdict[tab.title] = tab # if requested, set the page with the name `tab` as current page if current_page is not None: try: index = self.tablabels.index(current_page) except ValueError: raise KeyError("There is no Tab with the label %s" % current_page) nb.set_current_page(index) # # button box # buttons=[(gtk.STOCK_REVERT_TO_SAVED, self.on_btn_revert), (gtk.STOCK_CANCEL, self.on_btn_cancel), (gtk.STOCK_APPLY, self.on_btn_apply), (gtk.STOCK_OK, self.on_btn_ok)] btnbox = uihelper.construct_hbuttonbox(buttons) # # put everything together # separator = gtk.HSeparator() vbox = gtk.VBox() vbox.pack_start(topframe, False, True) vbox.pack_start(nb, True, True) vbox.pack_start(separator, False, False, padding=4) vbox.pack_end(btnbox, False, False) self.add(vbox) self.show_all() # After we have shown everything, we check in. for tab in self.tabdict.itervalues(): tab.check_in() self.notebook = nb