evas/gesture: added recognizer and tap recognizer implementation

This commit is contained in:
smohanty 2017-09-19 17:05:48 +09:00 committed by Jean-Philippe Andre
parent 5af499b01b
commit 4b997e89e5
3 changed files with 32 additions and 6 deletions

View File

@ -268,6 +268,8 @@ lib/evas/canvas/efl_animation_object_group_sequential.c \
lib/evas/gesture/efl_gesture_touch.c \
lib/evas/gesture/efl_gesture.c \
lib/evas/gesture/efl_gesture_tap.c \
lib/evas/gesture/efl_gesture_recognizer.c \
lib/evas/gesture/efl_gesture_recognizer_tap.c \
$(NULL)
EXTRA_DIST2 += \

View File

@ -0,0 +1,22 @@
#include "efl_gesture_private.h"
#define MY_CLASS EFL_GESTURE_RECOGNIZER_CLASS
EOLIAN static Eina_Value *
_efl_gesture_recognizer_config_get(Eo *obj EINA_UNUSED, Efl_Gesture_Recognizer_Data *pd, const char *name)
{
return efl_gesture_manager_config_get(pd->manager, name);
}
EOLIAN static void
_efl_gesture_recognizer_reset(Eo *obj EINA_UNUSED, Efl_Gesture_Recognizer_Data *pd EINA_UNUSED,
Efl_Gesture *gesture EINA_UNUSED)
{
}
#include "efl_gesture_recognizer.eo.c"

View File

@ -21,10 +21,10 @@ _efl_gesture_recognizer_tap_efl_object_destructor(Eo *obj EINA_UNUSED, Efl_Gestu
}
EOLIAN static Efl_Gesture *
_efl_gesture_recognizer_tap_efl_gesture_recognizer_create(Eo *obj EINA_UNUSED, Efl_Gesture_Recognizer_Tap_Data *pd EINA_UNUSED,
Efl_Object *target EINA_UNUSED)
_efl_gesture_recognizer_tap_efl_gesture_recognizer_create(Eo *obj, Efl_Gesture_Recognizer_Tap_Data *pd EINA_UNUSED,
Efl_Object *target EINA_UNUSED)
{
return efl_add(EFL_GESTURE_TAP_CLASS, NULL);
return efl_add(EFL_GESTURE_TAP_CLASS, obj);
}
EOLIAN static Efl_Gesture_Recognizer_Result
@ -34,6 +34,7 @@ _efl_gesture_recognizer_tap_efl_gesture_recognizer_recognize(Eo *obj EINA_UNUSED
Efl_Gesture_Touch *event EINA_UNUSED)
{
double dist_x, dist_y, length, x, y;
Eina_Vector2 pos;
Efl_Gesture_Recognizer_Result result = EFL_GESTURE_CANCEL;
switch (efl_gesture_touch_state_get(event))
@ -41,8 +42,9 @@ _efl_gesture_recognizer_tap_efl_gesture_recognizer_recognize(Eo *obj EINA_UNUSED
case EFL_GESTURE_TOUCH_BEGIN:
{
efl_gesture_touch_start_point(event, &x, &y);
efl_gesture_tap_position_set(gesture, EINA_POSITION2D(x, y));
efl_gesture_hotspot_set(gesture, EINA_POSITION2D(x, y));
eina_vector2_set(&pos, x, y);
efl_gesture_tap_position_set(gesture, pos);
efl_gesture_hotspot_set(gesture, pos);
result = EFL_GESTURE_TRIGGER;
break;
}
@ -77,7 +79,7 @@ _efl_gesture_recognizer_tap_efl_gesture_recognizer_reset(Eo *obj,
{
Efl_Gesture_Tap_Data *tap;
tap = efl_data_scope_get(gesture, EFL_GESTURE_TAP_CLASS);
tap->pos = EINA_POSITION2D(0, 0);
eina_vector2_set(&tap->pos, 0, 0);
efl_gesture_recognizer_reset(efl_super(obj, MY_CLASS), gesture);
}