Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/showntell.py
diff options
context:
space:
mode:
Diffstat (limited to 'showntell.py')
-rwxr-xr-xshowntell.py74
1 files changed, 62 insertions, 12 deletions
diff --git a/showntell.py b/showntell.py
index 8b37da8..fb2678f 100755
--- a/showntell.py
+++ b/showntell.py
@@ -28,6 +28,7 @@ import logging
import sys, os
import subprocess
+import atexit, signal
import gtk
import zipfile
@@ -43,13 +44,27 @@ import time
import pdb
import listview
-#import htmlview
+import cpxoview
+import hulahop
+from sugar import env
+hulahop.startup(os.path.join(env.get_profile_path(), 'gecko'))
+from hulahop.webview import WebView
+
+SLIDESHOW_TOOLBAR = 1
+NAVIGATION_TOOLBAR = 2
+TITLE_SLIDE = "title.html"
class ShowNTell(activity.Activity):
def __init__(self, handle):
#pdb.set_trace()
+ atexit.register(self.report_exit, 'message')
+ signal.signal(signal.SIGINT, self.signal_exit)
+ signal.signal(signal.SIGABRT, self.signal_exit)
+ signal.signal(signal.SIGTERM, self.signal_exit)
+ signal.signal(signal.SIGSEGV, self.signal_exit)
+ signal.signal(signal.SIGQUIT, self.signal_exit)
activity.Activity.__init__(self, handle)
self.__logger = logging.getLogger('ClassroomPresenter')
@@ -71,17 +86,18 @@ class ShowNTell(activity.Activity):
self.__logger.debug("Found deck directory: %s", self.__deck_dir)
# Copy the splash screen to the working directory
- utils.copy_file(os.path.join(self.__rsrc_dir, 'splash.svg'),
- os.path.join(self.__deck_dir, 'splash.svg'))
+ self.__title_slide_name = TITLE_SLIDE
+ utils.copy_file(os.path.join(self.__rsrc_dir, self.__title_slide_name),
+ os.path.join(self.__deck_dir, self.__title_slide_name))
# Create a slide deck object
- self.__deck = slideshow.Deck(self.__deck_dir)
+ self.__deck = slideshow.Deck(self.__title_slide_name, self.__deck_dir)
# Set up activity sharing
self.__shared = shared.Shared(self, self.__deck, self.__work_path)
# Create a renderer for slides
- self.__renderer = sliderenderer.Renderer(self.__deck)
+ self.__renderer = sliderenderer.Renderer(self, self.__deck)
# Set up the main canvas
self.__slide_view = gtk.HBox()
@@ -89,13 +105,23 @@ class ShowNTell(activity.Activity):
# Set up Main Viewer box
self.__main_view_box = gtk.VBox()
+ #here enter a gtk widget in place of self.__slide
+ #pack this common widget to self.__main_view_box
+ #then render each 'screen' to this common widget as needed
self.__slide = slideviewer.SlideViewer(self.__deck, self.__renderer)
self.__text_area = textarea.TextArea(self.__deck)
self.__image_chooser = listview.Listview(self, self.__deck)
- #self.__html_viewer = htmlview.Htmlview()
+ self.__slideshow_chooser = cpxoview.Cpxoview(self, self.__deck)
+ self.__html_slide = gtk.EventBox()
+ self.__screens = []
self.__main_view_box.pack_start(self.__slide, True, True, 5)
+ self.__screens.append(self.__slide)
self.__main_view_box.pack_start(self.__image_chooser, True, True, 5)
- #self.__main_view_box.pack_start(self.__html_viewer, True, True, 5)
+ self.__screens.append(self.__image_chooser)
+ self.__main_view_box.pack_start(self.__slideshow_chooser, True, True, 5)
+ self.__screens.append(self.__slideshow_chooser)
+ self.__main_view_box.pack_start(self.__html_slide, True, True, 5)
+ self.__screens.append(self.__html_slide)
self.__main_view_box.pack_start(self.__text_area, False, False, 0)
# Create our toolbars
@@ -110,6 +136,10 @@ class ShowNTell(activity.Activity):
toolbox.add_toolbar("Ink", inkTB)
self.set_toolbox(toolbox)
toolbox.show()
+ self.__toolbox = toolbox
+
+ # Open with slideshow toolbar
+ toolbox.set_current_toolbar(SLIDESHOW_TOOLBAR)
# Set up the side scrollbar widget
self.__side_bar = sidebar.SideBar(self.__deck, self.__renderer)
@@ -129,6 +159,7 @@ class ShowNTell(activity.Activity):
self.__slide.show()
self.__text_area.show()
self.__image_chooser.hide()
+ self.__slideshow_chooser.hide()
#self.__html_viewer.hide()
separator.show()
self.__side_bar.show_all()
@@ -145,6 +176,12 @@ class ShowNTell(activity.Activity):
self.__shared.connect('deck-download-complete', self.dl_complete_cb)
+ def report_exit(self, message):
+ print 'activity exited', message
+
+ def signal_exit(signal, frame):
+ print 'activity exited', signal
+
def dl_complete_cb(self, widget):
self.do_slideview_mode()
@@ -176,6 +213,7 @@ class ShowNTell(activity.Activity):
z.close()
self.__deck.set_title(self.metadata['title'])
self.__deck.reload()
+ self.__toolbox.set_current_toolbar(NAVIGATION_TOOLBAR)
newindex = 0
if 'current_index' in self.metadata:
newindex = int(self.metadata.get('current_index', '0'))
@@ -183,8 +221,11 @@ class ShowNTell(activity.Activity):
#save state in journal for resume
def write_file(self, file_path):
+ print 'write_file', self.__toolbox.get_current_toolbar(), str(file_path)
+ if self.__toolbox.get_current_toolbar() > 0:
+ return
self.__logger.debug("write_file " + str(file_path))
- self.metadata['title'] = self.__deck.get_title()
+ self.metadata['title'] = self.__deck.get_title(2)
self.metadata['mime_type'] = "application/x-classroompresenter"
self.metadata['current_index'] = str(self.__deck.getIndex())
self.__deck.save()
@@ -197,8 +238,17 @@ class ShowNTell(activity.Activity):
def get_shared_activity(self):
return self._shared_activity
- def get_window(self):
- #return (self.__slide, self.__image_chooser, self.__html_viewer)
- return (self.__slide, self.__image_chooser)
-
+ def set_screen(self,scrn):
+ print 'set_screen', scrn
+ self.__screens[0].hide()
+ print 'screen 0 hidden'
+ self.__screens[1].hide()
+ print 'screen 1 hidden'
+ self.__screens[2].hide()
+ print 'screen 2 hidden'
+ self.__screens[3].hide()
+ print 'screen 3 hidden'
+ self.__screens[scrn].show()
+ print 'screen', scrn, 'shown'
+ return self.__screens[scrn]