From 21d969b5cbf91613b7a16bec51b042ee96dcb00d Mon Sep 17 00:00:00 2001 From: Josh Holtrop Date: Sat, 2 Apr 2011 00:20:29 -0400 Subject: [PATCH] a very non-user-friendly zoom --- SketchWidget.py | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/SketchWidget.py b/SketchWidget.py index bd9f2d3..a5aaf43 100644 --- a/SketchWidget.py +++ b/SketchWidget.py @@ -213,11 +213,20 @@ class SketchWidget: self.view_center = (self.view_center[0] - this_pt[0] + start_pt[0], self.view_center[1] - this_pt[1] + start_pt[1]) self.panning_start = (event.x, self.size[1] - event.y) - self.widget.queue_draw_area(0, 0, - int(self.size[0]), int(self.size[1])) + self.redraw() def scroll_event(self, widget, event, data = None): if event.direction == gtk.gdk.SCROLL_UP: - print 'scroll up at (%d, %d)' % (event.x, event.y) + self.view_center = self.screenPtToPt((event.x, + self.size[1] - event.y)) + self.view_width /= 1.2 + self.redraw() elif event.direction == gtk.gdk.SCROLL_DOWN: - print 'scroll down at (%d, %d)' % (event.x, event.y) + self.view_center = self.screenPtToPt((event.x, + self.size[1] - event.y)) + self.view_width *= 1.2 + self.redraw() + + def redraw(self): + self.widget.queue_draw_area(0, 0, + int(self.size[0]), int(self.size[1]))