diff options
author | Manuel Kaufmann <humitos@gmail.com> | 2012-10-16 18:17:09 (GMT) |
---|---|---|
committer | Manuel Kaufmann <humitos@gmail.com> | 2012-10-16 18:17:09 (GMT) |
commit | d2d6d680165c1b494fd17ff13f010f4986703590 (patch) | |
tree | f9fb6d1c49d9147633d083df400abe20f443dee9 | |
parent | 58b9477354cf4451a6207d136f37d7bebcad03ac (diff) |
SugarTouchController.get_center() test
-rw-r--r-- | tests/controller_get_center.py | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/tests/controller_get_center.py b/tests/controller_get_center.py new file mode 100644 index 0000000..fa3065e --- /dev/null +++ b/tests/controller_get_center.py @@ -0,0 +1,52 @@ +#!/usr/bin/env python + +from gi.repository import Gtk +from gi.repository import Gdk +from gi.repository import SugarGestures +import math + + +class TestTouch(Gtk.DrawingArea): + + def __init__(self): + super(TestTouch, self).__init__() + + self.set_events(Gdk.EventMask.TOUCH_MASK) + self.add_events(Gdk.EventMask.BUTTON_PRESS_MASK) + self.add_events(Gdk.EventMask.BUTTON_RELEASE_MASK) + self.add_events(Gdk.EventMask.BUTTON_MOTION_MASK) + self.connect('draw', self.__draw_cb) + + self.touches = {} + + zoom = SugarGestures.ZoomController() + zoom.connect('scale-changed', self.__scale_changed_cb) + zoom.attach(self, SugarGestures.EventControllerFlags.NONE) + + def __scale_changed_cb(self, controller, scale): + success, x, y = controller.get_center() + self.touches[1] = x, y + self.queue_draw() + + def __draw_cb(self, widget, ctx): + ctx.set_source_rgba(0.3, 0.3, 0.3, 0.7) + for touch in self.touches.values(): + x, y = touch + ctx.save() + ctx.arc(x, y, 60, 0., 2 * math.pi) + ctx.fill() + ctx.restore() + + +def main(): + window = Gtk.Window() + test_touch = TestTouch() + + window.add(test_touch) + window.connect("destroy", Gtk.main_quit) + window.show_all() + window.maximize() + Gtk.main() + +if __name__ == "__main__": + main() |