free(gesture);
}
+EINTERN void
+e_service_gesture_type_set(E_Policy_Gesture *gesture, E_Policy_Gesture_Type type)
+{
+ EINA_SAFETY_ON_NULL_RETURN(gesture);
+
+ if (gesture->type == type)
+ return;
+
+ gesture->type = type;
+ if (type == POL_GESTURE_TYPE_NONE)
+ evas_object_repeat_events_set(gesture->obj, EINA_FALSE);
+ else
+ evas_object_repeat_events_set(gesture->obj, EINA_TRUE);
+}
+
EINTERN void
e_service_gesture_cb_set(E_Policy_Gesture *gesture, E_Policy_Gesture_Start_Cb cb_start, E_Policy_Gesture_Move_Cb cb_move, E_Policy_Gesture_End_Cb cb_end, void *data)
{
EINTERN E_Policy_Gesture *e_service_gesture_add(Evas_Object *obj, E_Policy_Gesture_Type type);
EINTERN void e_service_gesture_del(E_Policy_Gesture *gesture);
+EINTERN void e_service_gesture_type_set(E_Policy_Gesture *gesture, E_Policy_Gesture_Type type);
EINTERN void e_service_gesture_cb_set(E_Policy_Gesture *gesture, E_Policy_Gesture_Start_Cb cb_start, E_Policy_Gesture_Move_Cb cb_move, E_Policy_Gesture_End_Cb cb_end, void *data);
EINTERN void e_service_gesture_angle_set(E_Policy_Gesture *gesture, int angle);
if (!obj)
return;
- e_service_region_cb_set(obj,
- _region_obj_cb_gesture_start,
- _region_obj_cb_gesture_move,
- _region_obj_cb_gesture_end, qp);
+ e_service_region_gesture_set(obj,
+ POL_GESTURE_TYPE_NONE,
+ _region_obj_cb_gesture_start,
+ _region_obj_cb_gesture_move,
+ _region_obj_cb_gesture_end, qp);
/* Add handler object to smart member to follow the client's stack */
evas_object_smart_member_add(obj, ec->frame);
/* FIXME: make me move to explicit layer something like POL_LAYER */
evas_object_layer_set(indi_obj, EVAS_LAYER_MAX - 1);
- e_service_region_cb_set(indi_obj,
- _region_obj_cb_gesture_start,
- _region_obj_cb_gesture_move,
- _region_obj_cb_gesture_end, qp);
+ e_service_region_gesture_set(indi_obj,
+ POL_GESTURE_TYPE_LINE,
+ _region_obj_cb_gesture_start,
+ _region_obj_cb_gesture_move,
+ _region_obj_cb_gesture_end, qp);
evas_object_show(indi_obj);
}
EINTERN Eina_Bool
-e_service_region_cb_set(Evas_Object *ro, E_Policy_Gesture_Start_Cb cb_start, E_Policy_Gesture_Move_Cb cb_move, E_Policy_Gesture_End_Cb cb_end, void *data)
+e_service_region_gesture_set(Evas_Object *ro, E_Policy_Gesture_Type type, E_Policy_Gesture_Start_Cb cb_start, E_Policy_Gesture_Move_Cb cb_move, E_Policy_Gesture_End_Cb cb_end, void *data)
{
E_Policy_Gesture *gesture;
INF("Set Callback function");
if (!region->gesture)
{
- gesture = e_service_gesture_add(ro, POL_GESTURE_TYPE_LINE);
+ gesture = e_service_gesture_add(ro, type);
if (!gesture)
return EINA_FALSE;
region->gesture = gesture;
}
+ else
+ e_service_gesture_type_set(region->gesture, type);
e_service_gesture_cb_set(region->gesture, cb_start, cb_move, cb_end, data);
EINTERN Evas_Object *e_service_region_object_new(void);
EINTERN Eina_Bool e_service_region_rectangle_set(Evas_Object *ro, E_Policy_Angle_Map ridx, int x, int y, int w, int h);
EINTERN Eina_Bool e_service_region_rectangle_get(Evas_Object *ro, E_Policy_Angle_Map ridx, int *x, int *y, int *w, int *h);
-EINTERN Eina_Bool e_service_region_cb_set(Evas_Object *ro, E_Policy_Gesture_Start_Cb cb_start, E_Policy_Gesture_Move_Cb cb_move, E_Policy_Gesture_End_Cb cb_end, void *data);
+EINTERN Eina_Bool e_service_region_gesture_set(Evas_Object *ro, E_Policy_Gesture_Type type, E_Policy_Gesture_Start_Cb cb_start, E_Policy_Gesture_Move_Cb cb_move, E_Policy_Gesture_End_Cb cb_end, void *data);
#endif