efl
41 строка · 1.5 Кб
1#include <Efl_Ui.h>2#include "custom_recognizer2.eo.h"3#define MY_CLASS CUSTOM_RECOGNIZER2_CLASS4
5typedef struct Custom_Recognizer2_Data6{
7} Custom_Recognizer2_Data;8
9EOLIAN static Eo *10_custom_recognizer2_efl_object_finalize(Eo *obj, Custom_Recognizer2_Data *pd EINA_UNUSED)11{
12efl_gesture_recognizer_custom_gesture_name_set(obj, "custom_gesture2");13return efl_finalize(efl_super(obj, MY_CLASS));14}
15
16EOLIAN static Efl_Canvas_Gesture_Recognizer_Result17_custom_recognizer2_efl_canvas_gesture_recognizer_recognize(Eo *obj EINA_UNUSED, Custom_Recognizer2_Data *pd EINA_UNUSED,18Efl_Canvas_Gesture *gesture EINA_UNUSED, Efl_Object *watched EINA_UNUSED,19Efl_Canvas_Gesture_Touch *event)20{
21Eina_Position2D start = efl_gesture_touch_start_point_get(event);22Eina_Position2D cur = efl_gesture_touch_current_point_get(event);23switch (efl_gesture_touch_state_get(event))24{25case EFL_GESTURE_TOUCH_STATE_BEGIN:26return EFL_GESTURE_RECOGNIZER_RESULT_TRIGGER;27case EFL_GESTURE_TOUCH_STATE_UPDATE:28if (EINA_POSITION2D_EQ(start, cur))29return EFL_GESTURE_RECOGNIZER_RESULT_TRIGGER;30if ((cur.x - start.x == 1) && (cur.y == start.y))31return EFL_GESTURE_RECOGNIZER_RESULT_FINISH;32case EFL_GESTURE_TOUCH_STATE_END:33default:34
35break;36}37
38return EFL_GESTURE_RECOGNIZER_RESULT_CANCEL;39}
40
41#include "custom_recognizer2.eo.c"42