Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/tutorius/engine.py
diff options
context:
space:
mode:
Diffstat (limited to 'tutorius/engine.py')
-rw-r--r--tutorius/engine.py39
1 files changed, 39 insertions, 0 deletions
diff --git a/tutorius/engine.py b/tutorius/engine.py
new file mode 100644
index 0000000..57c08e4
--- /dev/null
+++ b/tutorius/engine.py
@@ -0,0 +1,39 @@
+import dbus.mainloop.glib
+from sugar.tutorius.TProbe import ProbeProxy
+import sugar.tutorius.addon as addon
+
+class Engine:
+ """
+ Driver for the execution of tutorials
+ """
+
+ def __init__(self):
+ # FIXME Probe management should be in the probe manager
+ dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
+ self._probe = ProbeProxy("org.laptop.Calculate")
+ self._bm = None
+
+
+ def launch(self, tutorialID):
+ """ Launch a tutorial
+ @param tutorialID unique tutorial identifier used to retrieve it from the disk
+ """
+ if self._bm == None:
+ self._bm = addon.create("BubbleMessage")
+ self._bm.position = (300,300)
+ self._bm.message = "Tutorial Started"
+
+ self._probe.install(self._bm)
+
+
+ def stop(self):
+ """ Stop the current tutorial
+ """
+ self._probe.uninstall(self._bm)
+
+ def pause(self):
+ """ Interrupt the current tutorial and save its state in the journal
+ """
+ self._bm.message = "Tutorial State would be saved"
+ self._probe.update(self._bm)
+