Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNathalia Sautchuk Patricio <nathalia.sautchuk@gmail.com>2007-08-17 19:38:51 (GMT)
committer Nathalia Sautchuk Patricio <nathalia.sautchuk@gmail.com>2007-08-17 19:38:51 (GMT)
commite5be5f7cebe0117cff74f908d486c656c37cde87 (patch)
treec90db7b046a8973853e9c67c4b93d46bc81aae43
parentd4f602d3ae8932e9f566df868c706f740d59acab (diff)
Adding heart
-rw-r--r--Area.py9
-rw-r--r--Desenho.py48
-rw-r--r--NEWS1
-rw-r--r--toolbox.py16
4 files changed, 64 insertions, 10 deletions
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):