Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWade Brainerd <wadetb@gmail.com>2009-10-30 06:36:25 (GMT)
committer Wade Brainerd <wadetb@gmail.com>2009-10-30 06:36:25 (GMT)
commit5d2f0cfad07ce6e376576e9b37ded455c1c9ce43 (patch)
tree9fc9e645fdad576a8dabcf3b8f99291ec724d12e
parent5b9c64cb13145b0d90377a354d625afec14f1716 (diff)
If gnash python bindings not available, fallback to embedding the window.
-rwxr-xr-xeatboomactivity.py27
1 files changed, 22 insertions, 5 deletions
diff --git a/eatboomactivity.py b/eatboomactivity.py
index 8294078..dc8d05f 100755
--- a/eatboomactivity.py
+++ b/eatboomactivity.py
@@ -16,10 +16,15 @@
import os
import gtk
-import gnash
+try:
+ import gnash
+except ImportError:
+ import subprocess
from sugar.activity import activity
+SWFNAME = 'EatBoom.swf'
+
class EatBoomActivity(activity.Activity):
def __init__(self, handle):
activity.Activity.__init__(self, handle)
@@ -28,8 +33,20 @@ class EatBoomActivity(activity.Activity):
self.set_toolbox(toolbox)
toolbox.show()
- view = gnash.View()
- view.props.uri = os.path.join(activity.get_bundle_path(), 'EatBoom.swf')
- self.set_canvas(view)
- view.show()
+ try:
+ view = gnash.View()
+ view.props.uri = os.path.join(activity.get_bundle_path(), SWFNAME)
+ self.set_canvas(view)
+ view.show()
+
+ except NameError:
+ socket = gtk.Socket()
+ self.set_canvas(socket)
+ self.show_all()
+ args = [
+ 'gnash',
+ '-x', str(socket.get_id()),
+ os.path.join(activity.get_bundle_path(), SWFNAME)
+ ]
+ self._process = subprocess.Popen(args)