def create_renderer(self, model): renderer = gtk.CellRendererAccel() renderer.props.editable = True renderer.props.accel_mode = gtk.CELL_RENDERER_ACCEL_MODE_OTHER renderer.connect('accel-edited', self._on_accel_edited) renderer.connect('accel-cleared', self._on_accel_cleared) return renderer, 'text'
def __init__(self, main_window): gtk.TreeView.__init__(self) # Main window instance self.main_window = main_window self.connect("row-activated", self.edit_shortcut) self.model = gtk.ListStore(str, object, str) renderer = gtk.CellRendererText() column = gtk.TreeViewColumn("Action", renderer, text=0) column.set_property("expand", True) self.append_column(column) renderer = gtk.CellRendererAccel() renderer.set_property("editable", True) renderer.connect("accel-edited", self.try_set_shortcut) renderer.connect("accel-cleared", self.clean_shortcut) column = gtk.TreeViewColumn("Shortcut", renderer) column.set_cell_data_func(renderer, self._cell_data_func) column.set_property("expand", False) self.append_column(column) # Shortcut Manager self.shortcut_manager = get_instance() self._setup() self.set_model(self.model) self.show_all()
def __init__(self, builder): self.builder = builder self.dialog = builder.get_object("PreferencesDialog") self.button = builder.get_object("shortcut_button") hbox1 = builder.get_object("hbox1") self.new_task_default_binding = "<Primary>F12" self.gsettings_install_label_shown = False self.liststore = gtk.ListStore(str, str) self.liststore.append(["", ""]) treeview = gtk.TreeView(self.liststore) column_accel = gtk.TreeViewColumn() treeview.append_column(column_accel) treeview.set_headers_visible(False) cell = gtk.CellRendererAccel() cell.set_alignment(0.0, 1.0) cell.set_fixed_size(-1, 18) cell.set_property("accel-mode", gtk.CELL_RENDERER_ACCEL_MODE_OTHER) cell.connect("accel-edited", self._cellAccelEdit, self.liststore) cell.connect("accel-cleared", self._accel_cleared, self.liststore) self.cell = cell column_accel.pack_start(cell, True) column_accel.add_attribute(cell, "text", 1) hbox1.add(treeview)
def __init__(self, keymanager): """ @param keymanager: KeybindingManager instance. """ super(KeybindingEditorWindow, self).__init__() self.set_border_width(5) self.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_ALWAYS) self.keymanager = keymanager accel_column_num = max([ len(self.keymanager.get_bindings_for_action(action)) for action in keybindings.BINDING_INFO.keys() ]) accel_column_num = self.accel_column_num = max([3, accel_column_num]) # Human name, action name, true value, shortcut 1, shortcut 2, ... model = [str, str, 'gboolean'] model.extend([ str, ] * accel_column_num) treestore = self.treestore = gtk.TreeStore(*model) self.refresh_model() treeview = gtk.TreeView(treestore) tvcol1 = gtk.TreeViewColumn(_("Name")) treeview.append_column(tvcol1) cell1 = gtk.CellRendererText() tvcol1.pack_start(cell1, True) tvcol1.set_attributes(cell1, text=0, editable=2) for idx in range(0, self.accel_column_num): tvc = gtk.TreeViewColumn(_("Key %d") % (idx + 1)) treeview.append_column(tvc) accel_cell = gtk.CellRendererAccel() accel_cell.connect("accel-edited", self.get_on_accel_edited(idx)) accel_cell.connect("accel-cleared", self.get_on_accel_cleared(idx)) tvc.pack_start(accel_cell, True) tvc.add_attribute(accel_cell, "text", 3 + idx) tvc.add_attribute(accel_cell, "editable", 2) # Allow sorting on the column tvcol1.set_sort_column_id(0) self.add_with_viewport(treeview)
def _setup_shortcuts(self): self.shortcuts_model = gtk.TreeStore(str, # 0 label int, # 1 keyval gtk.gdk.ModifierType, # 2 mods bool, # 3 visible str, # 4 tooltip gobject.TYPE_PYOBJECT,# 5 action ) self.list_shortcuts = self.builder.get_object('list_shortcuts') col = gtk.TreeViewColumn(_('Action'), gtk.CellRendererText(), text=0) self.list_shortcuts.append_column(col) renderer = gtk.CellRendererAccel() renderer.connect('accel-edited', self.on_accel_edited) col = gtk.TreeViewColumn(_(u'Shortcut'), renderer, accel_key=1, accel_mods=2, visible=3, editable=3) self.list_shortcuts.append_column(col) self.shortcuts_model.set_sort_column_id(0, gtk.SORT_ASCENDING) self.list_shortcuts.set_model(self.shortcuts_model)
def __init__(self, preferences, widget): self.list = gtk.ListStore(str, str) Preference.__init__(self, preferences, widget) self.widget.set_model(self.list) title_renderer = gtk.CellRendererText() title_column = gtk.TreeViewColumn(_('Action'), title_renderer, text=0) title_column.set_expand(True) title_column.set_cell_data_func(title_renderer, self.title_data_func) accel_renderer = gtk.CellRendererAccel() accel_renderer.set_property('editable', True) accel_renderer.set_property('style', pango.STYLE_OBLIQUE) accel_renderer.connect('accel-cleared', self.on_accel_cleared) accel_renderer.connect('accel-edited', self.on_accel_edited) accel_column = gtk.TreeViewColumn(_('Shortcut'), accel_renderer, text=1) accel_column.set_expand(True) self.widget.append_column(title_column) self.widget.append_column(accel_column)
def setup_keybindings (self): """ Global keybindings preferences """ frame = uiutils.Frame (_('Key bindings')) frame.show () vbox = gtk.VBox (spacing=6) vbox.show () hbox = gtk.HBox(spacing=12) hbox.show () label = gtk.Label (_("_Translate from clipboard")) label.set_use_underline (True) label.set_alignment (0, 0.5) label.show () self.left_group.add_widget (label) hbox.pack_start (label, False) model = gtk.ListStore (int, int, bool) self.w_key_binding = gtk.TreeView (model) self.w_key_binding.set_headers_visible (False) self.w_key_binding.show () renderer = gtk.CellRendererAccel () renderer.connect ('accel-edited', self.on_key_binding_edited) renderer.connect ('accel-cleared', self.on_key_binding_cleared) column = gtk.TreeViewColumn (None, None) column.pack_start (renderer, True) column.set_attributes (renderer, accel_key=0, accel_mods=1, editable=2) self.w_key_binding.append_column (column) # Grab keyboard focus when clicked, # otherwise the user can't set the accel (GTK+ bug?) self.w_key_binding.connect ('button-press-event', self.on_key_binding_press) self.right_group.add_widget (self.w_key_binding) hbox.pack_start (self.w_key_binding) vbox.pack_start (hbox) frame.add (vbox) self.vbox.pack_start (frame)
def __init__(self, dialog, hbox1, button1): self.dialog = dialog self.hbox1 = hbox1 self.button = button1 self.new_task_default_binding = "<Primary>F12" self.liststore = gtk.ListStore(str, str) self.liststore.append(["", ""]) treeview = gtk.TreeView(self.liststore) column_accel = gtk.TreeViewColumn() treeview.append_column(column_accel) treeview.set_headers_visible(False) cell = gtk.CellRendererAccel() cell.set_alignment(0.0, 1.0) cell.set_fixed_size(-1, 18) cell.set_property("accel-mode", gtk.CELL_RENDERER_ACCEL_MODE_OTHER) cell.connect("accel-edited", self._cellAccelEdit, self.liststore) cell.connect("accel-cleared", self._accel_cleared, self.liststore) self.cell = cell column_accel.pack_start(cell, True) column_accel.add_attribute(cell, "text", 1) self.hbox1.add(treeview)
def PackAll (self): #### Initialize Graph View ### scrWinNetView = gtk.ScrolledWindow () scrWinNetView.set_policy (gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) scrWinNetView.add_with_viewport(self.netViewArea) scrWinNetView.set_shadow_type(gtk.SHADOW_NONE) scrWinNetView.set_size_request(100, 250) arenaFrame = gtk.Frame ('Arena') arenaFrame.add (scrWinNetView) vboxLeft = gtk.VBox () for i in range (0, self.NUM_GRAPHS): scrWin = gtk.ScrolledWindow () scrWin.set_policy (gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) scrWin.add_with_viewport(self.graphsList[i].canvas) vboxLeft.pack_start(scrWin) #### Initialize Simulation parameters ### infoFrame = gtk.Frame ('Simulation Parameters') infoFrame.set_tooltip_text ('Simulation Parameters') #infoFrame.set_label_align (0, 0) hBoxTable = gtk.HBox () infoFrame.add (hBoxTable) self.tableLeft = gtk.TreeView (self.info) self.tableRight = gtk.TreeView (self.info) for i in range (0, 2): self.tableLeft.append_column (gtk.TreeViewColumn ("Col%d" % i, \ gtk.CellRendererAccel (), text = i)) self.tableRight.append_column (gtk.TreeViewColumn ("Col%d" % i, \ gtk.CellRendererAccel (), text = i+2)) self.tableLeft.set_headers_visible(False) self.tableLeft.set_grid_lines(gtk.TREE_VIEW_GRID_LINES_BOTH) self.tableRight.set_headers_visible(False) self.tableRight.set_grid_lines(gtk.TREE_VIEW_GRID_LINES_BOTH) infoFrameLeft = gtk.Frame (None) infoFrameLeft.add (self.tableLeft) hBoxTable.pack_start(infoFrameLeft, padding = 2) infoFrameRight = gtk.Frame (None) infoFrameRight.add(self.tableRight) hBoxTable.pack_start(infoFrameRight, padding = 2) #### Initialize Legend ### legendFrame = gtk.Frame ('Legend') legendWin = gtk.ScrolledWindow () legendWin.set_policy (gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) legendWin.add_with_viewport(self.legend) legendWin.set_shadow_type(gtk.SHADOW_NONE) legendFrame.add (legendWin) legendWin.set_size_request(10, 35) #### Compose all ### vboxRight = gtk.VBox () vboxRight.pack_start (arenaFrame, expand = True, padding = 2) vboxRight.pack_start (legendFrame, expand = False, padding = 2) vboxRight.pack_start (infoFrame, expand = False, padding = 2) hboxUpper = gtk.HBox () hboxUpper.pack_start (vboxLeft, expand = True) hboxUpper.pack_start (vboxRight, expand = True) hboxUpper.set_spacing(4) vboxFull = gtk.VBox () vboxFull.pack_start (self.menubar, expand = False) self.window.add (vboxFull) vboxFull.pack_start (hboxUpper, expand = True) hboxLower = gtk.HBox () vboxFull.pack_start (hboxLower, expand = False) hboxLower.pack_start (self.playbutton, expand = False) hboxLower.pack_start (self.playback, expand = True) hboxLower.pack_start (self.speedAdjust, expand = False)
def __init__(self): """Setup the preferences dialog interface, loading images, adding filters to file choosers and connecting some signals. """ super(PrefsDialog, self).__init__(gladefile('prefs.glade'), root='config-window') self.add_callbacks(PrefsCallbacks()) self.client = gconf.client_get_default() # setting evtbox title bg eventbox = self.get_widget('eventbox-title') eventbox.modify_bg(gtk.STATE_NORMAL, eventbox.get_colormap().alloc_color("#ffffff")) # images ipath = pixmapfile('guake-notification.png') self.get_widget('image_logo').set_from_file(ipath) # the first position in tree will store the keybinding path in gconf, # and the user doesn't worry with this, lest hide that =D model = gtk.TreeStore(str, str, object, bool) treeview = self.get_widget('treeview-keys') treeview.set_model(model) treeview.set_rules_hint(True) treeview.connect('button-press-event', self.start_editing) renderer = gtk.CellRendererText() column = gtk.TreeViewColumn('keypath', renderer, text=0) column.set_visible(False) treeview.append_column(column) renderer = gtk.CellRendererText() column = gtk.TreeViewColumn(_('Action'), renderer, text=1) column.set_property('expand', True) treeview.append_column(column) renderer = gtk.CellRendererAccel() renderer.set_property('editable', True) renderer.connect('accel-edited', self.on_key_edited, model) renderer.connect('accel-cleared', self.on_key_cleared, model) column = gtk.TreeViewColumn(_('Shortcut'), renderer) column.set_cell_data_func(renderer, self.cell_data_func) column.set_property('expand', False) treeview.append_column(column) self.populate_shell_combo() self.populate_keys_tree() self.load_configs() self.get_widget('config-window').hide() # Preview when selecting a bgimage self.selection_preview = gtk.Image() self.file_filter = gtk.FileFilter() self.file_filter.add_pattern("*.jpg") self.file_filter.add_pattern("*.png") self.file_filter.add_pattern("*.svg") self.file_filter.add_pattern("*.jpeg") self.bgfilechooser = self.get_widget('background_image') self.bgfilechooser.set_preview_widget(self.selection_preview) self.bgfilechooser.set_filter(self.file_filter) self.bgfilechooser.connect('update-preview', self.update_preview, self.selection_preview)
def __init__(self, parent, application): SettingsPage.__init__(self, parent, application, 'accelerators', _('Key bindings')) # create list box container = gtk.ScrolledWindow() container.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_ALWAYS) container.set_shadow_type(gtk.SHADOW_IN) self._accels = gtk.TreeStore(str, str, int, int, int, int) self._accels.set_sort_column_id(Column.TITLE, gtk.SORT_ASCENDING) self._list = gtk.TreeView() self._list.set_model(self._accels) self._list.set_rules_hint(True) self._list.set_enable_search(True) self._list.set_search_column(Column.TITLE) # create and configure cell renderers cell_name = gtk.CellRendererText() cell_primary = gtk.CellRendererAccel() cell_secondary = gtk.CellRendererAccel() cell_primary.set_property('accel-mode', gtk.CELL_RENDERER_ACCEL_MODE_OTHER) cell_primary.set_property('editable', True) cell_primary.connect('accel-edited', self.__accel_edited, True) cell_primary.connect('accel-cleared', self.__accel_cleared, True) cell_secondary.set_property('accel-mode', gtk.CELL_RENDERER_ACCEL_MODE_OTHER) cell_secondary.set_property('editable', True) cell_secondary.connect('accel-edited', self.__accel_edited, False) cell_secondary.connect('accel-cleared', self.__accel_cleared, False) # create and pack columns col_name = gtk.TreeViewColumn(_('Description'), cell_name, markup=Column.TITLE) col_name.set_min_width(200) col_name.set_resizable(True) col_name.set_sort_column_id(Column.TITLE) col_name.set_sort_order(gtk.SORT_ASCENDING) col_primary = gtk.TreeViewColumn( _('Primary'), cell_primary, accel_key=Column.PRIMARY_KEY, accel_mods=Column.PRIMARY_MODS ) col_primary.set_min_width(100) col_secondary = gtk.TreeViewColumn( _('Secondary'), cell_secondary, accel_key=Column.SECONDARY_KEY, accel_mods=Column.SECONDARY_MODS ) col_secondary.set_min_width(100) self._list.append_column(col_name) self._list.append_column(col_primary) self._list.append_column(col_secondary) # warning label label_warning = gtk.Label(_( '<b>Note:</b> You can only edit accelerators from ' 'objects created at least once in current session. ' 'To disable accelerator press <i>Backspace</i> ' 'in assign mode.' )) label_warning.set_alignment(0, 0) label_warning.set_use_markup(True) label_warning.set_line_wrap(True) label_warning.connect('size-allocate', self._adjust_label) # pack interface container.add(self._list) self.pack_start(label_warning, False, False, 0) self.pack_start(container, True, True, 0)