From f80189c3435ae4b44aed626ce08682e19e349ada Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Wed, 12 Feb 2020 09:02:48 -0500 Subject: [PATCH] elm_test: add zoom recognizer handling to gesture test Reviewed-by: Marcel Hollerbach Differential Revision: https://phab.enlightenment.org/D11330 --- src/bin/elementary/test_gesture_framework.c | 48 +++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/src/bin/elementary/test_gesture_framework.c b/src/bin/elementary/test_gesture_framework.c index 3b9e57a986..41a9ffd49a 100644 --- a/src/bin/elementary/test_gesture_framework.c +++ b/src/bin/elementary/test_gesture_framework.c @@ -223,6 +223,33 @@ finger_flick_abort(void *data , Efl_Canvas_Gesture *tap EINA_UNUSED) printf("Flick Aborted\n"); } +static void +finger_zoom_start(void *data , Efl_Canvas_Gesture *tap) +{ + Eina_Position2D pos = efl_gesture_hotspot_get(tap); + + _color_and_icon_set(data, ZOOM_NAME, 1, MAX_TAP, START_COLOR); + printf("Zoom Gesture started x,y=<%d,%d> \n", pos.x, pos.y); +} + +static void +finger_zoom_end(void *data , Efl_Canvas_Gesture *tap) +{ + Eina_Position2D pos = efl_gesture_hotspot_get(tap); + double zoom = efl_gesture_zoom_get(tap); + double radius = efl_gesture_zoom_radius_get(tap); + + _color_and_icon_set(data, ZOOM_NAME, 1, MAX_TAP, END_COLOR); + printf("Zoom Gesture ended x,y=<%d,%d> zoom=<%g> radius=<%f>\n", pos.x, pos.y, zoom, radius); +} + +static void +finger_zoom_abort(void *data , Efl_Canvas_Gesture *tap EINA_UNUSED) +{ + _color_and_icon_set(data, ZOOM_NAME, 1, MAX_TAP, ABORT_COLOR); + printf("Zoom Aborted\n"); +} + static void finger_momentum_start(void *data , Efl_Canvas_Gesture *tap) { @@ -404,6 +431,26 @@ flick_gesture_cb(void *data , const Efl_Event *ev) } } +static void +zoom_gesture_cb(void *data , const Efl_Event *ev) +{ + Efl_Canvas_Gesture *g = ev->info; + switch(efl_gesture_state_get(g)) + { + case EFL_GESTURE_STATE_STARTED: + finger_zoom_start(data, g); + break; + case EFL_GESTURE_STATE_CANCELED: + finger_zoom_abort(data, g); + break; + case EFL_GESTURE_STATE_FINISHED: + finger_zoom_end(data, g); + break; + default: + break; + } +} + static void momentum_gesture_cb(void *data , const Efl_Event *ev) { @@ -694,6 +741,7 @@ test_gesture_framework(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, efl_event_callback_add(target, EFL_EVENT_GESTURE_TRIPLE_TAP, triple_tap_gesture_cb, infra); efl_event_callback_add(target, EFL_EVENT_GESTURE_MOMENTUM, momentum_gesture_cb, infra); efl_event_callback_add(target, EFL_EVENT_GESTURE_FLICK, flick_gesture_cb, infra); + efl_event_callback_add(target, EFL_EVENT_GESTURE_ZOOM, zoom_gesture_cb, infra); /* Update color state 20 times a second */ infra->colortimer = ecore_timer_add(0.05, _icon_color_set_cb, infra->icons);