diff --git a/src/Makefile_Evas.am b/src/Makefile_Evas.am index ce2607b024..a408b492fa 100644 --- a/src/Makefile_Evas.am +++ b/src/Makefile_Evas.am @@ -43,7 +43,7 @@ evas_eolian_pub_files = \ lib/evas/canvas/efl_canvas_surface_wayland.eo \ lib/evas/canvas/evas_filter.eo \ lib/evas/canvas/evas_smart_clipped.eo \ - lib/evas/canvas/efl_pointer_event.eo \ + lib/evas/canvas/efl_event_pointer.eo \ $(NULL) evas_eolian_legacy_files = \ @@ -198,7 +198,7 @@ lib/evas/canvas/efl_canvas_surface.c \ lib/evas/canvas/efl_canvas_surface_tbm.c \ lib/evas/canvas/efl_canvas_surface_x11.c \ lib/evas/canvas/efl_canvas_surface_wayland.c \ -lib/evas/canvas/efl_pointer_event.c \ +lib/evas/canvas/efl_event_pointer.c \ $(NULL) EXTRA_DIST += \ diff --git a/src/lib/ecore_evas/ecore_evas.c b/src/lib/ecore_evas/ecore_evas.c index 3e772dc968..db13c1e91d 100644 --- a/src/lib/ecore_evas/ecore_evas.c +++ b/src/lib/ecore_evas/ecore_evas.c @@ -4296,7 +4296,7 @@ ecore_evas_psl1ght_new(const char* name, int w, int h) } while (0) static inline void -_pointer_position_set(Efl_Pointer_Event_Data *ev, Ecore_Evas *ee, double mx, double my) +_pointer_position_set(Efl_Event_Pointer_Data *ev, Ecore_Evas *ee, double mx, double my) { int fx, fy, fw, fh; @@ -4337,8 +4337,8 @@ _event_description_get(Efl_Pointer_Action action) static Eina_Bool _direct_mouse_updown(Ecore_Evas *ee, const Ecore_Event_Mouse_Button *info, Efl_Pointer_Action action) { - Efl_Pointer_Event_Data *ev; - Efl_Pointer_Event *evt; + Efl_Event_Pointer_Data *ev; + Efl_Event_Pointer *evt; Evas *e = ee->evas; Eina_Bool processed; @@ -4351,13 +4351,13 @@ _direct_mouse_updown(Ecore_Evas *ee, const Ecore_Event_Mouse_Button *info, Efl_P * modifiers (already passed to evas, no need to do anything) */ - evt = efl_pointer_event_instance_get(EFL_POINTER_EVENT_CLASS, e, (void **) &ev); + evt = efl_event_pointer_instance_get(EFL_EVENT_POINTER_CLASS, e, (void **) &ev); if (!evt) return EINA_FALSE; ev->action = action; ev->button = info->buttons; - if (info->double_click) ev->button_flags |= EFL_POINTER_BUTTON_FLAGS_DOUBLE_CLICK; - if (info->triple_click) ev->button_flags |= EFL_POINTER_BUTTON_FLAGS_TRIPLE_CLICK; + if (info->double_click) ev->button_flags |= EFL_POINTER_FLAGS_DOUBLE_CLICK; + if (info->triple_click) ev->button_flags |= EFL_POINTER_FLAGS_TRIPLE_CLICK; ev->timestamp = info->timestamp; ev->finger = info->multi.device; _pointer_position_set(ev, ee, info->multi.x, info->multi.y); @@ -4395,8 +4395,8 @@ _direct_mouse_cancel_cb(Ecore_Evas *ee, const Ecore_Event_Mouse_Button *info) static Eina_Bool _direct_mouse_move_cb(Ecore_Evas *ee, const Ecore_Event_Mouse_Move *info) { - Efl_Pointer_Event_Data *ev; - Efl_Pointer_Event *evt; + Efl_Event_Pointer_Data *ev; + Efl_Event_Pointer *evt; Evas *e = ee->evas; Eina_Bool processed; @@ -4409,7 +4409,7 @@ _direct_mouse_move_cb(Ecore_Evas *ee, const Ecore_Event_Mouse_Move *info) * modifiers (already passed to evas, no need to do anything) */ - evt = efl_pointer_event_instance_get(EFL_POINTER_EVENT_CLASS, e, (void **) &ev); + evt = efl_event_pointer_instance_get(EFL_EVENT_POINTER_CLASS, e, (void **) &ev); if (!evt) return EINA_FALSE; ev->action = EFL_POINTER_ACTION_MOVE; @@ -4433,8 +4433,8 @@ _direct_mouse_move_cb(Ecore_Evas *ee, const Ecore_Event_Mouse_Move *info) static Eina_Bool _direct_mouse_wheel_cb(Ecore_Evas *ee, const Ecore_Event_Mouse_Wheel *info) { - Efl_Pointer_Event_Data *ev; - Efl_Pointer_Event *evt; + Efl_Event_Pointer_Data *ev; + Efl_Event_Pointer *evt; Evas *e = ee->evas; Eina_Bool processed; @@ -4446,7 +4446,7 @@ _direct_mouse_wheel_cb(Ecore_Evas *ee, const Ecore_Event_Mouse_Wheel *info) * modifiers (already passed to evas, no need to do anything) */ - evt = efl_pointer_event_instance_get(EFL_POINTER_EVENT_CLASS, e, (void **) &ev); + evt = efl_event_pointer_instance_get(EFL_EVENT_POINTER_CLASS, e, (void **) &ev); if (!evt) return EINA_FALSE; ev->action = EFL_POINTER_ACTION_WHEEL; @@ -4465,8 +4465,8 @@ _direct_mouse_wheel_cb(Ecore_Evas *ee, const Ecore_Event_Mouse_Wheel *info) static Eina_Bool _direct_mouse_inout(Ecore_Evas *ee, const Ecore_Event_Mouse_IO *info, Efl_Pointer_Action action) { - Efl_Pointer_Event_Data *ev; - Efl_Pointer_Event *evt; + Efl_Event_Pointer_Data *ev; + Efl_Event_Pointer *evt; Evas *e = ee->evas; Eina_Bool processed; @@ -4475,7 +4475,7 @@ _direct_mouse_inout(Ecore_Evas *ee, const Ecore_Event_Mouse_IO *info, Efl_Pointe * modifiers (already passed to evas, no need to do anything) */ - evt = efl_pointer_event_instance_get(EFL_POINTER_EVENT_CLASS, e, (void **) &ev); + evt = efl_event_pointer_instance_get(EFL_EVENT_POINTER_CLASS, e, (void **) &ev); if (!evt) return EINA_FALSE; ev->action = action; diff --git a/src/lib/efl/interfaces/efl_common_internal.h b/src/lib/efl/interfaces/efl_common_internal.h index 4e02451f18..c34efd1f7c 100644 --- a/src/lib/efl/interfaces/efl_common_internal.h +++ b/src/lib/efl/interfaces/efl_common_internal.h @@ -13,7 +13,7 @@ #include -typedef struct _Efl_Pointer_Event_Data Efl_Pointer_Event_Data; +typedef struct _Efl_Event_Pointer_Data Efl_Event_Pointer_Data; typedef struct _Efl_Input_Device_Data Efl_Input_Device_Data; typedef struct _Efl_Input_State_Data Efl_Input_State_Data; @@ -22,7 +22,7 @@ typedef struct _Evas_Modifier Evas_Modifier; typedef struct _Evas_Lock Evas_Lock; #endif -struct _Efl_Pointer_Event_Data +struct _Efl_Event_Pointer_Data { Eo *eo; unsigned int timestamp; /* FIXME: store as double? */ @@ -42,8 +42,8 @@ struct _Efl_Pointer_Event_Data Efl_Gfx *source; /* could it be ecore? */ Efl_Input_Device *device; Efl_Pointer_Action action; - Efl_Pointer_Button_Flags button_flags; - Efl_Pointer_Event_Flags event_flags; + Efl_Pointer_Flags button_flags; + Efl_Event_Flags event_flags; void *data; /* evas data - whatever that is */ const Eo_Event_Description *event_desc; Eina_Bool window_pos; /* true if positions are window-relative diff --git a/src/lib/efl/interfaces/efl_event_types.eot b/src/lib/efl/interfaces/efl_event_types.eot index 406861812f..3d52929ea0 100644 --- a/src/lib/efl/interfaces/efl_event_types.eot +++ b/src/lib/efl/interfaces/efl_event_types.eot @@ -18,7 +18,7 @@ enum Efl.Pointer.Action axis, [[Joystick event.]] } -enum Efl.Pointer.Button_Flags +enum Efl.Pointer.Flags { /* Evas.Button_Flags */ none = 0, [[No extra mouse button data]] @@ -26,7 +26,7 @@ enum Efl.Pointer.Button_Flags triple_click = (1 << 1), [[This mouse button press was the 3rd press of a triple click]] } -enum Efl.Pointer.Event_Flags +enum Efl.Event.Flags { /* Evas.Event_Flags */ none = 0, [[No fancy flags set]] diff --git a/src/lib/efl/interfaces/efl_input_interface.eo b/src/lib/efl/interfaces/efl_input_interface.eo index 33f7d16e54..ad1281b6a5 100644 --- a/src/lib/efl/interfaces/efl_input_interface.eo +++ b/src/lib/efl/interfaces/efl_input_interface.eo @@ -6,12 +6,12 @@ interface Efl.Input.Interface () ]] event_prefix: efl; events { - pointer,move: Efl.Pointer.Event; - pointer,down: Efl.Pointer.Event; - pointer,up: Efl.Pointer.Event; - pointer,cancel: Efl.Pointer.Event; - pointer,in: Efl.Pointer.Event; - pointer,out: Efl.Pointer.Event; - pointer,wheel: Efl.Pointer.Event; + pointer,move: Efl.Event.Pointer; + pointer,down: Efl.Event.Pointer; + pointer,up: Efl.Event.Pointer; + pointer,cancel: Efl.Event.Pointer; + pointer,in: Efl.Event.Pointer; + pointer,out: Efl.Event.Pointer; + pointer,wheel: Efl.Event.Pointer; } } diff --git a/src/lib/elementary/elm_widget.eo b/src/lib/elementary/elm_widget.eo index 06a08b17d3..9e207b6b76 100644 --- a/src/lib/elementary/elm_widget.eo +++ b/src/lib/elementary/elm_widget.eo @@ -631,7 +631,7 @@ abstract Elm.Widget (Evas.Object.Smart, Elm.Interface.Atspi_Accessible, Elm.Inte params { @in type: Evas.Callback_Type; @in event_info: void *; - @in event_flags: Efl.Pointer.Event_Flags *; + @in event_flags: Efl.Event.Flags *; } } signal_callback_add { diff --git a/src/lib/evas/Evas_Common.h b/src/lib/evas/Evas_Common.h index 7186ace341..ac07077cdf 100644 --- a/src/lib/evas/Evas_Common.h +++ b/src/lib/evas/Evas_Common.h @@ -342,17 +342,17 @@ typedef Efl_Input_Device_Sub_Class Evas_Device_Subclass; #define EVAS_DEVICE_SUBCLASS_TRACKPOINT EFL_INPUT_DEVICE_SUBCLASS_TRACKPOINT /**< A trackpoint style mouse @since 1.8 */ #define EVAS_DEVICE_SUBCLASS_TRACKBALL EFL_INPUT_DEVICE_SUBCLASS_TRACKBALL /**< A trackball style mouse @since 1.8 */ -typedef Efl_Pointer_Button_Flags Evas_Button_Flags; +typedef Efl_Pointer_Flags Evas_Button_Flags; -#define EVAS_BUTTON_NONE EFL_POINTER_BUTTON_FLAGS_NONE -#define EVAS_BUTTON_DOUBLE_CLICK EFL_POINTER_BUTTON_FLAGS_DOUBLE_CLICK -#define EVAS_BUTTON_TRIPLE_CLICK EFL_POINTER_BUTTON_FLAGS_TRIPLE_CLICK +#define EVAS_BUTTON_NONE EFL_POINTER_FLAGS_NONE +#define EVAS_BUTTON_DOUBLE_CLICK EFL_POINTER_FLAGS_DOUBLE_CLICK +#define EVAS_BUTTON_TRIPLE_CLICK EFL_POINTER_FLAGS_TRIPLE_CLICK -typedef Efl_Pointer_Event_Flags Evas_Event_Flags; +typedef Efl_Event_Flags Evas_Event_Flags; -#define EVAS_EVENT_FLAG_NONE EFL_POINTER_EVENT_FLAGS_NONE -#define EVAS_EVENT_FLAG_ON_HOLD EFL_POINTER_EVENT_FLAGS_ON_HOLD -#define EVAS_EVENT_FLAG_ON_SCROLL EFL_POINTER_EVENT_FLAGS_ON_SCROLL +#define EVAS_EVENT_FLAG_NONE EFL_EVENT_FLAGS_NONE +#define EVAS_EVENT_FLAG_ON_HOLD EFL_EVENT_FLAGS_ON_HOLD +#define EVAS_EVENT_FLAG_ON_SCROLL EFL_EVENT_FLAGS_ON_SCROLL struct _Evas_Engine_Info /** Generic engine information. Generic info is useless */ { diff --git a/src/lib/evas/Evas_Eo.h b/src/lib/evas/Evas_Eo.h index 3dc0025aee..3556936944 100644 --- a/src/lib/evas/Evas_Eo.h +++ b/src/lib/evas/Evas_Eo.h @@ -300,4 +300,4 @@ typedef void (Evas_Canvas3D_Surface_Func)(Evas_Real *out_x, #include "canvas/efl_vg_gradient_linear.eo.h" #include "canvas/efl_vg_gradient_radial.eo.h" -#include "canvas/efl_pointer_event.eo.h" +#include "canvas/efl_event_pointer.eo.h" diff --git a/src/lib/evas/Evas_Legacy.h b/src/lib/evas/Evas_Legacy.h index 9932774745..211452aceb 100644 --- a/src/lib/evas/Evas_Legacy.h +++ b/src/lib/evas/Evas_Legacy.h @@ -439,12 +439,12 @@ EAPI void evas_event_feed_mouse_out(Evas *obj, unsigned int timestam EAPI void evas_event_feed_mouse_cancel(Evas *obj, unsigned int timestamp, const void *data); /* multi touch events - no doc */ -EAPI void evas_event_input_multi_down(Evas *obj, int d, int x, int y, double rad, double radx, double rady, double pres, double ang, double fx, double fy, Efl_Pointer_Button_Flags flags, unsigned int timestamp, const void *data); +EAPI void evas_event_input_multi_down(Evas *obj, int d, int x, int y, double rad, double radx, double rady, double pres, double ang, double fx, double fy, Evas_Button_Flags flags, unsigned int timestamp, const void *data); EAPI void evas_event_input_multi_move(Evas *obj, int d, int x, int y, double rad, double radx, double rady, double pres, double ang, double fx, double fy, unsigned int timestamp, const void *data); -EAPI void evas_event_input_multi_up(Evas *obj, int d, int x, int y, double rad, double radx, double rady, double pres, double ang, double fx, double fy, Efl_Pointer_Button_Flags flags, unsigned int timestamp, const void *data); -EAPI void evas_event_feed_multi_down(Evas *obj, int d, int x, int y, double rad, double radx, double rady, double pres, double ang, double fx, double fy, Efl_Pointer_Button_Flags flags, unsigned int timestamp, const void *data); +EAPI void evas_event_input_multi_up(Evas *obj, int d, int x, int y, double rad, double radx, double rady, double pres, double ang, double fx, double fy, Evas_Button_Flags flags, unsigned int timestamp, const void *data); +EAPI void evas_event_feed_multi_down(Evas *obj, int d, int x, int y, double rad, double radx, double rady, double pres, double ang, double fx, double fy, Evas_Button_Flags flags, unsigned int timestamp, const void *data); EAPI void evas_event_feed_multi_move(Evas *obj, int d, int x, int y, double rad, double radx, double rady, double pres, double ang, double fx, double fy, unsigned int timestamp, const void *data); -EAPI void evas_event_feed_multi_up(Evas *obj, int d, int x, int y, double rad, double radx, double rady, double pres, double ang, double fx, double fy, Efl_Pointer_Button_Flags flags, unsigned int timestamp, const void *data); +EAPI void evas_event_feed_multi_up(Evas *obj, int d, int x, int y, double rad, double radx, double rady, double pres, double ang, double fx, double fy, Evas_Button_Flags flags, unsigned int timestamp, const void *data); /** * @brief Key down event feed. diff --git a/src/lib/evas/canvas/efl_event_pointer.c b/src/lib/evas/canvas/efl_event_pointer.c new file mode 100644 index 0000000000..213fa77632 --- /dev/null +++ b/src/lib/evas/canvas/efl_event_pointer.c @@ -0,0 +1,401 @@ +#ifdef HAVE_CONFIG_H +# include +#endif + +#include + +#define EFL_INTERNAL_UNSTABLE +#include "interfaces/efl_common_internal.h" + +#define MY_CLASS EFL_EVENT_POINTER_CLASS + + +/* Pointer Event + * + * This is a storage class only, should not require ANY knowledge about + * Ecore, Evas or anything else. + * + * This is intended to replace Ecore and Evas structs for mouse events. + * + * Do not add any logic here. + */ + +static Efl_Event_Pointer *s_cached_event = NULL; + +static void +_del_hook(Eo *evt) +{ + if (!s_cached_event) + { + if (eo_parent_get(evt)) + { + eo_ref(evt); + eo_parent_set(evt, NULL); + } + s_cached_event = evt; + } + else + { + eo_del_intercept_set(evt, NULL); + eo_unref(evt); + } +} + +EOLIAN static Efl_Event_Pointer * +_efl_event_pointer_instance_get(Eo_Class *klass EINA_UNUSED, void *pd EINA_UNUSED, + Eo *owner, void **priv) +{ + Efl_Event_Pointer *evt; + + if (s_cached_event) + { + evt = s_cached_event; + s_cached_event = NULL; + efl_event_reset(evt); + eo_parent_set(evt, owner); + } + else + { + evt = eo_add(EFL_EVENT_POINTER_CLASS, owner); + eo_del_intercept_set(evt, _del_hook); + } + + if (priv) + *priv = eo_data_scope_get(evt, EFL_EVENT_POINTER_CLASS); + + return evt; +} + +EOLIAN static void +_efl_event_pointer_class_destructor(Eo_Class *klass EINA_UNUSED) +{ + // this is a strange situation... + eo_unref(s_cached_event); + s_cached_event = NULL; +} + +EOLIAN static Eo_Base * +_efl_event_pointer_eo_base_constructor(Eo *obj, Efl_Event_Pointer_Data *pd EINA_UNUSED) +{ + eo_constructor(eo_super(obj, MY_CLASS)); + efl_event_reset(obj); + return obj; +} + +EOLIAN static void +_efl_event_pointer_efl_event_reset(Eo *obj, Efl_Event_Pointer_Data *pd) +{ + free(pd->legacy); + memset(pd, 0, sizeof(*pd)); + pd->eo = obj; + pd->wheel.dir = EFL_ORIENT_VERTICAL; +} + +EOLIAN static Efl_Event * +_efl_event_pointer_efl_event_dup(Eo *obj, Efl_Event_Pointer_Data *pd) +{ + Efl_Event_Pointer_Data *ev; + Efl_Event_Pointer *evt; + + evt = _efl_event_pointer_instance_get((Eo_Class *) EFL_EVENT_POINTER_CLASS, + NULL, obj, (void **) &ev); + if (!evt) return NULL; + + memcpy(ev, pd, sizeof(*ev)); + ev->eo = evt; + + return evt; +} + +EOLIAN static void +_efl_event_pointer_action_set(Eo *obj EINA_UNUSED, Efl_Event_Pointer_Data *pd, Efl_Pointer_Action act) +{ + pd->action = act; +} + +EOLIAN static Efl_Pointer_Action +_efl_event_pointer_action_get(Eo *obj EINA_UNUSED, Efl_Event_Pointer_Data *pd) +{ + return pd->action; +} + +EOLIAN static void +_efl_event_pointer_button_set(Eo *obj EINA_UNUSED, Efl_Event_Pointer_Data *pd, int but) +{ + pd->button = but; +} + +EOLIAN static int +_efl_event_pointer_button_get(Eo *obj EINA_UNUSED, Efl_Event_Pointer_Data *pd) +{ + return pd->button; +} + +EOLIAN static void +_efl_event_pointer_button_pressed_set(Eo *obj EINA_UNUSED, Efl_Event_Pointer_Data *pd, int button, Eina_Bool pressed) +{ + if (button < 0) return; + if (button > 31) return; + if (pressed) + pd->button_flags |= (1 << button); + else + pd->button_flags &= ~(1 << button); +} + +EOLIAN static Eina_Bool +_efl_event_pointer_button_pressed_get(Eo *obj EINA_UNUSED, Efl_Event_Pointer_Data *pd, int button) +{ + if (button < 0) return EINA_FALSE; + if (button > 31) return EINA_FALSE; + return (pd->button_flags & (1 << button)) != 0; +} + +EOLIAN static void +_efl_event_pointer_position_set(Eo *obj EINA_UNUSED, Efl_Event_Pointer_Data *pd, int x, int y) +{ + pd->cur.x = (double) x; + pd->cur.y = (double) y; +} + +EOLIAN static void +_efl_event_pointer_position_get(Eo *obj EINA_UNUSED, Efl_Event_Pointer_Data *pd, int *x, int *y) +{ + if (x) *x = (int) pd->cur.x; + if (y) *y = (int) pd->cur.y; +} + +EOLIAN static void +_efl_event_pointer_position_precise_set(Eo *obj EINA_UNUSED, Efl_Event_Pointer_Data *pd, double x, double y) +{ + pd->cur.x = x; + pd->cur.y = y; +} + +EOLIAN static void +_efl_event_pointer_position_precise_get(Eo *obj EINA_UNUSED, Efl_Event_Pointer_Data *pd, double *x, double *y) +{ + if (x) *x = pd->cur.x; + if (y) *y = pd->cur.y; +} + +EOLIAN static void +_efl_event_pointer_previous_position_set(Eo *obj EINA_UNUSED, Efl_Event_Pointer_Data *pd, int x, int y) +{ + pd->prev.x = (double) x; + pd->prev.y = (double) y; +} + +EOLIAN static void +_efl_event_pointer_previous_position_get(Eo *obj EINA_UNUSED, Efl_Event_Pointer_Data *pd, int *x, int *y) +{ + if (x) *x = (int) pd->prev.x; + if (y) *y = (int) pd->prev.y; +} + +EOLIAN static void +_efl_event_pointer_previous_position_precise_set(Eo *obj EINA_UNUSED, Efl_Event_Pointer_Data *pd, double x, double y) +{ + pd->prev.x = x; + pd->prev.y = y; +} + +EOLIAN static void +_efl_event_pointer_previous_position_precise_get(Eo *obj EINA_UNUSED, Efl_Event_Pointer_Data *pd, double *x, double *y) +{ + if (x) *x = pd->prev.x; + if (y) *y = pd->prev.y; +} + +EOLIAN static void +_efl_event_pointer_device_set(Eo *obj EINA_UNUSED, Efl_Event_Pointer_Data *pd, Efl_Input_Device *dev) +{ + /* ref? */ + pd->device = dev; +} + +EOLIAN static Efl_Input_Device * +_efl_event_pointer_device_get(Eo *obj EINA_UNUSED, Efl_Event_Pointer_Data *pd) +{ + return pd->device; +} + +EOLIAN static void +_efl_event_pointer_source_set(Eo *obj EINA_UNUSED, Efl_Event_Pointer_Data *pd, Efl_Gfx *src) +{ + /* ref? */ + pd->source = src; +} + +EOLIAN static Efl_Gfx * +_efl_event_pointer_source_get(Eo *obj EINA_UNUSED, Efl_Event_Pointer_Data *pd) +{ + return pd->source; +} + +EOLIAN static void +_efl_event_pointer_button_flags_set(Eo *obj EINA_UNUSED, Efl_Event_Pointer_Data *pd, Efl_Pointer_Flags flags) +{ + pd->button_flags = flags; +} + +EOLIAN static Efl_Pointer_Flags +_efl_event_pointer_button_flags_get(Eo *obj EINA_UNUSED, Efl_Event_Pointer_Data *pd) +{ + return pd->button_flags; +} + +EOLIAN static void +_efl_event_pointer_event_flags_set(Eo *obj EINA_UNUSED, Efl_Event_Pointer_Data *pd, Efl_Event_Flags flags) +{ + pd->event_flags = flags; +} + +EOLIAN static Efl_Event_Flags +_efl_event_pointer_event_flags_get(Eo *obj EINA_UNUSED, Efl_Event_Pointer_Data *pd) +{ + return pd->event_flags; +} + +EOLIAN static void +_efl_event_pointer_efl_event_timestamp_set(Eo *obj EINA_UNUSED, Efl_Event_Pointer_Data *pd, double ms) +{ + pd->timestamp = (unsigned int) ms; +} + +EOLIAN static double +_efl_event_pointer_efl_event_timestamp_get(Eo *obj EINA_UNUSED, Efl_Event_Pointer_Data *pd) +{ + return (double) pd->timestamp; +} + +EOLIAN static void +_efl_event_pointer_wheel_direction_set(Eo *obj EINA_UNUSED, Efl_Event_Pointer_Data *pd, Efl_Orient dir) +{ + pd->wheel.dir = dir; +} + +EOLIAN static Efl_Orient +_efl_event_pointer_wheel_direction_get(Eo *obj EINA_UNUSED, Efl_Event_Pointer_Data *pd) +{ + return pd->wheel.dir; +} + +EOLIAN static void +_efl_event_pointer_wheel_distance_set(Eo *obj EINA_UNUSED, Efl_Event_Pointer_Data *pd, int dist) +{ + pd->wheel.z = dist; +} + +EOLIAN static int +_efl_event_pointer_wheel_distance_get(Eo *obj EINA_UNUSED, Efl_Event_Pointer_Data *pd) +{ + return pd->wheel.z; +} + +EOLIAN static int +_efl_event_pointer_finger_get(Eo *obj EINA_UNUSED, Efl_Event_Pointer_Data *pd) +{ + return pd->finger; +} + +EOLIAN static void +_efl_event_pointer_finger_set(Eo *obj EINA_UNUSED, Efl_Event_Pointer_Data *pd, int id) +{ + pd->finger = id; +} + +EOLIAN static void +_efl_event_pointer_touch_get(Eo *obj EINA_UNUSED, Efl_Event_Pointer_Data *pd, double *r, double *rx, double *ry, double *press, double *angle) +{ + if (r) *r = pd->radius; + if (rx) *rx = pd->radius_x; + if (ry) *ry = pd->radius_y; + if (press) *press = pd->pressure; + if (angle) *angle = pd->angle; +} + +EOLIAN static void +_efl_event_pointer_touch_set(Eo *obj EINA_UNUSED, Efl_Event_Pointer_Data *pd, double r, double rx, double ry, double press, double angle) +{ + pd->radius = r; + pd->radius_x = rx; + pd->radius_y = ry; + pd->pressure = press; + pd->angle = angle; +} + +EOLIAN static Eina_Bool +_efl_event_pointer_efl_input_state_modifier_enabled_get(Eo *obj EINA_UNUSED, Efl_Event_Pointer_Data *pd, const char *name) +{ + if (!pd->modifiers) return EINA_FALSE; + return evas_key_modifier_is_set(pd->modifiers, name); +} + +EOLIAN static Eina_Bool +_efl_event_pointer_efl_input_state_lock_enabled_get(Eo *obj EINA_UNUSED, Efl_Event_Pointer_Data *pd, const char *name) +{ + if (!pd->locks) return EINA_FALSE; + return evas_key_lock_is_set(pd->locks, name); +} + +EOLIAN static void +_efl_event_pointer_double_click_set(Eo *obj EINA_UNUSED, Efl_Event_Pointer_Data *pd, Eina_Bool val) +{ + if (val) + pd->button_flags |= EFL_POINTER_FLAGS_DOUBLE_CLICK; + else + pd->button_flags &= ~EFL_POINTER_FLAGS_DOUBLE_CLICK; +} + +EOLIAN static Eina_Bool +_efl_event_pointer_double_click_get(Eo *obj EINA_UNUSED, Efl_Event_Pointer_Data *pd) +{ + return !!(pd->button_flags & EFL_POINTER_FLAGS_DOUBLE_CLICK); +} + +EOLIAN static void +_efl_event_pointer_triple_click_set(Eo *obj EINA_UNUSED, Efl_Event_Pointer_Data *pd, Eina_Bool val) +{ + if (val) + pd->button_flags |= EFL_POINTER_FLAGS_TRIPLE_CLICK; + else + pd->button_flags &= ~EFL_POINTER_FLAGS_TRIPLE_CLICK; +} + +EOLIAN static Eina_Bool +_efl_event_pointer_triple_click_get(Eo *obj EINA_UNUSED, Efl_Event_Pointer_Data *pd) +{ + return !!(pd->button_flags & EFL_POINTER_FLAGS_TRIPLE_CLICK); +} + +EOLIAN static void +_efl_event_pointer_on_hold_set(Eo *obj EINA_UNUSED, Efl_Event_Pointer_Data *pd, Eina_Bool val) +{ + if (val) + pd->event_flags |= EFL_EVENT_FLAGS_ON_HOLD; + else + pd->event_flags &= ~EFL_EVENT_FLAGS_ON_HOLD; +} + +EOLIAN static Eina_Bool +_efl_event_pointer_on_hold_get(Eo *obj EINA_UNUSED, Efl_Event_Pointer_Data *pd) +{ + return !!(pd->event_flags & EFL_EVENT_FLAGS_ON_HOLD); +} + +EOLIAN static void +_efl_event_pointer_on_scroll_set(Eo *obj EINA_UNUSED, Efl_Event_Pointer_Data *pd, Eina_Bool val) +{ + if (val) + pd->event_flags |= EFL_EVENT_FLAGS_ON_SCROLL; + else + pd->event_flags &= ~EFL_EVENT_FLAGS_ON_SCROLL; +} + +EOLIAN static Eina_Bool +_efl_event_pointer_on_scroll_get(Eo *obj EINA_UNUSED, Efl_Event_Pointer_Data *pd) +{ + return !!(pd->event_flags & EFL_EVENT_FLAGS_ON_SCROLL); +} + +#include "efl_event_pointer.eo.c" diff --git a/src/lib/evas/canvas/efl_pointer_event.eo b/src/lib/evas/canvas/efl_event_pointer.eo similarity index 95% rename from src/lib/evas/canvas/efl_pointer_event.eo rename to src/lib/evas/canvas/efl_event_pointer.eo index c7291a704a..b7675ee76a 100644 --- a/src/lib/evas/canvas/efl_pointer_event.eo +++ b/src/lib/evas/canvas/efl_event_pointer.eo @@ -1,7 +1,7 @@ import efl_orientation; import efl_event_types; -class Efl.Pointer.Event (Eo.Base, Efl.Event, Efl.Input.State) +class Efl.Event.Pointer (Eo.Base, Efl.Event, Efl.Input.State) { [[Event data carried over with any pointer event (mouse, touch, ...) @@ -100,7 +100,7 @@ class Efl.Pointer.Event (Eo.Base, Efl.Event, Efl.Input.State) @property button_flags { [[Double or triple click information.]] values { - flags: Efl.Pointer.Button_Flags; + flags: Efl.Pointer.Flags; } } @property double_click { @@ -124,7 +124,7 @@ class Efl.Pointer.Event (Eo.Base, Efl.Event, Efl.Input.State) @property event_flags { [[Extra flags for this event, may be changed by the user.]] values { - flags: Efl.Pointer.Event_Flags; + flags: Efl.Event.Flags; } } @property on_hold { @@ -157,7 +157,7 @@ class Efl.Pointer.Event (Eo.Base, Efl.Event, Efl.Input.State) @in owner: Eo.Base; [[The parent object.]] @out priv: void*; [[Pointer to the internal data of the object.]] } - return: own(Efl.Pointer.Event); + return: own(Efl.Event.Pointer); } } implements { diff --git a/src/lib/evas/canvas/efl_pointer_event.c b/src/lib/evas/canvas/efl_pointer_event.c deleted file mode 100644 index 1d51501f4e..0000000000 --- a/src/lib/evas/canvas/efl_pointer_event.c +++ /dev/null @@ -1,401 +0,0 @@ -#ifdef HAVE_CONFIG_H -# include -#endif - -#include - -#define EFL_INTERNAL_UNSTABLE -#include "interfaces/efl_common_internal.h" - -#define MY_CLASS EFL_POINTER_EVENT_CLASS - - -/* Pointer Event - * - * This is a storage class only, should not require ANY knowledge about - * Ecore, Evas or anything else. - * - * This is intended to replace Ecore and Evas structs for mouse events. - * - * Do not add any logic here. - */ - -static Efl_Pointer_Event *s_cached_event = NULL; - -static void -_del_hook(Eo *evt) -{ - if (!s_cached_event) - { - if (eo_parent_get(evt)) - { - eo_ref(evt); - eo_parent_set(evt, NULL); - } - s_cached_event = evt; - } - else - { - eo_del_intercept_set(evt, NULL); - eo_unref(evt); - } -} - -EOLIAN static Efl_Pointer_Event * -_efl_pointer_event_instance_get(Eo_Class *klass EINA_UNUSED, void *pd EINA_UNUSED, - Eo *owner, void **priv) -{ - Efl_Pointer_Event *evt; - - if (s_cached_event) - { - evt = s_cached_event; - s_cached_event = NULL; - efl_event_reset(evt); - eo_parent_set(evt, owner); - } - else - { - evt = eo_add(EFL_POINTER_EVENT_CLASS, owner); - eo_del_intercept_set(evt, _del_hook); - } - - if (priv) - *priv = eo_data_scope_get(evt, EFL_POINTER_EVENT_CLASS); - - return evt; -} - -EOLIAN static void -_efl_pointer_event_class_destructor(Eo_Class *klass EINA_UNUSED) -{ - // this is a strange situation... - eo_unref(s_cached_event); - s_cached_event = NULL; -} - -EOLIAN static Eo_Base * -_efl_pointer_event_eo_base_constructor(Eo *obj, Efl_Pointer_Event_Data *pd EINA_UNUSED) -{ - eo_constructor(eo_super(obj, MY_CLASS)); - efl_event_reset(obj); - return obj; -} - -EOLIAN static void -_efl_pointer_event_efl_event_reset(Eo *obj, Efl_Pointer_Event_Data *pd) -{ - free(pd->legacy); - memset(pd, 0, sizeof(*pd)); - pd->eo = obj; - pd->wheel.dir = EFL_ORIENT_VERTICAL; -} - -EOLIAN static Efl_Event * -_efl_pointer_event_efl_event_dup(Eo *obj, Efl_Pointer_Event_Data *pd) -{ - Efl_Pointer_Event_Data *ev; - Efl_Pointer_Event *evt; - - evt = _efl_pointer_event_instance_get((Eo_Class *) EFL_POINTER_EVENT_CLASS, - NULL, obj, (void **) &ev); - if (!evt) return NULL; - - memcpy(ev, pd, sizeof(*ev)); - ev->eo = evt; - - return evt; -} - -EOLIAN static void -_efl_pointer_event_action_set(Eo *obj EINA_UNUSED, Efl_Pointer_Event_Data *pd, Efl_Pointer_Action act) -{ - pd->action = act; -} - -EOLIAN static Efl_Pointer_Action -_efl_pointer_event_action_get(Eo *obj EINA_UNUSED, Efl_Pointer_Event_Data *pd) -{ - return pd->action; -} - -EOLIAN static void -_efl_pointer_event_button_set(Eo *obj EINA_UNUSED, Efl_Pointer_Event_Data *pd, int but) -{ - pd->button = but; -} - -EOLIAN static int -_efl_pointer_event_button_get(Eo *obj EINA_UNUSED, Efl_Pointer_Event_Data *pd) -{ - return pd->button; -} - -EOLIAN static void -_efl_pointer_event_button_pressed_set(Eo *obj EINA_UNUSED, Efl_Pointer_Event_Data *pd, int button, Eina_Bool pressed) -{ - if (button < 0) return; - if (button > 31) return; - if (pressed) - pd->button_flags |= (1 << button); - else - pd->button_flags &= ~(1 << button); -} - -EOLIAN static Eina_Bool -_efl_pointer_event_button_pressed_get(Eo *obj EINA_UNUSED, Efl_Pointer_Event_Data *pd, int button) -{ - if (button < 0) return EINA_FALSE; - if (button > 31) return EINA_FALSE; - return (pd->button_flags & (1 << button)) != 0; -} - -EOLIAN static void -_efl_pointer_event_position_set(Eo *obj EINA_UNUSED, Efl_Pointer_Event_Data *pd, int x, int y) -{ - pd->cur.x = (double) x; - pd->cur.y = (double) y; -} - -EOLIAN static void -_efl_pointer_event_position_get(Eo *obj EINA_UNUSED, Efl_Pointer_Event_Data *pd, int *x, int *y) -{ - if (x) *x = (int) pd->cur.x; - if (y) *y = (int) pd->cur.y; -} - -EOLIAN static void -_efl_pointer_event_position_precise_set(Eo *obj EINA_UNUSED, Efl_Pointer_Event_Data *pd, double x, double y) -{ - pd->cur.x = x; - pd->cur.y = y; -} - -EOLIAN static void -_efl_pointer_event_position_precise_get(Eo *obj EINA_UNUSED, Efl_Pointer_Event_Data *pd, double *x, double *y) -{ - if (x) *x = pd->cur.x; - if (y) *y = pd->cur.y; -} - -EOLIAN static void -_efl_pointer_event_previous_position_set(Eo *obj EINA_UNUSED, Efl_Pointer_Event_Data *pd, int x, int y) -{ - pd->prev.x = (double) x; - pd->prev.y = (double) y; -} - -EOLIAN static void -_efl_pointer_event_previous_position_get(Eo *obj EINA_UNUSED, Efl_Pointer_Event_Data *pd, int *x, int *y) -{ - if (x) *x = (int) pd->prev.x; - if (y) *y = (int) pd->prev.y; -} - -EOLIAN static void -_efl_pointer_event_previous_position_precise_set(Eo *obj EINA_UNUSED, Efl_Pointer_Event_Data *pd, double x, double y) -{ - pd->prev.x = x; - pd->prev.y = y; -} - -EOLIAN static void -_efl_pointer_event_previous_position_precise_get(Eo *obj EINA_UNUSED, Efl_Pointer_Event_Data *pd, double *x, double *y) -{ - if (x) *x = pd->prev.x; - if (y) *y = pd->prev.y; -} - -EOLIAN static void -_efl_pointer_event_device_set(Eo *obj EINA_UNUSED, Efl_Pointer_Event_Data *pd, Efl_Input_Device *dev) -{ - /* ref? */ - pd->device = dev; -} - -EOLIAN static Efl_Input_Device * -_efl_pointer_event_device_get(Eo *obj EINA_UNUSED, Efl_Pointer_Event_Data *pd) -{ - return pd->device; -} - -EOLIAN static void -_efl_pointer_event_source_set(Eo *obj EINA_UNUSED, Efl_Pointer_Event_Data *pd, Efl_Gfx *src) -{ - /* ref? */ - pd->source = src; -} - -EOLIAN static Efl_Gfx * -_efl_pointer_event_source_get(Eo *obj EINA_UNUSED, Efl_Pointer_Event_Data *pd) -{ - return pd->source; -} - -EOLIAN static void -_efl_pointer_event_button_flags_set(Eo *obj EINA_UNUSED, Efl_Pointer_Event_Data *pd, Efl_Pointer_Button_Flags flags) -{ - pd->button_flags = flags; -} - -EOLIAN static Efl_Pointer_Button_Flags -_efl_pointer_event_button_flags_get(Eo *obj EINA_UNUSED, Efl_Pointer_Event_Data *pd) -{ - return pd->button_flags; -} - -EOLIAN static void -_efl_pointer_event_event_flags_set(Eo *obj EINA_UNUSED, Efl_Pointer_Event_Data *pd, Efl_Pointer_Event_Flags flags) -{ - pd->event_flags = flags; -} - -EOLIAN static Efl_Pointer_Event_Flags -_efl_pointer_event_event_flags_get(Eo *obj EINA_UNUSED, Efl_Pointer_Event_Data *pd) -{ - return pd->event_flags; -} - -EOLIAN static void -_efl_pointer_event_efl_event_timestamp_set(Eo *obj EINA_UNUSED, Efl_Pointer_Event_Data *pd, double ms) -{ - pd->timestamp = (unsigned int) ms; -} - -EOLIAN static double -_efl_pointer_event_efl_event_timestamp_get(Eo *obj EINA_UNUSED, Efl_Pointer_Event_Data *pd) -{ - return (double) pd->timestamp; -} - -EOLIAN static void -_efl_pointer_event_wheel_direction_set(Eo *obj EINA_UNUSED, Efl_Pointer_Event_Data *pd, Efl_Orient dir) -{ - pd->wheel.dir = dir; -} - -EOLIAN static Efl_Orient -_efl_pointer_event_wheel_direction_get(Eo *obj EINA_UNUSED, Efl_Pointer_Event_Data *pd) -{ - return pd->wheel.dir; -} - -EOLIAN static void -_efl_pointer_event_wheel_distance_set(Eo *obj EINA_UNUSED, Efl_Pointer_Event_Data *pd, int dist) -{ - pd->wheel.z = dist; -} - -EOLIAN static int -_efl_pointer_event_wheel_distance_get(Eo *obj EINA_UNUSED, Efl_Pointer_Event_Data *pd) -{ - return pd->wheel.z; -} - -EOLIAN static int -_efl_pointer_event_finger_get(Eo *obj EINA_UNUSED, Efl_Pointer_Event_Data *pd) -{ - return pd->finger; -} - -EOLIAN static void -_efl_pointer_event_finger_set(Eo *obj EINA_UNUSED, Efl_Pointer_Event_Data *pd, int id) -{ - pd->finger = id; -} - -EOLIAN static void -_efl_pointer_event_touch_get(Eo *obj EINA_UNUSED, Efl_Pointer_Event_Data *pd, double *r, double *rx, double *ry, double *press, double *angle) -{ - if (r) *r = pd->radius; - if (rx) *rx = pd->radius_x; - if (ry) *ry = pd->radius_y; - if (press) *press = pd->pressure; - if (angle) *angle = pd->angle; -} - -EOLIAN static void -_efl_pointer_event_touch_set(Eo *obj EINA_UNUSED, Efl_Pointer_Event_Data *pd, double r, double rx, double ry, double press, double angle) -{ - pd->radius = r; - pd->radius_x = rx; - pd->radius_y = ry; - pd->pressure = press; - pd->angle = angle; -} - -EOLIAN static Eina_Bool -_efl_pointer_event_efl_input_state_modifier_enabled_get(Eo *obj EINA_UNUSED, Efl_Pointer_Event_Data *pd, const char *name) -{ - if (!pd->modifiers) return EINA_FALSE; - return evas_key_modifier_is_set(pd->modifiers, name); -} - -EOLIAN static Eina_Bool -_efl_pointer_event_efl_input_state_lock_enabled_get(Eo *obj EINA_UNUSED, Efl_Pointer_Event_Data *pd, const char *name) -{ - if (!pd->locks) return EINA_FALSE; - return evas_key_lock_is_set(pd->locks, name); -} - -EOLIAN static void -_efl_pointer_event_double_click_set(Eo *obj EINA_UNUSED, Efl_Pointer_Event_Data *pd, Eina_Bool val) -{ - if (val) - pd->button_flags |= EFL_POINTER_BUTTON_FLAGS_DOUBLE_CLICK; - else - pd->button_flags &= ~EFL_POINTER_BUTTON_FLAGS_DOUBLE_CLICK; -} - -EOLIAN static Eina_Bool -_efl_pointer_event_double_click_get(Eo *obj EINA_UNUSED, Efl_Pointer_Event_Data *pd) -{ - return !!(pd->button_flags & EFL_POINTER_BUTTON_FLAGS_DOUBLE_CLICK); -} - -EOLIAN static void -_efl_pointer_event_triple_click_set(Eo *obj EINA_UNUSED, Efl_Pointer_Event_Data *pd, Eina_Bool val) -{ - if (val) - pd->button_flags |= EFL_POINTER_BUTTON_FLAGS_TRIPLE_CLICK; - else - pd->button_flags &= ~EFL_POINTER_BUTTON_FLAGS_TRIPLE_CLICK; -} - -EOLIAN static Eina_Bool -_efl_pointer_event_triple_click_get(Eo *obj EINA_UNUSED, Efl_Pointer_Event_Data *pd) -{ - return !!(pd->button_flags & EFL_POINTER_BUTTON_FLAGS_TRIPLE_CLICK); -} - -EOLIAN static void -_efl_pointer_event_on_hold_set(Eo *obj EINA_UNUSED, Efl_Pointer_Event_Data *pd, Eina_Bool val) -{ - if (val) - pd->event_flags |= EFL_POINTER_EVENT_FLAGS_ON_HOLD; - else - pd->event_flags &= ~EFL_POINTER_EVENT_FLAGS_ON_HOLD; -} - -EOLIAN static Eina_Bool -_efl_pointer_event_on_hold_get(Eo *obj EINA_UNUSED, Efl_Pointer_Event_Data *pd) -{ - return !!(pd->event_flags & EFL_POINTER_EVENT_FLAGS_ON_HOLD); -} - -EOLIAN static void -_efl_pointer_event_on_scroll_set(Eo *obj EINA_UNUSED, Efl_Pointer_Event_Data *pd, Eina_Bool val) -{ - if (val) - pd->event_flags |= EFL_POINTER_EVENT_FLAGS_ON_SCROLL; - else - pd->event_flags &= ~EFL_POINTER_EVENT_FLAGS_ON_SCROLL; -} - -EOLIAN static Eina_Bool -_efl_pointer_event_on_scroll_get(Eo *obj EINA_UNUSED, Efl_Pointer_Event_Data *pd) -{ - return !!(pd->event_flags & EFL_POINTER_EVENT_FLAGS_ON_SCROLL); -} - -#include "efl_pointer_event.eo.c" diff --git a/src/lib/evas/canvas/evas_callbacks.c b/src/lib/evas/canvas/evas_callbacks.c index c07d70e676..94abde70f0 100644 --- a/src/lib/evas/canvas/evas_callbacks.c +++ b/src/lib/evas/canvas/evas_callbacks.c @@ -100,7 +100,7 @@ _pointer_event_get(const _eo_evas_object_cb_info *info, const Eo_Event *event, } static void -_event_flags_adjust(void *ev, const Efl_Pointer_Event_Data *pedata) +_event_flags_adjust(void *ev, const Efl_Event_Pointer_Data *pedata) { #define EV_CASE(NEWTYPE, Type) \ case EFL_POINTER_ACTION_ ## NEWTYPE: \ @@ -132,10 +132,10 @@ _eo_evas_object_cb(void *data, const Eo_Event *event) pe = _pointer_event_get(info, event, &desc); if (pe) { - Efl_Pointer_Event_Data *pedata; - Efl_Pointer_Event_Flags flags; + Efl_Event_Pointer_Data *pedata; + Efl_Event_Flags flags; - pedata = eo_data_scope_get(pe, EFL_POINTER_EVENT_CLASS); + pedata = eo_data_scope_get(pe, EFL_EVENT_POINTER_CLASS); flags = pedata->event_flags; eo_event_callback_call(event->object, desc, pe); if (flags != pedata->event_flags) diff --git a/src/lib/evas/canvas/evas_canvas.eo b/src/lib/evas/canvas/evas_canvas.eo index 676cdcb5b6..d4a51dcc47 100644 --- a/src/lib/evas/canvas/evas_canvas.eo +++ b/src/lib/evas/canvas/evas_canvas.eo @@ -115,7 +115,7 @@ class Evas.Canvas (Eo.Base, Evas.Common_Interface, Efl.Animator, ]] } values { - flags: Efl.Pointer.Event_Flags; [[The default flags to use.]] + flags: Efl.Event.Flags; [[The default flags to use.]] } } @property output_method { diff --git a/src/lib/evas/canvas/evas_events.c b/src/lib/evas/canvas/evas_events.c index ffb58e3a41..516bce664c 100644 --- a/src/lib/evas/canvas/evas_events.c +++ b/src/lib/evas/canvas/evas_events.c @@ -15,14 +15,14 @@ evas_event_list_copy(Eina_List *list); static void _canvas_event_feed_mouse_move_internal(Eo *eo_e, Evas_Public_Data *e, int x, int y, unsigned int timestamp, const void *data, - Efl_Pointer_Event_Data *parent_pe); + Efl_Event_Pointer_Data *parent_pe); static void _canvas_event_feed_multi_up_internal(Evas *eo_e, void *_pd, int d, int x, int y, double rad, double radx, double rady, double pres, double ang, double fx, double fy, Evas_Button_Flags flags, unsigned int timestamp, const void *data, - Efl_Pointer_Event_Data *parent_pe); + Efl_Event_Pointer_Data *parent_pe); static void _evas_event_havemap_adjust(Evas_Object *eo_obj EINA_UNUSED, Evas_Object_Protected_Data *obj, Evas_Coord *x, Evas_Coord *y, Eina_Bool mouse_grabbed) @@ -46,12 +46,12 @@ _evas_event_havemap_adjust(Evas_Object *eo_obj EINA_UNUSED, Evas_Object_Protecte } } -static inline Efl_Pointer_Event * +static inline Efl_Event_Pointer * _pointer_event_create(Evas_Callback_Type type, void *ev, - Efl_Pointer_Event_Data *parentev, - Efl_Pointer_Event_Data **evdata) + Efl_Event_Pointer_Data *parentev, + Efl_Event_Pointer_Data **evdata) { - Efl_Pointer_Event *evt = NULL; + Efl_Event_Pointer *evt = NULL; if (!ev) return NULL; @@ -66,9 +66,9 @@ _pointer_event_create(Evas_Callback_Type type, void *ev, #define EV_CASE(TYPE, Type) \ case EVAS_CALLBACK_ ## TYPE: \ - evt = efl_pointer_event_instance_get(EFL_POINTER_EVENT_CLASS, \ + evt = efl_event_pointer_instance_get(EFL_EVENT_POINTER_CLASS, \ parentev ? parentev->eo : NULL, (void **) evdata); \ - efl_pointer_event_legacy_info_set(evt, ev, type); \ + efl_event_pointer_legacy_info_set(evt, ev, type); \ ((Evas_Event_ ## Type *) ev)->reserved = evt; \ break; @@ -95,7 +95,7 @@ _pointer_event_create(Evas_Callback_Type type, void *ev, } static inline void -_pointer_event_flags_adjust(Efl_Pointer_Event_Data *pedata, +_pointer_event_flags_adjust(Efl_Event_Pointer_Data *pedata, Evas_Callback_Type type, const void *ev) { #define EV_CASE(TYPE, Type) \ @@ -122,7 +122,7 @@ _pointer_event_flags_adjust(Efl_Pointer_Event_Data *pedata, #define EV_CALL(_eo_obj, _obj, _typ, _ev, _id, _pe) do { \ if (!_pe) _pe = _pointer_event_create(_typ, _ev, parent_pe, & _pe ## data); \ - else efl_pointer_event_legacy_info_set(_pe, _ev, _typ); \ + else efl_event_pointer_legacy_info_set(_pe, _ev, _typ); \ evas_object_event_callback_call(_eo_obj, _obj, _typ, _ev, _id); \ _pointer_event_flags_adjust(_pe ## data, _typ, _ev); \ } while (0) @@ -286,7 +286,7 @@ _transform_to_src_space(Evas_Object_Protected_Data *obj, Evas_Object_Protected_D static void _evas_event_source_mouse_down_events(Evas_Object *eo_obj, Evas *eo_e, Evas_Event_Mouse_Down *ev, int event_id, - Efl_Pointer_Event_Data *parent_pe) + Efl_Event_Pointer_Data *parent_pe) { Evas_Object_Protected_Data *obj = eo_data_scope_get(eo_obj, EVAS_OBJECT_CLASS); Evas_Object *eo_src = _evas_object_image_source_get(eo_obj); @@ -294,8 +294,8 @@ _evas_event_source_mouse_down_events(Evas_Object *eo_obj, Evas *eo_e, Evas_Public_Data *e = eo_data_scope_get(eo_e, EVAS_CANVAS_CLASS); Evas_Coord_Point canvas = ev->canvas; Evas_Object_Protected_Data *child; - Efl_Pointer_Event_Data *pedata = NULL; - Efl_Pointer_Event *pe = NULL; + Efl_Event_Pointer_Data *pedata = NULL; + Efl_Event_Pointer *pe = NULL; Evas_Object *eo_child; Eina_List *l; int no_rep = 0; @@ -367,15 +367,15 @@ _evas_event_source_mouse_down_events(Evas_Object *eo_obj, Evas *eo_e, static void _evas_event_source_mouse_move_events(Evas_Object *eo_obj, Evas *eo_e, Evas_Event_Mouse_Move *ev, int event_id, - Efl_Pointer_Event_Data *parent_pe) + Efl_Event_Pointer_Data *parent_pe) { Evas_Object_Protected_Data *obj = eo_data_scope_get(eo_obj, EVAS_OBJECT_CLASS); Evas_Object *eo_src = _evas_object_image_source_get(eo_obj); Evas_Object_Protected_Data *src = eo_data_scope_get(eo_src, EVAS_OBJECT_CLASS); Evas_Public_Data *e = eo_data_scope_get(eo_e, EVAS_CANVAS_CLASS); Evas_Coord_Point canvas = ev->cur.canvas; - Efl_Pointer_Event_Data *pedata = NULL; - Efl_Pointer_Event *pe = NULL; + Efl_Event_Pointer_Data *pedata = NULL; + Efl_Event_Pointer *pe = NULL; if (obj->delete_me || src->delete_me || e->is_frozen) return; @@ -541,15 +541,15 @@ _evas_event_source_mouse_move_events(Evas_Object *eo_obj, Evas *eo_e, static void _evas_event_source_mouse_up_events(Evas_Object *eo_obj, Evas *eo_e, Evas_Event_Mouse_Up *ev, int event_id, - Efl_Pointer_Event_Data *parent_pe) + Efl_Event_Pointer_Data *parent_pe) { Evas_Object_Protected_Data *obj = eo_data_scope_get(eo_obj, EVAS_OBJECT_CLASS); Evas_Object *eo_src = _evas_object_image_source_get(eo_obj); Evas_Object_Protected_Data *src = eo_data_scope_get(eo_src, EVAS_OBJECT_CLASS); Evas_Public_Data *e = eo_data_scope_get(eo_e, EVAS_CANVAS_CLASS); Evas_Coord_Point canvas = ev->canvas; - Efl_Pointer_Event_Data *pedata = NULL; - Efl_Pointer_Event *pe = NULL; + Efl_Event_Pointer_Data *pedata = NULL; + Efl_Event_Pointer *pe = NULL; if (obj->delete_me || src->delete_me || e->is_frozen) return; @@ -620,15 +620,15 @@ _evas_event_source_hold_events(Evas_Object *eo_obj, Evas *eo_e EINA_UNUSED, void static void _evas_event_source_wheel_events(Evas_Object *eo_obj, Evas *eo_e, Evas_Event_Mouse_Wheel *ev, int event_id, - Efl_Pointer_Event_Data *parent_pe) + Efl_Event_Pointer_Data *parent_pe) { Evas_Object_Protected_Data *obj = eo_data_scope_get(eo_obj, EVAS_OBJECT_CLASS); Evas_Object *eo_src = _evas_object_image_source_get(eo_obj); Evas_Object_Protected_Data *src = eo_data_scope_get(eo_src, EVAS_OBJECT_CLASS); Evas_Public_Data *e = eo_data_scope_get(eo_e, EVAS_CANVAS_CLASS); Evas_Coord_Point canvas = ev->canvas; - Efl_Pointer_Event_Data *pedata = NULL; - Efl_Pointer_Event *pe = NULL; + Efl_Event_Pointer_Data *pedata = NULL; + Efl_Event_Pointer *pe = NULL; if (obj->delete_me || src->delete_me || obj->layer->evas->is_frozen) return; @@ -660,15 +660,15 @@ _evas_event_source_wheel_events(Evas_Object *eo_obj, Evas *eo_e, static void _evas_event_source_multi_down_events(Evas_Object *eo_obj, Evas *eo_e, Evas_Event_Multi_Down *ev, int event_id, - Efl_Pointer_Event_Data *parent_pe) + Efl_Event_Pointer_Data *parent_pe) { Evas_Object_Protected_Data *obj = eo_data_scope_get(eo_obj, EVAS_OBJECT_CLASS); Evas_Object *eo_src = _evas_object_image_source_get(eo_obj); Evas_Object_Protected_Data *src = eo_data_scope_get(eo_src, EVAS_OBJECT_CLASS); Evas_Public_Data *e = eo_data_scope_get(eo_e, EVAS_CANVAS_CLASS); Evas_Coord_Precision_Point canvas = ev->canvas; - Efl_Pointer_Event_Data *pedata = NULL; - Efl_Pointer_Event *pe = NULL; + Efl_Event_Pointer_Data *pedata = NULL; + Efl_Event_Pointer *pe = NULL; if (obj->delete_me || src->delete_me || obj->layer->evas->is_frozen) return; @@ -715,15 +715,15 @@ _evas_event_source_multi_down_events(Evas_Object *eo_obj, Evas *eo_e, static void _evas_event_source_multi_up_events(Evas_Object *eo_obj, Evas *eo_e, Evas_Event_Multi_Up *ev, int event_id, - Efl_Pointer_Event_Data *parent_pe) + Efl_Event_Pointer_Data *parent_pe) { Evas_Object_Protected_Data *obj = eo_data_scope_get(eo_obj, EVAS_OBJECT_CLASS); Evas_Object *eo_src = _evas_object_image_source_get(eo_obj); Evas_Object_Protected_Data *src = eo_data_scope_get(eo_src, EVAS_OBJECT_CLASS); Evas_Public_Data *e = eo_data_scope_get(eo_e, EVAS_CANVAS_CLASS); Evas_Coord_Precision_Point canvas = ev->canvas; - Efl_Pointer_Event_Data *pedata = NULL; - Efl_Pointer_Event *pe = NULL; + Efl_Event_Pointer_Data *pedata = NULL; + Efl_Event_Pointer *pe = NULL; if (obj->delete_me || src->delete_me || obj->layer->evas->is_frozen) return; @@ -764,15 +764,15 @@ _evas_event_source_multi_up_events(Evas_Object *eo_obj, Evas *eo_e, static void _evas_event_source_multi_move_events(Evas_Object *eo_obj, Evas *eo_e, Evas_Event_Multi_Move *ev, int event_id, - Efl_Pointer_Event_Data *parent_pe) + Efl_Event_Pointer_Data *parent_pe) { Evas_Object_Protected_Data *obj = eo_data_scope_get(eo_obj, EVAS_OBJECT_CLASS); Evas_Object *eo_src = _evas_object_image_source_get(eo_obj); Evas_Object_Protected_Data *src = eo_data_scope_get(eo_src, EVAS_OBJECT_CLASS); Evas_Public_Data *e = eo_data_scope_get(eo_e, EVAS_CANVAS_CLASS); Evas_Coord_Precision_Point canvas = ev->cur.canvas; - Efl_Pointer_Event_Data *pedata = NULL; - Efl_Pointer_Event *pe = NULL; + Efl_Event_Pointer_Data *pedata = NULL; + Efl_Event_Pointer *pe = NULL; if (obj->delete_me || src->delete_me || e->is_frozen) return; @@ -872,15 +872,15 @@ _evas_event_source_multi_move_events(Evas_Object *eo_obj, Evas *eo_e, static void _evas_event_source_mouse_in_events(Evas_Object *eo_obj, Evas *eo_e, Evas_Event_Mouse_In *ev, int event_id, - Efl_Pointer_Event_Data *parent_pe) + Efl_Event_Pointer_Data *parent_pe) { Evas_Object_Protected_Data *obj = eo_data_scope_get(eo_obj, EVAS_OBJECT_CLASS); Evas_Object *eo_src = _evas_object_image_source_get(eo_obj); Evas_Object_Protected_Data *src = eo_data_scope_get(eo_src, EVAS_OBJECT_CLASS); Evas_Public_Data *e = eo_data_scope_get(eo_e, EVAS_CANVAS_CLASS); Evas_Coord_Point canvas = ev->canvas; - Efl_Pointer_Event_Data *pedata = NULL; - Efl_Pointer_Event *pe = NULL; + Efl_Event_Pointer_Data *pedata = NULL; + Efl_Event_Pointer *pe = NULL; Evas_Object *eo_child; Eina_List *ins = NULL; Eina_List *l; @@ -935,15 +935,15 @@ _evas_event_source_mouse_in_events(Evas_Object *eo_obj, Evas *eo_e, static void _evas_event_source_mouse_out_events(Evas_Object *eo_obj, Evas *eo_e, Evas_Event_Mouse_Out *ev, int event_id, - Efl_Pointer_Event_Data *parent_pe) + Efl_Event_Pointer_Data *parent_pe) { Evas_Object_Protected_Data *obj = eo_data_scope_get(eo_obj, EVAS_OBJECT_CLASS); Evas_Object *eo_src = _evas_object_image_source_get(eo_obj); Evas_Object_Protected_Data *src = eo_data_scope_get(eo_src, EVAS_OBJECT_CLASS); Evas_Public_Data *e = eo_data_scope_get(eo_e, EVAS_CANVAS_CLASS); Evas_Coord_Point canvas = ev->canvas; - Efl_Pointer_Event_Data *pedata = NULL; - Efl_Pointer_Event *pe = NULL; + Efl_Event_Pointer_Data *pedata = NULL; + Efl_Event_Pointer *pe = NULL; Evas_Object *eo_child; Eina_List *l; Eina_List *copy; @@ -1139,11 +1139,11 @@ evas_event_thaw_eval(Evas *eo_e) static void _canvas_event_feed_mouse_down_internal(Eo *eo_e, int b, Evas_Button_Flags flags, unsigned int timestamp, const void *data, - Efl_Pointer_Event_Data *parent_pe) + Efl_Event_Pointer_Data *parent_pe) { Evas_Public_Data *e = eo_data_scope_get(eo_e, EVAS_CANVAS_CLASS); - Efl_Pointer_Event_Data *pedata = NULL; - Efl_Pointer_Event *pe = NULL; + Efl_Event_Pointer_Data *pedata = NULL; + Efl_Event_Pointer *pe = NULL; Eina_List *l, *copy; Evas_Event_Mouse_Down ev; Evas_Object *eo_obj; @@ -1243,11 +1243,11 @@ evas_event_feed_mouse_down(Eo *eo_e, int b, Evas_Button_Flags flags, unsigned in static int _post_up_handle(Evas *eo_e, unsigned int timestamp, const void *data, - Efl_Pointer_Event_Data *parent_pe) + Efl_Event_Pointer_Data *parent_pe) { Evas_Public_Data *e = eo_data_scope_get(eo_e, EVAS_CANVAS_CLASS); - Efl_Pointer_Event_Data *pedata = NULL; - Efl_Pointer_Event *pe = NULL; + Efl_Event_Pointer_Data *pedata = NULL; + Efl_Event_Pointer *pe = NULL; Eina_List *l, *copy, *ins, *ll; Evas_Event_Mouse_Out ev; Evas_Object *eo_obj; @@ -1369,11 +1369,11 @@ _post_up_handle(Evas *eo_e, unsigned int timestamp, const void *data, static void _canvas_event_feed_mouse_up_internal(Eo *eo_e, int b, Evas_Button_Flags flags, unsigned int timestamp, const void *data, - Efl_Pointer_Event_Data *parent_pe) + Efl_Event_Pointer_Data *parent_pe) { Evas_Public_Data *e = eo_data_scope_get(eo_e, EVAS_CANVAS_CLASS); - Efl_Pointer_Event_Data *pedata = NULL; - Efl_Pointer_Event *pe = NULL; + Efl_Event_Pointer_Data *pedata = NULL; + Efl_Event_Pointer *pe = NULL; Eina_List *l, *copy; INF("ButtonEvent:up time=%u x=%d y=%d button=%d downs=%d", timestamp, e->pointer.x, e->pointer.y, b, e->pointer.downs); @@ -1475,7 +1475,7 @@ evas_event_feed_mouse_up(Eo *eo_e, int b, Evas_Button_Flags flags, unsigned int static void _canvas_event_feed_mouse_cancel_internal(Eo *eo_e, unsigned int timestamp, const void *data, - Efl_Pointer_Event_Data *parent_pe) + Efl_Event_Pointer_Data *parent_pe) { Evas_Public_Data *e = eo_data_scope_get(eo_e, EVAS_CANVAS_CLASS); Evas_Coord_Touch_Point *point; @@ -1515,11 +1515,11 @@ evas_event_feed_mouse_cancel(Eo *eo_e, unsigned int timestamp, const void *data) static void _canvas_event_feed_mouse_wheel_internal(Eo *eo_e, int direction, int z, unsigned int timestamp, const void *data, - Efl_Pointer_Event_Data *parent_pe) + Efl_Event_Pointer_Data *parent_pe) { Evas_Public_Data *e = eo_data_scope_get(eo_e, EVAS_CANVAS_CLASS); - Efl_Pointer_Event_Data *pedata = NULL; - Efl_Pointer_Event *pe = NULL; + Efl_Event_Pointer_Data *pedata = NULL; + Efl_Event_Pointer *pe = NULL; Eina_List *l, *copy; Evas_Event_Mouse_Wheel ev; Evas_Object *eo_obj; @@ -1580,11 +1580,11 @@ evas_event_feed_mouse_wheel(Eo *eo_e, int direction, int z, unsigned int timesta static void _canvas_event_feed_mouse_move_internal(Eo *eo_e, Evas_Public_Data *e, int x, int y, unsigned int timestamp, const void *data, - Efl_Pointer_Event_Data *parent_pe) + Efl_Event_Pointer_Data *parent_pe) { Evas_Object *nogrep_obj = NULL; - Efl_Pointer_Event_Data *pemovedata = NULL, *peoutdata = NULL, *peindata = NULL; - Efl_Pointer_Event *pemove = NULL, *peout = NULL, *pein = NULL; + Efl_Event_Pointer_Data *pemovedata = NULL, *peoutdata = NULL, *peindata = NULL; + Efl_Event_Pointer *pemove = NULL, *peout = NULL, *pein = NULL; int px, py; px = e->pointer.x; @@ -2073,11 +2073,11 @@ evas_event_feed_mouse_move(Eo *eo_e, int x, int y, unsigned int timestamp, const static void _canvas_event_feed_mouse_in_internal(Eo *eo_e, unsigned int timestamp, const void *data, - Efl_Pointer_Event_Data *parent_pe) + Efl_Event_Pointer_Data *parent_pe) { Evas_Public_Data *e = eo_data_scope_get(eo_e, EVAS_CANVAS_CLASS); - Efl_Pointer_Event_Data *pedata = NULL; - Efl_Pointer_Event *pe = NULL; + Efl_Event_Pointer_Data *pedata = NULL; + Efl_Event_Pointer *pe = NULL; Eina_List *ins; Eina_List *l; Evas_Event_Mouse_In ev; @@ -2146,11 +2146,11 @@ evas_event_feed_mouse_in(Eo *eo_e, unsigned int timestamp, const void *data) static void _canvas_event_feed_mouse_out_internal(Eo *eo_e, unsigned int timestamp, const void *data, - Efl_Pointer_Event_Data *parent_pe) + Efl_Event_Pointer_Data *parent_pe) { Evas_Public_Data *e = eo_data_scope_get(eo_e, EVAS_CANVAS_CLASS); - Efl_Pointer_Event_Data *pedata = NULL; - Efl_Pointer_Event *pe = NULL; + Efl_Event_Pointer_Data *pedata = NULL; + Efl_Event_Pointer *pe = NULL; Evas_Event_Mouse_Out ev; int event_id = 0; @@ -2224,13 +2224,13 @@ _canvas_event_feed_multi_down_internal(Evas *eo_e, void *_pd, double pres, double ang, double fx, double fy, Evas_Button_Flags flags, unsigned int timestamp, - const void *data, Efl_Pointer_Event_Data *parent_pe) + const void *data, Efl_Event_Pointer_Data *parent_pe) { Evas_Public_Data *e = _pd; Eina_List *l, *copy; Evas_Event_Multi_Down ev; - Efl_Pointer_Event_Data *pedata = NULL; - Efl_Pointer_Event *pe = NULL; + Efl_Event_Pointer_Data *pedata = NULL; + Efl_Event_Pointer *pe = NULL; Evas_Object *eo_obj; int addgrab = 0; int event_id = 0; @@ -2337,10 +2337,10 @@ _canvas_event_feed_multi_up_internal(Evas *eo_e, void *_pd, Evas_Button_Flags flags, unsigned int timestamp, const void *data, - Efl_Pointer_Event_Data *parent_pe) + Efl_Event_Pointer_Data *parent_pe) { - Efl_Pointer_Event_Data *pedata = NULL; - Efl_Pointer_Event *pe = NULL; + Efl_Event_Pointer_Data *pedata = NULL; + Efl_Event_Pointer *pe = NULL; Evas_Public_Data *e = _pd; Eina_List *l, *copy; Evas_Event_Multi_Up ev; @@ -2442,11 +2442,11 @@ _canvas_event_feed_multi_move_internal(Eo *eo_e, void *_pd, int d, int x, double fx, double fy, unsigned int timestamp, const void *data, - Efl_Pointer_Event_Data *parent_pe) + Efl_Event_Pointer_Data *parent_pe) { Evas_Public_Data *e = _pd; - Efl_Pointer_Event_Data *pedata = NULL; - Efl_Pointer_Event *pe = NULL; + Efl_Event_Pointer_Data *pedata = NULL; + Efl_Event_Pointer *pe = NULL; if (e->is_frozen) return; e->last_timestamp = timestamp; @@ -3211,7 +3211,7 @@ _evas_canvas_event_down_count_get(Eo *eo_e EINA_UNUSED, Evas_Public_Data *e) static Eina_Bool _evas_canvas_event_pointer_cb(void *data, const Eo_Event *event) { - Efl_Pointer_Event_Data *ev = eo_data_scope_get(event->info, EFL_POINTER_EVENT_CLASS); + Efl_Event_Pointer_Data *ev = eo_data_scope_get(event->info, EFL_EVENT_POINTER_CLASS); Evas_Public_Data *e = data; Evas *eo_e = event->object; int dir; diff --git a/src/lib/evas/canvas/evas_events_legacy.c b/src/lib/evas/canvas/evas_events_legacy.c index dd887028d1..9dd0c3d641 100644 --- a/src/lib/evas/canvas/evas_events_legacy.c +++ b/src/lib/evas/canvas/evas_events_legacy.c @@ -5,9 +5,9 @@ #include "interfaces/efl_common_internal.h" Eina_Bool -efl_pointer_event_legacy_info_set(Efl_Pointer_Event *evt, const void *event_info, Evas_Callback_Type type) +efl_event_pointer_legacy_info_set(Efl_Event_Pointer *evt, const void *event_info, Evas_Callback_Type type) { - Efl_Pointer_Event_Data *ev = eo_data_scope_get(evt, EFL_POINTER_EVENT_CLASS); + Efl_Event_Pointer_Data *ev = eo_data_scope_get(evt, EFL_EVENT_POINTER_CLASS); if (!ev || !event_info) return EINA_FALSE; /* FIXME/TODO: @@ -210,9 +210,9 @@ efl_pointer_event_legacy_info_set(Efl_Pointer_Event *evt, const void *event_info } const void * -efl_pointer_event_legacy_info_get(const Efl_Pointer_Event *evt, Evas_Callback_Type *ptype, Eina_Bool multi) +efl_event_pointer_legacy_info_get(const Efl_Event_Pointer *evt, Evas_Callback_Type *ptype, Eina_Bool multi) { - Efl_Pointer_Event_Data *ev = eo_data_scope_get(evt, EFL_POINTER_EVENT_CLASS); + Efl_Event_Pointer_Data *ev = eo_data_scope_get(evt, EFL_EVENT_POINTER_CLASS); if (!ev) return NULL; switch (ev->action) diff --git a/src/lib/evas/include/evas_private.h b/src/lib/evas/include/evas_private.h index 5bf9b99d5d..5278337573 100644 --- a/src/lib/evas/include/evas_private.h +++ b/src/lib/evas/include/evas_private.h @@ -1937,8 +1937,8 @@ void _evas_device_cleanup(Evas *e); Evas_Device *_evas_device_top_get(const Evas *e); /* legacy/eo events */ -Eina_Bool efl_pointer_event_legacy_info_set(Efl_Pointer_Event *evt, const void *event_info, Evas_Callback_Type type); -const void *efl_pointer_event_legacy_info_get(const Efl_Pointer_Event *evt, Evas_Callback_Type *ptype, Eina_Bool multi); +Eina_Bool efl_event_pointer_legacy_info_set(Efl_Event_Pointer *evt, const void *event_info, Evas_Callback_Type type); +const void *efl_event_pointer_legacy_info_get(const Efl_Event_Pointer *evt, Evas_Callback_Type *ptype, Eina_Bool multi); Eina_Bool evas_vg_loader_svg(Evas_Object *vg, const Eina_File *f, const char *key EINA_UNUSED);