Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/colors.py
diff options
context:
space:
mode:
authorWade Brainerd <wadetb@gmail.com>2008-11-30 17:17:14 (GMT)
committer Wade Brainerd <wadetb@gmail.com>2008-11-30 17:17:14 (GMT)
commite21f28bf444dca0fc097802e97bd7b9fa36f9f78 (patch)
treee03a43a9ba3cc4868a3922c2aeba95e713de8ffb /colors.py
parent879eaafaba8b6d1ae2d618022079ce86ff8bf526 (diff)
Keyboard as a brush palette. Save brushes using Ctrl+AnyKey, restore using AnyKey.
Diffstat (limited to 'colors.py')
-rwxr-xr-xcolors.py18
1 files changed, 13 insertions, 5 deletions
diff --git a/colors.py b/colors.py
index 8c6e52f..c7eb3b4 100755
--- a/colors.py
+++ b/colors.py
@@ -408,8 +408,8 @@ class Colors(activity.Activity, ExportedGObject):
# Now that we have a canvas, connect the rest of the events.
self.easelarea.connect('expose-event', self.on_canvasarea_expose)
- self.easelarea.connect('key-press-event', self.on_key_event)
- self.easelarea.connect('key-release-event', self.on_key_event)
+ self.connect('key-press-event', self.on_key_event)
+ self.connect('key-release-event', self.on_key_event)
self.easelarea.connect('button-press-event', self.on_mouse_button)
self.easelarea.connect('button-release-event', self.on_mouse_button)
self.easelarea.connect('motion-notify-event', self.on_mouse_motion)
@@ -882,12 +882,16 @@ class Colors(activity.Activity, ExportedGObject):
else:
self.pending_release = self.pending_release | button
- return False
else:
+ # Not a known key. Try to store / retrieve a brush.
if self.cur_buttons & Colors.BUTTON_CONTROL:
- self.brush_map[event.keyval] = self.brush
+ self.brush_map[event.keyval] = Brush(self.easel.brush)
+
+ else:
+ if self.brush_map.has_key(event.keyval):
+ self.set_brush(self.brush_map[event.keyval])
- return True
+ return True
def on_mouse_button(self, widget, event):
if self.overlay_active:
@@ -1094,6 +1098,10 @@ class Colors(activity.Activity, ExportedGObject):
def set_brush (self, brush):
#log.debug("set_brush color=%d,%d,%d type=%d size=%d opacity=%d", brush.color.r, brush.color.g, brush.color.b, brush.type, brush.size, brush.opacity)
+ # End any current stroke.
+ if self.easel.stroke:
+ self.end_draw()
+
self.easel.play_command(DrawCommand.create_color_change(brush.color), True)
self.easel.play_command(DrawCommand.create_size_change(brush.control, brush.type, brush.size/float(self.easel.width), brush.opacity), True)
self.brushpreviewarea.queue_draw()