Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan Williams <dcbw@redhat.com>2007-04-30 13:51:39 (GMT)
committer Dan Williams <dcbw@redhat.com>2007-04-30 13:51:39 (GMT)
commitfda6690e7c8b2f15fd71020e14c6b499cc52dba4 (patch)
tree72cabc72f9a48652381a526973370df84b4b81b7
parente432cc91cadade61052deb643b536acd424edf47 (diff)
parente936b1e1fc3a3748381ff105bbbefce1e7750e0f (diff)
Merge branch 'master' of git+ssh://dev.laptop.org/git/sugar
-rw-r--r--sugar/graphics/icon.py41
-rw-r--r--sugar/graphics/toolbutton.py9
2 files changed, 47 insertions, 3 deletions
diff --git a/sugar/graphics/icon.py b/sugar/graphics/icon.py
new file mode 100644
index 0000000..84200e6
--- /dev/null
+++ b/sugar/graphics/icon.py
@@ -0,0 +1,41 @@
+# Copyright (C) 2006, Red Hat, Inc.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the
+# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+# Boston, MA 02111-1307, USA.
+
+import gtk
+
+class Icon(gtk.Image):
+ def __init__(self, icon_resource, size=gtk.ICON_SIZE_LARGE_TOOLBAR):
+ gtk.Image.__init__(self)
+
+ icon_theme = gtk.icon_theme_get_for_screen(self.get_screen())
+ icon_set = gtk.IconSet()
+
+ normal_name = icon_resource
+ if icon_theme.has_icon(normal_name):
+ source = gtk.IconSource()
+ source.set_icon_name(normal_name)
+ icon_set.add_source(source)
+
+ inactive_name = icon_resource + '-inactive'
+ if icon_theme.has_icon(inactive_name):
+ source = gtk.IconSource()
+ source.set_icon_name(inactive_name)
+ source.set_state(gtk.STATE_INSENSITIVE)
+ icon_set.add_source(source)
+
+ self.set_from_icon_set(icon_set, size)
+
diff --git a/sugar/graphics/toolbutton.py b/sugar/graphics/toolbutton.py
index a8c7aba..541f6c9 100644
--- a/sugar/graphics/toolbutton.py
+++ b/sugar/graphics/toolbutton.py
@@ -17,9 +17,12 @@
import gtk
+from sugar.graphics.icon import Icon
+
class ToolButton(gtk.ToolButton):
- def __init__(self, icon_name=None):
+ def __init__(self, icon_resource=None):
gtk.ToolButton.__init__(self)
- if icon_name:
- self.set_icon_name(icon_name)
+ icon = Icon(icon_resource)
+ self.set_icon_widget(icon)
+ icon.show()