class SpinButton(Gtk.SpinButton): def __init__(self, key, min=0, max=0, step=0, backend=GConf): if backend == GConf: self.setting = GconfSetting(key=key, type=int) else: #TODO Gio pass adjust = Gtk.Adjustment(self.setting.get_value(), min, max, step) gobject.GObject.__init__(self, adjustment=adjust) self.connect('value-changed', self.on_value_changed) def on_value_changed(self, widget): self.setting.set_value(widget.get_value())
class Scale(Gtk.HScale): def __init__(self, key=None, min=None, max=None, digits=0, reversed=False, backend=GConf): gobject.GObject.__init__(self) if digits > 0: type = float else: type = int if backend == GConf: self.setting = GconfSetting(key=key, type=type) else: #TODO Gio pass if reversed: self._reversed = True else: self._reversed = False self.set_range(min, max) self.set_digits(digits) self.set_value_pos(Gtk.PositionType.RIGHT) if self._reversed: self.set_value(max - self.setting.get_value()) else: self.set_value(self.setting.get_value()) self.connect("value-changed", self.on_value_changed) def on_value_changed(self, widget, data=None): if self._reversed: self.setting.set_value(100 - widget.get_value()) else: self.setting.set_value(widget.get_value())
class ComboBox(Gtk.ComboBox): def __init__(self, key=None, texts=None, values=None, type="string", backend=GConf): gobject.GObject.__init__(self) if backend == GConf: self.setting = GconfSetting(key=key, type=str) else: #TODO Gio pass if type == 'int': model = Gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_INT) else: model = Gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_STRING) self.set_model(model) cell = Gtk.CellRendererText() self.pack_start(cell, True) self.add_attribute(cell, 'text', 0) current_value = self.setting.get_value() for text, value in dict(zip(texts, values)).items(): iter = model.append((text, value)) if current_value == value: self.set_active_iter(iter) self.connect("changed", self.value_changed_cb) def value_changed_cb(self, widget): iter = widget.get_active_iter() text = self.get_model().get_value(iter, 1) log.debug("ComboBox value changed to %s" % text) self.setting.set_value(text)
def __init__(self): TweakModule.__init__(self) changeicon_hbox = self.create_change_icon_hbox() box = TablePack(_("Panel Settings"), ( WidgetFactory.create("CheckButton", label=_("Display warning when removing a panel"), enable_reset=True, backend=GConf, key="/apps/panel/global/confirm_panel_remove"), WidgetFactory.create("CheckButton", label=_("Complete lockdown of all panels"), enable_reset=True, backend=GConf, key="/apps/panel/global/locked_down"), WidgetFactory.create("CheckButton", label=_("Enable panel animations"), enable_reset=True, backend=GConf, key="/apps/panel/global/enable_animations"), WidgetFactory.create('ComboBox', label=_('Me Menu Setting'), key='/system/indicator/me/display', texts=[_("Don't Display"), _('Display user name'), _('Display real name')], values=[0, 1, 2], backend=GConf, type='int') )) self.add_start(box, False, False, 0) box = ListPack(_("Menu Settings"), ( WidgetFactory.create("CheckButton", label=_("Show Input Method menu in the context menu"), enable_reset=True, backend=GConf, key="/desktop/gnome/interface/show_input_method_menu"), WidgetFactory.create("CheckButton", label=_("Show Unicode Control Character menu in the context menu"), enable_reset=True, backend=GConf, key="/desktop/gnome/interface/show_unicode_menu"), WidgetFactory.create("CheckButton", label=_('Show icons in menus'), enable_reset=True, backend=GConf, key='/desktop/gnome/interface/menus_have_icons'), WidgetFactory.create("CheckButton", label=_('Show icons on buttons'), enable_reset=True, backend=GConf, key='/desktop/gnome/interface/buttons_have_icons'), changeicon_hbox, )) self.add_start(box, False, False, 0) box = ListPack(_("Screensaver"), ( WidgetFactory.create("CheckButton", label=_("Enable user switching whilst screen is locked."), backend=GConf, enable_reset=True, key="/apps/gnome-screensaver/user_switch_enabled"), )) self.add_start(box, False, False, 0) current_terminal_profile_key = GconfSetting('/apps/gnome-terminal/global/default_profile') current_terminal_profile = current_terminal_profile_key.get_value() default_show_menubar_key = '/apps/gnome-terminal/profiles/%s/default_show_menubar' % current_terminal_profile box = ListPack(_("Terminal"), ( WidgetFactory.create("CheckButton", label=_("Display menubar when Terminal starts up (for current profile)"), backend=GConf, enable_reset=True, key=default_show_menubar_key), )) self.add_start(box, False, False, 0) #TODO unity don't have it self.recently_used = Gtk.CheckButton(_('Enable system-wide "Recent Documents" list')) self.recently_used.set_active(self.get_state()) self.recently_used.connect('toggled', self.colleague_changed) box = ListPack(_("History"), ( self.recently_used, )) self.add_start(box, False, False, 0)