diff options
Diffstat (limited to 'hoparound.py')
-rw-r--r-- | hoparound.py | 66 |
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() |