Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGonzalo Odiard <gonzalo@aronax.(none)>2010-05-17 23:43:05 (GMT)
committer James Cameron <quozl@laptop.org>2010-05-20 05:59:11 (GMT)
commitb47608b76c8aa26e825c24da8b6a546ac7825a3e (patch)
tree622b46a48265f4fe94c5566aed325f781742422e
parent3fb9bd69b2c14e48f0191442b06344482a3eedbc (diff)
fix #1015
In the Tools tab this patch changes the Tool Color button to Stroke Color, and uses the new colour chooser. In the Shapes tab, this patch changes the Fill Color and the Stroke Color buttons, and uses the new colour chooser. Each of the colour choices made are effective for the next drawing operation. Tested-by: James Cameron <quozl@laptop.org> Signed-off-by: James Cameron <quozl@laptop.org>
-rw-r--r--icons/icon-fill.svg11
-rw-r--r--icons/icon-stroke.svg30
-rw-r--r--toolbox.py109
3 files changed, 34 insertions, 116 deletions
diff --git a/icons/icon-fill.svg b/icons/icon-fill.svg
index bf1925a..99b25c1 100644
--- a/icons/icon-fill.svg
+++ b/icons/icon-fill.svg
@@ -1,5 +1,7 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Generator: Adobe Illustrator 13.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 14948) -->
+<?xml version="1.0" ?><!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' ' http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd' [
+ <!ENTITY stroke_color "#010101">
+ <!ENTITY fill_color "#FFFFFF">
+]>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://web.resource.org/cc/"
@@ -48,9 +50,10 @@
inkscape:current-layer="svg2" />
<path
- style="fill:#ffffff;display:inline"
+ style="fill:&fill_color;;display:inline;stroke-opacity:1" stroke-width="3"
d="M 48.897307,33.594988 C 48.897307,44.525692 24.353188,48.898307 15.889502,42.513082 C 7.1635122,35.929969 8.1442163,21.098901 17.129718,14.87467 C 22.64423,11.054784 34.272782,10.165018 36.496363,19.452618 C 39.041402,30.082908 48.897307,22.664284 48.897307,33.594988 z "
id="circle5"
sodipodi:nodetypes="csssc" />
-</svg> \ No newline at end of file
+</svg>
+
diff --git a/icons/icon-stroke.svg b/icons/icon-stroke.svg
index 71545c8..201a754 100644
--- a/icons/icon-stroke.svg
+++ b/icons/icon-stroke.svg
@@ -1,5 +1,7 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Generator: Adobe Illustrator 13.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 14948) -->
+<?xml version="1.0" ?><!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' ' http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd' [
+ <!ENTITY stroke_color "#010101">
+ <!ENTITY fill_color "#FFFFFF">
+]>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://web.resource.org/cc/"
@@ -28,29 +30,13 @@
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs
id="defs8">
-</defs><sodipodi:namedview
- inkscape:window-height="941"
- inkscape:window-width="1269"
- inkscape:pageshadow="2"
- inkscape:pageopacity="0.0"
- guidetolerance="10.0"
- gridtolerance="10.0"
- objecttolerance="10.0"
- borderopacity="1.0"
- bordercolor="#666666"
- pagecolor="#ffffff"
- id="base"
- inkscape:zoom="6.8909091"
- inkscape:cx="27.5"
- inkscape:cy="15.890501"
- inkscape:window-x="0"
- inkscape:window-y="27"
- inkscape:current-layer="svg2" />
+</defs>
<path
- style="fill:none;display:inline;stroke:#ffffff;stroke-opacity:1"
+ style="fill:none;display:inline;stroke:&fill_color;;stroke-opacity:1" stroke-width="3"
d="M 48.897307,33.594988 C 48.897307,44.525692 24.353188,48.898307 15.889502,42.513082 C 7.1635122,35.929969 8.1442163,21.098901 17.129718,14.87467 C 22.64423,11.054784 34.272782,10.165018 36.496363,19.452618 C 39.041402,30.082908 48.897307,22.664284 48.897307,33.594988 z "
id="circle5"
sodipodi:nodetypes="csssc" />
-</svg> \ No newline at end of file
+</svg>
+
diff --git a/toolbox.py b/toolbox.py
index 9bed17b..448847e 100644
--- a/toolbox.py
+++ b/toolbox.py
@@ -72,6 +72,7 @@ from sugar.graphics.toggletoolbutton import ToggleToolButton
from sugar.graphics.combobox import ComboBox
from sugar.graphics.palette import Palette
from sugar.graphics.menuitem import MenuItem
+from sugar.graphics.colorbutton import ColorToolButton
from sugar.graphics.objectchooser import ObjectChooser
##Create toolbars for the activity
@@ -84,27 +85,27 @@ class Toolbox(ActivityToolbox):
self._edit_toolbar = DrawEditToolbar(activity)
self.add_toolbar(_('Edit'), self._edit_toolbar)
- self._edit_toolbar.show()
+ self._edit_toolbar.show_all()
self._tools_toolbar = ToolsToolbar(activity)
self.add_toolbar(_('Tools'), self._tools_toolbar)
- self._tools_toolbar.show()
+ self._tools_toolbar.show_all()
self._shapes_toolbar = ShapesToolbar(activity)
self.add_toolbar(_('Shapes'), self._shapes_toolbar)
- self._shapes_toolbar.show()
+ self._shapes_toolbar.show_all()
self._text_toolbar = TextToolbar(activity)
self.add_toolbar(_('Text'), self._text_toolbar)
- self._text_toolbar.show()
+ self._text_toolbar.show_all()
self._image_toolbar = ImageToolbar(activity)
self.add_toolbar(_('Image'), self._image_toolbar)
- self._image_toolbar.show()
+ self._image_toolbar.show_all()
self._effects_toolbar = EffectsToolbar(activity)
self.add_toolbar(_('Effects'), self._effects_toolbar)
- self._effects_toolbar.show()
+ self._effects_toolbar.show_all()
#self._view_toolbar = ViewToolbar(activity)
#self.add_toolbar(_('View'), self._view_toolbar)
@@ -129,11 +130,9 @@ class DrawEditToolbar(EditToolbar):
separator = gtk.SeparatorToolItem()
separator.set_draw(True)
self.insert(separator, -1)
- separator.show()
self._clear_all = ToolButton('edit-clear')
self.insert(self._clear_all, -1)
- self._clear_all.show()
self._clear_all.set_tooltip(_('Clear'))
self.undo.connect('clicked', self._undo_cb)
@@ -285,27 +284,19 @@ class ToolsToolbar(gtk.Toolbar):
self._activity = activity
- self._icon_stroke = ToolButton('icon-stroke')
- self.insert(self._icon_stroke, -1)
- self._icon_stroke.show()
- self._icon_stroke.set_tooltip(_('Tool Color'))
-
self._stroke_color = ButtonStrokeColor(activity)
- self._stroke_color.show()
-# self._stroke_color.set_tooltip(_('Stroke Color'))
+ self._stroke_color.set_icon_name('icon-stroke')
+ self._stroke_color.set_title(_('Stroke Color'))
item = gtk.ToolItem()
item.add(self._stroke_color)
self.insert(item, -1)
- item.show()
separator = gtk.SeparatorToolItem()
separator.set_draw(True)
self.insert(separator, -1)
- separator.show()
self._tool_pencil = ToolButton('tool-pencil')
self.insert(self._tool_pencil, -1)
- self._tool_pencil.show()
self._tool_pencil.set_tooltip(_('Pencil'))
try:
self._configure_palette(self._tool_pencil, self._TOOL_PENCIL)
@@ -314,7 +305,6 @@ class ToolsToolbar(gtk.Toolbar):
self._tool_brush = ToolButton('tool-brush')
self.insert(self._tool_brush, -1)
- self._tool_brush.show()
self._tool_brush.set_tooltip(_('Brush'))
try:
self._configure_palette(self._tool_brush, self._TOOL_BRUSH)
@@ -323,7 +313,6 @@ class ToolsToolbar(gtk.Toolbar):
self._tool_eraser = ToolButton('tool-eraser')
self.insert(self._tool_eraser, -1)
- self._tool_eraser.show()
self._tool_eraser.set_tooltip(_('Eraser'))
try:
self._configure_palette(self._tool_eraser, self._TOOL_ERASER)
@@ -332,7 +321,6 @@ class ToolsToolbar(gtk.Toolbar):
self._tool_polygon = ToolButton('tool-polygon')
self.insert(self._tool_polygon, -1)
- self._tool_polygon.show()
self._tool_polygon.set_tooltip(_('Polygon'))
try:
self._configure_palette(self._tool_polygon, self._TOOL_POLYGON)
@@ -341,13 +329,11 @@ class ToolsToolbar(gtk.Toolbar):
self._tool_bucket = ToolButton('tool-bucket')
self.insert(self._tool_bucket, -1)
- self._tool_bucket.show()
self._tool_bucket.set_tooltip(_('Bucket'))
separator = gtk.SeparatorToolItem()
separator.set_draw(True)
self.insert(separator, -1)
- separator.show()
"""
@@ -370,11 +356,8 @@ class ToolsToolbar(gtk.Toolbar):
self._tool_marquee_rectangular = ToolButton('tool-marquee-rectangular')
self.insert(self._tool_marquee_rectangular, -1)
- self._tool_marquee_rectangular.show()
self._tool_marquee_rectangular.set_tooltip(_('Rectangular Marquee'))
-
- self._icon_stroke.connect('clicked', self._on_icon_stroke_clicked)
-
+
# New connect method
# Using dictionnaries to control tool's properties
self._tool_polygon.connect('clicked', self.set_tool, self._TOOL_POLYGON)
@@ -544,8 +527,6 @@ class ToolsToolbar(gtk.Toolbar):
#setting cursor: Moved to Area
- def _on_icon_stroke_clicked(self, widget, data=None):
- self._stroke_color.clicked()
def _on_fill_checkbutton_toggled(self, checkbutton, button=None, tool=None):
logging.debug('Checkbutton is Active: %s', checkbutton.get_active() )
@@ -584,10 +565,10 @@ class ToolsToolbar(gtk.Toolbar):
##Class to manage the Fill Color of a Button
-class ButtonFillColor(gtk.ColorButton):
+class ButtonFillColor(ColorToolButton):
##The Constructor
def __init__(self, activity):
- gtk.ColorButton.__init__(self)
+ ColorToolButton.__init__(self)
self._activity = activity
self.connect('color-set', self._color_button_cb)
@@ -605,10 +586,10 @@ class ButtonFillColor(gtk.ColorButton):
self._activity.area.set_fill_color(new_color)
##Class to manage the Stroke Color of a Button
-class ButtonStrokeColor(gtk.ColorButton):
+class ButtonStrokeColor(ColorToolButton):
##The Constructor
def __init__(self, activity):
- gtk.ColorButton.__init__(self)
+ ColorToolButton.__init__(self)
self._activity = activity
self.connect('color-set', self._color_button_cb)
@@ -743,39 +724,26 @@ class ShapesToolbar(gtk.Toolbar):
self._activity = activity
- self._icon_fill = ToolButton('icon-fill')
- self.insert(self._icon_fill, -1)
- self._icon_fill.show()
- self._icon_fill.set_tooltip(_('Fill Color'))
-
self._fill_color = ButtonFillColor(activity)
- self._fill_color.show()
+ self._fill_color.set_icon_name('icon-fill')
+ self._fill_color.set_title(_('Fill Color'))
item = gtk.ToolItem()
item.add(self._fill_color)
self.insert(item, -1)
- item.show()
-
- self._icon_stroke = ToolButton('icon-stroke')
- self.insert(self._icon_stroke, -1)
- self._icon_stroke.show()
- self._icon_stroke.set_tooltip(_('Stroke Color'))
-
self._stroke_color = ButtonStrokeColor(activity)
- self._stroke_color.show()
+ self._stroke_color.set_icon_name('icon-stroke')
+ self._stroke_color.set_title(_('Stroke Color'))
item = gtk.ToolItem()
item.add(self._stroke_color)
self.insert(item, -1)
- item.show()
separator = gtk.SeparatorToolItem()
separator.set_draw(True)
self.insert(separator, -1)
- separator.show()
self._shape_ellipse = ToolButton('tool-shape-ellipse')
self.insert(self._shape_ellipse, -1)
- self._shape_ellipse.show()
self._shape_ellipse.set_tooltip(_('Ellipse'))
try:
self._configure_palette_shape_ellipse()
@@ -784,7 +752,6 @@ class ShapesToolbar(gtk.Toolbar):
self._shape_rectangle = ToolButton('tool-shape-rectangle')
self.insert(self._shape_rectangle, -1)
- self._shape_rectangle.show()
self._shape_rectangle.set_tooltip(_('Rectangle'))
try:
self._configure_palette_shape_rectangle()
@@ -793,7 +760,6 @@ class ShapesToolbar(gtk.Toolbar):
self._shape_line = ToolButton('tool-shape-line')
self.insert(self._shape_line, -1)
- self._shape_line.show()
self._shape_line.set_tooltip(_('Line'))
try:
self._configure_palette_shape_line()
@@ -802,7 +768,6 @@ class ShapesToolbar(gtk.Toolbar):
self._shape_polygon = ToolButton('tool-shape-polygon')
self.insert(self._shape_polygon, -1)
- self._shape_polygon.show()
self._shape_polygon.set_tooltip(_('Polygon'))
try:
self._configure_palette_shape_polygon()
@@ -820,7 +785,6 @@ class ShapesToolbar(gtk.Toolbar):
self._shape_heart = ToolButton('tool-shape-heart')
self.insert(self._shape_heart, -1)
- self._shape_heart.show()
self._shape_heart.set_tooltip(_('Heart'))
try:
self._configure_palette_shape_heart()
@@ -830,7 +794,6 @@ class ShapesToolbar(gtk.Toolbar):
self._shape_parallelogram = ToolButton('tool-shape-parallelogram')
self.insert(self._shape_parallelogram, -1)
- self._shape_parallelogram.show()
self._shape_parallelogram.set_tooltip(_('Parallelogram'))
try:
self._configure_palette_shape_parallelogram()
@@ -839,7 +802,6 @@ class ShapesToolbar(gtk.Toolbar):
self._shape_arrow = ToolButton('tool-shape-arrow')
self.insert(self._shape_arrow, -1)
- self._shape_arrow.show()
self._shape_arrow.set_tooltip(_('Arrow'))
try:
self._configure_palette_shape_arrow()
@@ -848,7 +810,6 @@ class ShapesToolbar(gtk.Toolbar):
self._shape_star = ToolButton('tool-shape-star')
self.insert(self._shape_star, -1)
- self._shape_star.show()
self._shape_star.set_tooltip(_('Star'))
try:
self._configure_palette_shape_star()
@@ -857,7 +818,6 @@ class ShapesToolbar(gtk.Toolbar):
self._shape_trapezoid = ToolButton('tool-shape-trapezoid')
self.insert(self._shape_trapezoid, -1)
- self._shape_trapezoid.show()
self._shape_trapezoid.set_tooltip(_('Trapezoid'))
try:
self._configure_palette_shape_trapezoid()
@@ -866,7 +826,6 @@ class ShapesToolbar(gtk.Toolbar):
self._shape_triangle = ToolButton('tool-shape-triangle')
self.insert(self._shape_triangle, -1)
- self._shape_triangle.show()
self._shape_triangle.set_tooltip(_('Triangle'))
try:
self._configure_palette_shape_triangle()
@@ -874,9 +833,6 @@ class ShapesToolbar(gtk.Toolbar):
logging.debug('Could not create palette for Shape Triangle')
- self._icon_stroke.connect('clicked', self._on_icon_stroke_clicked)
- self._icon_fill.connect('clicked', self._on_icon_fill_clicked)
-
self._shape_arrow.connect('clicked', self.set_tool, self._SHAPE_ARROW)
self._shape_ellipse.connect('clicked', self.set_tool, self._SHAPE_ELLIPSE)
#self._shape_freeform.connect('clicked', self.set_tool, self._SHAPE_FREEFORM)
@@ -902,15 +858,7 @@ class ShapesToolbar(gtk.Toolbar):
self._activity.area.set_tool(tool)
#setting cursor: moved to Area
-
-
- def _on_icon_stroke_clicked(self, widget, data=None):
- self._stroke_color.clicked()
-
- def _on_icon_fill_clicked(self, widget, data=None):
- self._fill_color.clicked()
-
-
+
def _on_vertices_value_changed(self, spinbutton, tool):
#self._activity.area.polygon_sides = spinbutton.get_value_as_int()
tool['vertices'] = spinbutton.get_value_as_int()
@@ -1100,21 +1048,17 @@ class TextToolbar(gtk.Toolbar):
self._text = ToolButton('text')
self.insert(self._text, -1)
- self._text.show()
self._text.set_tooltip(_('Type'))
self._text.connect('clicked', self.set_tool, self._ACTION_TEXT)
self._text_color = ButtonFillColor(activity)
- self._text_color.show()
item = gtk.ToolItem()
item.add(self._text_color)
self.insert(item, -1)
- item.show()
separator = gtk.SeparatorToolItem()
separator.set_draw(True)
self.insert(separator, -1)
- separator.show()
"""
@@ -1171,32 +1115,27 @@ class ImageToolbar(gtk.Toolbar):
self._object_insert = ToolButton('object-insert')
self.insert(self._object_insert, -1)
- self._object_insert.show()
self._object_insert.set_tooltip(_('Insert Image'))
separator = gtk.SeparatorToolItem()
separator.set_draw(True)
self.insert(separator, -1)
- separator.show()
self.width_percent = 1.
self.height_percent = 1.
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_left.set_sensitive( self._activity.area.is_selected() )
self._object_rotate_right = ToolButton('object-rotate-right')
self.insert(self._object_rotate_right, -1)
- self._object_rotate_right.show()
self._object_rotate_right.set_tooltip(_('Rotate Right'))
self._object_rotate_right.set_sensitive( self._activity.area.is_selected() )
self._object_height = ToolButton('object-height')
self.insert(self._object_height, -1)
- self._object_height.show()
self._object_height.set_tooltip(_('Height'))
height_spinButton = self._create_spinButton(self._object_height, 'object-height', activity)
@@ -1204,11 +1143,9 @@ class ImageToolbar(gtk.Toolbar):
item = gtk.ToolItem()
item.add(height_spinButton)
self.insert(item, -1)
- item.show()
self._object_width = ToolButton('object-width')
self.insert(self._object_width, -1)
- self._object_width.show()
self._object_width.set_tooltip(_('Width'))
width_spinButton = self._create_spinButton(self._object_width, 'object-width', activity)
@@ -1216,7 +1153,6 @@ class ImageToolbar(gtk.Toolbar):
item = gtk.ToolItem()
item.add(width_spinButton)
self.insert(item, -1)
- item.show()
self._object_insert.connect('clicked', self.insertImage, activity)
self._object_rotate_left.connect('clicked', self.rotate_left, activity)
@@ -1350,18 +1286,15 @@ class EffectsToolbar(gtk.Toolbar):
self._effect_grayscale = ToolButton('effect-grayscale')
self.insert(self._effect_grayscale, -1)
- self._effect_grayscale.show()
self._effect_grayscale.set_tooltip(_('Grayscale'))
self._effect_rainbow = ToolButton('effect-rainbow')
self.insert(self._effect_rainbow, -1)
- self._effect_rainbow.show()
self._effect_rainbow.set_tooltip(_('Rainbow'))
self._configure_palette(self._effect_rainbow, self._EFFECT_RAINBOW)
separator = gtk.SeparatorToolItem()
self.insert(separator, -1)
- separator.show()
"""
#FIXME: Must be implemented
@@ -1504,20 +1437,16 @@ class ViewToolbar(gtk.Toolbar):
self._view_percent.set_active(0)
self._view_percent.connect('changed', self._combo_changed_cb)
self.insert(tool_item, -1)
- tool_item.show()
separator = gtk.SeparatorToolItem()
self.insert(separator, -1)
- separator.show()
self._zoom_plus = ToolButton('zoom-plus')
self.insert(self._zoom_plus, -1)
- self._zoom_plus.show()
self._zoom_plus.set_tooltip(_('ZOOM +'))
self._zoom_minus = ToolButton('zoom-minus')
self.insert(self._zoom_minus, -1)
- self._zoom_minus.show()
self._zoom_minus.set_tooltip(_('ZOOM -'))
'''