diff options
Diffstat (limited to 'item.py')
-rw-r--r-- | item.py | 33 |
1 files changed, 21 insertions, 12 deletions
@@ -1,7 +1,4 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -# -# Copyright (C) 2012 S. Daniel Francis <francis@sugarlabs.org> +# Copyright (C) 2012-2013 S. Daniel Francis <francis@sugarlabs.org> # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -69,23 +66,35 @@ class Item(gobject.GObject): 'Could not set up accelerator; if toogletoolbutton, update your sugar version') def get_tool_item(self): - if self._stock_id in stock.icons: - icon_name = stock.icons[self._stock_id] - else: - icon_name = self._stock_id sensitive = self.sensitive - self.toolitem = ToolButton(icon_name) - self.toolitem.connect('clicked', self.activate_cb) + self.toolitem = ToolButton() self.setup_tooltip() + self.setup_tool_icon() + self.toolitem.connect('clicked', self.activate_cb) self.toolitem.set_sensitive(sensitive) return self.toolitem + def setup_tool_icon(self): + mstyle = self.toolitem.get_style() + iconset = stock.stock_items[self.stock_id]['has_icon'] + if iconset is not None: + try: + pixbuf = iconset.render_icon(mstyle, gtk.TEXT_DIR_NONE, + gtk.STATE_NORMAL, + gtk.ICON_SIZE_LARGE_TOOLBAR) + image = gtk.image_new_from_pixbuf(pixbuf) + image.show() + self.toolitem.set_icon_widget(image) + except Exception, err: + logger.debug(self.stock_id) + logger.error(err) + def setup_tooltip(self): if self.tooltip: self.toolitem.set_tooltip(self.tooltip) else: - text = gtk.stock_lookup(self._stock_id)[1] - self.toolitem.set_tooltip(text.replace('_', '')) + self.toolitem.set_tooltip( + stock.get_label(self._stock_id)) self.setup_accelerator() def set_sensitive(self, setting): |