Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFlorent <florent@myhost.(none)>2011-09-20 23:39:06 (GMT)
committer Florent <florent@myhost.(none)>2011-09-20 23:39:06 (GMT)
commit57c9951c909f11cc64f96d29f0eb19fd60e88343 (patch)
tree323065beb0b6ca815f7c09ad4a5de3bc542767b9
parentbae1efb584b8978f0520ffda4cbb5f07fc2405e3 (diff)
add help screen based on web_view and simple html content
-rw-r--r--activity.py16
-rw-r--r--atoidejouer/tools/storage.py6
-rw-r--r--atoidejouer/ui/screens.py26
-rw-r--r--atoidejouer/ui/toolbar.py21
-rw-r--r--static/data/html/help.html6
5 files changed, 68 insertions, 7 deletions
diff --git a/activity.py b/activity.py
index 0d6fd14..a08ddeb 100644
--- a/activity.py
+++ b/activity.py
@@ -77,8 +77,10 @@ class ThreadAnim(threading.Thread):
# update scene
if hasattr(_current_screen, 'scene'):
_current_screen.scene.refresh()
- else:
+ elif hasattr(_current_screen, 'refresh'):
_current_screen.refresh()
+ else:
+ pass
# update timeline
if hasattr(_current_screen, 'timeline'):
_current_screen.timeline.refresh()
@@ -152,6 +154,7 @@ class AToiDeJouerActivity(activity.Activity):
self._thread = None
self._screens = dict()
self._current = None
+ self._previous = None
self._handler_id = None
self._number_of_keys = 1
# ..
@@ -164,7 +167,8 @@ class AToiDeJouerActivity(activity.Activity):
# tmp var
_toolbar = None
# init toolbars
- for _n in ['story', 'graphics', 'graphics_add', 'sounds', 'sounds_add']:
+ for _n in ['story', 'graphics', 'graphics_add',
+ 'sounds', 'sounds_add', 'help']:
# init toolbar
_t = toolbar.Toolbar(self, name=_n)
# if default toolbar .. set default screen
@@ -198,6 +202,7 @@ class AToiDeJouerActivity(activity.Activity):
def set_current_screen(self, name, screen):
# udpate current name
+ self._previous = self._current
self._current = name
# little check
self.add_screen(name, screen)
@@ -237,6 +242,7 @@ class AToiDeJouerActivity(activity.Activity):
return
else:
# update current screen name
+ self._previous = self._current
self._current = toolbar.name if name is None else name
# already exist
if self._current in ['graphics', 'sounds']:
@@ -267,6 +273,9 @@ class AToiDeJouerActivity(activity.Activity):
# .. refresh
self._screens[self._current].timeline.refresh_sequence()
self._screens[self._current].timeline.refresh_adjustment()
+ elif self._current == 'help':
+ del self._screens[self._current]
+ self._screens[self._current] = screens.ScreenHelp(self)
else:
pass
# exit
@@ -297,6 +306,8 @@ class AToiDeJouerActivity(activity.Activity):
_scr.timeline.refresh_adjustment()
elif self._current == 'story':
_scr = screens.ScreenStory(toolbar, set_canvas=True)
+ elif self._current == 'help':
+ _scr = screens.ScreenHelp(self)
else:
# ??
return
@@ -325,6 +336,7 @@ class AToiDeJouerActivity(activity.Activity):
# clear
self.graphic_keys.ask_clear()
# refresh default
+ self._previous = self._current
_current = self.get_current_screen()
_current.refresh()
diff --git a/atoidejouer/tools/storage.py b/atoidejouer/tools/storage.py
index 0e471cd..e96327c 100644
--- a/atoidejouer/tools/storage.py
+++ b/atoidejouer/tools/storage.py
@@ -129,6 +129,12 @@ def get_image_path(filename, dir_='graphics'):
'%s.png' % filename)
+def get_html_path(page):
+ # return path
+ return os.path.join(activity.get_bundle_path(), 'static', 'data', 'html',
+ '%s.html' % page)
+
+
def get_pixbuf_from_data(data, image_type=None, size=None):
# load it
if image_type:
diff --git a/atoidejouer/ui/screens.py b/atoidejouer/ui/screens.py
index 9cf5f72..551e662 100644
--- a/atoidejouer/ui/screens.py
+++ b/atoidejouer/ui/screens.py
@@ -16,6 +16,9 @@ from lib import graphics
from sugar.activity import activity
from sugar.graphics.objectchooser import ObjectChooser
+#from hulahop.webview import WebView
+from hulahop.webview import WebView
+
# atoidejouer import
from atoidejouer.tools import config, image, key, sound, storage, ui
from atoidejouer.ui.panel import PanelGraphics, PanelSounds
@@ -38,11 +41,6 @@ COLOR_WHITE = ui.get_color(1.0, 1.0, 1.0)
def _on_drag_finish(image, event, scene, sequence_name, frame, filename,
image_size):
- # DEBUG
- logger.debug('[screens] _on_drag_finish - sequence_name: %s' % sequence_name)
- logger.debug('[screens] _on_drag_finish - frame: %s' % frame)
- logger.debug('[screens] _on_drag_finish - filename: %s' % filename)
- # DEBUG
# get align values
_a_x, _a_y = scene._reverse_x_y(image_size, (image.x, image.y))
# shortcut
@@ -1003,3 +1001,21 @@ class ScreenActivity(gtk.ScrolledWindow):
self.show()
# update toolbar
self._activity.set_canvas(self)
+
+
+class ScreenHelp(WebView):
+
+ def __init__(self, activity_):
+ WebView.__init__(self)
+ # keep activity
+ self._activity = activity_
+ # load html content
+ self.load_uri(storage.get_html_path('help'))
+ # do show
+ self._show()
+
+ def _show(self):
+ # show all
+ self.show()
+ # update toolbar
+ self._activity.set_canvas(self)
diff --git a/atoidejouer/ui/toolbar.py b/atoidejouer/ui/toolbar.py
index 1d3d550..1d0aa72 100644
--- a/atoidejouer/ui/toolbar.py
+++ b/atoidejouer/ui/toolbar.py
@@ -299,6 +299,16 @@ def _cb_format_value(widget, value, toolbar):
# return formated value
return '%1d:%02d' % divmod(value, 60)
+TOOLBAR_INDEXES = ['activity', 'story', 'graphics', 'sounds', 'help']
+
+def _cb_help_back(widget, toolbar):
+ _previous = toolbar.activity._previous
+ # restore default tab
+ toolbar.activity._toolbox.set_current_toolbar(
+ TOOLBAR_INDEXES.index(_previous.replace('_add', '')))
+ # restore previous
+ toolbar.activity._change_screen(name=_previous)
+
BUTTONS = {
'add' : ['list-add', _cb_add],
@@ -308,6 +318,7 @@ BUTTONS = {
'frame_after' : ['go-right', _cb_frame_after],
'frame_before' : ['go-left', _cb_frame_before],
'frame_entry' : [None, None],
+ 'help_back' : ['edit-undo', _cb_help_back],
'import' : ['insert-image', _cb_import],
'open' : ['media', _cb_open],
'pause' : ['media-playback-pause', _cb_pause],
@@ -361,6 +372,10 @@ TOOLBARS = {
'view_fullscreen'],
[]
],
+ 'help' : [
+ [],
+ ['help_back']
+ ]
}
TITLES = {
@@ -434,6 +449,12 @@ TITLES = {
'view_return': _('Default Screen'),
}
},
+ 'help' : {
+ 'toolbox': _('Help'),
+ 'buttons': {
+ 'help_back': _('Back')
+ }
+ }
}
diff --git a/static/data/html/help.html b/static/data/html/help.html
new file mode 100644
index 0000000..b45a914
--- /dev/null
+++ b/static/data/html/help.html
@@ -0,0 +1,6 @@
+<html>
+ <body>
+ <h1>My First Heading</h1>
+ <p>My first paragraph.</p>
+ </body>
+</html>