Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/atoidepoc/ui/screens.py
diff options
context:
space:
mode:
Diffstat (limited to 'atoidepoc/ui/screens.py')
-rw-r--r--atoidepoc/ui/screens.py114
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()