fix up panning code, now backwards
This commit is contained in:
parent
18d25c3713
commit
aaf857d071
@ -70,7 +70,7 @@ class SketchWidget:
|
|||||||
if not gldrawable.gl_begin(glcontext): return
|
if not gldrawable.gl_begin(glcontext): return
|
||||||
|
|
||||||
x, y, width, height = glarea.get_allocation()
|
x, y, width, height = glarea.get_allocation()
|
||||||
self.size = (width, height)
|
self.size = (float(width), float(height))
|
||||||
|
|
||||||
glViewport(0, 0, width, height)
|
glViewport(0, 0, width, height)
|
||||||
glMatrixMode(GL_PROJECTION)
|
glMatrixMode(GL_PROJECTION)
|
||||||
@ -114,19 +114,17 @@ class SketchWidget:
|
|||||||
def ptToScreenPt(self, pt):
|
def ptToScreenPt(self, pt):
|
||||||
return ((pt[0] - self.view_center[0]) / self.view_width * self.size[0]
|
return ((pt[0] - self.view_center[0]) / self.view_width * self.size[0]
|
||||||
+ self.size[0] / 2,
|
+ self.size[0] / 2,
|
||||||
(pt[1] - self.view_center[1]) /
|
(pt[1] - self.view_center[1]) / self.view_width * self.size[0]
|
||||||
(self.view_width * self.size[1] / self.size[0])
|
+ self.size[1] / 2)
|
||||||
* self.size[1] + self.size[1] / 2)
|
|
||||||
|
|
||||||
def distToScreenDist(self, dist):
|
def distToScreenDist(self, dist):
|
||||||
return dist / self.view_width * self.size[0]
|
return dist / self.view_width * self.size[0]
|
||||||
|
|
||||||
def screenPtToPt(self, pt):
|
def screenPtToPt(self, pt):
|
||||||
return ((pt[0] - self.size[0]) / self.size[0] * self.view_width
|
return ((pt[0] - self.size[0] / 2) / self.size[0] * self.view_width
|
||||||
+ self.view_center[0] / 2,
|
+ self.view_center[0],
|
||||||
(pt[1] - self.size[1]) / self.size[1] *
|
(pt[1] - self.size[1] / 2) / self.size[0] * self.view_width
|
||||||
(self.view_width * self.size[1] / self.size[0])
|
+ self.view_center[1])
|
||||||
+ self.view_center[1] / 2)
|
|
||||||
|
|
||||||
def screenDistToDist(self, dist):
|
def screenDistToDist(self, dist):
|
||||||
return dist * self.size[0] / self.view_width
|
return dist * self.size[0] / self.view_width
|
||||||
@ -202,7 +200,7 @@ class SketchWidget:
|
|||||||
def button_press_event(self, widget, event, data = None):
|
def button_press_event(self, widget, event, data = None):
|
||||||
if event.button == 2:
|
if event.button == 2:
|
||||||
self.panning = True
|
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):
|
def button_release_event(self, widget, event, data = None):
|
||||||
if event.button == 2:
|
if event.button == 2:
|
||||||
@ -211,10 +209,10 @@ class SketchWidget:
|
|||||||
def motion_event(self, widget, event, data = None):
|
def motion_event(self, widget, event, data = None):
|
||||||
if self.panning:
|
if self.panning:
|
||||||
start_pt = self.screenPtToPt(self.panning_start)
|
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 = (self.view_center[0] + this_pt[0] - start_pt[0],
|
||||||
self.view_center[1] + this_pt[1] - start_pt[1])
|
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])
|
self.widget.queue_draw_area(0, 0, self.size[0], self.size[1])
|
||||||
|
|
||||||
def scroll_event(self, widget, event, data = None):
|
def scroll_event(self, widget, event, data = None):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user