diff options
Diffstat (limited to 'utility')
| -rw-r--r-- | utility/mouse.py | 21 | 
1 files changed, 21 insertions, 0 deletions
| diff --git a/utility/mouse.py b/utility/mouse.py new file mode 100644 index 0000000..c36d7e8 --- /dev/null +++ b/utility/mouse.py @@ -0,0 +1,21 @@ +from OpenGL.GLUT import * + +class MouseDragMonitor: +    def __init__(self, button, callback): +        self.button   = button +        self.callback = callback +        self.active   = False + +    def on_mouse(self, button, state, x, y): +        if button == self.button: +            self.active = (state == GLUT_DOWN) +            self.last_x = x +            self.last_y = y + +    def on_mouse_move(self, x, y): +        if self.active: +            delta_x = self.last_x - x +            delta_y = y - self.last_y +            self.last_x = x +            self.last_y = y +            self.callback(delta_x, delta_y) | 
