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'))
Пример #2
0
    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()
Пример #3
0
    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