From 770303d919ad089ee442c02fb856fca43c5aa773 Mon Sep 17 00:00:00 2001 From: Manuel QuiƱones Date: Wed, 20 Apr 2011 20:57:01 +0000 Subject: Stamp border shows while stamping --- diff --git a/Area.py b/Area.py index 9081fa7..7f49a63 100644 --- a/Area.py +++ b/Area.py @@ -290,11 +290,16 @@ class Area(gtk.DrawingArea): if not self.drawing: size = self.tool['line size'] - # TODO draw stamp border in widget.window - # if self.tool['name'] == 'stamp': - # pass - - if self.tool['line shape'] == 'circle': + # draw stamp border in widget.window + if self.tool['name'] == 'stamp': + w = self.pixbuf_stamp.get_width() + h = self.pixbuf_stamp.get_height() + wr, hr = size, int(size * h * 1.0 / w) + widget.window.draw_rectangle(self.gc_brush, False, + self.x_cursor - wr / 2, self.y_cursor - hr / 2, + wr, hr) + + elif self.tool['line shape'] == 'circle': widget.window.draw_arc(self.gc_brush, False, self.x_cursor - size / 2, self.y_cursor - size / 2, size, size, 0, 360 * 64) @@ -510,7 +515,7 @@ class Area(gtk.DrawingArea): self.configure_line(self.tool['line size']) self.d.heart(widget, coords, True, self.tool['fill']) else: - if self.tool['name'] in ['brush', 'eraser', 'rainbow', 'pencil']: + if self.tool['name'] in ['brush', 'eraser', 'rainbow', 'stamp', 'pencil']: widget.queue_draw() if self.tool['name'] == 'marquee-rectangular' and self.selmove: size = self.pixmap_sel.get_size() @@ -630,7 +635,7 @@ class Area(gtk.DrawingArea): self.d.heart(widget, coords, False, self.tool['fill']) self.enableUndo(widget) - if self.tool['name'] in ['brush', 'eraser', 'stamp', 'rainbow', 'pencil']: + if self.tool['name'] in ['brush', 'eraser', 'rainbow', 'pencil', 'stamp']: self.last = [] widget.queue_draw() self.enableUndo(widget) @@ -638,14 +643,14 @@ class Area(gtk.DrawingArea): self.desenha = False def mouseleave(self, widget, event): - if self.tool['name'] in ['pencil', 'eraser', 'brush', 'rainbow']: + if self.tool['name'] in ['pencil', 'eraser', 'brush', 'stamp', 'rainbow']: self.drawing = True size = self.tool['line size'] widget.queue_draw_area(self.x_cursor - size, self.y_cursor - size, size * 2, size * 2) def mouseenter(self, widget, event): - if self.tool['name'] in ['pencil', 'eraser', 'brush', 'rainbow']: + if self.tool['name'] in ['pencil', 'eraser', 'brush', 'stamp', 'rainbow']: self.drawing = False size = self.tool['line size'] widget.queue_draw_area(self.x_cursor - size, self.y_cursor - size, @@ -1383,7 +1388,7 @@ class Area(gtk.DrawingArea): widget.queue_draw() def change_line_size(self, delta): - if self.tool['name'] in ['pencil', 'eraser', 'brush', 'rainbow']: + if self.tool['name'] in ['pencil', 'eraser', 'brush', 'rainbow', 'stamp']: size = self.tool['line size'] + delta if size < 1: size = 1 -- cgit v0.9.1