diff options
author | Cedric BAIL <cedric.bail@free.fr> | 2019-02-06 13:48:43 -0500 |
---|---|---|
committer | Mike Blumenkrantz <zmike@samsung.com> | 2019-02-06 13:48:43 -0500 |
commit | f484ca0951e4875f926ebbd9f779d38a13659577 (patch) | |
tree | e67dfc2db88b882e6e904d4ac6219c9549472cb7 /src/lib/edje/edje_program.c | |
parent | 917e0aa0feb9a79721953ea632723d26a251a850 (diff) | |
download | efl-f484ca0951e4875f926ebbd9f779d38a13659577.tar.gz |
edje: migrate Eo API to use Eo callback instead of opaque type.
Summary: Depends on D7869
Reviewers: zmike, q66, segfaultxavi, bu5hm4n
Reviewed By: zmike
Subscribers: #reviewers, #committers
Tags: #efl
Maniphest Tasks: T7671
Differential Revision: https://phab.enlightenment.org/D7870
Diffstat (limited to 'src/lib/edje/edje_program.c')
-rw-r--r-- | src/lib/edje/edje_program.c | 27 |
1 files changed, 16 insertions, 11 deletions
diff --git a/src/lib/edje/edje_program.c b/src/lib/edje/edje_program.c index e6a1373adf..9d8f90f6c5 100644 --- a/src/lib/edje/edje_program.c +++ b/src/lib/edje/edje_program.c @@ -237,7 +237,9 @@ edje_transition_duration_factor_set(double scale) } Eina_Bool -_edje_object_signal_callback_add(Edje *ed, const char *emission, const char *source, Efl_Signal_Cb func, void *data) +_edje_object_signal_callback_add(Edje *ed, const char *emission, const char *source, + Edje_Signal_Cb func_legacy, + Efl_Signal_Cb func_eo, Eina_Free_Cb func_free_cb, void *data) { Edje_Signal_Callback_Group *gp; const char *sig; @@ -252,7 +254,7 @@ _edje_object_signal_callback_add(Edje *ed, const char *emission, const char *sou src = eina_stringshare_add(source); gp = (Edje_Signal_Callback_Group *) ed->callbacks; - ok = _edje_signal_callback_push(gp, sig, src, func, data, EINA_TRUE); + ok = _edje_signal_callback_push(gp, sig, src, func_legacy, func_eo, func_free_cb, data, EINA_TRUE); eina_stringshare_del(sig); eina_stringshare_del(src); @@ -267,17 +269,17 @@ edje_object_propagate_callback_add(Evas_Object *obj, Efl_Signal_Cb func, void *d ed = _edje_fetch(obj); if (!ed || ed->delete_me) return; - _edje_object_signal_callback_add(ed, "*", "*", func, data); + _edje_object_signal_callback_add(ed, "*", "*", func, NULL, NULL, data); } -EOLIAN Eina_Bool -_efl_canvas_layout_efl_layout_signal_signal_callback_add(Eo *obj EINA_UNUSED, Edje *ed, const char *emission, const char *source, Efl_Signal_Cb func, void *data) +Eina_Bool +_efl_canvas_layout_efl_layout_signal_signal_callback_add(Eo *obj EINA_UNUSED, Edje *ed, const char *emission, const char *source, void *func_data, EflLayoutSignalCb func, Eina_Free_Cb func_free_cb) { - return _edje_object_signal_callback_add(ed, emission, source, func, data); + return _edje_object_signal_callback_add(ed, emission, source, NULL, func, func_free_cb, func_data); } -EOLIAN Eina_Bool -_efl_canvas_layout_efl_layout_signal_signal_callback_del(Eo *obj EINA_UNUSED, Edje *ed, const char *emission, const char *source, Efl_Signal_Cb func, void *data) +Eina_Bool +_efl_canvas_layout_efl_layout_signal_signal_callback_del(Eo *obj EINA_UNUSED, Edje *ed, const char *emission, const char *source, void *func_data, EflLayoutSignalCb func, Eina_Free_Cb func_free_cb) { Edje_Signal_Callback_Group *gp; Eina_Bool ok; @@ -291,7 +293,7 @@ _efl_canvas_layout_efl_layout_signal_signal_callback_del(Eo *obj EINA_UNUSED, Ed emission = eina_stringshare_add(emission); source = eina_stringshare_add(source); - ok = _edje_signal_callback_disable(gp, emission, source, func, data); + ok = _edje_signal_callback_disable(gp, emission, source, NULL, func, func_free_cb, func_data); eina_stringshare_del(emission); eina_stringshare_del(source); @@ -1669,13 +1671,16 @@ _edje_emit_cb(Edje *ed, const char *sig, const char *src, Edje_Message_Signal_Da cb = &m->matches[*i]; - cb->func((void *)ed->callbacks->custom_data[*i], ed->obj, sig, src); + if (ed->callbacks->flags[*i].legacy) + cb->legacy((void *)ed->callbacks->custom_data[*i], ed->obj, sig, src); + else + cb->eo((void *)ed->callbacks->custom_data[*i], ed->obj, sig, src); if (_edje_block_break(ed)) break; } } break_prog: - _edje_signal_callback_matches_unref(m); + _edje_signal_callback_matches_unref(m, ed->callbacks->flags, ed->callbacks->custom_data); _edje_signal_callback_patterns_unref(ssp); } |