Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/item.py
diff options
context:
space:
mode:
Diffstat (limited to 'item.py')
-rw-r--r--item.py58
1 files changed, 47 insertions, 11 deletions
diff --git a/item.py b/item.py
index b2727e4..9291e2d 100644
--- a/item.py
+++ b/item.py
@@ -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
@@ -53,10 +50,20 @@ class Item(gobject.GObject):
def get_menu_item(self):
sensitive = self.sensitive
- self.menuitem = gtk.ImageMenuItem(self._stock_id)
- self.menuitem.set_sensitive(sensitive)
- self.menuitem.connect('activate', self.activate_cb)
- self.setup_accelerator()
+ if stock.stock_items[self.stock_id]['has_icon'] is not None:
+ self.menuitem = gtk.ImageMenuItem()
+ self.menuitem.set_label(stock.get_label(self.stock_id, False))
+ self.menuitem.set_use_underline(True)
+ self.menuitem.set_sensitive(sensitive)
+ self.menuitem.connect('activate', self.activate_cb)
+ self.setup_accelerator()
+ self.setup_menu_icon()
+ else:
+ self.menuitem = gtk.MenuItem(stock.get_label(self.stock_id, False))
+ self.menuitem.set_use_underline(True)
+ self.menuitem.set_sensitive(sensitive)
+ self.menuitem.connect('activate', self.activate_cb)
+ self.setup_accelerator()
return self.menuitem
def activate_cb(self, widget):
@@ -71,18 +78,47 @@ class Item(gobject.GObject):
gtk.ACCEL_VISIBLE)
def get_tool_item(self):
- self.toolitem = gtk.ToolButton(self._stock_id)
+ self.toolitem = gtk.ToolButton()
+ self.setup_tool_icon()
self.toolitem.connect('clicked', self.activate_cb)
self.toolitem.set_sensitive(self.sensitive)
self.setup_tooltip()
return self.toolitem
+ def setup_menu_icon(self):
+ mstyle = self.menuitem.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_MENU)
+ image = gtk.image_new_from_pixbuf(pixbuf)
+ self.menuitem.set_image(image)
+ except Exception, err:
+ logger.debug(self.stock_id)
+ logger.error(err)
+
+ def setup_tool_icon(self):
+ mstyle = self.menuitem.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_text(self.tooltip)
else:
- text = gtk.stock_lookup(self.stock_id)[1]
- self.toolitem.set_tooltip_text(text.replace('_', ''))
+ self.toolitem.set_tooltip_text(stock.get_label(self.stock_id))
def emit_signal(self, widget, signal_name):
print self.stock_id