Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/toolkit/combobox.py
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/combobox.py')
-rw-r--r--toolkit/combobox.py60
1 files changed, 38 insertions, 22 deletions
diff --git a/toolkit/combobox.py b/toolkit/combobox.py
index d021106..ff0ab3f 100644
--- a/toolkit/combobox.py
+++ b/toolkit/combobox.py
@@ -20,22 +20,26 @@
STABLE.
"""
-import gobject
-import gtk
+import gi
+from gi.repository import GObject
+from gi.repository import Gtk
+from gi.repository import GdkPixbuf
+# FIXME: This class is not being used.
-class ComboBox(gtk.ComboBox):
+class ComboBox(Gtk.ComboBox):
def __init__(self):
- gtk.ComboBox.__init__(self)
+
+ Gtk.ComboBox.__init__(self)
self._text_renderer = None
self._icon_renderer = None
- model = gtk.ListStore(gobject.TYPE_PYOBJECT,
- gobject.TYPE_STRING,
- gtk.gdk.Pixbuf,
- gobject.TYPE_BOOLEAN)
+ model = Gtk.ListStore(GObject.TYPE_PYOBJECT,
+ GObject.TYPE_STRING,
+ GdkPixbuf.Pixbuf,
+ GObject.TYPE_BOOLEAN)
self.set_model(model)
self.set_row_separator_func(self._is_separator)
@@ -56,15 +60,18 @@ class ComboBox(gtk.ComboBox):
return None
return row[0]
- value = gobject.property(
+ value = GObject.property(
type=object, getter=get_value, setter=None)
def _get_real_name_from_theme(self, name, size):
- icon_theme = gtk.icon_theme_get_default()
- width, height = gtk.icon_size_lookup(size)
+
+ icon_theme = Gtk.icon_theme_get_default()
+ width, height = Gtk.icon_size_lookup(size)
info = icon_theme.lookup_icon(name, max(width, height), 0)
+
if not info:
raise ValueError("Icon '" + name + "' not found.")
+
fname = info.get_filename()
del info
return fname
@@ -90,62 +97,71 @@ class ComboBox(gtk.ComboBox):
self.get_model().append(item)
def set_item(self, action_id, text=None, icon_name=None, file_name=None):
+
for i, value in enumerate(self.get_model()):
if value[0] == action_id:
item = self._item_new(action_id, text, icon_name, file_name)
iter = self.get_model().iter_nth_child(None, i)
+
if text is not None:
self.get_model().set(iter, 1, item[1])
+
if icon_name is not None or file_name is not None:
self.get_model().set(iter, 2, item[2])
+
return True
return False
def select(self, action_id=None, text=None):
+
if action_id is not None:
column = 0
value = action_id
+
elif text is not None:
column = 1
value = text
+
else:
return
for i, item in enumerate(self.get_model()):
if item[column] != value:
continue
+
self.set_active(i)
break
def _item_new(self, action_id, text, icon_name, file_name):
+
if not self._icon_renderer and (icon_name or file_name):
- self._icon_renderer = gtk.CellRendererPixbuf()
+ self._icon_renderer = Gtk.CellRendererPixbuf()
settings = self.get_settings()
- w, h = gtk.icon_size_lookup_for_settings(
- settings, gtk.ICON_SIZE_MENU)
+ w, h = Gtk.icon_size_lookup_for_settings(
+ settings, Gtk.IconSize.MENU)
self._icon_renderer.props.stock_size = max(w, h)
- self.pack_start(self._icon_renderer, False)
+ self.pack_start(self._icon_renderer, False, False, 0)
self.add_attribute(self._icon_renderer, 'pixbuf', 2)
if not self._text_renderer and text:
- self._text_renderer = gtk.CellRendererText()
- self.pack_end(self._text_renderer, True)
+ self._text_renderer = Gtk.CellRendererText()
+ self.pack_end(self._text_renderer, True, True, 0)
self.add_attribute(self._text_renderer, 'text', 1)
if icon_name or file_name:
if text:
- size = gtk.ICON_SIZE_MENU
+ size = Gtk.IconSize.MENU
else:
- size = gtk.ICON_SIZE_LARGE_TOOLBAR
- width, height = gtk.icon_size_lookup(size)
+ size = Gtk.IconSize.LARGE_TOOLBAR
+ width, height = Gtk.icon_size_lookup(size)
if icon_name:
file_name = self._get_real_name_from_theme(icon_name, size)
- pixbuf = gtk.gdk.pixbuf_new_from_file_at_size(
- file_name, width, height)
+ pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_size(
+ file_name, width, height)
else:
pixbuf = None