fix up panning code, now backwards

This commit is contained in:
Josh Holtrop 2011-04-02 00:09:23 -04:00
parent 18d25c3713
commit aaf857d071

View File

@ -70,7 +70,7 @@ class SketchWidget:
if not gldrawable.gl_begin(glcontext): return
x, y, width, height = glarea.get_allocation()
self.size = (width, height)
self.size = (float(width), float(height))
glViewport(0, 0, width, height)
glMatrixMode(GL_PROJECTION)
@ -114,19 +114,17 @@ class SketchWidget:
def ptToScreenPt(self, pt):
return ((pt[0] - self.view_center[0]) / self.view_width * self.size[0]
+ self.size[0] / 2,
(pt[1] - self.view_center[1]) /
(self.view_width * self.size[1] / self.size[0])
* self.size[1] + self.size[1] / 2)
(pt[1] - self.view_center[1]) / self.view_width * self.size[0]
+ self.size[1] / 2)
def distToScreenDist(self, dist):
return dist / self.view_width * self.size[0]
def screenPtToPt(self, pt):
return ((pt[0] - self.size[0]) / self.size[0] * self.view_width
+ self.view_center[0] / 2,
(pt[1] - self.size[1]) / self.size[1] *
(self.view_width * self.size[1] / self.size[0])
+ self.view_center[1] / 2)
return ((pt[0] - self.size[0] / 2) / self.size[0] * self.view_width
+ self.view_center[0],
(pt[1] - self.size[1] / 2) / self.size[0] * self.view_width
+ self.view_center[1])
def screenDistToDist(self, dist):
return dist * self.size[0] / self.view_width
@ -202,7 +200,7 @@ class SketchWidget:
def button_press_event(self, widget, event, data = None):
if event.button == 2:
self.panning = True
self.panning_start = (event.x, event.y)
self.panning_start = (event.x, self.size[1] - event.y)
def button_release_event(self, widget, event, data = None):
if event.button == 2:
@ -211,10 +209,10 @@ class SketchWidget:
def motion_event(self, widget, event, data = None):
if self.panning:
start_pt = self.screenPtToPt(self.panning_start)
this_pt = self.screenPtToPt((event.x, event.y))
this_pt = self.screenPtToPt((event.x, self.size[1] - event.y))
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, event.y)
self.panning_start = (event.x, self.size[1] - event.y)
self.widget.queue_draw_area(0, 0, self.size[0], self.size[1])
def scroll_event(self, widget, event, data = None):