Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/FractionBounceActivity.py
diff options
context:
space:
mode:
authorWalter Bender <walter.bender@gmail.com>2011-10-18 20:24:06 (GMT)
committer Walter Bender <walter.bender@gmail.com>2011-10-18 20:24:06 (GMT)
commit2f0963e3d4c842a9f775100ccb27a20254eca13f (patch)
tree955a56985da836370f88cb5509e43f7f8dfd6cee /FractionBounceActivity.py
parent919e8066884eb4a520d2ccae22847909df15f464 (diff)
added custom ball combo box
Diffstat (limited to 'FractionBounceActivity.py')
-rw-r--r--FractionBounceActivity.py27
1 files changed, 25 insertions, 2 deletions
diff --git a/FractionBounceActivity.py b/FractionBounceActivity.py
index bc0ba92..dfa30d7 100644
--- a/FractionBounceActivity.py
+++ b/FractionBounceActivity.py
@@ -12,6 +12,7 @@
# Boston, MA 02111-1307, USA.
import gtk
+import os
from sugar.activity import activity
from sugar import profile
@@ -36,14 +37,15 @@ from gettext import gettext as _
import logging
_logger = logging.getLogger('fractionbounce-activity')
-from toolbar_utils import image_factory, separator_factory, \
+from toolbar_utils import image_factory, separator_factory, combo_factory, \
label_factory, radio_factory, button_factory, entry_factory
-from utils import json_load, json_dump
+from utils import json_load, json_dump, chooser
from svg_utils import svg_str_to_pixbuf, generate_xo_svg
from bounce import Bounce
+BALLS = [_('basketball'), _('soccer ball'), _('user defined')]
SERVICE = 'org.sugarlabs.FractionBounceActivity'
IFACE = SERVICE
PATH = '/org/augarlabs/FractionBounceActivity'
@@ -153,6 +155,10 @@ class FractionBounceActivity(activity.Activity):
self._add_fraction_cb,
tooltip=_('add new fraction'),
accelerator='Return')
+ separator_factory(toolbar, expand=False, visible=True)
+ self._ball_selector = combo_factory(BALLS, toolbar, self._combo_cb,
+ default=_('basketball'),
+ tooltip=_('choose a ball'))
def _setup_canvas(self):
''' Create a canvas '''
@@ -164,6 +170,23 @@ class FractionBounceActivity(activity.Activity):
self.show_all()
return canvas
+ def _combo_cb(self, arg=None):
+ ''' Load a new ball based on the selector value. '''
+ if not hasattr(self, '_ball_selector'):
+ return
+ if BALLS[self._ball_selector.get_active()] == _('basketball'):
+ self.bounce_window.ball.new_ball(os.path.join(
+ activity.get_bundle_path(), 'basketball.svg'))
+ elif BALLS[self._ball_selector.get_active()] == _('soccer ball'):
+ self.bounce_window.ball.new_ball(os.path.join(
+ activity.get_bundle_path(), 'soccer.svg'))
+ else:
+ chooser(self, '', self._new_ball_from_journal)
+
+ def _new_ball_from_journal(self, dsobject):
+ ''' Load an image from the Journal. '''
+ self.bounce_window.ball.new_ball_from_image(dsobject.file_path)
+
def _fraction_cb(self, arg=None):
''' Set fraction mode '''
self.bounce_window.mode = 'fractions'