Codebase list sugar-calculate-activity / 9c0bf0b
Added icons by Gary Martin Reinier Heeres 16 years ago
2 changed file(s) with 97 addition(s) and 38 deletion(s). Raw diff Collapse all Expand all
66 rational.py
77 svgimage.py
88 toolbars.py
9 icons/Algebra/xpowy.svg
10 icons/Algebra/xinv.svg
11 icons/Algebra/square.svg
12 icons/Algebra/ln.svg
13 icons/Algebra/exp.svg
14 icons/Algebra/sqrt.svg
15 icons/Algebra/fac.svg
16 icons/Boolean/and.svg
17 icons/Boolean/eq.svg
18 icons/Boolean/or.svg
19 icons/Boolean/neq.svg
20 icons/Constants/pi.svg
21 icons/Constants/e.svg
22 icons/Format/rad.svg
23 icons/Format/deg.svg
24 icons/Trinogometry/tan.svg
25 icons/Trinogometry/sin.svg
26 icons/Trinogometry/cos.svg
27 icons/Trinogometry/atan.svg
28 icons/Trinogometry/asin.svg
29 icons/Trinogometry/acos.svg
30 icons/Trinogometry/tanh.svg
31 icons/Trinogometry/sinh.svg
32 icons/Trinogometry/cosh.svg
933 po/Calculate.pot
1034 po/POTFILES.in
1135 po/am.po
1515
1616 from gettext import gettext as _
1717
18 def _icon_exists(name):
19 if name == '':
20 return False
21
22 theme = gtk.icon_theme_get_default()
23 info = theme.lookup_icon(name, 0, 0)
24 if info:
25 return True
26
27 return False
28
1829 class IconToolButton(ToolButton):
19 def __init__(self, icon_name, text, cb, help_cb=None):
30 def __init__(self, icon_name, text, cb, help_cb=None, alt_html=''):
2031 ToolButton.__init__(self)
2132
22 label = gtk.Label()
23 label.set_markup(icon_name)
24 label.show()
25 self.set_label_widget(label)
33 if _icon_exists(icon_name):
34 self.set_icon(icon_name)
35 else:
36 if alt_html == '':
37 alt_html = icon_name
38
39 label = gtk.Label()
40 label.set_markup(alt_html)
41 label.show()
42 self.set_label_widget(label)
2643
2744 self.create_palette(text, help_cb)
2845
3956
4057 self.set_palette(p)
4158
42 class IconToggleToolButton(gtk.ToggleToolButton):
43 def __init__(self, items, cb):
44 gtk.ToggleToolButton.__init__(self)
59 class IconToggleToolButton(ToggleToolButton):
60
61 def __init__(self, items, cb, desc):
62 ToggleToolButton.__init__(self)
4563 self.items = items
46 self.set_label(items[0][0])
64 if _icon_exists(items[0][0]):
65 self.set_named_icon(items[0][0])
66 else:
67 self.set_label(items[0][0])
4768 # self.set_tooltip(items[0][1])
69 self.set_tooltip(desc)
4870 self.selected = 0
4971 self.connect('clicked', self.toggle_button)
5072 self.callback = cb
5274 def toggle_button(self, w):
5375 self.selected = (self.selected + 1) % len(self.items)
5476 but = self.items[self.selected]
55 self.set_label(but[0])
77 if _icon_exists(but[0]):
78 self.set_named_icon(but[0])
79 else:
80 self.set_label(but[0])
5681 # self.set_tooltip(but[1])
5782 if self.callback is not None:
5883 self.callback(but[0])
82107 def __init__(self, calc):
83108 gtk.Toolbar.__init__(self)
84109
85 self.insert(IconToolButton('copy', _('Copy'),
86 lambda x: calc.text_copy()), -1)
87
88 self.insert(IconToolButton('paste', _('Paste'),
89 lambda x: calc.text_paste()), -1)
90
91 self.insert(IconToolButton('cut', _('Cut'),
92 lambda x: calc.text_cut()), -1)
110 self.insert(IconToolButton('edit-copy', _('Copy'),
111 lambda x: calc.text_copy(),
112 alt_html='Copy'), -1)
113
114 self.insert(IconToolButton('edit-paste', _('Paste'),
115 lambda x: calc.text_paste(),
116 alt_html='Paste'), -1)
117
118 self.insert(IconToolButton('edit-cut', _('Cut'),
119 lambda x: calc.text_cut(),
120 alt_html='Cut'), -1)
93121
94122 class AlgebraToolbar(gtk.Toolbar):
95123 def __init__(self, calc):
96124 gtk.Toolbar.__init__(self)
97125
98 self.insert(IconToolButton('x<sup>2</sup>', _('Square'),
126 self.insert(IconToolButton('square', _('Square'),
99127 lambda x: calc.button_pressed(calc.TYPE_OP_POST, '^2'),
100 lambda x: calc.button_pressed(calc.TYPE_TEXT, 'help(square)')), -1)
101
102 self.insert(IconToolButton('√x', _('Square root'),
128 lambda x: calc.button_pressed(calc.TYPE_TEXT, 'help(square)'),
129 alt_html='x<sup>2</sup>'), -1)
130
131 self.insert(IconToolButton('sqrt', _('Square root'),
103132 lambda x: calc.button_pressed(calc.TYPE_FUNCTION, 'sqrt'),
104 lambda x: calc.button_pressed(calc.TYPE_TEXT, 'help(sqrt)')), -1)
105
106 self.insert(IconToolButton('x<sup>-1</sup>', _('Inverse'),
133 lambda x: calc.button_pressed(calc.TYPE_TEXT, 'help(sqrt)'),
134 alt_html='√x'), -1)
135
136 self.insert(IconToolButton('xinv', _('Inverse'),
107137 lambda x: calc.button_pressed(calc.TYPE_OP_POST, '^-1'),
108 lambda x: calc.button_pressed(calc.TYPE_TEXT, 'help(sqrt)')), -1)
109
110 self.insert(LineSeparator(), -1)
111
112 self.insert(IconToolButton('e<sup>x</sup>', _('e to the power x'),
138 lambda x: calc.button_pressed(calc.TYPE_TEXT, 'help(inv)'),
139 alt_html='x<sup>-1</sup>'), -1)
140
141 self.insert(LineSeparator(), -1)
142
143 self.insert(IconToolButton('exp', _('e to the power x'),
113144 lambda x: calc.button_pressed(calc.TYPE_FUNCTION, 'exp'),
114 lambda x: calc.button_pressed(calc.TYPE_TEXT, 'help(exp)')), -1)
115
116 self.insert(IconToolButton('x<sup>y</sup>', _('x to the power y'),
145 lambda x: calc.button_pressed(calc.TYPE_TEXT, 'help(exp)'),
146 alt_html='e<sup>x</sup>'), -1)
147
148 self.insert(IconToolButton('xpowy', _('x to the power y'),
117149 lambda x: calc.button_pressed(calc.TYPE_FUNCTION, 'pow'),
118 lambda x: calc.button_pressed(calc.TYPE_TEXT, 'help(pow)')), -1)
150 lambda x: calc.button_pressed(calc.TYPE_TEXT, 'help(pow)'),
151 alt_html='x<sup>y</sup>'), -1)
119152
120153 self.insert(IconToolButton('ln', _('Natural logarithm'),
121154 lambda x: calc.button_pressed(calc.TYPE_FUNCTION, 'ln'),
122 lambda x: calc.button_pressed(calc.TYPE_TEXT, 'help(sqrt)')), -1)
155 lambda x: calc.button_pressed(calc.TYPE_TEXT, 'help(ln)')), -1)
123156
124157 self.insert(LineSeparator(), -1)
125158
199232 def __init__(self, calc):
200233 gtk.Toolbar.__init__(self)
201234
202 self.insert(IconToolButton('π', _('Pi'),
203 lambda x: calc.button_pressed(calc.TYPE_TEXT, 'pi')), -1)
235 self.insert(IconToolButton('pi', _('Pi'),
236 lambda x: calc.button_pressed(calc.TYPE_TEXT, 'pi'),
237 alt_html='π'), -1)
204238
205239 self.insert(IconToolButton('e', _('e'),
206240 lambda x: calc.button_pressed(calc.TYPE_TEXT, 'e')), -1)
213247 ['rad', _('Radians')]
214248 ]
215249 self.insert(IconToggleToolButton(el,
216 lambda x: self.update_angle_type(x, calc)), -1)
250 lambda x: self.update_angle_type(x, calc),
251 _('Degrees / radians')), -1)
217252
218253 def update_angle_type(self, text, calc):
219254 if text == 'deg':