Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/activity_quiz/Activity.py
blob: f0ba268e12c083bc45c953b94013aeca0379e8e0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
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)