diff options
author | Nat <natcl@hotmail.com> | 2007-07-31 20:05:55 (GMT) |
---|---|---|
committer | Nat <natcl@hotmail.com> | 2007-07-31 20:05:55 (GMT) |
commit | 959e22e186ee46900a712d23abd6ffd2b1d29184 (patch) | |
tree | ad92eece9ac30e550d3cd8b86b86d2b04d36f3f1 /Util | |
parent | 20afba894d69ac2244aa1113de34988fe08a3dc7 (diff) |
Icons, bigger combo box imgs
Diffstat (limited to 'Util')
-rw-r--r-- | Util/ThemeWidgets.py | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/Util/ThemeWidgets.py b/Util/ThemeWidgets.py index a63b452..f1b0105 100644 --- a/Util/ThemeWidgets.py +++ b/Util/ThemeWidgets.py @@ -2,6 +2,8 @@ import pygtk pygtk.require( '2.0' ) import gtk +from sugar.graphics.combobox import ComboBox + class ITYPE: PIXBUF = 0 @@ -1119,3 +1121,36 @@ class keyButton(gtk.Button): def set_strokecolor(self,r,g,b): self.strokecolor = [r,g,b] self.queue_draw() + +class BigComboBox(ComboBox): + def __init__(self): + ComboBox.__init__(self) + + def append_item(self, action_id, text, icon_name=None): + if not self._icon_renderer and icon_name: + self._icon_renderer = gtk.CellRendererPixbuf() + + settings = self.get_settings() + w, h = gtk.icon_size_lookup_for_settings(settings, gtk.ICON_SIZE_MENU) + self._icon_renderer.props.stock_size = w + + self.pack_start(self._icon_renderer, False) + 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.add_attribute(self._text_renderer, 'text', 1) + + if icon_name: + size = gtk.ICON_SIZE_LARGE_TOOLBAR + + width, height = gtk.icon_size_lookup(size) + if icon_name[0:6] == "theme:": + icon_name = self._get_real_name_from_theme(icon_name[6:], size) + pixbuf = gtk.gdk.pixbuf_new_from_file_at_size(icon_name, width, height) + else: + pixbuf = None + + self._model.append([action_id, text, pixbuf, False]) + |