From e21f28bf444dca0fc097802e97bd7b9fa36f9f78 Mon Sep 17 00:00:00 2001 From: Wade Brainerd Date: Sun, 30 Nov 2008 17:17:14 +0000 Subject: Keyboard as a brush palette. Save brushes using Ctrl+AnyKey, restore using AnyKey. --- (limited to 'colors.py') 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() -- cgit v0.9.1