Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/sugar/chat/sketchpad/SketchPad.py
diff options
context:
space:
mode:
Diffstat (limited to 'sugar/chat/sketchpad/SketchPad.py')
-rw-r--r--sugar/chat/sketchpad/SketchPad.py170
1 files changed, 85 insertions, 85 deletions
diff --git a/sugar/chat/sketchpad/SketchPad.py b/sugar/chat/sketchpad/SketchPad.py
index 33327f0..e15e435 100644
--- a/sugar/chat/sketchpad/SketchPad.py
+++ b/sugar/chat/sketchpad/SketchPad.py
@@ -23,101 +23,101 @@ from SVGdraw import drawing
from SVGdraw import svg
class SketchPad(gtk.DrawingArea):
- __gsignals__ = {
- 'new-user-sketch':(gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
- ([gobject.TYPE_PYOBJECT]))
- }
+ __gsignals__ = {
+ 'new-user-sketch':(gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
+ ([gobject.TYPE_PYOBJECT]))
+ }
- def __init__(self, bgcolor=(0.6, 1, 0.4)):
- gtk.DrawingArea.__init__(self)
+ def __init__(self, bgcolor=(0.6, 1, 0.4)):
+ gtk.DrawingArea.__init__(self)
- self._active_sketch = None
- self._rgb = (0.0, 0.0, 0.0)
- self._bgcolor = bgcolor
- self._sketches = []
+ self._active_sketch = None
+ self._rgb = (0.0, 0.0, 0.0)
+ self._bgcolor = bgcolor
+ self._sketches = []
- self.add_events(gtk.gdk.BUTTON_PRESS_MASK |
- gtk.gdk.BUTTON_RELEASE_MASK |
- gtk.gdk.BUTTON1_MOTION_MASK)
- self.connect("button-press-event", self._button_press_cb)
- self.connect("button-release-event", self._button_release_cb)
- self.connect("motion-notify-event", self._motion_notify_cb)
- self.connect('expose_event', self.expose)
-
- def clear(self):
- self._sketches = []
- self.window.invalidate_rect(None, False)
+ self.add_events(gtk.gdk.BUTTON_PRESS_MASK |
+ gtk.gdk.BUTTON_RELEASE_MASK |
+ gtk.gdk.BUTTON1_MOTION_MASK)
+ self.connect("button-press-event", self._button_press_cb)
+ self.connect("button-release-event", self._button_release_cb)
+ self.connect("motion-notify-event", self._motion_notify_cb)
+ self.connect('expose_event', self.expose)
+
+ def clear(self):
+ self._sketches = []
+ self.window.invalidate_rect(None, False)
- def expose(self, widget, event):
- """Draw the background of the sketchpad."""
- rect = self.get_allocation()
- ctx = widget.window.cairo_create()
-
- ctx.set_source_rgb(self._bgcolor[0], self._bgcolor[1], self._bgcolor[2])
- ctx.rectangle(0, 0, rect.width, rect.height)
- ctx.fill_preserve()
-
- ctx.set_source_rgb(0, 0.3, 0.2)
- ctx.stroke()
-
- for sketch in self._sketches:
- sketch.draw(ctx)
-
- return False
+ def expose(self, widget, event):
+ """Draw the background of the sketchpad."""
+ rect = self.get_allocation()
+ ctx = widget.window.cairo_create()
+
+ ctx.set_source_rgb(self._bgcolor[0], self._bgcolor[1], self._bgcolor[2])
+ ctx.rectangle(0, 0, rect.width, rect.height)
+ ctx.fill_preserve()
+
+ ctx.set_source_rgb(0, 0.3, 0.2)
+ ctx.stroke()
+
+ for sketch in self._sketches:
+ sketch.draw(ctx)
+
+ return False
- def set_color(self, color):
- """Sets the current drawing color of the sketchpad.
- color agument should be 3-item tuple of rgb values between 0 and 1."""
- self._rgb = color
+ def set_color(self, color):
+ """Sets the current drawing color of the sketchpad.
+ color agument should be 3-item tuple of rgb values between 0 and 1."""
+ self._rgb = color
- def add_sketch(self, sketch):
- """Add a sketch to the the pad. Mostly for subclasses and clients."""
- self._sketches.append(sketch)
- self.window.invalidate_rect(None, False)
+ def add_sketch(self, sketch):
+ """Add a sketch to the the pad. Mostly for subclasses and clients."""
+ self._sketches.append(sketch)
+ self.window.invalidate_rect(None, False)
- def add_point(self, event):
- if not self._active_sketch:
- return
- self._active_sketch.add_point(event.x, event.y)
- self.window.invalidate_rect(None, False)
-
- def _button_press_cb(self, widget, event):
- self._active_sketch = Sketch(self._rgb)
- self._sketches.append(self._active_sketch)
- self.add_point(event)
-
- def _button_release_cb(self, widget, event):
- self.add_point(event)
- self.emit('new-user-sketch', self._active_sketch)
- self._active_sketch = None
-
- def _motion_notify_cb(self, widget, event):
- self.add_point(event)
-
- def to_svg(self):
- """Return a string containing an SVG representation of this sketch."""
- d = drawing()
- s = svg()
- for sketch in self._sketches:
- s.addElement(sketch.draw_to_svg())
- d.setSVG(s)
- return d.toXml()
+ def add_point(self, event):
+ if not self._active_sketch:
+ return
+ self._active_sketch.add_point(event.x, event.y)
+ self.window.invalidate_rect(None, False)
+
+ def _button_press_cb(self, widget, event):
+ self._active_sketch = Sketch(self._rgb)
+ self._sketches.append(self._active_sketch)
+ self.add_point(event)
+
+ def _button_release_cb(self, widget, event):
+ self.add_point(event)
+ self.emit('new-user-sketch', self._active_sketch)
+ self._active_sketch = None
+
+ def _motion_notify_cb(self, widget, event):
+ self.add_point(event)
+
+ def to_svg(self):
+ """Return a string containing an SVG representation of this sketch."""
+ d = drawing()
+ s = svg()
+ for sketch in self._sketches:
+ s.addElement(sketch.draw_to_svg())
+ d.setSVG(s)
+ return d.toXml()
def test_quit(w, skpad):
- print skpad.to_svg()
- gtk.main_quit()
+ print skpad.to_svg()
+ gtk.main_quit()
if __name__ == "__main__":
- window = gtk.Window()
- window.set_default_size(400, 300)
- window.connect("destroy", lambda w: gtk.main_quit())
+ window = gtk.Window()
+ window.set_default_size(400, 300)
+ window.connect("destroy", lambda w: gtk.main_quit())
- sketchpad = SketchPad()
- window.add(sketchpad)
- sketchpad.show()
-
- window.show()
-
- window.connect("destroy", test_quit, sketchpad)
+ sketchpad = SketchPad()
+ window.add(sketchpad)
+ sketchpad.show()
+
+ window.show()
+
+ window.connect("destroy", test_quit, sketchpad)
- gtk.main()
+ gtk.main()