diff options
author | Miguel Alvarez <miguel@laptop.org> | 2007-07-13 22:08:13 (GMT) |
---|---|---|
committer | Miguel Alvarez <miguel@laptop.org> | 2007-07-13 22:08:13 (GMT) |
commit | 4fafcca69070d80c19f8774c9cb2159b9b7dc228 (patch) | |
tree | 5a0d4709ac1455727c016fbad77ecee2c4e6e3b0 /toolbars.py | |
parent | 2d1cdb0a0003b51a00589261fab8f707816bf1ed (diff) |
Initial import
Diffstat (limited to 'toolbars.py')
-rw-r--r-- | toolbars.py | 38 |
1 files changed, 24 insertions, 14 deletions
diff --git a/toolbars.py b/toolbars.py index cb21f8b..f0cc340 100644 --- a/toolbars.py +++ b/toolbars.py @@ -1,7 +1,9 @@ +# toolbars.py, see CalcActivity.py for info + import pygtk pygtk.require('2.0') import gtk - +from mathlib import MathLib from sugar.graphics.toolbutton import ToolButton from sugar.graphics.toggletoolbutton import ToggleToolButton @@ -20,12 +22,19 @@ class IconToolButton(ToolButton): self.connect('clicked', cb) class TextToggleToolButton(gtk.ToggleToolButton): - def __init__(self, text, cb): + def __init__(self, items, cb): gtk.ToggleToolButton.__init__(self) - self.set_label(text) - self.selected = False + self.items = items + self.set_label(items[0]) + self.selected = 0 self.connect('clicked', cb) + @staticmethod + def toggle_button(button): + _logger.debug("Toggle button with button:%s", button) + button.selected = (button.selected + 1) % len(button.items) + button.set_label(button.items[button.selected]) + class IconToggleToolButton(ToggleToolButton): def __init__(self, text, cb): ToggleToolButton.__init__(self, text) @@ -53,7 +62,7 @@ class AlgebraToolbar(gtk.Toolbar): self.insert(LineSeparator(), -1) self.insert(TextToolButton('exp', - lambda x: calc.button_pressed(calc.TYPE_OP_POST, 'exp')), -1) + lambda x: calc.button_pressed(calc.TYPE_FUNCTION, 'exp')), -1) self.insert(TextToolButton('ln', lambda x: calc.button_pressed(calc.TYPE_FUNCTION, 'ln')), -1) @@ -121,14 +130,15 @@ class ConstantsToolbar(gtk.Toolbar): class FormatToolbar(gtk.Toolbar): def __init__(self, calc): gtk.Toolbar.__init__(self) - self.insert(TextToggleToolButton('rad/deg', - lambda b: FormatToolbar.toggle_button(b)), -1) + el = ['deg', 'rad'] + self.insert(TextToggleToolButton(el, lambda b: FormatToolbar.update_angle_type(b,calc)), + -1) @staticmethod - def toggle_button(button): - _logger.debug("Toggle button with button:%s",button) - button.selected = not button.selected - if button.selected: - button.set_label('rad/DEG') - else: - button.set_label('RAD/deg') + def update_angle_type(b, calc): + TextToggleToolButton.toggle_button(b) + if b.items[b.selected] == 'deg': + calc.ml.set_angle_type(MathLib.ANGLE_DEG) + elif b.items[b.selected] == 'rad': + calc.ml.set_angle_type(MathLib.ANGLE_RAD) + _logger.debug('Angle type: %s', calc.ml.angle_scaling) |