Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/toolbox.py
diff options
context:
space:
mode:
authorGonzalo Odiard <godiard@gmail.com>2011-05-03 18:29:08 (GMT)
committer Gonzalo Odiard <godiard@gmail.com>2011-05-03 18:29:08 (GMT)
commit44ce7d95c33fc76078d88fc43e9c4453ca6522e9 (patch)
tree0974e2d8fe36e5c992e94f0e4fad4621fdf1e9a3 /toolbox.py
parent149d8ceb9bfd288c2ccdcff5f787305dc7332275 (diff)
Implementation of Stamp functionality
The user can select a part of the image to use it like a stamp. When the stamp is selected, can change the size, and use it to draw. Signed-of: manuel quiƱones <manuel.por.aca@gmail.com> Reviewed-by: Gonzalo Odiard <gonzalo@laptop.org>
Diffstat (limited to 'toolbox.py')
-rw-r--r--toolbox.py22
1 files changed, 22 insertions, 0 deletions
diff --git a/toolbox.py b/toolbox.py
index dafb4e7..00d98b1 100644
--- a/toolbox.py
+++ b/toolbox.py
@@ -137,6 +137,7 @@ class DrawToolbarBox(ToolbarBox):
brush_button = tools_builder._stroke_color.color_button
brush_button.set_brush_shape(self._activity.area.tool['line shape'])
brush_button.set_brush_size(self._activity.area.tool['line size'])
+ brush_button.set_stamp_size(self._activity.area.tool['stamp size'])
if self._activity.area.tool['stroke color'] is not None:
brush_button.set_color(self._activity.area.tool['stroke color'])
@@ -228,6 +229,7 @@ class ToolsToolbarBuilder():
_TOOL_BRUSH_NAME = 'brush'
_TOOL_ERASER_NAME = 'eraser'
_TOOL_BUCKET_NAME = 'bucket'
+ _TOOL_STAMP_NAME = 'stamp'
_TOOL_MARQUEE_RECT_NAME = 'marquee-rectangular'
##The Constructor
@@ -267,6 +269,14 @@ class ToolsToolbarBuilder():
activity.tool_group, _('Bucket'))
toolbar.insert(self._tool_bucket, -1)
+ self._tool_stamp = DrawToolButton('tool-stamp',
+ activity.tool_group, _('Stamp'))
+ toolbar.insert(self._tool_stamp, -1)
+
+ is_selected = self._activity.area.is_selected()
+ self._tool_stamp.set_sensitive(is_selected)
+ self._activity.area.connect('select', self._on_signal_select_cb)
+
self._tool_marquee_rectangular = \
DrawToolButton('tool-marquee-rectangular',
activity.tool_group, _('Select Area'))
@@ -286,6 +296,8 @@ class ToolsToolbarBuilder():
self._TOOL_ERASER_NAME)
self._tool_bucket.connect('clicked', self.set_tool,
self._TOOL_BUCKET_NAME)
+ self._tool_stamp.connect('clicked', self.set_tool,
+ self._TOOL_STAMP_NAME)
self._tool_marquee_rectangular.connect('clicked', self.set_tool,
self._TOOL_MARQUEE_RECT_NAME)
@@ -298,6 +310,12 @@ class ToolsToolbarBuilder():
necessary in case this method is used in a connect()
@param tool_name --The name of the selected tool
"""
+ if tool_name == 'stamp':
+ resized_stamp = self._activity.area.setup_stamp()
+ self._stroke_color.color_button.set_resized_stamp(resized_stamp)
+ else:
+ self._stroke_color.color_button.stop_stamping()
+ self._stroke_color.update_stamping()
self.properties['name'] = tool_name
self._activity.area.set_tool(self.properties)
@@ -308,6 +326,10 @@ class ToolsToolbarBuilder():
self._activity.area.set_stroke_color(new_color)
self.properties['stroke color'] = new_color
+ def _on_signal_select_cb(self, widget, data=None):
+ is_selected = self._activity.area.is_selected()
+ self._tool_stamp.set_sensitive(is_selected)
+
class ButtonFillColor(ColorToolButton):
"""Class to manage the Fill Color of a Button"""