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)
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')
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
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)
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')
def set_tool_cb(self,*args): Signaler.notify(self, 'poitool-needs-set')
def analyze_cb(self,*args): Signaler.notify(self, 'analyze-pressed')
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()
def show(self): gtk.Window.show(self) self.visibility_flag = 1 Signaler.notify(self, 'shown')