diff options
author | Christophe Gueret <christophe.gueret@gmail.com> | 2013-01-13 13:59:36 (GMT) |
---|---|---|
committer | Christophe Gueret <christophe.gueret@gmail.com> | 2013-01-13 13:59:36 (GMT) |
commit | c15a9c80602255561686f6e3bca20f93e59bb803 (patch) | |
tree | 383496e705d16781d86916443e48e736829d99da /Activity.py |
Diffstat (limited to 'Activity.py')
-rw-r--r-- | Activity.py | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/Activity.py b/Activity.py new file mode 100644 index 0000000..f0ba268 --- /dev/null +++ b/Activity.py @@ -0,0 +1,83 @@ +''' +Created on 5 Nov 2012 + +@author: cgueret +''' +from gi.repository import Gtk + +from sugar3.activity import activity +from sugar3.graphics.toolbarbox import ToolbarBox +from sugar3.activity.widgets import ActivityButton +from sugar3.activity.widgets import TitleEntry +from sugar3.activity.widgets import StopButton +from sugar3.activity.widgets import DescriptionItem +from Application import Main +import simplejson + +class QuizActivity(activity.Activity): + def __init__(self, handle): + ''' + Initialise the activity + ''' + activity.Activity.__init__(self, handle) + + # Create the main part of the application + self._application = Main() + + # toolbar with the new toolbar redesign + toolbar_box = ToolbarBox() + + activity_button = ActivityButton(self) + toolbar_box.toolbar.insert(activity_button, 0) + activity_button.show() + + title_entry = TitleEntry(self) + toolbar_box.toolbar.insert(title_entry, -1) + title_entry.show() + + description_item = DescriptionItem(self) + toolbar_box.toolbar.insert(description_item, -1) + description_item.show() + + separator = Gtk.SeparatorToolItem() + separator.props.draw = False + separator.set_expand(True) + toolbar_box.toolbar.insert(separator, -1) + separator.show() + + stop_button = StopButton(self) + toolbar_box.toolbar.insert(stop_button, -1) + stop_button.show() + + self.set_toolbar_box(toolbar_box) + toolbar_box.show() + + # Set the canvas + self.set_canvas(self._application.get_widget()) + self.canvas.show() + + def write_file(self, file_path): + if not self.metadata['mime_type']: + self.metadata['mime_type'] = 'text/plain' + + data = {} + data['last_score'] = self._application.get_score() + + fd = open(file_path, 'w') + text = simplejson.dumps(data) + fd.write(text) + fd.close() + + def read_file(self, file_path): + if self.metadata['mime_type'] != 'text/plain': + return + + fd = open(file_path, 'r') + text = fd.read() + data = simplejson.loads(text) + fd.close() + + if 'last_score' in data: + self._application.set_score(int(data['last_score'])) + else: + self._application.set_score(0) |