Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/TurtleArt
diff options
context:
space:
mode:
authorWalter Bender <walter.bender@gmail.com>2011-11-12 03:30:45 (GMT)
committer Walter Bender <walter.bender@gmail.com>2011-11-12 03:30:45 (GMT)
commit21a529e9256e6644bbf0b6c7ae3599438e4e22df (patch)
treee4ac9afc8b37f1c23b25872d3ea72eed38391cb1 /TurtleArt
parent1b4590d79c46385e06ca5d9e4a60fb20ac4c56a1 (diff)
overlay grids use cairo surface instead of pixbuf
Diffstat (limited to 'TurtleArt')
-rw-r--r--TurtleArt/tacanvas.py8
-rw-r--r--TurtleArt/tawindow.py39
2 files changed, 12 insertions, 35 deletions
diff --git a/TurtleArt/tacanvas.py b/TurtleArt/tacanvas.py
index 83f6461..f846d70 100644
--- a/TurtleArt/tacanvas.py
+++ b/TurtleArt/tacanvas.py
@@ -526,6 +526,14 @@ class TurtleGraphics:
event = 'p|%s' % (data_to_string([self._get_my_nick(), bool]))
self.tw.send_event(event)
+ def draw_surface(self, surface, x, y, w, h):
+ ''' Draw a surface '''
+ cr = gtk.gdk.CairoContext(self.canvas)
+ cr.set_source_surface(surface, x, y)
+ cr.rectangle(x, y, w, h)
+ cr.fill()
+ self.inval()
+
def draw_pixbuf(self, pixbuf, a, b, x, y, w, h, path, share=True):
''' Draw a pixbuf '''
# Build a gtk.gdk.CairoContext from a cairo.Context to access
diff --git a/TurtleArt/tawindow.py b/TurtleArt/tawindow.py
index 03bfe1c..7c56196 100644
--- a/TurtleArt/tawindow.py
+++ b/TurtleArt/tawindow.py
@@ -494,47 +494,16 @@ class TurtleArtWindow():
else:
self.draw_overlay('Cartesian')
return
- '''
- if flag:
- if self.coord_scale == 1:
- self.overlay_shapes['Cartesian_labeled'].set_layer(
- OVERLAY_LAYER)
- else:
- self.overlay_shapes['Cartesian'].set_layer(OVERLAY_LAYER)
- self.cartesian = True
- else:
- if self.coord_scale == 1:
- self.overlay_shapes['Cartesian_labeled'].hide()
- else:
- self.overlay_shapes['Cartesian'].hide()
- self.cartesian = False
- '''
def set_polar(self, flag):
""" Turn on/off polar coordinates """
self.draw_overlay('polar')
return
- '''
- if flag:
- self.overlay_shapes['polar'].set_layer(OVERLAY_LAYER)
- self.polar = True
- else:
- self.overlay_shapes['polar'].hide()
- self.polar = False
- '''
def set_metric(self, flag):
""" Turn on/off metric coordinates """
self.draw_overlay('metric')
return
- '''
- if flag:
- self.overlay_shapes['metric'].set_layer(OVERLAY_LAYER)
- self.metric = True
- else:
- self.overlay_shapes['metric'].hide()
- self.metric = False
- '''
def draw_overlay(self, overlay):
''' Draw a coordinate grid onto the canvas. '''
@@ -542,10 +511,10 @@ class TurtleArtWindow():
self.canvas.heading = 0
w = self.overlay_shapes[overlay].rect[2]
h = self.overlay_shapes[overlay].rect[3]
- self.canvas.draw_pixbuf(self.overlay_shapes[overlay].images[0],
- 0, 0, (self.canvas.width - w) / 2.,
- (self.canvas.height - h) / 2.,
- w, h, '', share=False)
+ self.canvas.draw_surface(
+ self.overlay_shapes[overlay].cached_surfaces[0],
+ (self.canvas.width - w) / 2.,
+ (self.canvas.height - h) / 2., w, h)
self.canvas.heading = save_heading
def update_overlay_position(self, widget, event):