From 19ced184a768f55a96b0b63ab835a80f81f3712f Mon Sep 17 00:00:00 2001 From: Marcel Hollerbach Date: Sat, 9 Feb 2019 19:08:45 +0100 Subject: [PATCH] efl_input: remove the API of efl_input_instance_get there is basically no reason for this API. You can only use the API when you know the class, when you know the class you can also just know the function to call to get this API. The reason this API needs to go is that we don't want to use polymorphism on class-functions. ref T7675 Reviewed-by: Xavi Artigas Differential Revision: https://phab.enlightenment.org/D7900 --- src/lib/ecore_evas/ecore_evas.c | 14 +++++++------- src/lib/elementary/efl_ui_win.c | 2 +- src/lib/evas/Evas_Internal.h | 6 +++++- src/lib/evas/canvas/efl_input_event.c | 2 +- src/lib/evas/canvas/efl_input_focus.c | 11 ++++------- src/lib/evas/canvas/efl_input_hold.c | 11 ++++------- src/lib/evas/canvas/efl_input_key.c | 12 ++++-------- src/lib/evas/canvas/efl_input_pointer.c | 12 ++++-------- src/lib/evas/canvas/evas_events.c | 20 ++++++++++---------- src/lib/evas/canvas/evas_focus.c | 2 +- src/lib/evas/canvas/evas_main.c | 2 +- src/lib/evas/include/evas_private.h | 2 +- 12 files changed, 43 insertions(+), 53 deletions(-) diff --git a/src/lib/ecore_evas/ecore_evas.c b/src/lib/ecore_evas/ecore_evas.c index 5517fad..4da168a 100644 --- a/src/lib/ecore_evas/ecore_evas.c +++ b/src/lib/ecore_evas/ecore_evas.c @@ -3809,7 +3809,7 @@ _ecore_evas_mouse_move_process_internal(Ecore_Evas *ee, if (!send_event) return; - evt = efl_input_instance_get(EFL_INPUT_POINTER_CLASS, ee->evas, (void **) &ev); + evt = efl_input_pointer_instance_get( ee->evas, (void **) &ev); if (!evt) return; ev->action = EFL_POINTER_ACTION_MOVE; @@ -5501,7 +5501,7 @@ _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_input_instance_get(EFL_INPUT_POINTER_CLASS, e, (void **) &ev); + evt = efl_input_pointer_instance_get( e, (void **) &ev); if (!evt) return EINA_FALSE; ev->action = action; @@ -5575,7 +5575,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_input_instance_get(EFL_INPUT_POINTER_CLASS, e, (void **) &ev); + evt = efl_input_pointer_instance_get( e, (void **) &ev); if (!evt) return EINA_FALSE; ev->action = EFL_POINTER_ACTION_MOVE; @@ -5623,7 +5623,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_input_instance_get(EFL_INPUT_POINTER_CLASS, e, (void **) &ev); + evt = efl_input_pointer_instance_get( e, (void **) &ev); if (!evt) return EINA_FALSE; ev->action = EFL_POINTER_ACTION_WHEEL; @@ -5663,7 +5663,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_input_instance_get(EFL_INPUT_POINTER_CLASS, e, (void **) &ev); + evt = efl_input_pointer_instance_get( e, (void **) &ev); if (!evt) return EINA_FALSE; ev->action = action; @@ -5715,7 +5715,7 @@ _direct_axis_update_cb(Ecore_Evas *ee, const Ecore_Event_Axis_Update *info) * window, root_window, event_window */ - evt = efl_input_instance_get(EFL_INPUT_POINTER_CLASS, e, (void **) &ev); + evt = efl_input_pointer_instance_get( e, (void **) &ev); if (!ev) return EINA_FALSE; ev->action = EFL_POINTER_ACTION_AXIS; @@ -5842,7 +5842,7 @@ _direct_key_updown_cb(Ecore_Evas *ee, const Ecore_Event_Key *info, Eina_Bool dow * modifiers (already passed to evas, no need to do anything) */ - evt = efl_input_instance_get(EFL_INPUT_KEY_CLASS, e, (void **) &ev); + evt = efl_input_key_instance_get( e, (void **) &ev); if (!evt || !ev) return EINA_FALSE; ev->timestamp = info->timestamp; diff --git a/src/lib/elementary/efl_ui_win.c b/src/lib/elementary/efl_ui_win.c index 2e042f9..1c9cc8d 100644 --- a/src/lib/elementary/efl_ui_win.c +++ b/src/lib/elementary/efl_ui_win.c @@ -3014,7 +3014,7 @@ _efl_ui_win_efl_canvas_scene_pointer_iterate(const Eo *obj, Efl_Ui_Win_Data *sd, Efl_Input_Pointer *ptr; double x, y; - ptr = efl_input_instance_get(EFL_INPUT_POINTER_CLASS, (Eo *) obj, (void **) &ptrdata); + ptr = efl_input_pointer_instance_get( (Eo *) obj, (void **) &ptrdata); if (!ptrdata) break; ptrdata->tool = evas_touch_point_list_nth_id_get(sd->evas, i); diff --git a/src/lib/evas/Evas_Internal.h b/src/lib/evas/Evas_Internal.h index b65277e..6fd25c9 100644 --- a/src/lib/evas/Evas_Internal.h +++ b/src/lib/evas/Evas_Internal.h @@ -74,7 +74,11 @@ EOAPI void evas_canvas_seat_focus_out(Eo *obj, Efl_Input_Device *seat); EOAPI Eo* evas_canvas_seat_focus_get(const Eo *obj, Efl_Input_Device *seat); EOAPI void *efl_input_legacy_info_get(const Eo *obj); -EOAPI Eo *efl_input_instance_get(const Eo *obj, Efl_Object *owner, void **priv); + +EOAPI Eo *efl_input_focus_instance_get(Efl_Object *owner, void **priv); +EOAPI Eo *efl_input_hold_instance_get(Efl_Object *owner, void **priv); +EOAPI Eo *efl_input_key_instance_get(Efl_Object *owner, void **priv); +EOAPI Eo *efl_input_pointer_instance_get(Efl_Object *owner, void **priv); EWAPI extern const Efl_Event_Description _EVAS_CANVAS_EVENT_RENDER_FLUSH_PRE; #define EVAS_CANVAS_EVENT_RENDER_FLUSH_PRE (&(_EVAS_CANVAS_EVENT_RENDER_FLUSH_PRE)) diff --git a/src/lib/evas/canvas/efl_input_event.c b/src/lib/evas/canvas/efl_input_event.c index 1a17216..8b02713 100644 --- a/src/lib/evas/canvas/efl_input_event.c +++ b/src/lib/evas/canvas/efl_input_event.c @@ -95,7 +95,7 @@ _noref_death(void *data EINA_UNUSED, const Efl_Event *event) } Efl_Input_Event * -efl_input_event_instance_get(Eo *klass, Eo *owner) +efl_input_event_instance_get(const Eo *klass, Eo *owner) { Efl_Input_Event *evt; diff --git a/src/lib/evas/canvas/efl_input_focus.c b/src/lib/evas/canvas/efl_input_focus.c index f43673b..d7b18de 100644 --- a/src/lib/evas/canvas/efl_input_focus.c +++ b/src/lib/evas/canvas/efl_input_focus.c @@ -101,14 +101,14 @@ _efl_input_focus_efl_duplicate_duplicate(const Eo *obj, Efl_Input_Focus_Data *pd return evt; } -EOLIAN static Efl_Input_Focus * -_efl_input_focus_efl_input_event_instance_get(Eo *klass, void *_pd EINA_UNUSED, - Eo *owner, void **priv) + +EOAPI Eo* +efl_input_focus_instance_get(Efl_Object *owner, void **priv) { Efl_Input_Focus_Data *ev; Efl_Input_Focus *evt; - evt = efl_input_event_instance_get(klass, owner); + evt = efl_input_event_instance_get(EFL_INPUT_FOCUS_CLASS, owner); if (!evt) return NULL; ev = efl_data_scope_get(evt, MY_CLASS); @@ -148,7 +148,4 @@ _efl_input_focus_efl_input_event_event_flags_get(const Eo *obj EINA_UNUSED, Efl_ /* Internal EO APIs */ -#define EFL_INPUT_FOCUS_EXTRA_CLASS_OPS \ - EFL_OBJECT_OP_FUNC(efl_input_instance_get, _efl_input_focus_efl_input_event_instance_get) - #include "efl_input_focus.eo.c" diff --git a/src/lib/evas/canvas/efl_input_hold.c b/src/lib/evas/canvas/efl_input_hold.c index e034e4a..0713ca6 100644 --- a/src/lib/evas/canvas/efl_input_hold.c +++ b/src/lib/evas/canvas/efl_input_hold.c @@ -82,11 +82,11 @@ _efl_input_hold_efl_object_destructor(Eo *obj, Efl_Input_Hold_Data *pd) efl_destructor(efl_super(obj, MY_CLASS)); } -EOLIAN static Efl_Input_Event * -_efl_input_hold_efl_input_event_instance_get(Eo *klass, void *_pd EINA_UNUSED, - Efl_Object *owner, void **priv) + +EOAPI Eo* +efl_input_hold_instance_get(Efl_Object *owner, void **priv) { - Efl_Input_Event *evt = efl_input_event_instance_get(klass, owner);; + Efl_Input_Event *evt = efl_input_event_instance_get(EFL_INPUT_HOLD_CLASS, owner);; if (!evt) return NULL; if (priv) *priv = efl_data_scope_get(evt, MY_CLASS); @@ -139,7 +139,4 @@ _efl_input_hold_efl_input_event_legacy_info_get(Eo *obj, Efl_Input_Hold_Data *pd #define EFL_INPUT_HOLD_EXTRA_OPS \ EFL_OBJECT_OP_FUNC(efl_input_legacy_info_get, _efl_input_hold_efl_input_event_legacy_info_get) -#define EFL_INPUT_HOLD_EXTRA_CLASS_OPS \ - EFL_OBJECT_OP_FUNC(efl_input_instance_get, _efl_input_hold_efl_input_event_instance_get) - #include "efl_input_hold.eo.c" diff --git a/src/lib/evas/canvas/efl_input_key.c b/src/lib/evas/canvas/efl_input_key.c index ce1acd6..11af16b 100644 --- a/src/lib/evas/canvas/efl_input_key.c +++ b/src/lib/evas/canvas/efl_input_key.c @@ -12,18 +12,17 @@ #define MY_CLASS EFL_INPUT_KEY_CLASS -EOLIAN static Efl_Input_Key * -_efl_input_key_efl_input_event_instance_get(Eo *klass, void *_pd EINA_UNUSED, - Eo *owner, void **priv) +EOAPI Eo* +efl_input_key_instance_get(Efl_Object *owner, void **priv) { Efl_Input_Key_Data *ev; Efl_Input_Key *evt; Evas *evas; - evt = efl_input_event_instance_get(klass, owner); + evt = efl_input_event_instance_get(EFL_INPUT_KEY_CLASS, owner); if (!evt) return NULL; - ev = efl_data_scope_get(evt, klass); + ev = efl_data_scope_get(evt, EFL_INPUT_KEY_CLASS); ev->fake = EINA_FALSE; if (priv) *priv = ev; @@ -267,7 +266,4 @@ _efl_input_key_efl_input_event_legacy_info_get(Eo *obj, Efl_Input_Key_Data *pd) #define EFL_INPUT_KEY_EXTRA_OPS \ EFL_OBJECT_OP_FUNC(efl_input_legacy_info_get, _efl_input_key_efl_input_event_legacy_info_get) -#define EFL_INPUT_KEY_EXTRA_CLASS_OPS \ - EFL_OBJECT_OP_FUNC(efl_input_instance_get, _efl_input_key_efl_input_event_instance_get) - #include "efl_input_key.eo.c" diff --git a/src/lib/evas/canvas/efl_input_pointer.c b/src/lib/evas/canvas/efl_input_pointer.c index 4dfa3bc2..6c24f88 100644 --- a/src/lib/evas/canvas/efl_input_pointer.c +++ b/src/lib/evas/canvas/efl_input_pointer.c @@ -24,17 +24,16 @@ */ /* internal eo */ -static Efl_Input_Pointer * -_efl_input_pointer_efl_input_event_instance_get(Eo *klass, void *_pd EINA_UNUSED, - Eo *owner, void **priv) +EOAPI Eo* +efl_input_pointer_instance_get(Efl_Object *owner, void **priv) { Efl_Input_Pointer_Data *ev; Efl_Input_Pointer *evt; - evt = efl_input_event_instance_get(klass, owner); + evt = efl_input_event_instance_get(EFL_INPUT_POINTER_CLASS, owner); if (!evt) return NULL; - ev = efl_data_scope_get(evt, klass); + ev = efl_data_scope_get(evt, EFL_INPUT_POINTER_CLASS); ev->fake = EINA_FALSE; if (priv) *priv = ev; @@ -623,7 +622,4 @@ _efl_input_pointer_efl_input_event_legacy_info_get(Eo *obj, Efl_Input_Pointer_Da #define EFL_INPUT_POINTER_EXTRA_OPS \ EFL_OBJECT_OP_FUNC(efl_input_legacy_info_get, _efl_input_pointer_efl_input_event_legacy_info_get) -#define EFL_INPUT_POINTER_EXTRA_CLASS_OPS \ - EFL_OBJECT_OP_FUNC(efl_input_instance_get, _efl_input_pointer_efl_input_event_instance_get) - #include "efl_input_pointer.eo.c" diff --git a/src/lib/evas/canvas/evas_events.c b/src/lib/evas/canvas/evas_events.c index cfff396..26a6640 100644 --- a/src/lib/evas/canvas/evas_events.c +++ b/src/lib/evas/canvas/evas_events.c @@ -1843,7 +1843,7 @@ _canvas_event_feed_mouse_updown(Eo *eo_e, int b, Evas_Button_Flags flags, if (!e) return; EVAS_EVENT_FEED_SAFETY_CHECK(e); - evt = efl_input_instance_get(EFL_INPUT_POINTER_CLASS, eo_e, (void **) &ev); + evt = efl_input_pointer_instance_get( eo_e, (void **) &ev); if (!ev) return; ev->data = (void *) data; @@ -2029,7 +2029,7 @@ evas_event_feed_mouse_cancel(Eo *eo_e, unsigned int timestamp, const void *data) Efl_Input_Pointer_Data *ev = NULL; Efl_Input_Pointer *evt; - evt = efl_input_instance_get(EFL_INPUT_POINTER_CLASS, eo_e, (void **) &ev); + evt = efl_input_pointer_instance_get( eo_e, (void **) &ev); if (!ev) return; EVAS_EVENT_FEED_SAFETY_CHECK(e); @@ -2125,7 +2125,7 @@ evas_event_feed_mouse_wheel(Eo *eo_e, int direction, int z, unsigned int timesta Evas_Public_Data *e = efl_data_scope_get(eo_e, EVAS_CANVAS_CLASS); // Efl_Input_Pointer_Data *ev = NULL; - Efl_Input_Pointer *evt = efl_input_instance_get(EFL_INPUT_POINTER_CLASS, eo_e, (void **) &ev); + Efl_Input_Pointer *evt = efl_input_pointer_instance_get( eo_e, (void **) &ev); if (!ev) return; @@ -2568,7 +2568,7 @@ _canvas_event_feed_mouse_move_legacy(Evas *eo_e, Evas_Public_Data *e, int x, int Efl_Input_Pointer_Data *ev = NULL; Efl_Input_Pointer *evt; - evt = efl_input_instance_get(EFL_INPUT_POINTER_CLASS, eo_e, (void **) &ev); + evt = efl_input_pointer_instance_get( eo_e, (void **) &ev); if (!ev) return; ev->data = (void *) data; @@ -2847,7 +2847,7 @@ _canvas_event_feed_mouse_inout_legacy(Eo *eo_e, unsigned int timestamp, Efl_Input_Pointer_Data *ev = NULL; Efl_Input_Pointer *evt; - evt = efl_input_instance_get(EFL_INPUT_POINTER_CLASS, eo_e, (void **) &ev); + evt = efl_input_pointer_instance_get( eo_e, (void **) &ev); if (!ev) return; ev->timestamp = timestamp; @@ -3071,7 +3071,7 @@ _canvas_event_feed_multi_internal(Evas *eo_e, Evas_Public_Data *e, Efl_Input_Pointer_Data *ev = NULL; Efl_Input_Pointer *evt; - evt = efl_input_instance_get(EFL_INPUT_POINTER_CLASS, eo_e, (void **) &ev); + evt = efl_input_pointer_instance_get( eo_e, (void **) &ev); if (!e || !ev) return; EVAS_EVENT_FEED_SAFETY_CHECK(e); @@ -3552,7 +3552,7 @@ _canvas_event_feed_key_legacy(Eo *eo_e, Evas_Public_Data *e, if (!keyname) return; - evt = efl_input_instance_get(EFL_INPUT_KEY_CLASS, eo_e, (void **) &ev); + evt = efl_input_key_instance_get( eo_e, (void **) &ev); if (!ev) return; ev->keyname = (char *) keyname; @@ -3626,7 +3626,7 @@ evas_event_feed_hold(Eo *eo_e, int hold, unsigned int timestamp, const void *dat event_id = _evas_object_event_new(); - evt = efl_input_instance_get(EFL_INPUT_HOLD_CLASS, eo_e, (void **) &ev); + evt = efl_input_hold_instance_get(eo_e, (void **) &ev); if (!ev) return; ev->hold = !!hold; @@ -3727,7 +3727,7 @@ evas_event_feed_axis_update(Evas *eo_e, unsigned int timestamp, int device, int if (!e) return; EVAS_EVENT_FEED_SAFETY_CHECK(e); - evt = efl_input_instance_get(EFL_INPUT_POINTER_CLASS, eo_e, (void **) &ev); + evt = efl_input_pointer_instance_get( eo_e, (void **) &ev); if (!ev) return; ev->data = (void *) data; @@ -4348,7 +4348,7 @@ _evas_canvas_event_pointer_move_event_dispatch(Evas_Public_Data *edata, Efl_Input_Pointer_Data *ev = NULL; Efl_Input_Pointer *evt; - evt = efl_input_instance_get(EFL_INPUT_POINTER_CLASS, edata->evas, + evt = efl_input_pointer_instance_get( edata->evas, (void **) &ev); if (!evt) return; diff --git a/src/lib/evas/canvas/evas_focus.c b/src/lib/evas/canvas/evas_focus.c index 52ad4fe..d76c104 100644 --- a/src/lib/evas/canvas/evas_focus.c +++ b/src/lib/evas/canvas/evas_focus.c @@ -107,7 +107,7 @@ _evas_focus_dispatch_event(Evas_Object_Protected_Data *obj, Efl_Input_Device *se const Efl_Event_Description *efl_object_focus_event; EVAS_OBJECT_DATA_VALID_CHECK(obj); - evt = efl_input_instance_get(EFL_INPUT_FOCUS_CLASS, + evt = efl_input_focus_instance_get( efl_provider_find(obj->object, EVAS_CANVAS_CLASS), (void **) &ev_data); if (!evt) return; diff --git a/src/lib/evas/canvas/evas_main.c b/src/lib/evas/canvas/evas_main.c index cd40b33..cbcf37f 100644 --- a/src/lib/evas/canvas/evas_main.c +++ b/src/lib/evas/canvas/evas_main.c @@ -767,7 +767,7 @@ _evas_canvas_focus_inout_dispatch(Eo *eo_e, Efl_Input_Device *seat, Efl_Input_Focus_Data *ev_data; Efl_Input_Focus *evt; - evt = efl_input_instance_get(EFL_INPUT_FOCUS_CLASS, eo_e, (void **) &ev_data); + evt = efl_input_focus_instance_get(eo_e, (void **) &ev_data); if (!evt) return; ev_data->device = efl_ref(seat); diff --git a/src/lib/evas/include/evas_private.h b/src/lib/evas/include/evas_private.h index b495788..4a3d155f 100755 --- a/src/lib/evas/include/evas_private.h +++ b/src/lib/evas/include/evas_private.h @@ -1887,7 +1887,7 @@ void _evas_device_cleanup(Evas *e); Evas_Device *_evas_device_top_get(const Evas *e); /* legacy/eo events */ -Efl_Input_Event *efl_input_event_instance_get(Eo *klass, Eo *owner); +Efl_Input_Event *efl_input_event_instance_get(const Eo *klass, Eo *owner); void efl_input_event_instance_clean(Eo *klass); void *efl_input_pointer_legacy_info_fill(Evas *eo_evas, Efl_Input_Key *eo_ev, Evas_Callback_Type type, Evas_Event_Flags **pflags); -- 2.7.4