Exemplo n.º 1
0
 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'
Exemplo n.º 2
0
    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()
Exemplo n.º 3
0
    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)
Exemplo n.º 4
0
    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)
Exemplo n.º 5
0
 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)
Exemplo n.º 6
0
    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)
Exemplo n.º 7
0
    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)
Exemplo n.º 8
0
    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)
Exemplo n.º 10
0
    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)
Exemplo n.º 11
0
	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)