Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/toolbars.py
diff options
context:
space:
mode:
authorMiguel Alvarez <miguel@laptop.org>2007-07-13 22:08:13 (GMT)
committer Miguel Alvarez <miguel@laptop.org>2007-07-13 22:08:13 (GMT)
commit4fafcca69070d80c19f8774c9cb2159b9b7dc228 (patch)
tree5a0d4709ac1455727c016fbad77ecee2c4e6e3b0 /toolbars.py
parent2d1cdb0a0003b51a00589261fab8f707816bf1ed (diff)
Initial import
Diffstat (limited to 'toolbars.py')
-rw-r--r--toolbars.py38
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)