Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGary Martin <gary@garycmartin.com>2009-09-11 17:40:18 (GMT)
committer Gary Martin <gary@garycmartin.com>2009-09-11 17:40:18 (GMT)
commitf2411686f21064671cb8c7bc9c9860c7f342fb59 (patch)
treec53314c7804cbc8980663163ff3623fe164b3369
parent7178ef82cad9528abb56d9dd4b43c0c9fcda4295 (diff)
First pass at new toolbar design.
-rw-r--r--icons/toolbar-algebra.svg8
-rw-r--r--icons/toolbar-boolean.svg8
-rw-r--r--icons/toolbar-trigonometry.svg7
-rw-r--r--layout.py52
-rw-r--r--toolbars.py33
5 files changed, 97 insertions, 11 deletions
diff --git a/icons/toolbar-algebra.svg b/icons/toolbar-algebra.svg
new file mode 100644
index 0000000..d667ee4
--- /dev/null
+++ b/icons/toolbar-algebra.svg
@@ -0,0 +1,8 @@
+<?xml version="1.0" ?><!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd' [
+ <!ENTITY fill_color "#FFFFFF">
+]><svg enable-background="new 0 0 55 55" height="55px" version="1.1" viewBox="0 0 55 55" width="55px" x="0px" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" y="0px">
+<g display="block" id="toolbar-algebra">
+ <text x="15" y="35" font-size="38" font-family="Bitstream Vera Sans" font-weight="bold" fill="&fill_color;" stroke="none">x</text>
+ <text x="1" y="35" font-size="34" font-family="Bitstream Vera Sans" fill="&fill_color;" stroke="none">{</text>
+ <text x="32" y="35" font-size="34" font-family="Bitstream Vera Sans" fill="&fill_color;" stroke="none">}</text>
+</g></svg> \ No newline at end of file
diff --git a/icons/toolbar-boolean.svg b/icons/toolbar-boolean.svg
new file mode 100644
index 0000000..e0fbb6c
--- /dev/null
+++ b/icons/toolbar-boolean.svg
@@ -0,0 +1,8 @@
+<?xml version="1.0" ?><!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd' [
+ <!ENTITY fill_color "#FFFFFF">
+]><svg enable-background="new 0 0 55 55" height="55px" version="1.1" viewBox="0 0 55 55" width="55px" x="0px" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" y="0px">
+<g display="block" id="toolbar-boolean">
+ <path d="M10,25 c0,-6 6,-12 12,-12 c6,0 12,6 12,12 c0,6 -6,12 -12,12 c-6,0 -12,-6 -12,-12
+ M21,25 c0,-6 6,-12 12,-12 c6,0 12,6 12,12 c0,6 -6,12 -12,12 c-6,0 -12,-6 -12,-12"
+ stroke="&fill_color;" stroke-width="3" fill="none"/>
+</g></svg> \ No newline at end of file
diff --git a/icons/toolbar-trigonometry.svg b/icons/toolbar-trigonometry.svg
new file mode 100644
index 0000000..cb8ba60
--- /dev/null
+++ b/icons/toolbar-trigonometry.svg
@@ -0,0 +1,7 @@
+<?xml version="1.0" ?><!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd' [
+ <!ENTITY fill_color "#FFFFFF">
+]><svg enable-background="new 0 0 55 55" height="55px" version="1.1" viewBox="0 0 55 55" width="55px" x="0px" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" y="0px">
+<g display="block" id="toolbar-trigonometry">
+ <path d="M12,38 l31,0 l-31,-26z" stroke="&fill_color;" stroke-width="3.5" fill="none"/>
+ <path d="M12,30 l8,0 l0,8" stroke="&fill_color;" stroke-width="1.5" fill="none"/>
+</g></svg> \ No newline at end of file
diff --git a/layout.py b/layout.py
index b29ceaf..5c76c45 100644
--- a/layout.py
+++ b/layout.py
@@ -9,6 +9,10 @@ from sugar.activity import activity
from sugar.graphics.roundbox import CanvasRoundBox
from toolbars import *
+from sugar.activity.widgets import StopButton
+from sugar.activity.widgets import ActivityToolbarButton
+from sugar.graphics.toolbarbox import ToolbarButton, ToolbarBox
+
class CalcLayout:
FONT_SMALL_POINTS = 10
@@ -74,6 +78,7 @@ class CalcLayout:
"""Setup most of the dialog."""
# Toolbar
+ """
toolbox = activity.ActivityToolbox(self._parent)
self._parent.set_toolbox(toolbox)
toolbox.add_toolbar(_('Edit'), EditToolbar(self._parent))
@@ -82,6 +87,53 @@ class CalcLayout:
toolbox.add_toolbar(_('Boolean'), BooleanToolbar(self._parent))
toolbox.add_toolbar(_('Miscellaneous'), MiscToolbar(self._parent))
toolbox.show_all()
+ """
+
+ toolbar_box = ToolbarBox()
+
+ activity_button = ActivityToolbarButton(self._parent)
+ toolbar_box.toolbar.insert(activity_button, 0)
+
+ edit_toolbar = ToolbarButton()
+ edit_toolbar.props.page = EditToolbar(self._parent)
+ edit_toolbar.props.icon_name = 'toolbar-edit'
+ edit_toolbar.props.label = _('Edit')
+ toolbar_box.toolbar.insert(edit_toolbar, -1)
+
+ algebra_toolbar = ToolbarButton()
+ algebra_toolbar.props.page = AlgebraToolbar(self._parent)
+ algebra_toolbar.props.icon_name = 'toolbar-algebra'
+ algebra_toolbar.props.label = _('Algebra')
+ toolbar_box.toolbar.insert(algebra_toolbar, -1)
+
+ trigonometry_toolbar = ToolbarButton()
+ trigonometry_toolbar.props.page = TrigonometryToolbar(self._parent)
+ trigonometry_toolbar.props.icon_name = 'toolbar-trigonometry'
+ trigonometry_toolbar.props.label = _('Trigonometry')
+ toolbar_box.toolbar.insert(trigonometry_toolbar, -1)
+
+ boolean_toolbar = ToolbarButton()
+ boolean_toolbar.props.page = BooleanToolbar(self._parent)
+ boolean_toolbar.props.icon_name = 'toolbar-boolean'
+ boolean_toolbar.props.label = _('Boolean')
+ toolbar_box.toolbar.insert(boolean_toolbar, -1)
+
+ separator = gtk.SeparatorToolItem()
+ toolbar_box.toolbar.insert(separator, -1)
+
+ MiscToolbar(self._parent, toolbar=toolbar_box.toolbar)
+
+ separator = gtk.SeparatorToolItem()
+ separator.props.draw = False
+ separator.set_expand(True)
+ separator.show()
+ toolbar_box.toolbar.insert(separator, -1)
+
+ stop = StopButton(self._parent)
+ toolbar_box.toolbar.insert(stop, -1)
+
+ toolbar_box.show_all()
+ self._parent.set_toolbar_box(toolbar_box)
# Some layout constants
self.input_font = pango.FontDescription(str='sans bold 12')
diff --git a/toolbars.py b/toolbars.py
index 168d1f0..a8048a9 100644
--- a/toolbars.py
+++ b/toolbars.py
@@ -128,6 +128,8 @@ class EditToolbar(gtk.Toolbar):
self.insert(IconToolButton('edit-cut', _('Cut'),
lambda x: calc.text_cut(),
alt_html='Cut'), -1)
+
+ self.show_all()
class AlgebraToolbar(gtk.Toolbar):
def __init__(self, calc):
@@ -169,6 +171,8 @@ class AlgebraToolbar(gtk.Toolbar):
self.insert(IconToolButton('algebra-fac', _('Factorial'),
lambda x: calc.button_pressed(calc.TYPE_FUNCTION, 'fac'),
lambda x: calc.button_pressed(calc.TYPE_TEXT, 'help(fac)')), -1)
+
+ self.show_all()
class TrigonometryToolbar(gtk.Toolbar):
def __init__(self, calc):
@@ -213,6 +217,8 @@ class TrigonometryToolbar(gtk.Toolbar):
self.insert(IconToolButton('trigonometry-tanh', _('Hyperbolic tangent'),
lambda x: calc.button_pressed(calc.TYPE_FUNCTION, 'tanh'),
lambda x: calc.button_pressed(calc.TYPE_TEXT, 'help(tanh)')), -1)
+
+ self.show_all()
class BooleanToolbar(gtk.Toolbar):
def __init__(self, calc):
@@ -237,41 +243,46 @@ class BooleanToolbar(gtk.Toolbar):
self.insert(IconToolButton('boolean-neq', _('Not equals'),
lambda x: calc.button_pressed(calc.TYPE_OP_POST, '!=')), -1)
+
+ self.show_all()
class MiscToolbar(gtk.Toolbar):
- def __init__(self, calc):
+ def __init__(self, calc, toolbar=None):
gtk.Toolbar.__init__(self)
- self.insert(IconToolButton('constants-pi', _('Pi'),
+ if toolbar is None:
+ target_toolbar = self
+ else:
+ target_toolbar = toolbar
+
+ target_toolbar.insert(IconToolButton('constants-pi', _('Pi'),
lambda x: calc.button_pressed(calc.TYPE_TEXT, 'pi'),
alt_html='π'), -1)
- self.insert(IconToolButton('constants-e', _('e'),
+ target_toolbar.insert(IconToolButton('constants-e', _('e'),
lambda x: calc.button_pressed(calc.TYPE_TEXT, 'e')), -1)
- self.insert(LineSeparator(), -1)
+ target_toolbar.insert(LineSeparator(), -1)
- self.insert(IconToolButton('plot', _('Plot'),
+ target_toolbar.insert(IconToolButton('plot', _('Plot'),
lambda x: calc.button_pressed(calc.TYPE_FUNCTION, 'plot'),
lambda x: calc.button_pressed(calc.TYPE_TEXT, 'help(plot)')), -1)
- self.insert(LineSeparator(), -1)
+ target_toolbar.insert(LineSeparator(), -1)
el = [
{'icon': 'format-deg', 'desc': _('Degrees'), 'html': 'deg'},
{'icon': 'format-rad', 'desc': _('Radians'), 'html': 'rad'},
]
- self.insert(IconToggleToolButton(el,
+ target_toolbar.insert(IconToggleToolButton(el,
lambda x: self.update_angle_type(x, calc),
_('Degrees / radians')), -1)
- self.insert(LineSeparator(), -1)
-
el = [
{'icon': 'format-sci', 'html': 'sci'},
{'icon': 'format-exp', 'html': 'exp'},
]
- self.insert(IconToggleToolButton(el,
+ target_toolbar.insert(IconToggleToolButton(el,
lambda x: self.update_format_type(x, calc),
_('Exponent / Scientific notation')), -1)
@@ -281,7 +292,7 @@ class MiscToolbar(gtk.Toolbar):
{'icon': 'digits-15', 'html': '15'},
{'icon': 'digits-6', 'html': '6'},
]
- self.insert(IconToggleToolButton(el,
+ target_toolbar.insert(IconToggleToolButton(el,
lambda x: self.update_digits(x, calc),
_('Number of shown digits')), -1)