Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/activity.py
diff options
context:
space:
mode:
authorakashg1611 <akashg1611@gmail.com>2010-06-24 20:05:15 (GMT)
committer akashg1611 <akashg1611@gmail.com>2010-06-24 20:05:15 (GMT)
commit9449c68c0a50f9440991a684fa1c3a8ea8e70709 (patch)
tree9cea7ae918bf89b678a6e3aef7feddcd7cdd331f /activity.py
parent9167e5a85dc90b86f593eab2860735e79955c88d (diff)
Added the new toolbar
The new toolbar is added such that the activity falls back to older toolbar in case of older sugar version, hence maintaing backward compatibility.
Diffstat (limited to 'activity.py')
-rw-r--r--activity.py119
1 files changed, 101 insertions, 18 deletions
diff --git a/activity.py b/activity.py
index 273a001..c6e551a 100644
--- a/activity.py
+++ b/activity.py
@@ -25,6 +25,17 @@ from sugar.activity import activity
from gettext import gettext as _
import gtk
+
+try:
+ # >= 0.86 toolbars
+ from sugar.graphics.toolbarbox import ToolbarButton, ToolbarBox
+ from sugar.activity.widgets import ActivityToolbarButton
+ from sugar.activity.widgets import StopButton
+except ImportError:
+ # <= 0.84 toolbars
+ pass
+
+
class PhysicsActivity(olpcgames.PyGameActivity):
game_name = 'physics'
game_title = _('Physics')
@@ -47,17 +58,94 @@ class PhysicsActivity(olpcgames.PyGameActivity):
event.retire() # <- without this, title editing stops updating
# setup the toolbar
- def build_toolbar(self):
- # make a toolbox
- toolbox = activity.ActivityToolbox(self)
+ def build_toolbar(self):
+ try:
+ #Use new >= 0.86 toolbar
+ toolbar_box = ToolbarBox()
+ activity_button = ActivityToolbarButton(self)
+ toolbar_box.toolbar.insert(activity_button, 0)
+ activity_button.page.keep.props.accelerator = '<Ctrl><Shift>S'
+ activity_button.show()
+
+ create_toolbar = self._create_create_toolbar()
+ create_toolbar_button = ToolbarButton(
+ page=create_toolbar,
+ icon_name='toolbar-create')
+ create_toolbar.show()
+ toolbar_box.toolbar.insert(create_toolbar_button, -1)
+ create_toolbar_button.show()
+
+ separator = gtk.SeparatorToolItem()
+ separator.props.draw = False
+ separator.set_expand(True)
+ toolbar_box.toolbar.insert(separator, -1)
+ separator.show()
+
+ stop_button = StopButton(self)
+ stop_button.props.accelerator = '<Ctrl><Shift>Q'
+ toolbar_box.toolbar.insert(stop_button, -1)
+ stop_button.show()
+
+ self.set_toolbar_box(toolbar_box)
+ toolbar_box.show()
+ return toolbar_box
+
+
+ except NameError:
+ #Use old <= 0.84 toolbar design
+ # make a toolbox
+ toolbox = activity.ActivityToolbox(self)
- # modify the Activity tab
- activity_toolbar = toolbox.get_activity_toolbar()
- activity_toolbar.share.props.visible = False
- self.blocklist = []
- # make a 'create' toolbar
- create_toolbar = gtk.Toolbar()
+ # modify the Activity tab
+ activity_toolbar = toolbox.get_activity_toolbar()
+ activity_toolbar.share.props.visible = False
+ self.blocklist = []
+ # make a 'create' toolbar
+ create_toolbar = gtk.Toolbar()
+ # stop/play button
+ self.stop_play_state = True
+ self.stop_play = ToolButton('media-playback-stop')
+ self.stop_play.set_tooltip(_("Stop"))
+ self.stop_play.set_accelerator(_('<ctrl>space'))
+ self.stop_play.connect('clicked', self.stop_play_cb)
+ create_toolbar.insert(self.stop_play, 0)
+ self.stop_play.show()
+
+ separator = gtk.SeparatorToolItem()
+ create_toolbar.insert(separator, 1)
+ separator.show()
+
+ # make + add the component buttons
+ self.radioList = {}
+ firstButton = None
+ for c in tools.allTools:
+ button = RadioToolButton(named_icon=c.icon)
+ if firstButton:
+ button.set_group(firstButton)
+ else:
+ button.set_group(None)
+ firstButton = button
+ button.set_tooltip(c.toolTip)
+ button.set_accelerator(c.toolAccelerator)
+ button.connect('clicked',self.radioClicked)
+ create_toolbar.insert(button,-1)
+ button.show()
+ self.radioList[button] = c.name
+
+ # add the toolbars to the toolbox
+ toolbox.add_toolbar(_("Create"),create_toolbar)
+ create_toolbar.show()
+
+ toolbox.show()
+ self.set_toolbox(toolbox)
+ toolbox.set_current_toolbar(1)
+ return activity_toolbar
+
+
+ def _create_create_toolbar(self):
+ create_toolbar = gtk.Toolbar()
+
# stop/play button
self.stop_play_state = True
self.stop_play = ToolButton('media-playback-stop')
@@ -70,7 +158,7 @@ class PhysicsActivity(olpcgames.PyGameActivity):
separator = gtk.SeparatorToolItem()
create_toolbar.insert(separator, 1)
separator.show()
-
+
# make + add the component buttons
self.radioList = {}
firstButton = None
@@ -87,15 +175,8 @@ class PhysicsActivity(olpcgames.PyGameActivity):
create_toolbar.insert(button,-1)
button.show()
self.radioList[button] = c.name
+ return create_toolbar
- # add the toolbars to the toolbox
- toolbox.add_toolbar(_("Create"),create_toolbar)
- create_toolbar.show()
-
- toolbox.show()
- self.set_toolbox(toolbox)
- toolbox.set_current_toolbar(1)
- return activity_toolbar
def stop_play_cb(self, button):
pygame.event.post(olpcgames.eventwrap.Event(pygame.USEREVENT, action="stop_start_toggle"))
@@ -110,3 +191,5 @@ class PhysicsActivity(olpcgames.PyGameActivity):
def radioClicked(self,button):
pygame.event.post(olpcgames.eventwrap.Event(pygame.USEREVENT, action=self.radioList[button]))
+
+