diff options
author | Walter Bender <walter.bender@gmail.com> | 2011-11-08 00:12:29 (GMT) |
---|---|---|
committer | Walter Bender <walter.bender@gmail.com> | 2011-11-08 00:12:29 (GMT) |
commit | 4739976d0a96eb21b8f606c69ecc09ca7a1557de (patch) | |
tree | 57170dde71aee01aac39059ebd300a3e5aa9e7e3 /turtleart.py | |
parent | b81f399d5c57465e95cca0fac241975bc75df303 (diff) | |
parent | a7a87c7fa872418f8db1af7badd4c91e0481c2af (diff) |
Merge commit 'refs/merge-requests/3' of git://git.sugarlabs.org/turtleart/mainline into integration
Conflicts:
NEWS
activity/activity.info
Diffstat (limited to 'turtleart.py')
-rwxr-xr-x | turtleart.py | 26 |
1 files changed, 21 insertions, 5 deletions
diff --git a/turtleart.py b/turtleart.py index ca9153a..9afc238 100755 --- a/turtleart.py +++ b/turtleart.py @@ -24,6 +24,7 @@ import pygtk pygtk.require('2.0') import gtk +import cairo import getopt import sys @@ -83,11 +84,13 @@ class TurtleMain(): self._plugins = [] if self.output_png: + # Fix me: We need to create a cairo surface to work with pixbuf = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB, False, 8, gtk.gdk.screen_width(), gtk.gdk.screen_height()) - self.canvas, mask = pixbuf.render_pixmap_and_mask() - self._build_window() + # self.canvas, mask = pixbuf.render_pixmap_and_mask() + self.canvas = pixbuf + self._build_window(interactive=False) self._draw_and_quit() else: self._read_initial_pos() @@ -174,11 +177,24 @@ class TurtleMain(): self.tw.load_start(self.ta_file) self.tw.lc.trace = 0 self.tw.run_button(0) - self.tw.save_as_image(self.ta_file, self.canvas) + self.tw.save_as_image(self.ta_file) - def _build_window(self): + def _build_window(self, interactive=True): ''' Initialize the TurtleWindow instance. ''' - self.tw = TurtleArtWindow(self.canvas, self._dirname) + if interactive: + win = self.canvas.get_window() + cr = win.cairo_create() + surface = cr.get_target() + else: + img_surface = cairo.ImageSurface(cairo.FORMAT_RGB24, + 1024, 768) + cr = cairo.Context(img_surface) + surface = cr.get_target() + self.turtle_canvas = surface.create_similar( + cairo.CONTENT_COLOR, gtk.gdk.screen_width() * 2, + gtk.gdk.screen_height() * 2) + self.tw = TurtleArtWindow(self.canvas, self._dirname, + turtle_canvas=self.turtle_canvas) self.tw.save_folder = os.path.expanduser('~') def _init_vars(self): |