From e5be5f7cebe0117cff74f908d486c656c37cde87 Mon Sep 17 00:00:00 2001 From: Nathalia Sautchuk Patricio Date: Fri, 17 Aug 2007 19:38:51 +0000 Subject: Adding heart --- diff --git a/Area.py b/Area.py index fb3bf22..d78eabb 100644 --- a/Area.py +++ b/Area.py @@ -336,6 +336,11 @@ class Area(gtk.DrawingArea): self.configure_line(self.line_size) n = 7 self.d.polygon_regular(widget,coords,n,True,True) + #Heart + elif self.tool == 'heart': + self.configure_line(self.line_size) + self.d.heart(widget,coords,True,True) + def mouseup(self,widget,event): """Make the Area object (GtkDrawingArea) recognize that the mouse was released. @@ -425,6 +430,10 @@ class Area(gtk.DrawingArea): n = 7 self.d.polygon_regular(widget,coords,n,False,True) self.enableUndo(widget) + #Heart + elif self.tool == 'heart': + self.d.heart(widget,coords,False,True) + self.enableUndo(widget) if self.tool == 'brush' or self.tool == 'eraser': widget.queue_draw() diff --git a/Desenho.py b/Desenho.py index 3c3c767..e8691d2 100644 --- a/Desenho.py +++ b/Desenho.py @@ -375,7 +375,53 @@ class Desenho: pixmap.draw_polygon(self.d.gc_line,False,tp) widget.queue_draw() - + + def heart(self, widget, coords, temp, fill): + """Draw polygon with n sides. + + Keyword arguments: + self -- Desenho.Desenho instance + widget -- Area object (GtkDrawingArea) + coords -- Two value tuple + n -- number of sides + temp -- switch between pixmap and pixmap_temp + + """ + if temp == True: + pixmap = self.d.pixmap_temp + else: + pixmap = self.d.pixmap + width, height = self.d.window.get_size() + + if coords[0] < self.d.oldx: + x = coords[0] + else: + x = self.d.oldx + if coords[1] < self.d.oldy: + y = coords[1] + else: + y = self.d.oldy + + dx = math.fabs(coords[0] - self.d.oldx) + dy = math.fabs(coords[1] - self.d.oldy) + + w=int(4*dx) + e=int(4*dx/math.sqrt(3)) + + pixmap.draw_drawable(self.d.gc,self.d.pixmap,0,0,0,0,width,height) + if fill == True: + pixmap.draw_arc(self.d.gc,True,int(self.d.oldx-dx),int(self.d.oldy-e/2),w,e,180*64,60*64) + pixmap.draw_arc(self.d.gc,True,int(self.d.oldx-3*dx),int(self.d.oldy-e/2),w,e,300*64,60*64) + pixmap.draw_arc(self.d.gc,True,int(self.d.oldx-dx*0.2),int(self.d.oldy-0.6*dx+2),int(1.2*dx),int(1.2*dx),0,180*64) + pixmap.draw_arc(self.d.gc,True,int(self.d.oldx-dx),int(self.d.oldy-0.6*dx+2),int(1.2*dx),int(1.2*dx),0,180*64) + pixmap.draw_arc(self.d.gc_line,False,int(self.d.oldx-dx),int(self.d.oldy-e/2),w,e,180*64,60*64) + pixmap.draw_arc(self.d.gc_line,False,int(self.d.oldx-dx-w/2),int(self.d.oldy-e/2),w,e,300*64,60*64) + pixmap.draw_arc(self.d.gc_line,False,int(self.d.oldx-dx*0.2),int(self.d.oldy-0.6*dx+2),int(1.2*dx),int(1.2*dx),0,132*64) + pixmap.draw_arc(self.d.gc_line,False,int(self.d.oldx-dx),int(self.d.oldy-0.6*dx+2),int(1.2*dx),int(1.2*dx),48*64,132*64) + + widget.queue_draw() + + def circle(self, widget, coords, temp, fill): """Draw a circle. diff --git a/NEWS b/NEWS index 9a4206d..33bba72 100644 --- a/NEWS +++ b/NEWS @@ -1,6 +1,5 @@ 4 === -Rearrange translation Folders and add activity name translation Now paste and copy are integrated to Sugar (pekayatt) Colors now are choosen from a ColorButton. Selected color is shown, not its name (alexandre) Adjust in Undo/Redo functions, now we have a limit (on 10 times) (pekayatt) diff --git a/toolbox.py b/toolbox.py index 4a9bfc7..c78180b 100644 --- a/toolbox.py +++ b/toolbox.py @@ -654,13 +654,13 @@ class ShapesToolbar(gtk.Toolbar): self._tool_shape_freeform.show() self._tool_shape_freeform.set_tooltip(_('Freeform')) + """ + self._tool_shape_heart = ToolButton('tool-shape-heart') self.insert(self._tool_shape_heart, -1) self._tool_shape_heart.show() self._tool_shape_heart.set_tooltip(_('Heart')) - """ - self._tool_shape_parallelogram = ToolButton('tool-shape-parallelogram') self.insert(self._tool_shape_parallelogram, -1) self._tool_shape_parallelogram.show() @@ -694,7 +694,7 @@ class ShapesToolbar(gtk.Toolbar): self._tool_shape_arrow.connect('clicked', self.set_tool, self._TOOL_SHAPE_ARROW) self._tool_shape_ellipse.connect('clicked', self.set_tool, self._TOOL_SHAPE_ELLIPSE) #self._tool_shape_freeform.connect('clicked', self.set_tool, self._TOOL_SHAPE_FREEFORM) - #self._tool_shape_heart.connect('clicked', self.set_tool, self._TOOL_SHAPE_HEART) + self._tool_shape_heart.connect('clicked', self.set_tool, self._TOOL_SHAPE_HEART) self._tool_shape_line.connect('clicked', self.set_tool, self._TOOL_SHAPE_LINE) self._tool_shape_parallelogram.connect('clicked', self.set_tool, self._TOOL_SHAPE_PARALLELOGRAM) self._tool_shape_polygon.connect('clicked', self.set_tool, self._TOOL_SHAPE_POLYGON) @@ -825,12 +825,12 @@ class ImageToolbar(gtk.Toolbar): separator.set_draw(True) self.insert(separator, -1) separator.show() - """ + self._object_rotate_left = ToolButton('object-rotate-left') self.insert(self._object_rotate_left, -1) self._object_rotate_left.show() self._object_rotate_left.set_tooltip(_('Rotate Left')) - + """ self._object_rotate_right = ToolButton('object-rotate-right') self.insert(self._object_rotate_right, -1) self._object_rotate_right.show() @@ -851,13 +851,13 @@ class ImageToolbar(gtk.Toolbar): self._object_height.connect('clicked', set_tool, activity, 'object-height', self._OBJECT_HEIGHT) """ self._object_insert.connect('clicked', self.insertImage, activity) - #self._object_rotate_left.connect('clicked', self.rotate_left, activity) + self._object_rotate_left.connect('clicked', self.rotate_left, activity) #self._object_rotate_right.connect('clicked', set_tool, activity, 'object-rotate-right', self._OBJECT_ROTATE_RIGHT) #self._object_width.connect('clicked', set_tool, activity, 'object-width', self._OBJECT_WIDTH) def rotate_left(self, widget, activity): - #activity._area._rotate_left(widget) - pass + activity._area._rotate_left(widget) + #pass def insertImage(self, widget, activity): -- cgit v0.9.1