Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/utils.py
diff options
context:
space:
mode:
authorWalter Bender <walter.bender@gmail.com>2011-08-31 11:45:47 (GMT)
committer Walter Bender <walter.bender@gmail.com>2011-08-31 11:45:47 (GMT)
commit49cd96da2526207edde98ffe8c17b0d8c1a1a863 (patch)
treececd1a43991cfd7678a1585d42041f53d5917f8a /utils.py
parente15d625abeefb8895ac8b45e644ae41498fec265 (diff)
added radio_button_factory; cleaned up pixloader code
Diffstat (limited to 'utils.py')
-rw-r--r--utils.py28
1 files changed, 23 insertions, 5 deletions
diff --git a/utils.py b/utils.py
index c826c3c..6446f61 100644
--- a/utils.py
+++ b/utils.py
@@ -18,9 +18,11 @@ import subprocess
from gettext import gettext as _
from sugar.graphics.toolbutton import ToolButton
+from sugar.graphics.radiotoolbutton import RadioToolButton
from sugar.graphics.combobox import ComboBox
from sugar.graphics.toolcombobox import ToolComboBox
+
XO1 = 'xo1'
XO15 = 'xo1.5'
XO175 = 'xo1.75'
@@ -96,6 +98,23 @@ def load_svg_from_file(file_path, width, height):
return gtk.gdk.pixbuf_new_from_file_at_size(file_path, width, height)
+def radio_button_factory(icon_name, toolbar, callback, cb_arg=None,
+ tooltip=None, group=None):
+ ''' Add a radio button to a toolbar '''
+ button = RadioToolButton(group=group)
+ button.set_named_icon(icon_name)
+ if cb_arg is None:
+ button.connect('clicked', callback)
+ else:
+ button.connect('clicked', callback, cb_arg)
+ if hasattr(toolbar, 'insert'): # the main toolbar
+ toolbar.insert(button, -1)
+ else: # or a secondary toolbar
+ toolbar.props.page.insert(button, -1)
+ button.show()
+ return button
+
+
def button_factory(icon_name, tooltip, callback, toolbar, cb_arg=None,
accelerator=None):
'''Factory for making toolbar buttons'''
@@ -187,16 +206,15 @@ def image_to_base64(pixbuf, path_name):
def get_pixbuf_from_journal(dsobject, w, h):
""" Load a pixbuf from a Journal object. """
- # _pixbuf = gtk.gdk.pixbuf_new_from_file_at_size(dsobject.file_path,
+ pixbufloader = \
+ gtk.gdk.pixbuf_loader_new_with_mime_type('image/png')
+ pixbufloader.set_size(min(300, int(w)), min(225, int(h)))
try:
- pixbufloader = \
- gtk.gdk.pixbuf_loader_new_with_mime_type('image/png')
- pixbufloader.set_size(min(300, int(w)), min(225, int(h)))
pixbufloader.write(dsobject.metadata['preview'])
- pixbufloader.close()
pixbuf = pixbufloader.get_pixbuf()
except:
pixbuf = None
+ pixbufloader.close()
return pixbuf