Example #1
0
    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)
        elif backend == 'compiz':
            self._setting = CompizSetting(key=key)

        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)
Example #2
0
    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)
        elif backend == 'gsettings':
            self._setting = GSetting(key=key, type=str)
        elif backend == 'config':
            self._setting = ConfigSetting(key=key, type=str)
        elif backend == 'compiz':
            self._setting = CompizSetting(key=key)

        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 zip(texts, values):
            iter = model.append((text, value))
            if current_value == value:
                self.set_active_iter(iter)

        self.connect("changed", self.value_changed_cb)
Example #3
0
    def on_edge_changed(self, widget, plugin):
        edges = ['TopLeft', 'TopRight', 'BottomLeft', 'BottomRight']
        edges.remove(widget.edge)

        if plugin:
            for edge in edges:
                edge_combobox = getattr(self, edge)

                if edge_combobox.get_current_plugin() == plugin:
                    edge_combobox.set_to_none()
                    break

            setting = CompizSetting("%s.%s" % (widget.get_current_plugin(),
                widget.get_current_key()))
            setting.set_value(widget.edge)
Example #4
0
    def on_changed(self, widget):
        plugin = self.get_current_plugin()
        key = self.get_current_key()
        log.debug("ComboBox changed: from %s to %s" % (self.old_plugin, plugin))

        if self.old_plugin:
            for name, key, text in self.edge_settings:
                if name == self.old_plugin:
                    log.debug('%s has to unset (%s)' % (name, key))
                    setting = CompizSetting("%s.%s" % (name, key))
                    setting.set_value('')
                    break

        self.old_plugin = plugin
        self.old_key = key

        log.debug('%s changed to "%s"' % (widget.edge, plugin))
        self.emit('edge_changed', plugin)
Example #5
0
    def __init__(self, edge):
        '''
        edge will be: TopLeft, BottomLeft
        '''
        GObject.GObject.__init__(self)

        model = Gtk.ListStore(GObject.TYPE_STRING,
                              GObject.TYPE_STRING,
                              GObject.TYPE_STRING)
        renderer = Gtk.CellRendererText()
        self.pack_start(renderer, False)
        self.add_attribute(renderer, 'text', self.COLUMN_TEXT)
        self.set_model(model)

        self.edge = edge
        enable = False
        count = 0

        for name, key, text in self.edge_settings:
            if CompizPlugin.is_available(name, key):
                model.append((name, key, text))

                setting = CompizSetting("%s.%s" % (name, key))
                log.debug("CompizSetting: %s, value: %s, key: %s" % \
                        (name, setting.get_value(), edge))

                if setting.get_value() == edge:
                    enable = True
                    self.old_plugin = name
                    self.old_key = key
                    self.set_active(count)
                    log.info("The %s is holding %s" % (edge, name))

                count = count + 1

        model.append(('', '', '-'))

        if not enable:
            self.set_active(count)
        self.max_index = count
        self.connect("changed", self.on_changed)
Example #6
0
class ComboBox(Gtk.ComboBox):
    def __init__(self, key=None, texts=None, values=None,
                 type=str, backend='gconf'):
        GObject.GObject.__init__(self)

        if backend == 'gconf':
            self._setting = GconfSetting(key=key, type=str)
        elif backend == 'gsettings':
            self._setting = GSetting(key=key, type=type)
        elif backend == 'config':
            self._setting = ConfigSetting(key=key, type=str)
        elif backend == 'compiz':
            self._setting = CompizSetting(key=key)

        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 zip(texts, values):
            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)
Example #7
0
    def __init__(self, **kwargs):
        key = kwargs['key']
        backend = kwargs['backend']
        default = kwargs['default']
        type = kwargs['type']

        if backend == 'gconf':
            self._setting = GconfSetting(key=key, default=default, type=type)
        elif backend == 'gsettings':
            self._setting = GSetting(key=key, default=default, type=type)
        elif backend == 'config':
            self._setting = ConfigSetting(key=key, type=type)
        elif backend == 'compiz':
            self._setting = CompizSetting(key=key)
        elif backend == 'systemconfig':
            self._setting = SystemConfigSetting(key=key, default=default, type=type)

        if hasattr(self._setting, 'connect_notify') and \
                hasattr(self, 'on_value_changed'):
            log.debug("Connect the setting notify to on_value_changed: %s" % key)
            self.get_setting().connect_notify(self.on_value_changed)