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.py77
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)