From 3b2a5a429be16e5b8e5d322b7a077a2c849586b8 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 cbd3107fa3..ff711084d7 100644 --- a/src/lib/ecore_evas/ecore_evas.c +++ b/src/lib/ecore_evas/ecore_evas.c @@ -3618,7 +3618,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; @@ -4811,7 +4811,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; @@ -4875,7 +4875,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; @@ -4915,7 +4915,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; @@ -4947,7 +4947,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; @@ -4991,7 +4991,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; @@ -5110,7 +5110,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 72188bf5f9..2e9e463205 100644 --- a/src/lib/elementary/efl_ui_win.c +++ b/src/lib/elementary/efl_ui_win.c @@ -2534,7 +2534,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 b65277ed2d..6fd25c91cb 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 1a172166b1..8b02713ad7 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 f43673bbad..d7b18dec53 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 e034e4ab6e..0713ca6e2a 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 ce1acd6b26..11af16b0a2 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 4dfa3bc2c6..6c24f88c2c 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 7a2d4cc67b..06d6923e6c 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; @@ -1957,7 +1957,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); @@ -2048,7 +2048,7 @@ evas_event_feed_mouse_wheel(Eo *eo_e, int direction, int z, unsigned int timesta { EINA_SAFETY_ON_FALSE_RETURN(efl_isa(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; @@ -2489,7 +2489,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; @@ -2716,7 +2716,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; @@ -2938,7 +2938,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); @@ -3417,7 +3417,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; @@ -3491,7 +3491,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; @@ -3590,7 +3590,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; @@ -4203,7 +4203,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 52ad4fe033..d76c1042dc 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 c9baf74bca..0d574c5418 100644 --- a/src/lib/evas/canvas/evas_main.c +++ b/src/lib/evas/canvas/evas_main.c @@ -760,7 +760,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 73a0c28e64..984b52ed67 100644 --- a/src/lib/evas/include/evas_private.h +++ b/src/lib/evas/include/evas_private.h @@ -1867,7 +1867,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);