Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorflorent <florent.pigout@gmail.com>2011-02-02 21:19:52 (GMT)
committer florent <florent.pigout@gmail.com>2011-02-02 21:19:52 (GMT)
commit0a99d76d34c9d98ad226cb5bef0243fa3aeec334 (patch)
tree967e62c61fbb578eb31b5c504eea4037a8f3555d
parent5d0134e4cc4762f4536164ac0fbbabb5c8a4612a (diff)
parentc9808026698897fbee810659ef4242ae586d0ff6 (diff)
image zoom test update
-rw-r--r--MANIFEST1
-rw-r--r--atoidepoc/storage/utils.py1
-rw-r--r--atoidepoc/ui/screens.py69
3 files changed, 50 insertions, 21 deletions
diff --git a/MANIFEST b/MANIFEST
index 15c71c8..691e7ee 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -2,6 +2,7 @@ activity.py
setup.py
atoidepoc/__init__.py
atoidepoc/ui/toolbar.py
+atoidepoc/ui/screens.py
atoidepoc/ui/__init__.py
activity/activity.info
activity/activity-atoidepoc.svg
diff --git a/atoidepoc/storage/utils.py b/atoidepoc/storage/utils.py
index 56a74c4..f37b192 100644
--- a/atoidepoc/storage/utils.py
+++ b/atoidepoc/storage/utils.py
@@ -6,7 +6,6 @@ import logging, os
import gtk
# sugar import
-from sugar.activity import activity
from sugar.datastore import datastore
# get application logger
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