Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/turtleart.py
diff options
context:
space:
mode:
authorWalter 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)
commit4739976d0a96eb21b8f606c69ecc09ca7a1557de (patch)
tree57170dde71aee01aac39059ebd300a3e5aa9e7e3 /turtleart.py
parentb81f399d5c57465e95cca0fac241975bc75df303 (diff)
parenta7a87c7fa872418f8db1af7badd4c91e0481c2af (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-xturtleart.py26
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):