diff options
Diffstat (limited to 'atoidepoc/ui/screens.py')
-rw-r--r-- | atoidepoc/ui/screens.py | 114 |
1 files changed, 109 insertions, 5 deletions
diff --git a/atoidepoc/ui/screens.py b/atoidepoc/ui/screens.py index 46303f2..822d552 100644 --- a/atoidepoc/ui/screens.py +++ b/atoidepoc/ui/screens.py @@ -1,18 +1,122 @@ # python import +import logging from gettext import gettext as _ # gtk import -import gtk +import gobject, gtk + +# sugar import +from sugar.graphics import style + +# atoidepoc import +from atoidepoc.storage import utils + +# get application logger +logger = logging.getLogger('atoidepoc') + + +class ScreenBrowser(gtk.HBox): + + def __init__(self, toolbar): + # init parent + gtk.HBox.__init__(self) + # keep toolbar + self.toolbar = toolbar + # add viewer + self._add_viewer() + self._add_list() + # do show + self._show() + + def _add_viewer(self): + # init preview + self._preview_frame = gtk.Frame() + self._preview_frame.show() + # add it + self.pack_start(self._preview_frame, expand=True, fill=True) + + def _get_store(self): + # model: preview - description - activity_id - timestamp + return gtk.ListStore( + gtk.gdk.Pixbuf, + gobject.TYPE_STRING, + gobject.TYPE_PYOBJECT, + gobject.TYPE_PYOBJECT + ) + + def _add_list(self): + # prepare colums + _col_preview = gtk.TreeViewColumn(_('Preview')) + _col_description = gtk.TreeViewColumn(_('Description')) + # set renderers + _cell_pix = gtk.CellRendererPixbuf() + _col_preview.pack_start(_cell_pix) + _col_preview.add_attribute(_cell_pix, 'pixbuf', 0) + # .. + _cell_text = gtk.CellRendererText() + _col_description.pack_start(_cell_text, True) + _col_description.add_attribute(_cell_text, 'text', 1) + # init treeview + self._list_treeview = gtk.TreeView(self._get_store()) + self._list_treeview.set_reorderable(False) + # add columns + self._list_treeview.append_column(_col_preview) + self._list_treeview.append_column(_col_description) + # show it + self._list_treeview.show() + # add it + self.pack_start(self._list_treeview) + + def _show(self): + # update toolbar + self.toolbar.activity.set_canvas(self) + # show all + self.show_all() + + +class ScreenBrowserGraphics(ScreenBrowser): + + def __init__(self, toolbar): + # init parent + ScreenBrowser.__init__(self, toolbar) + + def _get_store(self): + # get empty store + _store = ScreenBrowser._get_store(self) + # update store + 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']]) + # return it + return _store + + +class ScreenBrowserSounds(ScreenBrowser): + + def __init__(self, toolbar): + # init parent + ScreenBrowser.__init__(self, toolbar) + class PlayerScreen(gtk.VBox): - def __init__(self, activity): + def __init__(self, toolbar): # init parent - gtk.Toolbar.__init__(self) + gtk.VBox.__init__(self) # prepare screen # ... # update activity - activity.set_canvas(self) + # activity.set_canvas(self) # show all - self.show_all() + # self.show_all() |