From 0a99d76d34c9d98ad226cb5bef0243fa3aeec334 Mon Sep 17 00:00:00 2001 From: florent Date: Wed, 02 Feb 2011 21:19:52 +0000 Subject: image zoom test update --- diff --git a/MANIFEST b/MANIFEST index 15c71c8..691e7ee 100644 --- a/MANIFEST +++ b/MANIFEST @@ -2,6 +2,7 @@ activity.py setup.py atoidepoc/__init__.py atoidepoc/ui/toolbar.py +atoidepoc/ui/screens.py atoidepoc/ui/__init__.py activity/activity.info activity/activity-atoidepoc.svg diff --git a/atoidepoc/storage/utils.py b/atoidepoc/storage/utils.py index 56a74c4..f37b192 100644 --- a/atoidepoc/storage/utils.py +++ b/atoidepoc/storage/utils.py @@ -6,7 +6,6 @@ import logging, os import gtk # sugar import -from sugar.activity import activity from sugar.datastore import datastore # get application logger diff --git a/atoidepoc/ui/screens.py b/atoidepoc/ui/screens.py index 9fa2ad9..eccafcc 100644 --- a/atoidepoc/ui/screens.py +++ b/atoidepoc/ui/screens.py @@ -1,12 +1,13 @@ # python import -import logging +import logging, os from gettext import gettext as _ # gtk import import gobject, gtk # sugar import +from sugar.activity import activity from sugar.graphics import style # atoidepoc import @@ -18,20 +19,22 @@ logger = logging.getLogger('atoidepoc') class ScreenBrowser(gtk.HBox): - def __init__(self, toolbar): + def __init__(self, toolbar, title=None): # init parent gtk.HBox.__init__(self) # keep toolbar self.toolbar = toolbar # add viewer self._add_viewer() - self._add_list() - # show self + self._add_list(title) + # do show self._show() def _add_viewer(self): # init preview self._preview_frame = gtk.Frame() + self._preview_frame.set_shadow_type(gtk.SHADOW_NONE) + self._preview_frame.set_size_request(400, -1) self._preview_frame.show() # add it self.pack_start(self._preview_frame, expand=True, fill=True) @@ -45,10 +48,10 @@ class ScreenBrowser(gtk.HBox): gobject.TYPE_PYOBJECT ) - def _add_list(self): + def _add_list(self, title): # prepare colums - _col_preview = gtk.TreeViewColumn(_('Preview')) - _col_description = gtk.TreeViewColumn(_('Description')) + _col_preview = gtk.TreeViewColumn(title) + _col_description = gtk.TreeViewColumn() # set renderers _cell_pix = gtk.CellRendererPixbuf() _col_preview.pack_start(_cell_pix) @@ -79,7 +82,7 @@ class ScreenBrowserGraphics(ScreenBrowser): def __init__(self, toolbar): # init parent - ScreenBrowser.__init__(self, toolbar) + ScreenBrowser.__init__(self, toolbar, title=_('Graphics')) def _get_store(self): # get empty store @@ -98,34 +101,60 @@ class ScreenBrowserSounds(ScreenBrowser): def __init__(self, toolbar): # init parent - ScreenBrowser.__init__(self, toolbar) + ScreenBrowser.__init__(self, toolbar, title=_('Sounds')) -class ScreenStory(gtk.Frame): +class ScreenStory(gtk.Fixed): def __init__(self, toolbar): # init parent - gtk.Frame.__init__(self) + gtk.Fixed.__init__(self) + # keep toolbar + self.toolbar = toolbar # render self._render() # and show self._show() def _render(self): - self._add_image() - - def _add_image(self): + # png check + self._add_image('demo.png', align=(0,0)) + self._add_image('demo.png', align=(200, 0), size=(100, 100)) + # png check + self._add_image('demo.svg', align=(0, 200)) + self._add_image('demo.svg', align=(200, 200), size=(100, 100)) + + def _add_image(self, filename, align=None, size=None): + # get graphics path + _path = os.path.join(activity.get_bundle_path(), + 'static', 'graphics', filename) # add a picture here _image = gtk.Image() - # set file - _image.set_from_file('/home/florent/OLPC/demo.svg') + # set alignment + if align is None: + _x = 0 + _y = 0 + else: + # parse align value + _x, _y = align + # set size + if size is None: + # set file + _image.set_from_file(_path) + else: + # parse size value + _w, _h = size + # get pixbuff + _pixbuf = gtk.gdk.pixbuf_new_from_file(_path) + # do resize and set image + _image.set_from_pixbuf( + _pixbuf.scale_simple(_w, _h, gtk.gdk.INTERP_BILINEAR)) + # TODO manage cb for dnd + # ... # show _image.show() - # DEBUG - logger.debug('[screen_story] _add_image - _image: %s' % _image) - # DEBUG # add - self.add(_image) + self.put(_image, _x, _y) def _show(self): # show self -- cgit v0.9.1