diff options
author | Gary Martin <gary@garycmartin.com> | 2009-09-11 17:40:18 (GMT) |
---|---|---|
committer | Gary Martin <gary@garycmartin.com> | 2009-09-11 17:40:18 (GMT) |
commit | f2411686f21064671cb8c7bc9c9860c7f342fb59 (patch) | |
tree | c53314c7804cbc8980663163ff3623fe164b3369 | |
parent | 7178ef82cad9528abb56d9dd4b43c0c9fcda4295 (diff) |
First pass at new toolbar design.
-rw-r--r-- | icons/toolbar-algebra.svg | 8 | ||||
-rw-r--r-- | icons/toolbar-boolean.svg | 8 | ||||
-rw-r--r-- | icons/toolbar-trigonometry.svg | 7 | ||||
-rw-r--r-- | layout.py | 52 | ||||
-rw-r--r-- | toolbars.py | 33 |
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 @@ -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) |