Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/tutorius/engine.py
diff options
context:
space:
mode:
authorerick <erick@sugar-dev-erick.(none)>2009-10-01 21:06:33 (GMT)
committer erick <erick@sugar-dev-erick.(none)>2009-10-01 21:18:34 (GMT)
commit8883669cc67299a3c80da36fbe02ad63d2fc6d1f (patch)
treef4799ed11ef0131ab3e364a683acb8b0b591ffad /tutorius/engine.py
parent3e66db178ce87526c40064494383c7e7886129b9 (diff)
Initial version of the Engine and the Service
Diffstat (limited to 'tutorius/engine.py')
-rw-r--r--tutorius/engine.py40
1 files changed, 40 insertions, 0 deletions
diff --git a/tutorius/engine.py b/tutorius/engine.py
new file mode 100644
index 0000000..396a9e1
--- /dev/null
+++ b/tutorius/engine.py
@@ -0,0 +1,40 @@
+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.DBusGMainLoop(set_as_default=True)
+ self._probe = ProbeProxy("org.laptop.Calculate")
+
+
+ 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)
+ self._bm = None
+
+ 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)
+