diff options
Diffstat (limited to 'atoidepoc/ui/screens.py')
-rw-r--r-- | atoidepoc/ui/screens.py | 77 |
1 files changed, 58 insertions, 19 deletions
diff --git a/atoidepoc/ui/screens.py b/atoidepoc/ui/screens.py index d0bf50e..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 @@ -71,10 +72,10 @@ class ScreenBrowser(gtk.HBox): self.pack_start(self._list_treeview) def _show(self): + # show all + self.show() # update toolbar self.toolbar.activity.set_canvas(self) - # show all - self.show_all() class ScreenBrowserGraphics(ScreenBrowser): @@ -90,16 +91,8 @@ class ScreenBrowserGraphics(ScreenBrowser): for _i in utils.list_info_from_journal('paint'): # prepare preview _p = utils.get_pixbuf_from_data(_i['preview'], size=(64, 48)) - # prepare description - _d = '%s\n%s\n%s' % (_i['title'], '-' * len(_i['title']), _i['description']) - # DEBUG - logger.debug('[screen_browser_graphics] _get_store - _d: %s' % _d) - logger.debug('[screen_browser_graphics] _get_store - _p: %s' % type(_p)) - logger.debug('[screen_browser_graphics] _get_store - activity_id: %s' % _i['activity_id']) - logger.debug('[screen_browser_graphics] _get_store - timestamp: %s' % _i['timestamp']) - # DEBUG # do update - _store.append([_p, _d, _i['activity_id'], _i['timestamp']]) + _store.append([_p, _i['title'], _i['activity_id'], _i['timestamp']]) # return it return _store @@ -111,14 +104,60 @@ class ScreenBrowserSounds(ScreenBrowser): ScreenBrowser.__init__(self, toolbar, title=_('Sounds')) -class PlayerScreen(gtk.VBox): +class ScreenStory(gtk.Fixed): def __init__(self, toolbar): # init parent - gtk.VBox.__init__(self) - # prepare screen + gtk.Fixed.__init__(self) + # keep toolbar + self.toolbar = toolbar + # render + self._render() + # and show + self._show() + + def _render(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 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 # ... - # update activity - # activity.set_canvas(self) - # show all - # self.show_all() + # show + _image.show() + # add + self.put(_image, _x, _y) + + def _show(self): + # show self + self.show() + # update toolbar + self.toolbar.activity.set_canvas(self) |