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-28 19:21:47 (GMT)
committer Walter Bender <walter@sugarlabs.org>2010-06-28 19:21:47 (GMT)
commitb3b9bb81902c83cfd1d7c60ed49a7ed996e18c22 (patch)
treea4248efda61188b421feea4aa7db004f07e9d75c /AbacusActivity.py
parent2af2168614d90a75ca4364368148a1816848106c (diff)
added Cuisenaire-like rods
Diffstat (limited to 'AbacusActivity.py')
-rw-r--r--AbacusActivity.py16
1 files changed, 15 insertions, 1 deletions
diff --git a/AbacusActivity.py b/AbacusActivity.py
index 81bdc17..65bb948 100644
--- a/AbacusActivity.py
+++ b/AbacusActivity.py
@@ -40,7 +40,7 @@ _logger = logging.getLogger("abacus-activity")
from abacus_window import Abacus, Custom, Suanpan, Soroban, Schety,\
Nepohualtzintzin, Binary, Hex, Decimal, Fractions,\
- Caacupe
+ Caacupe, Cuisenaire
def _button_factory(icon_name, tooltip, callback, toolbar):
"""Factory for making toolbar buttons"""
@@ -171,6 +171,8 @@ class AbacusActivity(activity.Activity):
self._fraction_cb, _abacus_toolbar)
self.caacupe = _button_factory("caacupe-off", _('Caacupé'),
self._caacupe_cb, _abacus_toolbar)
+ self.cuisenaire = _button_factory("cuisenaire-off", _('Rods'),
+ self._cuisenaire_cb, _abacus_toolbar)
self._rods_label = _label_factory(_("Rods:")+" ", _custom_toolbar)
self._rods_spin = _spin_factory(15, 1, 20, self._rods_spin_cb,
@@ -231,6 +233,8 @@ class AbacusActivity(activity.Activity):
self._fraction_cb(None)
elif self.metadata['abacus'] == 'caacupe':
self._caacupe_cb(None)
+ elif self.metadata['abacus'] == 'cuisenaire':
+ self._cuisenaire_cb(None)
elif self.metadata['abacus'] == 'decimal':
self._decimal_cb(None)
elif self.metadata['abacus'] == 'custom':
@@ -262,6 +266,7 @@ class AbacusActivity(activity.Activity):
self.hex.set_icon("hex-off")
self.fraction.set_icon("fraction-off")
self.caacupe.set_icon("caacupe-off")
+ self.caacupe.set_icon("cuisenaire-off")
self.decimal.set_icon("decimal-off")
if self.abacus.chinese is not None:
self.abacus.chinese.hide()
@@ -281,6 +286,8 @@ class AbacusActivity(activity.Activity):
self.abacus.decimal.hide()
if self.abacus.caacupe is not None:
self.abacus.caacupe.hide()
+ if self.abacus.cuisenaire is not None:
+ self.abacus.cuisenaire.hide()
if self.abacus.custom is not None:
self.abacus.custom.hide()
@@ -383,6 +390,13 @@ class AbacusActivity(activity.Activity):
self._select_abacus(self.caacupe, self.abacus.caacupe.name+"-on",
self.abacus.caacupe)
+ def _cuisenaire_cb(self, button):
+ """ Display Cuisenaire-like rods; hide the others """
+ if self.abacus.cuisenaire is None:
+ self.abacus.cuisenaire = Cuisenaire(self.abacus)
+ self._select_abacus(self.cuisenaire, self.abacus.cuisenaire.name+"-on",
+ self.abacus.cuisenaire)
+
def write_file(self, file_path):
""" Write the bead positions to the Journal """
_logger.debug("Saving current abacus to Journal: %s " % (