Eolian: Integration of Gesture Layer
This commit is contained in:
parent
db2ab8c3e4
commit
809fbeda4d
|
@ -585,7 +585,9 @@ BUILT_SOURCES = \
|
|||
elm_entry.eo.c \
|
||||
elm_entry.eo.h \
|
||||
elm_flip.eo.c \
|
||||
elm_flip.eo.h
|
||||
elm_flip.eo.h \
|
||||
elm_gesture_layer.eo.c \
|
||||
elm_gesture_layer.eo.h
|
||||
|
||||
EXTRA_DIST += \
|
||||
elm_widget.eo \
|
||||
|
@ -618,7 +620,8 @@ EXTRA_DIST += \
|
|||
elm_dayselector.eo \
|
||||
elm_diskselector.eo \
|
||||
elm_entry.eo \
|
||||
elm_flip.eo
|
||||
elm_flip.eo \
|
||||
elm_gesture_layer.eo
|
||||
|
||||
nodist_includesunstable_HEADERS = \
|
||||
elm_widget.eo.h \
|
||||
|
@ -651,5 +654,6 @@ nodist_includesunstable_HEADERS = \
|
|||
elm_dayselector.eo.h \
|
||||
elm_diskselector.eo.h \
|
||||
elm_entry.eo.h \
|
||||
elm_flip.eo.h
|
||||
elm_flip.eo.h \
|
||||
elm_gesture_layer.eo.h
|
||||
|
||||
|
|
|
@ -5,8 +5,6 @@
|
|||
#include <Elementary.h>
|
||||
#include "elm_priv.h"
|
||||
|
||||
EAPI Eo_Op ELM_OBJ_GESTURE_LAYER_BASE_ID = EO_NOOP;
|
||||
|
||||
#define MY_CLASS ELM_OBJ_GESTURE_LAYER_CLASS
|
||||
|
||||
#define MY_CLASS_NAME "Elm_Gesture_Layer"
|
||||
|
@ -58,7 +56,7 @@ _glayer_buf_dup(void *buf, size_t size)
|
|||
((sd->gesture[T]) ? sd->gesture[T]->test : EINA_FALSE)
|
||||
|
||||
#define ELM_GESTURE_LAYER_DATA_GET(o, sd) \
|
||||
Elm_Gesture_Layer_Smart_Data * sd = eo_data_scope_get(o, MY_CLASS)
|
||||
Elm_Gesture_Layer_Data * sd = eo_data_scope_get(o, MY_CLASS)
|
||||
|
||||
#define ELM_GESTURE_LAYER_DATA_GET_OR_RETURN(o, ptr) \
|
||||
ELM_GESTURE_LAYER_DATA_GET(o, ptr); \
|
||||
|
@ -359,8 +357,8 @@ struct _Rotate_Type /* Fields used by _rotation_test() */
|
|||
};
|
||||
typedef struct _Rotate_Type Rotate_Type;
|
||||
|
||||
typedef struct _Elm_Gesture_Layer_Smart_Data Elm_Gesture_Layer_Smart_Data;
|
||||
struct _Elm_Gesture_Layer_Smart_Data
|
||||
typedef struct _Elm_Gesture_Layer_Data Elm_Gesture_Layer_Data;
|
||||
struct _Elm_Gesture_Layer_Data
|
||||
{
|
||||
Evas_Object *target; /* Target Widget */
|
||||
Event_History *event_history_list;
|
||||
|
@ -536,7 +534,7 @@ _event_flag_get(void *event_info,
|
|||
* @ingroup Elm_Gesture_Layer
|
||||
*/
|
||||
static void
|
||||
_event_consume(Elm_Gesture_Layer_Smart_Data *sd,
|
||||
_event_consume(Elm_Gesture_Layer_Data *sd,
|
||||
void *event_info,
|
||||
Evas_Callback_Type event_type,
|
||||
Evas_Event_Flags ev_flags)
|
||||
|
@ -683,7 +681,7 @@ _state_set(Gesture_Info *g,
|
|||
* @ingroup Elm_Gesture_Layer
|
||||
*/
|
||||
static void
|
||||
_states_reset(Elm_Gesture_Layer_Smart_Data *sd)
|
||||
_states_reset(Elm_Gesture_Layer_Data *sd)
|
||||
{
|
||||
int i;
|
||||
Gesture_Info *p;
|
||||
|
@ -1573,7 +1571,7 @@ static Eina_List *
|
|||
_pointer_event_record(Taps_Type *st,
|
||||
Eina_List *pe_list,
|
||||
Pointer_Event *pe,
|
||||
Elm_Gesture_Layer_Smart_Data *sd,
|
||||
Elm_Gesture_Layer_Data *sd,
|
||||
void *event_info,
|
||||
Evas_Callback_Type event_type)
|
||||
{
|
||||
|
@ -3719,23 +3717,20 @@ _rotate_test(Evas_Object *obj,
|
|||
}
|
||||
}
|
||||
|
||||
static void
|
||||
_elm_gesture_layer_smart_disable(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
|
||||
EOLIAN static Eina_Bool
|
||||
_elm_gesture_layer_elm_widget_disable(Eo *obj, Elm_Gesture_Layer_Data *_pd EINA_UNUSED)
|
||||
{
|
||||
Eina_Bool *ret = va_arg(*list, Eina_Bool *);
|
||||
if (elm_widget_disabled_get(obj))
|
||||
_callbacks_unregister(obj);
|
||||
else
|
||||
_callbacks_register(obj);
|
||||
|
||||
if (ret) *ret = EINA_TRUE;
|
||||
return EINA_TRUE;
|
||||
}
|
||||
|
||||
static void
|
||||
_elm_gesture_layer_smart_add(Eo *obj, void *_pd, va_list *list EINA_UNUSED)
|
||||
EOLIAN static void
|
||||
_elm_gesture_layer_evas_smart_add(Eo *obj, Elm_Gesture_Layer_Data *priv)
|
||||
{
|
||||
Elm_Gesture_Layer_Smart_Data *priv = _pd;
|
||||
|
||||
eo_do_super(obj, MY_CLASS, evas_obj_smart_add());
|
||||
elm_widget_sub_object_parent_add(obj);
|
||||
|
||||
|
@ -3764,12 +3759,11 @@ _elm_gesture_layer_smart_add(Eo *obj, void *_pd, va_list *list EINA_UNUSED)
|
|||
memset(priv->gesture, 0, sizeof(priv->gesture));
|
||||
}
|
||||
|
||||
static void _cbs_clean(Elm_Gesture_Layer_Smart_Data *sd, Elm_Gesture_Type idx, Elm_Gesture_State cb_type);
|
||||
static void _cbs_clean(Elm_Gesture_Layer_Data *sd, Elm_Gesture_Type idx, Elm_Gesture_State cb_type);
|
||||
|
||||
static void
|
||||
_elm_gesture_layer_smart_del(Eo *obj, void *_pd, va_list *list EINA_UNUSED)
|
||||
EOLIAN static void
|
||||
_elm_gesture_layer_evas_smart_del(Eo *obj, Elm_Gesture_Layer_Data *sd)
|
||||
{
|
||||
Elm_Gesture_Layer_Smart_Data *sd = _pd;
|
||||
Pointer_Event *data;
|
||||
int i;
|
||||
|
||||
|
@ -3823,138 +3817,57 @@ elm_gesture_layer_add(Evas_Object *parent)
|
|||
return obj;
|
||||
}
|
||||
|
||||
static void
|
||||
_constructor(Eo *obj, void *_pd EINA_UNUSED, va_list *list EINA_UNUSED)
|
||||
EOLIAN static void
|
||||
_elm_gesture_layer_eo_base_constructor(Eo *obj, Elm_Gesture_Layer_Data *_pd EINA_UNUSED)
|
||||
{
|
||||
eo_do_super(obj, MY_CLASS, eo_constructor());
|
||||
eo_do(obj, evas_obj_type_set(MY_CLASS_NAME_LEGACY));
|
||||
}
|
||||
|
||||
EAPI Eina_Bool
|
||||
elm_gesture_layer_hold_events_get(const Evas_Object *obj)
|
||||
EOLIAN static Eina_Bool
|
||||
_elm_gesture_layer_hold_events_get(Eo *obj EINA_UNUSED, Elm_Gesture_Layer_Data *sd)
|
||||
{
|
||||
ELM_GESTURE_LAYER_CHECK(obj) EINA_FALSE;
|
||||
Eina_Bool ret = EINA_FALSE;
|
||||
eo_do((Eo *) obj, elm_obj_gesture_layer_hold_events_get(&ret));
|
||||
return ret;
|
||||
return !sd->repeat_events;
|
||||
}
|
||||
|
||||
static void
|
||||
_hold_events_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
|
||||
EOLIAN static void
|
||||
_elm_gesture_layer_hold_events_set(Eo *obj EINA_UNUSED, Elm_Gesture_Layer_Data *sd, Eina_Bool hold_events)
|
||||
{
|
||||
Eina_Bool *ret = va_arg(*list, Eina_Bool *);
|
||||
Elm_Gesture_Layer_Smart_Data *sd = _pd;
|
||||
*ret = !sd->repeat_events;
|
||||
}
|
||||
|
||||
EAPI void
|
||||
elm_gesture_layer_hold_events_set(Evas_Object *obj,
|
||||
Eina_Bool hold_events)
|
||||
{
|
||||
ELM_GESTURE_LAYER_CHECK(obj);
|
||||
eo_do(obj, elm_obj_gesture_layer_hold_events_set(hold_events));
|
||||
}
|
||||
|
||||
static void
|
||||
_hold_events_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
|
||||
{
|
||||
Eina_Bool hold_events = va_arg(*list, int);
|
||||
Elm_Gesture_Layer_Smart_Data *sd = _pd;
|
||||
|
||||
sd->repeat_events = !(!!hold_events);
|
||||
}
|
||||
|
||||
EAPI double
|
||||
elm_gesture_layer_zoom_step_get(const Evas_Object *obj)
|
||||
EOLIAN static double
|
||||
_elm_gesture_layer_zoom_step_get(Eo *obj EINA_UNUSED, Elm_Gesture_Layer_Data *sd)
|
||||
{
|
||||
ELM_GESTURE_LAYER_CHECK(obj) 0;
|
||||
double ret = 0;
|
||||
eo_do((Eo *) obj, elm_obj_gesture_layer_zoom_step_get(&ret));
|
||||
return ret;
|
||||
return sd->zoom_step;
|
||||
}
|
||||
|
||||
static void
|
||||
_zoom_step_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
|
||||
EOLIAN static void
|
||||
_elm_gesture_layer_zoom_step_set(Eo *obj EINA_UNUSED, Elm_Gesture_Layer_Data *sd, double step)
|
||||
{
|
||||
double *ret = va_arg(*list, double *);
|
||||
Elm_Gesture_Layer_Smart_Data *sd = _pd;
|
||||
*ret = sd->zoom_step;
|
||||
}
|
||||
|
||||
EAPI void
|
||||
elm_gesture_layer_zoom_step_set(Evas_Object *obj,
|
||||
double step)
|
||||
{
|
||||
ELM_GESTURE_LAYER_CHECK(obj);
|
||||
eo_do(obj, elm_obj_gesture_layer_zoom_step_set(step));
|
||||
}
|
||||
|
||||
static void
|
||||
_zoom_step_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
|
||||
{
|
||||
double step = va_arg(*list, double);
|
||||
Elm_Gesture_Layer_Smart_Data *sd = _pd;
|
||||
|
||||
if (step < 0) return;
|
||||
|
||||
sd->zoom_step = step;
|
||||
}
|
||||
|
||||
EAPI double
|
||||
elm_gesture_layer_rotate_step_get(const Evas_Object *obj)
|
||||
EOLIAN static double
|
||||
_elm_gesture_layer_rotate_step_get(Eo *obj EINA_UNUSED, Elm_Gesture_Layer_Data *sd)
|
||||
{
|
||||
ELM_GESTURE_LAYER_CHECK(obj) 0;
|
||||
double ret = 0;
|
||||
eo_do((Eo *) obj, elm_obj_gesture_layer_rotate_step_get(&ret));
|
||||
return ret;
|
||||
return sd->rotate_step;
|
||||
}
|
||||
|
||||
static void
|
||||
_rotate_step_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
|
||||
EOLIAN static void
|
||||
_elm_gesture_layer_rotate_step_set(Eo *obj EINA_UNUSED, Elm_Gesture_Layer_Data *sd, double step)
|
||||
{
|
||||
double *ret = va_arg(*list, double *);
|
||||
Elm_Gesture_Layer_Smart_Data *sd = _pd;
|
||||
*ret = sd->rotate_step;
|
||||
}
|
||||
|
||||
EAPI void
|
||||
elm_gesture_layer_rotate_step_set(Evas_Object *obj,
|
||||
double step)
|
||||
{
|
||||
ELM_GESTURE_LAYER_CHECK(obj);
|
||||
eo_do(obj, elm_obj_gesture_layer_rotate_step_set(step));
|
||||
}
|
||||
|
||||
static void
|
||||
_rotate_step_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
|
||||
{
|
||||
double step = va_arg(*list, double);
|
||||
Elm_Gesture_Layer_Smart_Data *sd = _pd;
|
||||
|
||||
if (step < 0) return;
|
||||
|
||||
sd->rotate_step = step;
|
||||
}
|
||||
|
||||
EAPI Eina_Bool
|
||||
elm_gesture_layer_attach(Evas_Object *obj,
|
||||
Evas_Object *target)
|
||||
EOLIAN static Eina_Bool
|
||||
_elm_gesture_layer_attach(Eo *obj, Elm_Gesture_Layer_Data *sd, Evas_Object *target)
|
||||
{
|
||||
ELM_GESTURE_LAYER_CHECK(obj) EINA_FALSE;
|
||||
Eina_Bool ret = EINA_FALSE;
|
||||
eo_do(obj, elm_obj_gesture_layer_attach(target, &ret));
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void
|
||||
_attach(Eo *obj, void *_pd, va_list *list)
|
||||
{
|
||||
Evas_Object *target = va_arg(*list, Evas_Object *);
|
||||
Eina_Bool *ret = va_arg(*list, Eina_Bool *);
|
||||
Elm_Gesture_Layer_Smart_Data *sd = _pd;
|
||||
if (ret) *ret = EINA_FALSE;
|
||||
|
||||
if (!target) return;
|
||||
if (!target) return EINA_FALSE;
|
||||
|
||||
/* if was attached before, unregister callbacks first */
|
||||
if (sd->target)
|
||||
|
@ -3963,11 +3876,11 @@ _attach(Eo *obj, void *_pd, va_list *list)
|
|||
sd->target = target;
|
||||
|
||||
_callbacks_register(obj);
|
||||
if (ret) *ret = EINA_TRUE;
|
||||
return EINA_TRUE;
|
||||
}
|
||||
|
||||
static void
|
||||
_cbs_clean(Elm_Gesture_Layer_Smart_Data *sd,
|
||||
_cbs_clean(Elm_Gesture_Layer_Data *sd,
|
||||
Elm_Gesture_Type idx,
|
||||
Elm_Gesture_State cb_type)
|
||||
{
|
||||
|
@ -3983,27 +3896,9 @@ _cbs_clean(Elm_Gesture_Layer_Smart_Data *sd,
|
|||
SET_TEST_BIT(sd->gesture[idx]);
|
||||
}
|
||||
|
||||
EAPI void
|
||||
elm_gesture_layer_cb_set(Evas_Object *obj,
|
||||
Elm_Gesture_Type idx,
|
||||
Elm_Gesture_State cb_type,
|
||||
Elm_Gesture_Event_Cb cb,
|
||||
void *data)
|
||||
EOLIAN static void
|
||||
_elm_gesture_layer_cb_set(Eo *obj, Elm_Gesture_Layer_Data *sd, Elm_Gesture_Type idx, Elm_Gesture_State cb_type, Elm_Gesture_Event_Cb cb, void *data)
|
||||
{
|
||||
ELM_GESTURE_LAYER_CHECK(obj);
|
||||
eo_do(obj, elm_obj_gesture_layer_cb_set(idx, cb_type, cb, data));
|
||||
}
|
||||
|
||||
static void
|
||||
_cb_set(Eo *obj, void *_pd, va_list *list)
|
||||
{
|
||||
Elm_Gesture_Type idx = va_arg(*list, Elm_Gesture_Type);
|
||||
Elm_Gesture_State cb_type = va_arg(*list, Elm_Gesture_State);
|
||||
Elm_Gesture_Event_Cb cb = va_arg(*list, Elm_Gesture_Event_Cb);
|
||||
void *data = va_arg(*list, void *);
|
||||
|
||||
Elm_Gesture_Layer_Smart_Data *sd = _pd;
|
||||
|
||||
/* Clear gesture intermediate data, stop any timers */
|
||||
if (IS_TESTED_GESTURE(sd->gesture[idx]))
|
||||
_glayer_tests_array[idx].reset(sd->gesture[idx]);
|
||||
|
@ -4012,29 +3907,12 @@ _cb_set(Eo *obj, void *_pd, va_list *list)
|
|||
eo_do(obj, elm_obj_gesture_layer_cb_add(idx, cb_type, cb, data));
|
||||
}
|
||||
|
||||
EAPI void
|
||||
elm_gesture_layer_cb_add(Evas_Object *obj,
|
||||
Elm_Gesture_Type idx,
|
||||
Elm_Gesture_State cb_type,
|
||||
Elm_Gesture_Event_Cb cb,
|
||||
void *data)
|
||||
EOLIAN static void
|
||||
_elm_gesture_layer_cb_add(Eo *obj, Elm_Gesture_Layer_Data *sd, Elm_Gesture_Type idx, Elm_Gesture_State cb_type, Elm_Gesture_Event_Cb cb, void *data)
|
||||
{
|
||||
ELM_GESTURE_LAYER_CHECK(obj);
|
||||
eo_do(obj, elm_obj_gesture_layer_cb_add(idx, cb_type, cb, data));
|
||||
}
|
||||
|
||||
static void
|
||||
_cb_add(Eo *obj, void *_pd, va_list *list)
|
||||
{
|
||||
Elm_Gesture_Type idx = va_arg(*list, Elm_Gesture_Type);
|
||||
Elm_Gesture_State cb_type = va_arg(*list, Elm_Gesture_State);
|
||||
Elm_Gesture_Event_Cb cb = va_arg(*list, Elm_Gesture_Event_Cb);
|
||||
void *data = va_arg(*list, void *);
|
||||
|
||||
if (!cb) return;
|
||||
|
||||
Gesture_Info *p;
|
||||
Elm_Gesture_Layer_Smart_Data *sd = _pd;
|
||||
|
||||
if (!sd->gesture[idx])
|
||||
sd->gesture[idx] = calloc(1, sizeof(Gesture_Info));
|
||||
|
@ -4054,27 +3932,9 @@ _cb_add(Eo *obj, void *_pd, va_list *list)
|
|||
SET_TEST_BIT(p);
|
||||
}
|
||||
|
||||
EAPI void
|
||||
elm_gesture_layer_cb_del(Evas_Object *obj,
|
||||
Elm_Gesture_Type idx,
|
||||
Elm_Gesture_State cb_type,
|
||||
Elm_Gesture_Event_Cb cb,
|
||||
void *data)
|
||||
EOLIAN static void
|
||||
_elm_gesture_layer_cb_del(Eo *obj EINA_UNUSED, Elm_Gesture_Layer_Data *sd, Elm_Gesture_Type idx, Elm_Gesture_State cb_type, Elm_Gesture_Event_Cb cb, void *data)
|
||||
{
|
||||
ELM_GESTURE_LAYER_CHECK(obj);
|
||||
eo_do(obj, elm_obj_gesture_layer_cb_del(idx, cb_type, cb, data));
|
||||
}
|
||||
|
||||
static void
|
||||
_cb_del(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
|
||||
{
|
||||
Elm_Gesture_Type idx = va_arg(*list, Elm_Gesture_Type);
|
||||
Elm_Gesture_State cb_type = va_arg(*list, Elm_Gesture_State);
|
||||
Elm_Gesture_Event_Cb cb = va_arg(*list, Elm_Gesture_Event_Cb);
|
||||
void *data = va_arg(*list, void *);
|
||||
|
||||
Elm_Gesture_Layer_Smart_Data *sd = _pd;
|
||||
|
||||
if (!sd->gesture[idx]) return;
|
||||
|
||||
Eina_Inlist *itr;
|
||||
|
@ -4272,98 +4132,25 @@ elm_gesture_layer_double_tap_timeout_get(const Evas_Object *obj)
|
|||
return sd->double_tap_timeout;
|
||||
}
|
||||
|
||||
EAPI void
|
||||
elm_gesture_layer_tap_finger_size_set(Evas_Object *obj,
|
||||
Evas_Coord sz)
|
||||
EOLIAN static void
|
||||
_elm_gesture_layer_tap_finger_size_set(Eo *obj EINA_UNUSED, Elm_Gesture_Layer_Data *sd, Evas_Coord sz)
|
||||
{
|
||||
ELM_GESTURE_LAYER_CHECK(obj);
|
||||
eo_do(obj, elm_obj_gesture_layer_tap_finger_size_set(sz));
|
||||
}
|
||||
|
||||
static void
|
||||
_tap_finger_size_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
|
||||
{
|
||||
Evas_Coord sz = va_arg(*list, Evas_Coord);
|
||||
Elm_Gesture_Layer_Smart_Data *sd = _pd;
|
||||
|
||||
if (sz < 0)
|
||||
sz = 0; /* Should not be negative, will reset to system value */
|
||||
|
||||
sd->tap_finger_size = sz;
|
||||
}
|
||||
|
||||
EAPI Evas_Coord
|
||||
elm_gesture_layer_tap_finger_size_get(const Evas_Object *obj)
|
||||
EOLIAN static Evas_Coord
|
||||
_elm_gesture_layer_tap_finger_size_get(Eo *obj EINA_UNUSED, Elm_Gesture_Layer_Data *sd)
|
||||
{
|
||||
ELM_GESTURE_LAYER_CHECK(obj) elm_config_finger_size_get();
|
||||
Evas_Coord ret = 0;
|
||||
eo_do((Eo *) obj, elm_obj_gesture_layer_tap_finger_size_get(&ret));
|
||||
return ret;
|
||||
return sd->tap_finger_size;
|
||||
}
|
||||
|
||||
static void
|
||||
_tap_finger_size_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
|
||||
_elm_gesture_layer_class_constructor(Eo_Class *klass)
|
||||
{
|
||||
Evas_Coord *ret = va_arg(*list, Evas_Coord *);
|
||||
Elm_Gesture_Layer_Smart_Data *sd = _pd;
|
||||
*ret = sd->tap_finger_size;
|
||||
}
|
||||
|
||||
static void
|
||||
_class_constructor(Eo_Class *klass)
|
||||
{
|
||||
const Eo_Op_Func_Description func_desc[] = {
|
||||
EO_OP_FUNC(EO_BASE_ID(EO_BASE_SUB_ID_CONSTRUCTOR), _constructor),
|
||||
|
||||
EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_ADD), _elm_gesture_layer_smart_add),
|
||||
EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_DEL), _elm_gesture_layer_smart_del),
|
||||
|
||||
EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_DISABLE), _elm_gesture_layer_smart_disable),
|
||||
|
||||
EO_OP_FUNC(ELM_OBJ_GESTURE_LAYER_ID(ELM_OBJ_GESTURE_LAYER_SUB_ID_HOLD_EVENTS_GET), _hold_events_get),
|
||||
EO_OP_FUNC(ELM_OBJ_GESTURE_LAYER_ID(ELM_OBJ_GESTURE_LAYER_SUB_ID_HOLD_EVENTS_SET), _hold_events_set),
|
||||
EO_OP_FUNC(ELM_OBJ_GESTURE_LAYER_ID(ELM_OBJ_GESTURE_LAYER_SUB_ID_ZOOM_STEP_GET), _zoom_step_get),
|
||||
EO_OP_FUNC(ELM_OBJ_GESTURE_LAYER_ID(ELM_OBJ_GESTURE_LAYER_SUB_ID_ZOOM_STEP_SET), _zoom_step_set),
|
||||
EO_OP_FUNC(ELM_OBJ_GESTURE_LAYER_ID(ELM_OBJ_GESTURE_LAYER_SUB_ID_ROTATE_STEP_GET), _rotate_step_get),
|
||||
EO_OP_FUNC(ELM_OBJ_GESTURE_LAYER_ID(ELM_OBJ_GESTURE_LAYER_SUB_ID_ROTATE_STEP_SET), _rotate_step_set),
|
||||
EO_OP_FUNC(ELM_OBJ_GESTURE_LAYER_ID(ELM_OBJ_GESTURE_LAYER_SUB_ID_ATTACH), _attach),
|
||||
EO_OP_FUNC(ELM_OBJ_GESTURE_LAYER_ID(ELM_OBJ_GESTURE_LAYER_SUB_ID_CB_SET), _cb_set),
|
||||
EO_OP_FUNC(ELM_OBJ_GESTURE_LAYER_ID(ELM_OBJ_GESTURE_LAYER_SUB_ID_TAP_FINGER_SIZE_SET), _tap_finger_size_set),
|
||||
EO_OP_FUNC(ELM_OBJ_GESTURE_LAYER_ID(ELM_OBJ_GESTURE_LAYER_SUB_ID_TAP_FINGER_SIZE_GET), _tap_finger_size_get),
|
||||
EO_OP_FUNC(ELM_OBJ_GESTURE_LAYER_ID(ELM_OBJ_GESTURE_LAYER_SUB_ID_CB_ADD), _cb_add),
|
||||
EO_OP_FUNC(ELM_OBJ_GESTURE_LAYER_ID(ELM_OBJ_GESTURE_LAYER_SUB_ID_CB_DEL), _cb_del),
|
||||
EO_OP_FUNC_SENTINEL
|
||||
};
|
||||
eo_class_funcs_set(klass, func_desc);
|
||||
|
||||
evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
|
||||
}
|
||||
|
||||
static const Eo_Op_Description op_desc[] = {
|
||||
EO_OP_DESCRIPTION(ELM_OBJ_GESTURE_LAYER_SUB_ID_HOLD_EVENTS_GET, "Call this function to get repeat-events settings."),
|
||||
EO_OP_DESCRIPTION(ELM_OBJ_GESTURE_LAYER_SUB_ID_HOLD_EVENTS_SET, "This function is to make gesture-layer repeat events."),
|
||||
EO_OP_DESCRIPTION(ELM_OBJ_GESTURE_LAYER_SUB_ID_ZOOM_STEP_GET, "This function returns step-value for zoom action."),
|
||||
EO_OP_DESCRIPTION(ELM_OBJ_GESTURE_LAYER_SUB_ID_ZOOM_STEP_SET, "This function sets step-value for zoom action."),
|
||||
EO_OP_DESCRIPTION(ELM_OBJ_GESTURE_LAYER_SUB_ID_ROTATE_STEP_GET, "This function returns step-value for rotate action."),
|
||||
EO_OP_DESCRIPTION(ELM_OBJ_GESTURE_LAYER_SUB_ID_ROTATE_STEP_SET, "This function sets step-value for rotate action."),
|
||||
EO_OP_DESCRIPTION(ELM_OBJ_GESTURE_LAYER_SUB_ID_ATTACH, "Attach a given gesture layer widget to an Evas object, thus setting the widget's target."),
|
||||
EO_OP_DESCRIPTION(ELM_OBJ_GESTURE_LAYER_SUB_ID_CB_SET, "Use function to set callbacks to be notified about change of state of gesture."),
|
||||
EO_OP_DESCRIPTION(ELM_OBJ_GESTURE_LAYER_SUB_ID_TAP_FINGER_SIZE_SET, "Use function to set valid touch-area size for finger."),
|
||||
EO_OP_DESCRIPTION(ELM_OBJ_GESTURE_LAYER_SUB_ID_TAP_FINGER_SIZE_GET, "This function returns the valid touch-area size for finger."),
|
||||
EO_OP_DESCRIPTION(ELM_OBJ_GESTURE_LAYER_SUB_ID_CB_ADD, "Use function to add callbacks to be notified about change of state of gesture."),
|
||||
EO_OP_DESCRIPTION(ELM_OBJ_GESTURE_LAYER_SUB_ID_CB_DEL, "Use function to remove added callbacks."),
|
||||
EO_OP_DESCRIPTION_SENTINEL
|
||||
};
|
||||
|
||||
static const Eo_Class_Description class_desc = {
|
||||
EO_VERSION,
|
||||
MY_CLASS_NAME,
|
||||
EO_CLASS_TYPE_REGULAR,
|
||||
EO_CLASS_DESCRIPTION_OPS(&ELM_OBJ_GESTURE_LAYER_BASE_ID, op_desc, ELM_OBJ_GESTURE_LAYER_SUB_ID_LAST),
|
||||
NULL,
|
||||
sizeof(Elm_Gesture_Layer_Smart_Data),
|
||||
_class_constructor,
|
||||
NULL
|
||||
};
|
||||
|
||||
EO_DEFINE_CLASS(elm_obj_gesture_layer_class_get, &class_desc, ELM_OBJ_WIDGET_CLASS, NULL);
|
||||
#include "elm_gesture_layer.eo.c"
|
||||
|
|
|
@ -0,0 +1,162 @@
|
|||
class Elm_Gesture_Layer (Elm_Widget)
|
||||
{
|
||||
eo_prefix: elm_obj_gesture_layer;
|
||||
properties {
|
||||
zoom_step {
|
||||
set {
|
||||
/*@
|
||||
This function sets step-value for zoom action.
|
||||
Set step to any positive value.
|
||||
Cancel step setting by setting to 0
|
||||
|
||||
@see elm_gesture_layer_zoom_step_get() */
|
||||
}
|
||||
get {
|
||||
/*@
|
||||
This function returns step-value for zoom action.
|
||||
|
||||
@return zoom step value.
|
||||
|
||||
@see elm_gesture_layer_zoom_step_set() */
|
||||
}
|
||||
values {
|
||||
double step; /*@ new zoom step value. */
|
||||
}
|
||||
}
|
||||
tap_finger_size {
|
||||
set {
|
||||
/*@
|
||||
@since 1.8
|
||||
This function sets the gesture layer finger-size for taps
|
||||
If not set, this size taken from elm_config.
|
||||
Set to ZERO if you want GLayer to use system finger size value (default) */
|
||||
}
|
||||
get {
|
||||
/*@
|
||||
@since 1.8
|
||||
This function returns the gesture layer finger-size for taps
|
||||
|
||||
@return Finger size that is currently used by Gesture Layer for taps. */
|
||||
}
|
||||
values {
|
||||
Evas_Coord sz; /*@ Finger size */
|
||||
}
|
||||
}
|
||||
hold_events {
|
||||
set {
|
||||
/*@
|
||||
This function is to make gesture-layer repeat events.
|
||||
Set this if you like to get the raw events only if gestures were not
|
||||
detected.
|
||||
Clear this if you like gesture layer to forward events as testing gestures. */
|
||||
}
|
||||
get {
|
||||
/*@
|
||||
Call this function to get repeat-events settings.
|
||||
|
||||
@return repeat events settings.
|
||||
@see elm_gesture_layer_hold_events_set() */
|
||||
}
|
||||
values {
|
||||
Eina_Bool hold_events; /*@ hold events or not. */
|
||||
}
|
||||
}
|
||||
rotate_step {
|
||||
set {
|
||||
/*@
|
||||
This function sets step-value for rotate action.
|
||||
Set step to any positive value.
|
||||
Cancel step setting by setting to 0 */
|
||||
}
|
||||
get {
|
||||
/*@
|
||||
This function returns step-value for rotate action.
|
||||
|
||||
@return rotate step value. */
|
||||
}
|
||||
values {
|
||||
double step; /*@ new rotate step value. */
|
||||
}
|
||||
}
|
||||
cb {
|
||||
set {
|
||||
/*@
|
||||
Use function to set callbacks to be notified about
|
||||
change of state of gesture.
|
||||
When a user registers a callback with this function
|
||||
this means this gesture has to be tested.
|
||||
|
||||
When ALL callbacks for a gesture are set to NULL
|
||||
it means user isn't interested in gesture-state
|
||||
and it will not be tested. */
|
||||
}
|
||||
values {
|
||||
Elm_Gesture_Type idx; /*@ The gesture you would like to track its state. */
|
||||
Elm_Gesture_State cb_type; /*@ what event this callback tracks: START, MOVE, END, ABORT. */
|
||||
Elm_Gesture_Event_Cb cb; /*@ callback function pointer. */
|
||||
void *data; /*@ user info to be sent to callback (usually, Smart Data) */
|
||||
}
|
||||
}
|
||||
}
|
||||
methods {
|
||||
attach {
|
||||
/*@
|
||||
Attach a given gesture layer widget to an Evas object, thus setting
|
||||
the widget's @b target.
|
||||
|
||||
A gesture layer target may be whichever Evas object one
|
||||
chooses. This will be object @a obj will listen all mouse and key
|
||||
events from, to report the gestures made upon it back.
|
||||
|
||||
@return @c EINA_TRUE, on success, @c EINA_FALSE otherwise. */
|
||||
|
||||
return Eina_Bool;
|
||||
params {
|
||||
@in Evas_Object *target; /*@ Object to attach to @a obj (target) */
|
||||
}
|
||||
}
|
||||
cb_del {
|
||||
/*@
|
||||
Use this function to remove a callback that has been added
|
||||
to be notified about change of state of gesture. */
|
||||
|
||||
params {
|
||||
@in Elm_Gesture_Type idx; /*@ The gesture you would like to track its state. */
|
||||
@in Elm_Gesture_State cb_type; /*@ what event this callback tracks: START, MOVE, END, ABORT. */
|
||||
@in Elm_Gesture_Event_Cb cb; /*@ callback function pointer. */
|
||||
@in void *data; /*@ user info for the callback (usually, Smart Data) */
|
||||
}
|
||||
}
|
||||
cb_add {
|
||||
/*@
|
||||
Use function to add callbacks to be notified about
|
||||
change of state of gesture.
|
||||
When a user registers a callback with this function
|
||||
this means this gesture has to be tested.
|
||||
|
||||
When ALL callbacks for a gesture are set to NULL
|
||||
it means user isn't interested in gesture-state
|
||||
and it will not be tested.
|
||||
|
||||
If a function was already set for this gesture/type/state, it will be
|
||||
replaced by the new one. For ABI compat, callbacks added by
|
||||
elm_gesture_layer_cb_add will be removed. It is recommended to
|
||||
use only one of these functions for a gesture object. */
|
||||
|
||||
params {
|
||||
@in Elm_Gesture_Type idx; /*@ The gesture you would like to track its state. */
|
||||
@in Elm_Gesture_State cb_type; /*@ what event this callback tracks: START, MOVE, END, ABORT. */
|
||||
@in Elm_Gesture_Event_Cb cb; /*@ callback function pointer. */
|
||||
@in void *data; /*@ user info to be sent to callback (usually, Smart Data) */
|
||||
}
|
||||
}
|
||||
}
|
||||
implements {
|
||||
class::constructor;
|
||||
Eo_Base::constructor;
|
||||
Evas_Smart::add;
|
||||
Evas_Smart::del;
|
||||
Elm_Widget::disable;
|
||||
}
|
||||
|
||||
}
|
|
@ -1,3 +1,6 @@
|
|||
#include "elm_gesture_layer.eo.h"
|
||||
|
||||
#if 0
|
||||
#define ELM_OBJ_GESTURE_LAYER_CLASS elm_obj_gesture_layer_class_get()
|
||||
|
||||
const Eo_Class *elm_obj_gesture_layer_class_get(void) EINA_CONST;
|
||||
|
@ -214,3 +217,4 @@ enum
|
|||
* @ingroup Elm_Gesture_Layer
|
||||
*/
|
||||
#define elm_obj_gesture_layer_tap_finger_size_get(ret) ELM_OBJ_GESTURE_LAYER_ID(ELM_OBJ_GESTURE_LAYER_SUB_ID_TAP_FINGER_SIZE_GET), EO_TYPECHECK(Evas_Coord *, ret)
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue