''' 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)