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.py69
1 files changed, 49 insertions, 20 deletions
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