In the paint activity's shape tool we were able to make only horizontal arrows, so now we have added a new tool which makes vertical arrows.
--- Area.py | 8 ++++++++ Desenho.py | 31 +++++++++++++++++++++++++++++++ toolbox.py | 21 +++++++++++++++++++++ 3 files changed, 60 insertions(+), 0 deletions(-) diff --git a/Area.py b/Area.py index 2dca7da..56c4267 100644 --- a/Area.py +++ b/Area.py @@ -438,6 +438,10 @@ class Area(gtk.DrawingArea): elif self.tool['name'] == 'arrow': self.configure_line(self.line_size) self.d.arrow(widget,coords,True,self.tool['fill']) + + elif self.tool['name'] == 'vertical arrow': + self.d.arrow_vertical(widget,coords,False,\ + self.tool['fill']) + self.enableUndo(widget) elif self.tool['name'] == 'parallelogram': self.configure_line(self.line_size) @@ -541,6 +545,10 @@ class Area(gtk.DrawingArea): elif self.tool['name'] == 'arrow': self.d.arrow(widget,coords,False,self.tool['fill']) self.enableUndo(widget) + + elif self.tool['name'] == 'vertical arrow': + self.d.arrow_vertical(widget,coords,False,self.tool['fill']) + self.enableUndo(widget) elif self.tool['name'] == 'parallelogram': self.d.parallelogram(widget,coords,False,self.tool['fill']) diff --git a/Desenho.py b/Desenho.py index c9a134b..e90a45c 100644 --- a/Desenho.py +++ b/Desenho.py @@ -298,6 +298,37 @@ class Desenho: pixmap.draw_polygon(widget.gc_line,False,points) widget.queue_draw() + def arrow_vertical(self, widget, coords, temp, fill): + """Draw a arrow. + + @param self -- Desenho.Desenho instance + @param widget -- Area object (GtkDrawingArea) + @param coords -- Two value tuple + @param temp -- switch between pixmap and pixmap_temp + @param fill -- Fill object + + """ + if temp == True: + pixmap = widget.pixmap_temp + else: + pixmap = widget.pixmap + width, height = widget.window.get_size() + + x = widget.oldx - coords[0] + y = widget.oldy - coords[1] + points = [(widget.oldx,widget.oldy),\ +(widget.oldx+x,widget.oldy-int(y/6)),\ +(widget.oldx+int(x/2),widget.oldy-int(y/6)),\ +(widget.oldx+int(x/2),widget.oldy-y),\ +(widget.oldx-int(x/2),widget.oldy-y),\ +(widget.oldx-int(x/2),widget.oldy-int(y/6)),\ +(widget.oldx-x,widget.oldy-int(y/6))] + pixmap.draw_drawable(widget.gc,widget.pixmap,0,0,0,0,width,height) + if fill == True: + pixmap.draw_polygon(widget.gc,True,points) + pixmap.draw_polygon(widget.gc_line,False,points) + widget.queue_draw() + def parallelogram(self, widget, coords, temp, fill): """Draw a parallelogram. diff --git a/toolbox.py b/toolbox.py index 299181b..520e5f0 100644 --- a/toolbox.py +++ b/toolbox.py @@ -613,6 +613,15 @@ class ShapesToolbar(gtk.Toolbar): 'fill' : True, 'vertices' : 5 } + _SHAPE_ARROW_VERTICAL= { + 'name' : 'vertical arrow', + 'line size' : 5, + 'fill color' : None, + 'stroke color' : None, + 'line shape' : 'circle', + 'fill' : True, + 'vertices' : 5 + } _SHAPE_CURVE = { 'name' : 'curve', 'line size' : 2, @@ -795,6 +804,13 @@ class ShapesToolbar(gtk.Toolbar): self._configure_palette_shape_arrow() except: logging.debug('Could not create palette for Shape Arrow') + + self._shape_arrow_vertical = DrawToolButton\ + ('tool-shape-arrow-vertical',activity.tool_group,_('Arrow-Vertical')) + self.insert(self._shape_arrow_vertical, -1) + try: + self._configure_palette_shape_arrow_vertical() + except: + logging.debug('Could not create palette for Shape Vertical Arrow') self._shape_star = DrawToolButton('tool-shape-star', activity.tool_group,_('Star')) self.insert(self._shape_star, -1) @@ -819,6 +835,7 @@ class ShapesToolbar(gtk.Toolbar): self._shape_arrow.connect('clicked', self.set_tool, self._SHAPE_ARROW) + self._shape_arrow_vertical.connect('clicked', self.set_tool,\ + self._SHAPE_ARROW_VERTICAL) self._shape_ellipse.connect('clicked', self.set_tool, self._SHAPE_ELLIPSE) self._shape_freeform.connect('clicked', self.set_tool, self._SHAPE_FREEFORM) self._shape_heart.connect('clicked', self.set_tool, self._SHAPE_HEART) @@ -908,6 +925,10 @@ class ShapesToolbar(gtk.Toolbar): logging.debug('Creating palette to shape arrow') self._create_simple_palette(self._shape_arrow, self._SHAPE_ARROW) + def _configure_palette_shape_arrow_vertical(self): + logging.debug('Creating palette to shape Vertical arrow') + self._create_simple_palette(self._shape_arrow_vertical,\ + self._SHAPE_ARROW_VERTICAL) + def _configure_palette_shape_star(self): logging.debug('Creating palette to shape star') -- 1.7.2.3 _______________________________________________ Sugar-devel mailing list Sugar-devel@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/sugar-devel