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.bender@gmail.com>2011-10-11 14:20:25 (GMT)
committer Walter Bender <walter.bender@gmail.com>2011-10-11 14:20:25 (GMT)
commitfb75fd1b14f73c4c22a63ccad0b8de5f78e95876 (patch)
treefcdb6b3bbdf6fc6f368072617990bdeb21a68d02 /AbacusActivity.py
parentabc1e42a3daf2b7756a03a3b48fafe82b5df086e (diff)
added button for custom abacus; added colors for custom abacus
Diffstat (limited to 'AbacusActivity.py')
-rw-r--r--AbacusActivity.py35
1 files changed, 22 insertions, 13 deletions
diff --git a/AbacusActivity.py b/AbacusActivity.py
index d00aac1..4c58412 100644
--- a/AbacusActivity.py
+++ b/AbacusActivity.py
@@ -265,6 +265,13 @@ class AbacusActivity(activity.Activity):
cb_arg='cuisenaire',
tooltip=_('Rods'), group=self.decimal)
+ _separator_factory(abacus_toolbar)
+
+ self.custom = _radio_factory('custom', abacus_toolbar,
+ self._radio_cb,
+ cb_arg='custom',
+ tooltip=_('Custom'), group=self.decimal)
+
# TRANS: Number of rods on the abacus
self._rods_label = _label_factory(_('Rods:') + ' ', custom_toolbar)
self._rods_spin = _spin_factory(15, 1, 20, self._rods_spin_cb,
@@ -289,9 +296,9 @@ class AbacusActivity(activity.Activity):
_separator_factory(custom_toolbar, False, False)
- self.custom = _button_factory('new-abacus', custom_toolbar,
- self._custom_cb,
- tooltip=_('Custom'))
+ self.custom_maker = _button_factory('new-abacus', custom_toolbar,
+ self._custom_cb,
+ tooltip=_('Custom'))
copy = _button_factory('edit-copy', edit_toolbar, self._copy_cb,
tooltip=_('Copy'), accelerator='<Ctrl>c')
@@ -359,7 +366,8 @@ class AbacusActivity(activity.Activity):
self._select_abacus('decimal')
self.decimal.set_active(True)
elif self.metadata['abacus'] == 'custom':
- self._custom_cb()
+ self._select_abacus('custom')
+ self.custom.set_active(True)
if 'value' in self.metadata:
_logger.debug('restoring value %s', self.metadata['value'])
self.abacus.mode.set_value(self.metadata['value'])
@@ -376,6 +384,8 @@ class AbacusActivity(activity.Activity):
''' Display the selected abacus; hide the others '''
if not hasattr(self, 'abacus'):
return
+ if abacus == 'custom' and self.abacus.custom is None:
+ self._custom_cb()
self.abacus.select_abacus(abacus)
def _rods_spin_cb(self, button=None):
@@ -399,15 +409,14 @@ class AbacusActivity(activity.Activity):
if self.abacus.custom is not None:
self.abacus.custom.hide()
self.abacus.custom = Custom(self.abacus,
- self._rods_spin.get_value_as_int(),
- self._top_spin.get_value_as_int(),
- self._bottom_spin.get_value_as_int(),
- self._value_spin.get_value_as_int(),
- self._base_spin.get_value_as_int())
- self._select_abacus(self.abacus.custom)
- self.abacus.mode.reset_abacus()
- self.abacus.mode.set_value_from_number(value)
- self.abacus.mode.label(self.abacus.generate_label())
+ self._rods_spin.get_value_as_int(),
+ self._top_spin.get_value_as_int(),
+ self._bottom_spin.get_value_as_int(),
+ self._value_spin.get_value_as_int(),
+ self._base_spin.get_value_as_int(),
+ self.bead_colors)
+
+ self.abacus.select_abacus('custom')
def _copy_cb(self, arg=None):
''' Copy a number to the clipboard from the active abacus. '''