Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/hoparound.py
diff options
context:
space:
mode:
Diffstat (limited to 'hoparound.py')
-rw-r--r--hoparound.py66
1 files changed, 38 insertions, 28 deletions
diff --git a/hoparound.py b/hoparound.py
index 56d87a3..3e3d656 100644
--- a/hoparound.py
+++ b/hoparound.py
@@ -1,7 +1,7 @@
"""
Copyright (C) 2009 Mike Major <ossfm@yahoo.com>
- This file is part of HopAround.
+ This file is part of Hop-A-Round.
Hop-A-Round is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -14,52 +14,57 @@
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with Hop-A-Round. If not, see <http://www.gnu.org/licenses/>.
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
"""
from sugar.activity import activity
-from view import Views
-from data import LevelData
+import view
+import data
import gtk
import locale
import gobject
-class HopaRoundActivity(activity.Activity):
+class HopARoundActivity(activity.Activity):
def __init__(self, handle):
activity.Activity.__init__(self, handle)
+ self.data = data.LevelData()
+ self.ui = view.Views()
# make the toolbox
toolbox = activity.ActivityToolbox(self)
self.set_toolbox(toolbox)
toolbox.show()
- self.data = LevelData()
- self.ui = Views()
+ # make the settings toolbar
+ self.settings_toolbar = view.SettingsToolbar(self.data)
+ self.settings_toolbar.question_count_spin.connect("value-changed", self.tool_item_question_count_cb)
+ toolbox.add_toolbar("Settings", self.settings_toolbar)
+ self.settings_toolbar.show()
self.ui.clear(self.data)
- self.ui.slider_click.connect("clicked", self.submit_answer, self.ui.slider_tool)
- self.ui.mult_1.connect("clicked", self.submit_answer, self.ui.mult_1)
- self.ui.mult_2.connect("clicked", self.submit_answer, self.ui.mult_2)
- self.ui.mult_3.connect("clicked", self.submit_answer, self.ui.mult_3)
- self.ui.mult_4.connect("clicked", self.submit_answer, self.ui.mult_4)
- self.ui.entry_click.connect("clicked", self.submit_answer, self.ui.entry_tool)
- self.ui.entry_tool.connect("activate", self.submit_answer, self.ui.entry_tool)
- self.setup(self.data, self.ui)
+ self.ui.slider_click.connect_object("clicked", self.submit_answer, self.ui.slider_tool)
+ self.ui.mult_1.connect("clicked", self.submit_answer)
+ self.ui.mult_2.connect("clicked", self.submit_answer)
+ self.ui.mult_3.connect("clicked", self.submit_answer)
+ self.ui.mult_4.connect("clicked", self.submit_answer)
+ self.ui.entry_click.connect_object("clicked", self.submit_answer, self.ui.entry_tool)
+ self.ui.entry_tool.connect("activate", self.submit_answer)
+ self.setup()
self.set_canvas(self.ui.get_user_interaction())
self.show_all()
self.ui.help.hide()
- def setup(self, data, ui):
- data.gen_random()
- ui.set_rounding_phrase(data)
- ui.set_choices(data.random_number, data.mult)
- ui.set_tab(data)
+ def setup(self):
+ self.data.gen_random()
+ self.ui.set_rounding_phrase(self.data)
+ self.ui.set_choices(self.data.random_number, self.data.mult)
+ self.ui.set_tab(self.data)
- def submit_answer(self, widget, answer):
+ def submit_answer(self, widget):
try: # for int answer because of entry field
- if answer.get_name() == "GtkHScale":
- num = int(answer.get_value())
- elif answer.get_name() == "GtkButton":
- num = locale.atoi(answer.get_label())
- elif answer.get_name() == "GtkEntry":
- num = locale.atoi(answer.get_text())
+ if widget.get_name() == "GtkHScale":
+ num = int(widget.get_value())
+ elif widget.get_name() == "GtkButton":
+ num = locale.atoi(widget.get_label())
+ elif widget.get_name() == "GtkEntry":
+ num = locale.atoi(widget.get_text())
except:
self.ui.answer_nan()
else:
@@ -68,5 +73,10 @@ class HopaRoundActivity(activity.Activity):
else:
self.ui.answer_incorrect(self.data)
gobject.timeout_add(2500, self.ui.clear, self.data)
- self.setup(self.data, self.ui)
+ self.setup()
+
+ def tool_item_question_count_cb(self, widget):
+ self.data.set_question_count(widget.get_value_as_int())
+ self.ui.clear(self.data)
+ self.setup()