Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/toolbar.py
diff options
context:
space:
mode:
Diffstat (limited to 'toolbar.py')
-rw-r--r--toolbar.py35
1 files changed, 31 insertions, 4 deletions
diff --git a/toolbar.py b/toolbar.py
index 0f4800f..392fee1 100644
--- a/toolbar.py
+++ b/toolbar.py
@@ -28,14 +28,19 @@ from sugar.graphics.toolbarbox import ToolbarBox
from sugar.activity.widgets import ActivityToolbarButton
from sugar.activity.widgets import StopButton
from sugar.graphics.colorbutton import ColorToolButton
-from sugar.graphics.radiotoolbutton import RadioToolButton
+from sugar.graphics.toggletoolbutton import ToggleToolButton
from sugar.graphics.palette import Palette
from sugar.graphics.toolbutton import ToolButton
from mypaint.brushlib import brushsettings
-SETTING_NAMES = ['radius_logarithmic', 'slow_tracking', 'opaque', 'hardness']
+BASIC_SETTING_NAMES = ['radius_logarithmic', 'slow_tracking', 'opaque',
+ 'hardness']
+
+OTHER_SETTING_NAMES = ['eraser']
+
+SETTING_NAMES = BASIC_SETTING_NAMES + OTHER_SETTING_NAMES
class BrushesPalette(Palette):
@@ -124,7 +129,7 @@ class SettingsPalette(Palette):
return control
row = 0
- for setting_name in SETTING_NAMES:
+ for setting_name in BASIC_SETTING_NAMES:
control = create_control(setting_name, row)
self.controls[setting_name] = control
row += 1
@@ -169,6 +174,18 @@ class MyPaintToolbar(ToolbarBox):
self.toolbar.insert(settings_button, -1)
settings_button.show()
+ # Eraser mode:
+
+ separator = gtk.SeparatorToolItem()
+ self.toolbar.insert(separator, -1)
+ separator.show()
+
+ self._eraser_button = ToggleToolButton('tool-eraser')
+ self._eraser_button.set_active(False)
+ self._eraser_button.connect('clicked', self._eraser_clicked_cb)
+ self.toolbar.insert(self._eraser_button, -1)
+ self._eraser_button.show()
+
# Blank space (separator) and Stop button at the end:
separator = gtk.SeparatorToolItem()
@@ -189,7 +206,10 @@ class MyPaintToolbar(ToolbarBox):
self._update_buttons()
def _update_setting(self, setting_name, value):
- self._settings_palette.controls[setting_name].set_value(value)
+ if setting_name == 'eraser':
+ self._eraser_button.props.active = {1.0: True, 0.0: False}[value]
+ else:
+ self._settings_palette.controls[setting_name].set_value(value)
def _update_color_button(self, color):
color = gtk.gdk.Color(color)
@@ -218,6 +238,13 @@ class MyPaintToolbar(ToolbarBox):
if not self._skip_brushbuttons_update:
self._update_brushes_buttons(brush_name)
+ def _eraser_clicked_cb(self, widget):
+ setting_name = 'eraser'
+ self._skip_setting_update[setting_name] = True
+ value = {True: 1.0, False: 0.0}[widget.props.active]
+ self._drawing.set_setting(setting_name, value)
+ self._skip_setting_update[setting_name] = False
+
def _color_cb(self, widget):
self._skip_color_update = True
color = widget.get_color()