The following patch incorporates the new toolbar design in
the Physics Activity. Also attached is the SVG icon of the
Create button, as was required for the new toolbar.

Signed-off-by: akashg1611 <akashg1...@gmail.com>
---
 activity.py              |   77 ++++++++++++++++++++++++++-------------------
 icons/toolbar-create.svg |   44 ++++++++++++++++++++++++++
 2 files changed, 88 insertions(+), 33 deletions(-)
 create mode 100644 icons/toolbar-create.svg

diff --git a/activity.py b/activity.py
index 273a001..ca18aad 100644
--- a/activity.py
+++ b/activity.py
@@ -21,6 +21,10 @@ import olpcgames
 import pygame
 from sugar.graphics.radiotoolbutton import RadioToolButton
 from sugar.graphics.toolbutton import ToolButton
+from sugar.graphics.toolbarbox import ToolbarBox
+from sugar.graphics.toolbarbox import ToolbarButton
+from sugar.activity.widgets import ActivityToolbarButton
+from sugar.activity.widgets import StopButton
 from sugar.activity import activity
 from gettext import gettext as _
 import gtk
@@ -34,6 +38,44 @@ class PhysicsActivity(olpcgames.PyGameActivity):
         super(PhysicsActivity, self).__init__(handle)
         self.metadata['mime_type'] = 'application/x-physics-activity'
 
+        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()
+
+       stop_play = ToolButton('media-playback-stop')
+       stop_play_state = True
+        stop_play.set_tooltip(_("Stop"))
+        stop_play.set_accelerator(_('<ctrl>space'))
+        stop_play.connect('clicked', self.stop_play_cb)
+       toolbar_box.toolbar.insert(stop_play, -1)
+        stop_play.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()
+
+       
     def write_file(self, file_path):
         """Over-ride olpcgames write_file so that title keeps working.
         """
@@ -46,31 +88,8 @@ class PhysicsActivity(olpcgames.PyGameActivity):
         event.block()
         event.retire() # <- without this, title editing stops updating
 
-    # setup the toolbar
-    def build_toolbar(self):        
-        # 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
+    def _create_create_toolbar(self):
         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
@@ -87,15 +106,7 @@ class PhysicsActivity(olpcgames.PyGameActivity):
             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
+       return create_toolbar   
 
     def stop_play_cb(self, button):
         pygame.event.post(olpcgames.eventwrap.Event(pygame.USEREVENT, 
action="stop_start_toggle"))
diff --git a/icons/toolbar-create.svg b/icons/toolbar-create.svg
new file mode 100644
index 0000000..ea7c0ce
--- /dev/null
+++ b/icons/toolbar-create.svg
@@ -0,0 +1,44 @@
+<?xml version="1.0" ?><!-- Created with Inkscape (http://www.inkscape.org/) 
--><!DOCTYPE svg  PUBLIC '-//W3C//DTD SVG 1.1//EN'  
'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd' [
+       <!ENTITY stroke_color "none">
+       <!ENTITY fill_color "#ffffff">
+]><svg height="48pt" id="svg1" inkscape:version="0.47 r22583" 
sodipodi:docname="toolbar-create.svg" sodipodi:version="0.32" style="" 
version="1.0" width="48pt" x="0" xmlns="http://www.w3.org/2000/svg"; 
xmlns:cc="http://creativecommons.org/ns#"; 
xmlns:dc="http://purl.org/dc/elements/1.1/"; 
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"; 
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"; 
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"; 
xmlns:svg="http://www.w3.org/2000/svg"; 
xmlns:xlink="http://www.w3.org/1999/xlink"; y="0">
+  <metadata id="metadata2985" style="">
+    <rdf:RDF style="">
+      <cc:Work rdf:about="" style="">
+        <dc:format style="">image/svg+xml</dc:format>
+        <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"; 
style=""/>
+        <dc:title style=""/>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview bordercolor="#666666" borderopacity="1.0" 
horizgrid="false" id="base" inkscape:current-layer="svg1" 
inkscape:cx="-10.626905" inkscape:cy="21.859944" inkscape:pageopacity="0.0" 
inkscape:pageshadow="2" inkscape:window-height="825" 
inkscape:window-maximized="1" inkscape:window-width="1440" 
inkscape:window-x="0" inkscape:window-y="24" inkscape:zoom="4.9119411" 
pagecolor="#ffffff" showgrid="false" snaptogrid="false" snaptoguides="false" 
style="" vertgrid="false"/>
+  <defs id="defs3" style="">
+    <inkscape:perspective id="perspective2987" inkscape:persp3d-origin="30 : 
20 : 1" inkscape:vp_x="0 : 30 : 1" inkscape:vp_y="0 : 1000 : 0" 
inkscape:vp_z="60 : 30 : 1" sodipodi:type="inkscape:persp3d" style=""/>
+    <linearGradient id="linearGradient570" style="">
+      <stop id="stop571" offset="0" 
style="stop-color:#ffffff;stop-opacity:1;"/>
+      <stop id="stop572" offset="1" 
style="stop-color:#ffffff;stop-opacity:0;"/>
+    </linearGradient>
+    <linearGradient id="linearGradient563" style="">
+      <stop id="stop564" offset="0.00000000" 
style="stop-color:#666666;stop-opacity:1;"/>
+      <stop id="stop565" offset="1.00000000" 
style="stop-color:#666666;stop-opacity:1;"/>
+    </linearGradient>
+    <linearGradient 
gradientTransform="matrix(1.04498,0,0,0.9569561,-74.308708,-2.6466114)" 
gradientUnits="userSpaceOnUse" id="linearGradient566" style="" x1="23.402853" 
x2="35.835532" xlink:href="#linearGradient563" y1="23.747154" y2="36.390283"/>
+    <linearGradient id="linearGradient569" style="" x1="0.009905" 
x2="0.985224" xlink:href="#linearGradient570" y1="0.007809" y2="1.015625"/>
+    <linearGradient gradientTransform="scale(0.999995,1.000005)" 
id="linearGradient573" style="" x1="0.015742" x2="0.976382" 
xlink:href="#linearGradient570" y1="0.015626" y2="0.999995"/>
+    <linearGradient id="linearGradient575" style="" x1="0.006623" 
x2="0.973510" xlink:href="#linearGradient570" y1="0.007813" y2="0.984375"/>
+    <linearGradient gradientTransform="scale(1.2487241,0.80081741)" 
gradientUnits="userSpaceOnUse" id="linearGradient578" style="" x1="4.5679298" 
x2="11.042724" xlink:href="#linearGradient570" y1="46.001992" y2="52.375657"/>
+    <linearGradient id="linearGradient583" style="" x1="0.012999" 
x2="1.012987" xlink:href="#linearGradient570" y1="0.015680" y2="1.000001"/>
+    <linearGradient id="linearGradient637" style="" x1="0.07954545" 
x2="0.95454544" xlink:href="#linearGradient563" y1="0.06250000" 
y2="0.97656250"/>
+    <linearGradient id="linearGradient640" style="" x1="0.03225806" 
x2="0.99596775" xlink:href="#linearGradient563" y1="0.05468750" 
y2="1.00000000"/>
+    <linearGradient id="linearGradient645" style="" x1="0.010877" 
x2="0.989090" xlink:href="#linearGradient570" y1="0.038449" y2="0.987177"/>
+    <linearGradient id="linearGradient646" style="" x1="0.056578" 
x2="0.867923" xlink:href="#linearGradient570" y1="0.023450" y2="0.976563"/>
+    <linearGradient id="linearGradient647" style="" x1="0.000007" 
x2="0.951807" xlink:href="#linearGradient570" y1="0.000000" y2="0.984375"/>
+    <linearGradient id="linearGradient675" style="" x1="0.056605" 
x2="0.943396" xlink:href="#linearGradient570" y1="0.015625" y2="0.984375"/>
+    <linearGradient id="linearGradient676" style="" x1="0.011765" 
x2="1.011765" xlink:href="#linearGradient570" y1="-0.000000" y2="1.015625"/>
+    <linearGradient id="linearGradient684" style="" x1="0.09210526" 
x2="0.93421054" xlink:href="#linearGradient563" y1="0.12500000" 
y2="0.92187500"/>
+    <linearGradient id="linearGradient685" style="" x1="0.06603774" 
x2="0.94339621" xlink:href="#linearGradient563" y1="0.07812500" 
y2="0.95312500"/>
+  </defs>
+  <path d="m 1.6714541,46.028933 c 2.5395548,1.861985 4.9782017,-5.378683 
9.5887409,1.564511 5.202194,7.839595 -2.2748278,8.004289 -1.5908585,11.218364 
0.5434475,2.15168 7.8018915,0.78452 9.4836775,-1.356607 1.708234,-2.174518 
-1.328528,-8.961765 0.686245,-11.589945 6.679753,-8.71269 16.362463,-17.130631 
25.397539,-22.432085 2.941573,-1.725842 8.191049,3.04221 10.532509,1.349931 
2.272038,-1.642373 4.894662,-10.122847 3.307654,-11.353779 C 56.639324,11.47279 
52.997644,20.80289 48.606866,13.989506 44.186925,7.129412 
+         52.142642,4.5631634 51.662085,1.862198 51.217131,-0.33348689 
43.318205,0.8930759 41.301114,3.1327101 39.311696,5.3415778 39.98847,13.033259 
37.810293,15.81846 31.052456,24.45924 23.378731,32.160168 14.492957,37.410639 
11.915703,38.933488 7.3485542,34.119614 5.2533614,35.52793 3.0747599,36.992339 
0.03942982,44.719057 1.6714541,46.028933 z" id="path636" 
sodipodi:nodetypes="cccsssscscssssc" 
style="font-size:12px;opacity:1.0;fill:&fill_color;;fill-rule:evenodd;stroke-width:12.5"/>
+  <path d="m 36.034635,17.45063 -4.701433,-2.805627 -4.976523,2.282375 
1.215487,-5.338314 -3.708498,-4.0276614 5.452645,-0.4936332 2.684545,-4.7716069 
2.154433,5.0332324 5.367638,1.0786459 -4.121133,3.6043422 0.632839,5.438247 z" 
id="path3942" inkscape:flatsided="false" inkscape:randomized="0" 
inkscape:rounded="0" sodipodi:arg1="0.9964915" sodipodi:arg2="1.62481" 
sodipodi:cx="31.555754" sodipodi:cy="10.528723" sodipodi:r1="8.2445841" 
sodipodi:r2="4.122292" sodipodi:sides="5" sodipodi:type="star" 
style="opacity:1.0;fill:&fill_color;;fill-opacity:1.0" 
transform="matrix(1.7410551,0,0,1.8060416,-29.492251,-3.6830718)"/>
+</svg>
-- 
1.7.0.4

_______________________________________________
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel

Reply via email to