Exemple #1
0
    def delete_layer(self, *args):
        if not self.selected_view: return
        view = self.views[self.selected_view]
        layer = view.active_layer()
        layername = layer.get_name()
        if layer is not None:
            view.remove_layer(layer)

        Signaler.notify(self, 'deleted-layer',view,layername)
Exemple #2
0
 def set_color(self, color=(0,0,0,0)):
     self.color = color
     #the color - use GdkColorMap's alloc method to get it
     cm = self.get_colormap()
     self.icolor = cm.alloc_color(color_tuple_to_gdk(color))
     if self.gc is not None:
         self.gc.foreground = self.icolor
     self.queue_draw()
     Signaler.notify(self, 'color-changed')
Exemple #3
0
    def close(self, *args):
        gview.app.sel_manager.unsubscribe( 'selection-changed',
                                           self.gui_update )
        gview.app.sel_manager.unsubscribe( 'subselection-changed',
                                           self.gui_update )
        self.hide()
        self.visibility_flag = 0
        Signaler.notify(self, 'hidden')

        return True
Exemple #4
0
 def activate_toggled(self,*args):
     if self.button_dict['Activate'].get_active():
         self.set_entry_sensitivities(True)
         self.button_dict['Auto Update'].set_sensitive(True)
         self.button_dict['Auto Update'].set_active(False)
         self.button_dict['Analyze'].set_sensitive(True)
         self.button_dict['Set Tool'].set_sensitive(True)
         Signaler.notify(self, 're-activated')
     else:
         self.set_entry_sensitivities(False)
         self.button_dict['Auto Update'].set_active(False)
         self.button_dict['Auto Update'].set_sensitive(False)
         self.button_dict['Analyze'].set_sensitive(False)
         self.button_dict['Set Tool'].set_sensitive(False)
Exemple #5
0
    def view_selected(self, item, name):
        # don't use item - view_selected() is called from gvapp with item=None
        if name == self.selected_view: return
        if self.selected_view:
            self.views[self.selected_view].disconnect(self.active_change_id)
        self.selected_view = name
        i = 0
        for x in self.viewmenu.get_children():
            if x == self.menuitems[name]:
                self.viewopt.set_history(i)
                break
            i = i + 1
        Signaler.notify(self, 'active-view-changed')

        view = self.views[name]
        self.active_change_id = view.connect('active-changed',
                                             self.active_layer_changed)
        self.update_layers()
        self.active_layer_changed(view)

        Signaler.notify(self,  'active-view-changed')
Exemple #6
0
 def set_tool_cb(self,*args):
     Signaler.notify(self, 'poitool-needs-set')
Exemple #7
0
 def analyze_cb(self,*args):
     Signaler.notify(self, 'analyze-pressed')
Exemple #8
0
    def click( self, widget, event ):
        """the user clicked the widget, select a cell?
        """

        # If left button clicked, select/delect a row; if right button
        # clicked, select a column.
        if len(self.col_widths) < 1:
            return

        #
        # determine the column that the user clicked in by first offsetting
        # for the current start column (accounts for columns scrolled off the
        # left edge)
        #
        current = 0
        for i in range(self.start_col):
            current = current + self.col_widths[i] + self.cell_full

        #
        # now actually look for the right column.  If nCol is None at the end
        # then the user clicked off the right edge.
        #
        nCol = None
        current_temp = 0
        for i in range(self.start_col, len(self.col_widths)):
            current_temp = current_temp + self.col_widths[i] + self.cell_full
            if event.x < current_temp:
                nCol = i
                break

        current = current + current_temp

        #
        # now determine the row.  If its 0 then they clicked a 'title'.  If it
        # is None then they clicked off the bottom edge.
        # Use the same trick as for the columns to account for ones scrolled
        # off the top, but its trickier because the first row is always the
        # titles.  And its easier because all rows are the same height :)
        #
        nRow = None
        if event.y < (self.row_height + self.cell_full):
            nRow = 0
        else:
            # NOTE: the max(self.start_row-1,0) below is a kludge to
            # avoid an offset problem after scrolling (first scroll
            # click doesn't seem to actually cause the window to scroll,
            # even though vadj updates)
            row = max(self.start_row-1,0) + int(event.y / (self.row_height + self.cell_full))
            if row <= self.n_rows:
                nRow = row

        if nRow == 0 and nCol is not None:
            cprop=self.titledict[self.titles[nCol]]
            Signaler.notify(self, 'title-clicked',nCol,cprop)

        if (event.button != 3):
            # Notify that a selected or unselected row was clicked,
            # and send event.
            if nRow is not None and nRow > 0:            
                if self.selected_shapes[self.grid2src(nRow)] == 1:
                    Signaler.notify(self, 'clicked-selected-row',self.grid2src(nRow),0,event)
                else:
                    Signaler.notify(self, 'clicked-unselected-row',self.grid2src(nRow),0,event)
        elif (event.state & gtk.gdk.SHIFT_MASK):
            # stop editing
            self.current_row = 0
            self.current_row_src = -1
            self.current_col = 0
            if self._editable == 1:
                self._entry.set_sensitive( False )
            self.expose()

        else:
            self.current_row = nRow
            self.current_row_src = self.grid2src(nRow)
            self.current_col = nCol

            if self._editable == 1:
                if nRow is not None and nCol is not None and nRow > 0:
                    self._entry.set_sensitive( True )
                    val = self.source[self.grid2src(nRow)].get_property(self.titledict[self.titles[nCol]])
                    self._entry.set_text( val )
                    self._entry.grab_focus()
                else:
                    self._entry.set_text( '' )
                    self._entry.set_sensitive( False )

            self.expose()           
Exemple #9
0
 def show(self):
     gtk.Window.show(self)
     self.visibility_flag = 1
     Signaler.notify(self, 'shown')