Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/AbacusActivity.py
diff options
context:
space:
mode:
authorWalter Bender <walter@sugarlabs.org>2010-06-26 14:11:53 (GMT)
committer Walter Bender <walter@sugarlabs.org>2010-06-26 14:11:53 (GMT)
commita5c309e67934087a299b505a3658a18c4b6b55ec (patch)
treed79da07a5be9a62c6346f1ce16228e95909c24c5 /AbacusActivity.py
parent5ae88075ed7df95aea13c2f90ca74bda2c89c1dc (diff)
simplified the toolbar by adding a secondary menu
Diffstat (limited to 'AbacusActivity.py')
-rw-r--r--AbacusActivity.py112
1 files changed, 55 insertions, 57 deletions
diff --git a/AbacusActivity.py b/AbacusActivity.py
index 4897a63..e775e96 100644
--- a/AbacusActivity.py
+++ b/AbacusActivity.py
@@ -40,6 +40,16 @@ _logger = logging.getLogger("abacus-activity")
from abacus_window import Abacus, Custom
+def button_factory(icon_name, tooltip, callback, toolbar):
+ """Factory for making toolbar buttons"""
+ my_button = ToolButton( icon_name )
+ my_button.set_tooltip(tooltip)
+ my_button.props.sensitive = True
+ my_button.connect('clicked', callback)
+ toolbar.insert(my_button, -1)
+ my_button.show()
+ return my_button
+
#
# Sugar activity
#
@@ -59,74 +69,53 @@ class AbacusActivity(activity.Activity):
activity_button.show()
# Suanpan (Chinese abacus) 2:5
- self.chinese = ToolButton( "Con" )
- self.chinese.set_tooltip(_('Suanpan'))
- self.chinese.props.sensitive = True
- self.chinese.connect('clicked', self._chinese_cb)
- toolbar_box.toolbar.insert(self.chinese, -1)
- self.chinese.show()
-
- # Soroban (Japanese abacus) 1:4
- self.japanese = ToolButton( "Joff" )
- self.japanese.set_tooltip(_('Soroban'))
- self.japanese.props.sensitive = True
- self.japanese.connect('clicked', self._japanese_cb)
- toolbar_box.toolbar.insert(self.japanese, -1)
- self.japanese.show()
+ self.chinese = button_factory('Con', _('Suanpan'), self._chinese_cb,
+ toolbar_box.toolbar)
# Decimal (decimal abacus) 0:10
- self.decimal = ToolButton( "Doff" )
- self.decimal.set_tooltip(_('Decimal'))
- self.decimal.props.sensitive = True
- self.decimal.connect('clicked', self._decimal_cb)
- toolbar_box.toolbar.insert(self.decimal, -1)
- self.decimal.show()
+ self.decimal = button_factory("Doff", _('Decimal'),
+ self._decimal_cb, toolbar_box.toolbar)
+
+ separator = gtk.SeparatorToolItem()
+ separator.props.draw = False
+ separator.set_expand(False)
+ separator.show()
+ toolbar_box.toolbar.insert(separator, -1)
+
+ # The Abacus toolbar (all of the variations)
+ abacus_toolbar = gtk.Toolbar()
+
+ # Soroban (Japanese abacus) 1:4
+ self.japanese = button_factory("Joff", _('Soroban'),
+ self._japanese_cb, abacus_toolbar)
# Schety (Russian abacus) 0:10
- self.russian = ToolButton( "Roff" )
- self.russian.set_tooltip(_('Schety'))
- self.russian.props.sensitive = True
- self.russian.connect('clicked', self._russian_cb)
- toolbar_box.toolbar.insert(self.russian, -1)
- self.russian.show()
+ self.russian = button_factory("Roff", _('Schety'),
+ self._russian_cb, abacus_toolbar)
# Nepohualtzintzin (Mayan abacus) 3:4 (base 20)
- self.mayan = ToolButton( "Moff" )
- self.mayan.set_tooltip(_('Nepohualtzintzin'))
- self.mayan.props.sensitive = True
- self.mayan.connect('clicked', self._mayan_cb)
- toolbar_box.toolbar.insert(self.mayan, -1)
- self.mayan.show()
+ self.mayan = button_factory("Moff", _('Nepohualtzintzin'),
+ self._mayan_cb, abacus_toolbar)
# Binary (base 2)
- self.binary = ToolButton( "Boff" )
- self.binary.set_tooltip(_('Binary'))
- self.binary.props.sensitive = True
- self.binary.connect('clicked', self._binary_cb)
- toolbar_box.toolbar.insert(self.binary, -1)
- self.binary.show()
+ self.binary = button_factory("Boff", _('Binary'), self._binary_cb,
+ abacus_toolbar)
# Hexadecimal (base 16)
- self.hex = ToolButton( "Hoff" )
- self.hex.set_tooltip(_('Hexadecimal'))
- self.hex.props.sensitive = True
- self.hex.connect('clicked', self._hex_cb)
- toolbar_box.toolbar.insert(self.hex, -1)
- self.hex.show()
-
- # Fractions (1/2, 1/3, 1/4, 1/5, 1/6, 1/8, 1/9, 1/10, 1/12)
- self.fraction = ToolButton( "Foff" )
- self.fraction.set_tooltip(_('Fraction'))
- self.fraction.props.sensitive = True
- self.fraction.connect('clicked', self._fraction_cb)
- toolbar_box.toolbar.insert(self.fraction, -1)
- self.fraction.show()
+ self.hex = button_factory("Hoff", _('Hexadecimal'), self._hex_cb,
+ abacus_toolbar)
+
+ # Fractions (1/2, 1/3, 1/4,...)
+ self.fraction = button_factory("Foff", _('Fraction'),
+ self._fraction_cb, abacus_toolbar)
+
+ abacus_toolbar_button = ToolbarButton(
+ page=abacus_toolbar,
+ icon_name='list-add')
+ abacus_toolbar.show()
+ toolbar_box.toolbar.insert(abacus_toolbar_button, -1)
+ abacus_toolbar_button.show()
- separator = gtk.SeparatorToolItem()
- separator.props.draw = False
- separator.set_expand(False)
- separator.show()
- toolbar_box.toolbar.insert(separator, -1)
# The Customization submenu (roll your own)
custom_toolbar = gtk.Toolbar()
@@ -256,6 +245,9 @@ class AbacusActivity(activity.Activity):
self.set_toolbar_box(toolbar_box)
toolbar_box.show()
+ # no sharing at the moment...
+ # self.max_participants = 1
+
else:
# Use pre-0.86 toolbar design
self.toolbox = activity.ActivityToolbox(self)
@@ -269,6 +261,12 @@ class AbacusActivity(activity.Activity):
self.toolbox.show()
+ # no sharing at the moment...
+ # try:
+ # self.toolbox.share.hide()
+ # except:
+ # self.toolbox.props.visible = False
+
# Create a canvas
canvas = gtk.DrawingArea()
canvas.set_size_request(gtk.gdk.screen_width(),