diff --git a/src/lib/edje/edje_legacy.c b/src/lib/edje/edje_legacy.c index e96e470724..fead8b04be 100644 --- a/src/lib/edje/edje_legacy.c +++ b/src/lib/edje/edje_legacy.c @@ -81,7 +81,7 @@ edje_object_signal_callback_add(Evas_Object *obj, const char *emission, const ch ed = _edje_fetch(obj); if (!ed || ed->delete_me) return; - _edje_object_signal_callback_add(ed, emission, source, func, data); + _edje_object_signal_callback_add(ed, emission, source, func, NULL, NULL, data); } EAPI void * @@ -99,7 +99,8 @@ edje_object_signal_callback_del_full(Evas_Object *obj, const char *emission, con emission = eina_stringshare_add(emission); source = eina_stringshare_add(source); - ok = _edje_signal_callback_disable(gp, emission, source, func, data); + // We can cast here as the function won't be used and is just going to be used for comparison + ok = _edje_signal_callback_disable(gp, emission, source, func, NULL, NULL, data); // Legacy only if (!ok && !data) @@ -108,7 +109,8 @@ edje_object_signal_callback_del_full(Evas_Object *obj, const char *emission, con { if (emission == gp->matches->matches[i].signal && source == gp->matches->matches[i].source && - func == gp->matches->matches[i].func && + func == gp->matches->matches[i].legacy && + gp->flags[i].legacy && !gp->flags[i].delete_me) { gp->flags[i].delete_me = EINA_TRUE; diff --git a/src/lib/edje/edje_match.c b/src/lib/edje/edje_match.c index 57e319bdb9..7f4065ae96 100644 --- a/src/lib/edje/edje_match.c +++ b/src/lib/edje/edje_match.c @@ -553,7 +553,10 @@ edje_match_callback_exec_check_finals(const Edje_Signals_Sources_Patterns *ssp, if (ed->callbacks->flags[idx].delete_me) continue; - cb->func((void *)ed->callbacks->custom_data[idx], ed->obj, sig, source); + if (ed->callbacks->flags[idx].legacy) + cb->legacy((void *)ed->callbacks->custom_data[idx], ed->obj, sig, source); + else + cb->eo((void *)ed->callbacks->custom_data[idx], ed->obj, sig, source); if (_edje_block_break(ed)) { r = 0; diff --git a/src/lib/edje/edje_private.h b/src/lib/edje/edje_private.h index a8349ae372..6b7cf50ffc 100644 --- a/src/lib/edje/edje_private.h +++ b/src/lib/edje/edje_private.h @@ -1048,12 +1048,16 @@ struct _Edje_Signal_Callback_Match { const char *signal; const char *source; - Edje_Signal_Cb func; + union { + Edje_Signal_Cb legacy; + EflLayoutSignalCb eo; + }; }; struct _Edje_Signal_Callback_Matches { Edje_Signal_Callback_Match *matches; + Eina_Free_Cb *free_cb; Edje_Signals_Sources_Patterns *patterns; @@ -1065,6 +1069,7 @@ struct _Edje_Signal_Callback_Matches struct _Edje_Signal_Callback_Flags { + Eina_Bool legacy:1; Eina_Bool delete_me:1; Eina_Bool just_added:1; Eina_Bool propagate:1; @@ -2424,8 +2429,9 @@ const Eina_Inarray *edje_match_signal_source_hash_get(const char *signal, const char *source, const Eina_Rbtree *tree); void edje_match_signal_source_free(Edje_Signal_Source_Char *key, void *data); -void _edje_signal_callback_matches_unref(Edje_Signal_Callback_Matches *m); -Eina_Bool _edje_object_signal_callback_add(Edje *ed, const char *emission, const char *source, Efl_Signal_Cb func, void *data); +Eina_Bool _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); // FIXME remove below 3 eapi decls when edje_convert goes EAPI void _edje_edd_init(void); @@ -2548,14 +2554,19 @@ void _edje_callbacks_del(Evas_Object *obj, Edje *ed); void _edje_callbacks_focus_del(Evas_Object *obj, Edje *ed); const Edje_Signal_Callback_Group *_edje_signal_callback_alloc(void); +void _edje_signal_callback_matches_unref(Edje_Signal_Callback_Matches *m, Edje_Signal_Callback_Flags *flags, void **custom_data); void _edje_signal_callback_free(const Edje_Signal_Callback_Group *cgp); Eina_Bool _edje_signal_callback_push(Edje_Signal_Callback_Group *cgp, const char *signal, const char *source, - Edje_Signal_Cb func, void *data, + Edje_Signal_Cb func_legacy, + Efl_Signal_Cb func_eo, + Eina_Free_Cb func_free_cb, + void *data, Eina_Bool propagate); Eina_Bool _edje_signal_callback_disable(Edje_Signal_Callback_Group *cgp, const char *signal, const char *source, - Edje_Signal_Cb func, void *data); + Edje_Signal_Cb func_legacy, + EflLayoutSignalCb func, Eina_Free_Cb func_free_cb, void *data); EAPI void _edje_edd_init(void); EAPI void _edje_edd_shutdown(void); 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); } diff --git a/src/lib/edje/edje_signal.c b/src/lib/edje/edje_signal.c index 2f4bab3bd6..e13ec1bcb2 100644 --- a/src/lib/edje/edje_signal.c +++ b/src/lib/edje/edje_signal.c @@ -22,7 +22,13 @@ _edje_signal_match_key_cmp(const void *key1, int key1_length EINA_UNUSED, const { if (a->matches[i].signal != b->matches[i].signal) return a->matches[i].signal - b->matches[i].signal; if (a->matches[i].source != b->matches[i].source) return a->matches[i].source - b->matches[i].source; - if (a->matches[i].func != b->matches[i].func) return (unsigned char *)a->matches[i].func - (unsigned char *)b->matches[i].func; + // Callback be it legacy or eo, have the same pointer size and so can be just compared like that + if (a->matches[i].legacy != b->matches[i].legacy) return (unsigned char *)a->matches[i].legacy - (unsigned char *)b->matches[i].legacy; + if (a->free_cb && b->free_cb && + a->free_cb[i] != b->free_cb[i]) return (unsigned char *)a->free_cb[i] - (unsigned char *)b->free_cb[i]; + if ((!a->free_cb && b->free_cb) || + (a->free_cb && !b->free_cb)) + return a->free_cb - b->free_cb; } return 0; } @@ -39,11 +45,16 @@ _edje_signal_match_key_hash(const void *key, int key_length EINA_UNUSED) #ifdef EFL64 hash ^= eina_hash_int64((const unsigned long long int *)&a->matches[i].signal, sizeof (char *)); hash ^= eina_hash_int64((const unsigned long long int *)&a->matches[i].source, sizeof (char *)); - hash ^= eina_hash_int64((const unsigned long long int *)&a->matches[i].func, sizeof (Edje_Signal_Cb)); + hash ^= eina_hash_int64((const unsigned long long int *)&a->matches[i].legacy, sizeof (Edje_Signal_Cb)); + if (a->free_cb) + hash ^= eina_hash_int64((const unsigned long long int *)&a->free_cb[i], sizeof (Eina_Free_Cb)); #else hash ^= eina_hash_int32((const unsigned int *)&a->matches[i].signal, sizeof (char *)); hash ^= eina_hash_int32((const unsigned int *)&a->matches[i].source, sizeof (char *)); - hash ^= eina_hash_int32((const unsigned int *)&a->matches[i].func, sizeof (Edje_Signal_Cb)); + // Callback be it legacy or eo, have the same pointer size and so using legacy for hash is enough + hash ^= eina_hash_int32((const unsigned int *)&a->matches[i].legacy, sizeof (Edje_Signal_Cb)); + if (a->free_cb) + hash ^= eina_hash_int32((const unsigned int *)&a->free_cb[i], sizeof (Eina_Free_Cb)); #endif } return hash; @@ -64,11 +75,17 @@ _edje_signal_callback_matches_dup(const Edje_Signal_Callback_Matches *src) result->patterns = NULL; EINA_REFCOUNT_REF(result); + if (src->free_cb) + { + result->free_cb = malloc(sizeof (Eina_Free_Cb) * src->matches_count); + if (result->free_cb) memcpy(result->free_cb, src->free_cb, sizeof (Eina_Free_Cb) * src->matches_count); + } + for (i = 0; i < src->matches_count; i++) { result->matches[i].signal = eina_stringshare_ref(src->matches[i].signal); result->matches[i].source = eina_stringshare_ref(src->matches[i].source); - result->matches[i].func = src->matches[i].func; + result->matches[i].legacy = src->matches[i].legacy; } return result; @@ -141,14 +158,23 @@ _edje_signal_callback_unset(Edje_Signal_Callback_Group *gp, int idx) static void _edje_signal_callback_set(Edje_Signal_Callback_Group *gp, int idx, const char *sig, const char *src, - Edje_Signal_Cb func, void *data, Edje_Signal_Callback_Flags flags) + Edje_Signal_Cb func_legacy, + Efl_Signal_Cb func_eo, Eina_Free_Cb func_free_cb, + void *data, Edje_Signal_Callback_Flags flags) { Edje_Signal_Callback_Match *m; m = gp->matches->matches + idx; m->signal = eina_stringshare_ref(sig); m->source = eina_stringshare_ref(src); - m->func = func; + if (func_legacy) m->legacy = func_legacy; + else m->eo = func_eo; + if (func_free_cb) + { + if (!gp->matches->free_cb) + ((Edje_Signal_Callback_Matches *) gp->matches)->free_cb = calloc(sizeof (Eina_Free_Cb), gp->matches->matches_count); + gp->matches->free_cb[idx] = func_free_cb; + } gp->custom_data[idx] = data; @@ -163,6 +189,11 @@ _edje_signal_callback_grow(Edje_Signal_Callback_Group *gp) tmp = (Edje_Signal_Callback_Matches *)gp->matches; tmp->matches_count++; tmp->matches = realloc(tmp->matches, sizeof (Edje_Signal_Callback_Match) * tmp->matches_count); + if (tmp->free_cb) + { + tmp->free_cb = realloc(tmp->free_cb, sizeof (Eina_Free_Cb) * tmp->matches_count); + tmp->free_cb[tmp->matches_count - 1] = NULL; + } gp->custom_data = realloc(gp->custom_data, sizeof (void *) * tmp->matches_count); gp->flags = realloc(gp->flags, sizeof (Edje_Signal_Callback_Flags) * tmp->matches_count); @@ -172,7 +203,9 @@ _edje_signal_callback_grow(Edje_Signal_Callback_Group *gp) Eina_Bool _edje_signal_callback_push(Edje_Signal_Callback_Group *gp, const char *sig, const char *src, - Edje_Signal_Cb func, void *data, Eina_Bool propagate) + Edje_Signal_Cb func_legacy, + Efl_Signal_Cb func_eo, Eina_Free_Cb func_free_cb, + void *data, Eina_Bool propagate) { unsigned int i; Edje_Signal_Callback_Flags flags; @@ -181,23 +214,11 @@ _edje_signal_callback_push(Edje_Signal_Callback_Group *gp, flags.delete_me = EINA_FALSE; flags.just_added = EINA_TRUE; flags.propagate = !!propagate; + flags.legacy = !!func_legacy; + // FIXME: properly handle legacy and non legacy case, including free function tmp = (Edje_Signal_Callback_Matches *)gp->matches; - // let's first try to see if we do find an empty matching stop - for (i = 0; i < tmp->matches_count; i++) - { - if ((sig == tmp->matches[i].signal) && - (src == tmp->matches[i].source) && - (func == tmp->matches[i].func) && - (gp->flags[i].delete_me)) - { - _edje_signal_callback_unset(gp, i); - _edje_signal_callback_set(gp, i, sig, src, func, data, flags); - return EINA_TRUE; - } - } - if (tmp->hashed) { if (EINA_REFCOUNT_GET(tmp) == 1) @@ -224,7 +245,7 @@ _edje_signal_callback_push(Edje_Signal_Callback_Group *gp, if (gp->flags[i].delete_me) { _edje_signal_callback_unset(gp, i); - _edje_signal_callback_set(gp, i, sig, src, func, data, flags); + _edje_signal_callback_set(gp, i, sig, src, func_legacy, func_eo, func_free_cb, data, flags); return EINA_TRUE; } } @@ -232,7 +253,7 @@ _edje_signal_callback_push(Edje_Signal_Callback_Group *gp, _edje_signal_callback_grow(gp); // Set propagate and just_added flags _edje_signal_callback_set(gp, tmp->matches_count - 1, - sig, src, func, data, flags); + sig, src, func_legacy, func_eo, func_free_cb, data, flags); return EINA_TRUE; } @@ -260,12 +281,24 @@ _edje_signal_callback_alloc(void) } void -_edje_signal_callback_matches_unref(Edje_Signal_Callback_Matches *m) +_edje_signal_callback_matches_unref(Edje_Signal_Callback_Matches *m, Edje_Signal_Callback_Flags *flags, void **custom_data) { + unsigned int i; + + if (m->free_cb) + { + for (i = 0; i < m->matches_count; ++i) + { + if (!flags[i].delete_me && + m->free_cb[i]) + { + m->free_cb[i](custom_data[i]); + } + } + } + EINA_REFCOUNT_UNREF(m) { - unsigned int i; - _edje_signal_callback_patterns_unref(m->patterns); if (m->hashed) @@ -292,7 +325,7 @@ _edje_signal_callback_free(const Edje_Signal_Callback_Group *cgp) if (!gp) return; - _edje_signal_callback_matches_unref((Edje_Signal_Callback_Matches *)gp->matches); + _edje_signal_callback_matches_unref((Edje_Signal_Callback_Matches *)gp->matches, gp->flags, gp->custom_data); gp->matches = NULL; free(gp->flags); gp->flags = NULL; @@ -304,7 +337,8 @@ _edje_signal_callback_free(const Edje_Signal_Callback_Group *cgp) Eina_Bool _edje_signal_callback_disable(Edje_Signal_Callback_Group *gp, const char *sig, const char *src, - Edje_Signal_Cb func, void *data) + Edje_Signal_Cb func_legacy, + EflLayoutSignalCb func, Eina_Free_Cb func_free_cb, void *data) { unsigned int i; @@ -314,10 +348,17 @@ _edje_signal_callback_disable(Edje_Signal_Callback_Group *gp, { if (sig == gp->matches->matches[i].signal && src == gp->matches->matches[i].source && - func == gp->matches->matches[i].func && - gp->custom_data[i] == data && - !gp->flags[i].delete_me) + !gp->flags[i].delete_me && + ((func == gp->matches->matches[i].eo && + (!gp->matches->free_cb || func_free_cb == gp->matches->free_cb[i]) && + gp->custom_data[i] == data && + !gp->flags[i].legacy) || + (func_legacy == gp->matches->matches[i].legacy && + gp->custom_data[i] == data && + gp->flags[i].legacy)) + ) { + if (func && func_free_cb) func_free_cb(data); gp->flags[i].delete_me = EINA_TRUE; //return gp->custom_data[i]; return EINA_TRUE; @@ -341,9 +382,7 @@ _edje_signal_callback_move_last(Edje_Signal_Callback_Group *gp, if (!gp->flags[j].delete_me) { _edje_signal_callback_unset(gp, i); - m->matches[i].signal = m->matches[j].signal; - m->matches[i].source = m->matches[j].source; - m->matches[i].func = m->matches[j].func; + memcpy(&m->matches[i], &m->matches[j], sizeof (Edje_Signal_Callback_Match)); gp->flags[i] = gp->flags[j]; gp->custom_data[i] = gp->custom_data[j]; return; @@ -394,7 +433,7 @@ _edje_signal_callback_patterns_ref(const Edje_Signal_Callback_Group *gp) } else { - _edje_signal_callback_matches_unref((Edje_Signal_Callback_Matches *)gp->matches); + _edje_signal_callback_matches_unref((Edje_Signal_Callback_Matches *)gp->matches, gp->flags, gp->custom_data); ((Edje_Signal_Callback_Group *)gp)->matches = m; tmp = (Edje_Signal_Callback_Matches *)gp->matches; EINA_REFCOUNT_REF(tmp); diff --git a/src/lib/edje/efl_layout_signal.eo b/src/lib/edje/efl_layout_signal.eo index 708dc3279a..3b4562e596 100644 --- a/src/lib/edje/efl_layout_signal.eo +++ b/src/lib/edje/efl_layout_signal.eo @@ -8,7 +8,14 @@ match that. */ -type Efl.Signal_Cb: __undefined_type; [[Signal callback.]] +function EflLayoutSignalCb { + [[EflLayoutSignalCb function that is called when a specifc pair of signal/emision is triggered]] + params { + @in object: Efl.Layout.Signal; [[The object the callback is being triggered from.]] + @in emission: string; [[The name component of the signal.]] + @in source: string; [[The source of a signal used as context.]] + } +}; interface Efl.Layout.Signal { @@ -83,9 +90,8 @@ interface Efl.Layout.Signal params { @in emission: string; [[The signal's "emission" string]] @in source: string; [[The signal's "source" string]] - @in func: Efl.Signal_Cb; + @in func: EflLayoutSignalCb; [[The callback function to be executed when the signal is emitted.]] - @in data: void_ptr; [[A pointer to data to pass to $func.]] } return: bool; [[$true in case of success, $false in case of error.]] } @@ -102,9 +108,8 @@ interface Efl.Layout.Signal params { @in emission: string; [[The signal's "emission" string]] @in source: string; [[The signal's "source" string]] - @in func: Efl.Signal_Cb; + @in func: EflLayoutSignalCb; [[The callback function to be executed when the signal is emitted.]] - @in data: void_ptr; [[A pointer to data to pass to $func.]] } return: bool; [[$true in case of success, $false in case of error.]] } diff --git a/src/lib/elementary/efl_ui_check.c b/src/lib/elementary/efl_ui_check.c index 1b9a19bcf9..6b5dd01645 100644 --- a/src/lib/elementary/efl_ui_check.c +++ b/src/lib/elementary/efl_ui_check.c @@ -327,20 +327,20 @@ _efl_ui_check_efl_object_constructor(Eo *obj, Efl_Ui_Check_Data *pd EINA_UNUSED) if (elm_widget_is_legacy(obj)) { efl_layout_signal_callback_add - (wd->resize_obj, "elm,action,check,on", "*", _on_check_on, obj); + (wd->resize_obj, "elm,action,check,on", "*", obj, _on_check_on, NULL); efl_layout_signal_callback_add - (wd->resize_obj, "elm,action,check,off", "*", _on_check_off, obj); + (wd->resize_obj, "elm,action,check,off", "*", obj, _on_check_off, NULL); efl_layout_signal_callback_add - (wd->resize_obj, "elm,action,check,toggle", "*", _on_check_toggle, obj); + (wd->resize_obj, "elm,action,check,toggle", "*", obj, _on_check_toggle, NULL); } else { efl_layout_signal_callback_add - (wd->resize_obj, "efl,action,check,on", "*", _on_check_on, obj); + (wd->resize_obj, "efl,action,check,on", "*", obj, _on_check_on, NULL); efl_layout_signal_callback_add - (wd->resize_obj, "efl,action,check,off", "*", _on_check_off, obj); + (wd->resize_obj, "efl,action,check,off", "*", obj, _on_check_off, NULL); efl_layout_signal_callback_add - (wd->resize_obj, "efl,action,check,toggle", "*", _on_check_toggle, obj); + (wd->resize_obj, "efl,action,check,toggle", "*", obj, _on_check_toggle, NULL); } efl_access_object_role_set(obj, EFL_ACCESS_ROLE_CHECK_BOX); diff --git a/src/lib/elementary/efl_ui_grid.c b/src/lib/elementary/efl_ui_grid.c index 0b2453c08f..4db9968d90 100644 --- a/src/lib/elementary/efl_ui_grid.c +++ b/src/lib/elementary/efl_ui_grid.c @@ -435,40 +435,40 @@ _scroll_edje_object_attach(Eo *obj) EFL_UI_GRID_DATA_GET_OR_RETURN(obj, pd); efl_layout_signal_callback_add(obj, "reload", "efl", - _efl_ui_grid_reload_cb, obj); + obj, _efl_ui_grid_reload_cb, NULL); efl_layout_signal_callback_add(obj, "drag", "efl.dragable.vbar", - _efl_ui_grid_vbar_drag_cb, obj); + obj, _efl_ui_grid_vbar_drag_cb, NULL); efl_layout_signal_callback_add(obj, "drag,set", "efl.dragable.vbar", - _efl_ui_grid_edje_drag_cb, obj); + obj, _efl_ui_grid_edje_drag_cb, NULL); efl_layout_signal_callback_add(obj, "drag,start", "efl.dragable.vbar", - _efl_ui_grid_edje_drag_start_cb, obj); + obj, _efl_ui_grid_edje_drag_start_cb, NULL); efl_layout_signal_callback_add(obj, "drag,stop", "efl.dragable.vbar", - _efl_ui_grid_edje_drag_stop_cb, obj); + obj, _efl_ui_grid_edje_drag_stop_cb, NULL); efl_layout_signal_callback_add(obj, "drag,step", "efl.dragable.vbar", - _efl_ui_grid_edje_drag_cb, obj); + obj, _efl_ui_grid_edje_drag_cb, NULL); efl_layout_signal_callback_add(obj, "drag,page", "efl.dragable.vbar", - _efl_ui_grid_edje_drag_cb, obj); + obj, _efl_ui_grid_edje_drag_cb, NULL); efl_layout_signal_callback_add(obj, "efl,vbar,press", "efl", - _efl_ui_grid_vbar_press_cb, obj); + obj, _efl_ui_grid_vbar_press_cb, NULL); efl_layout_signal_callback_add(obj, "efl,vbar,unpress", "efl", - _efl_ui_grid_vbar_unpress_cb, obj); + obj, _efl_ui_grid_vbar_unpress_cb, NULL); efl_layout_signal_callback_add(obj, "drag", "efl.dragable.hbar", - _efl_ui_grid_hbar_drag_cb, obj); + obj, _efl_ui_grid_hbar_drag_cb, NULL); efl_layout_signal_callback_add(obj, "drag,set", "efl.dragable.hbar", - _efl_ui_grid_edje_drag_cb, obj); + obj, _efl_ui_grid_edje_drag_cb, NULL); efl_layout_signal_callback_add(obj, "drag,start", "efl.dragable.hbar", - _efl_ui_grid_edje_drag_start_cb, obj); + obj, _efl_ui_grid_edje_drag_start_cb, NULL); efl_layout_signal_callback_add(obj, "drag,stop", "efl.dragable.hbar", - _efl_ui_grid_edje_drag_stop_cb, obj); + obj, _efl_ui_grid_edje_drag_stop_cb, NULL); efl_layout_signal_callback_add(obj, "drag,step", "efl.dragable.hbar", - _efl_ui_grid_edje_drag_cb, obj); + obj, _efl_ui_grid_edje_drag_cb, NULL); efl_layout_signal_callback_add(obj, "drag,page", "efl.dragable.hbar", - _efl_ui_grid_edje_drag_cb, obj); + obj, _efl_ui_grid_edje_drag_cb, NULL); efl_layout_signal_callback_add(obj, "efl,hbar,press", "efl", - _efl_ui_grid_hbar_press_cb, obj); + obj, _efl_ui_grid_hbar_press_cb, NULL); efl_layout_signal_callback_add(obj, "efl,hbar,unpress", "efl", - _efl_ui_grid_hbar_unpress_cb, obj); + obj, _efl_ui_grid_hbar_unpress_cb, NULL); } static void @@ -477,40 +477,40 @@ _scroll_edje_object_detach(Eo *obj) EFL_UI_GRID_DATA_GET_OR_RETURN(obj, pd); efl_layout_signal_callback_del(obj, "reload", "efl", - _efl_ui_grid_reload_cb, obj); + obj, _efl_ui_grid_reload_cb, NULL); efl_layout_signal_callback_del(obj, "drag", "efl.dragable.vbar", - _efl_ui_grid_vbar_drag_cb, obj); + obj, _efl_ui_grid_vbar_drag_cb, NULL); efl_layout_signal_callback_del(obj, "drag,set", "efl.dragable.vbar", - _efl_ui_grid_edje_drag_cb, obj); + obj, _efl_ui_grid_edje_drag_cb, NULL); efl_layout_signal_callback_del(obj, "drag,start", "efl.dragable.vbar", - _efl_ui_grid_edje_drag_start_cb, obj); + obj, _efl_ui_grid_edje_drag_start_cb, NULL); efl_layout_signal_callback_del(obj, "drag,stop", "efl.dragable.vbar", - _efl_ui_grid_edje_drag_stop_cb, obj); + obj, _efl_ui_grid_edje_drag_stop_cb, NULL); efl_layout_signal_callback_del(obj, "drag,step", "efl.dragable.vbar", - _efl_ui_grid_edje_drag_cb, obj); + obj, _efl_ui_grid_edje_drag_cb, NULL); efl_layout_signal_callback_del(obj, "drag,page", "efl.dragable.vbar", - _efl_ui_grid_edje_drag_cb, obj); + obj, _efl_ui_grid_edje_drag_cb, NULL); efl_layout_signal_callback_del(obj, "efl,vbar,press", "efl", - _efl_ui_grid_vbar_press_cb, obj); + obj, _efl_ui_grid_vbar_press_cb, NULL); efl_layout_signal_callback_del(obj, "efl,vbar,unpress", "efl", - _efl_ui_grid_vbar_unpress_cb, obj); + obj, _efl_ui_grid_vbar_unpress_cb, NULL); efl_layout_signal_callback_del(obj, "drag", "efl.dragable.hbar", - _efl_ui_grid_hbar_drag_cb, obj); + obj, _efl_ui_grid_hbar_drag_cb, NULL); efl_layout_signal_callback_del(obj, "drag,set", "efl.dragable.hbar", - _efl_ui_grid_edje_drag_cb, obj); + obj, _efl_ui_grid_edje_drag_cb, NULL); efl_layout_signal_callback_del(obj, "drag,start", "efl.dragable.hbar", - _efl_ui_grid_edje_drag_start_cb, obj); + obj, _efl_ui_grid_edje_drag_start_cb, NULL); efl_layout_signal_callback_del(obj, "drag,stop", "efl.dragable.hbar", - _efl_ui_grid_edje_drag_stop_cb, obj); + obj, _efl_ui_grid_edje_drag_stop_cb, NULL); efl_layout_signal_callback_del(obj, "drag,step", "efl.dragable.hbar", - _efl_ui_grid_edje_drag_cb, obj); + obj, _efl_ui_grid_edje_drag_cb, NULL); efl_layout_signal_callback_del(obj, "drag,page", "efl.dragable.hbar", - _efl_ui_grid_edje_drag_cb, obj); + obj, _efl_ui_grid_edje_drag_cb, NULL); efl_layout_signal_callback_del(obj, "efl,hbar,press", "efl", - _efl_ui_grid_hbar_press_cb, obj); + obj, _efl_ui_grid_hbar_press_cb, NULL); efl_layout_signal_callback_del(obj, "efl,hbar,unpress", "efl", - _efl_ui_grid_hbar_unpress_cb, obj); + obj, _efl_ui_grid_hbar_unpress_cb, NULL); } static void diff --git a/src/lib/elementary/efl_ui_image_zoomable.c b/src/lib/elementary/efl_ui_image_zoomable.c index 2a46ddb29b..9590838c1e 100644 --- a/src/lib/elementary/efl_ui_image_zoomable.c +++ b/src/lib/elementary/efl_ui_image_zoomable.c @@ -1610,108 +1610,108 @@ _efl_ui_image_zoomable_edje_object_attach(Eo *obj) if (elm_widget_is_legacy(obj)) { efl_layout_signal_callback_add - (obj, "reload", "elm", _efl_ui_image_zoomable_reload_cb, obj); + (obj, "reload", "elm", obj, _efl_ui_image_zoomable_reload_cb, NULL); efl_layout_signal_callback_add (obj, "drag", "elm.dragable.vbar", - _efl_ui_image_zoomable_vbar_drag_cb, obj); + obj, _efl_ui_image_zoomable_vbar_drag_cb, NULL); efl_layout_signal_callback_add (obj, "drag,set", "elm.dragable.vbar", - _efl_ui_image_zoomable_edje_drag_cb, obj); + obj, _efl_ui_image_zoomable_edje_drag_cb, NULL); efl_layout_signal_callback_add (obj, "drag,start", "elm.dragable.vbar", - _efl_ui_image_zoomable_edje_drag_start_cb, obj); + obj, _efl_ui_image_zoomable_edje_drag_start_cb, NULL); efl_layout_signal_callback_add (obj, "drag,stop", "elm.dragable.vbar", - _efl_ui_image_zoomable_edje_drag_stop_cb, obj); + obj, _efl_ui_image_zoomable_edje_drag_stop_cb, NULL); efl_layout_signal_callback_add (obj, "drag,step", "elm.dragable.vbar", - _efl_ui_image_zoomable_edje_drag_cb, obj); + obj, _efl_ui_image_zoomable_edje_drag_cb, NULL); efl_layout_signal_callback_add (obj, "drag,page", "elm.dragable.vbar", - _efl_ui_image_zoomable_edje_drag_cb, obj); + obj, _efl_ui_image_zoomable_edje_drag_cb, NULL); efl_layout_signal_callback_add (obj, "elm,vbar,press", "elm", - _efl_ui_image_zoomable_vbar_press_cb, obj); + obj, _efl_ui_image_zoomable_vbar_press_cb, NULL); efl_layout_signal_callback_add (obj, "elm,vbar,unpress", "elm", - _efl_ui_image_zoomable_vbar_unpress_cb, obj); + obj, _efl_ui_image_zoomable_vbar_unpress_cb, NULL); efl_layout_signal_callback_add (obj, "drag", "elm.dragable.hbar", - _efl_ui_image_zoomable_hbar_drag_cb, obj); + obj, _efl_ui_image_zoomable_hbar_drag_cb, NULL); efl_layout_signal_callback_add (obj, "drag,set", "elm.dragable.hbar", - _efl_ui_image_zoomable_edje_drag_cb, obj); + obj, _efl_ui_image_zoomable_edje_drag_cb, NULL); efl_layout_signal_callback_add (obj, "drag,start", "elm.dragable.hbar", - _efl_ui_image_zoomable_edje_drag_start_cb, obj); + obj, _efl_ui_image_zoomable_edje_drag_start_cb, NULL); efl_layout_signal_callback_add (obj, "drag,stop", "elm.dragable.hbar", - _efl_ui_image_zoomable_edje_drag_stop_cb, obj); + obj, _efl_ui_image_zoomable_edje_drag_stop_cb, NULL); efl_layout_signal_callback_add (obj, "drag,step", "elm.dragable.hbar", - _efl_ui_image_zoomable_edje_drag_cb, obj); + obj, _efl_ui_image_zoomable_edje_drag_cb, NULL); efl_layout_signal_callback_add (obj, "drag,page", "elm.dragable.hbar", - _efl_ui_image_zoomable_edje_drag_cb, obj); + obj, _efl_ui_image_zoomable_edje_drag_cb, NULL); efl_layout_signal_callback_add (obj, "elm,hbar,press", "elm", - _efl_ui_image_zoomable_hbar_press_cb, obj); + obj, _efl_ui_image_zoomable_hbar_press_cb, NULL); efl_layout_signal_callback_add (obj, "elm,hbar,unpress", "elm", - _efl_ui_image_zoomable_hbar_unpress_cb, obj); + obj, _efl_ui_image_zoomable_hbar_unpress_cb, NULL); } else { efl_layout_signal_callback_add - (obj, "reload", "efl", _efl_ui_image_zoomable_reload_cb, obj); + (obj, "reload", "efl", obj, _efl_ui_image_zoomable_reload_cb, NULL); efl_layout_signal_callback_add - (obj, "drag", "efl.dragable.vbar", _efl_ui_image_zoomable_vbar_drag_cb, - obj); + (obj, "drag", "efl.dragable.vbar", + obj, _efl_ui_image_zoomable_vbar_drag_cb, NULL); efl_layout_signal_callback_add (obj, "drag,set", "efl.dragable.vbar", - _efl_ui_image_zoomable_edje_drag_cb, obj); + obj, _efl_ui_image_zoomable_edje_drag_cb, NULL); efl_layout_signal_callback_add (obj, "drag,start", "efl.dragable.vbar", - _efl_ui_image_zoomable_edje_drag_start_cb, obj); + obj, _efl_ui_image_zoomable_edje_drag_start_cb, NULL); efl_layout_signal_callback_add (obj, "drag,stop", "efl.dragable.vbar", - _efl_ui_image_zoomable_edje_drag_stop_cb, obj); + obj, _efl_ui_image_zoomable_edje_drag_stop_cb, NULL); efl_layout_signal_callback_add (obj, "drag,step", "efl.dragable.vbar", - _efl_ui_image_zoomable_edje_drag_cb, obj); + obj, _efl_ui_image_zoomable_edje_drag_cb, NULL); efl_layout_signal_callback_add (obj, "drag,page", "efl.dragable.vbar", - _efl_ui_image_zoomable_edje_drag_cb, obj); + obj, _efl_ui_image_zoomable_edje_drag_cb, NULL); efl_layout_signal_callback_add (obj, "efl,vbar,press", "efl", - _efl_ui_image_zoomable_vbar_press_cb, obj); + obj, _efl_ui_image_zoomable_vbar_press_cb, NULL); efl_layout_signal_callback_add (obj, "efl,vbar,unpress", "efl", - _efl_ui_image_zoomable_vbar_unpress_cb, obj); + obj, _efl_ui_image_zoomable_vbar_unpress_cb, NULL); efl_layout_signal_callback_add - (obj, "drag", "efl.dragable.hbar", _efl_ui_image_zoomable_hbar_drag_cb, - obj); + (obj, "drag", "efl.dragable.hbar", + obj, _efl_ui_image_zoomable_hbar_drag_cb, NULL); efl_layout_signal_callback_add (obj, "drag,set", "efl.dragable.hbar", - _efl_ui_image_zoomable_edje_drag_cb, obj); + obj, _efl_ui_image_zoomable_edje_drag_cb, NULL); efl_layout_signal_callback_add (obj, "drag,start", "efl.dragable.hbar", - _efl_ui_image_zoomable_edje_drag_start_cb, obj); + obj, _efl_ui_image_zoomable_edje_drag_start_cb, NULL); efl_layout_signal_callback_add (obj, "drag,stop", "efl.dragable.hbar", - _efl_ui_image_zoomable_edje_drag_stop_cb, obj); + obj, _efl_ui_image_zoomable_edje_drag_stop_cb, NULL); efl_layout_signal_callback_add (obj, "drag,step", "efl.dragable.hbar", - _efl_ui_image_zoomable_edje_drag_cb, obj); + obj, _efl_ui_image_zoomable_edje_drag_cb, NULL); efl_layout_signal_callback_add (obj, "drag,page", "efl.dragable.hbar", - _efl_ui_image_zoomable_edje_drag_cb, obj); + obj, _efl_ui_image_zoomable_edje_drag_cb, NULL); efl_layout_signal_callback_add (obj, "efl,hbar,press", "efl", - _efl_ui_image_zoomable_hbar_press_cb, obj); + obj, _efl_ui_image_zoomable_hbar_press_cb, NULL); efl_layout_signal_callback_add (obj, "efl,hbar,unpress", "efl", - _efl_ui_image_zoomable_hbar_unpress_cb, obj); + obj, _efl_ui_image_zoomable_hbar_unpress_cb, NULL); } } @@ -1721,108 +1721,108 @@ _efl_ui_image_zoomable_edje_object_detach(Evas_Object *obj) if (elm_widget_is_legacy(obj)) { efl_layout_signal_callback_del - (obj, "reload", "elm", _efl_ui_image_zoomable_reload_cb, obj); + (obj, "reload", "elm", obj, _efl_ui_image_zoomable_reload_cb, NULL); efl_layout_signal_callback_del (obj, "drag", "elm.dragable.vbar", - _efl_ui_image_zoomable_vbar_drag_cb, obj); + obj, _efl_ui_image_zoomable_vbar_drag_cb, NULL); efl_layout_signal_callback_del (obj, "drag,set", "elm.dragable.vbar", - _efl_ui_image_zoomable_edje_drag_cb, obj); + obj, _efl_ui_image_zoomable_edje_drag_cb, NULL); efl_layout_signal_callback_del (obj, "drag,start", "elm.dragable.vbar", - _efl_ui_image_zoomable_edje_drag_start_cb, obj); + obj, _efl_ui_image_zoomable_edje_drag_start_cb, NULL); efl_layout_signal_callback_del (obj, "drag,stop", "elm.dragable.vbar", - _efl_ui_image_zoomable_edje_drag_stop_cb, obj); + obj, _efl_ui_image_zoomable_edje_drag_stop_cb, NULL); efl_layout_signal_callback_del (obj, "drag,step", "elm.dragable.vbar", - _efl_ui_image_zoomable_edje_drag_cb, obj); + obj, _efl_ui_image_zoomable_edje_drag_cb, NULL); efl_layout_signal_callback_del (obj, "drag,page", "elm.dragable.vbar", - _efl_ui_image_zoomable_edje_drag_cb, obj); + obj, _efl_ui_image_zoomable_edje_drag_cb, NULL); efl_layout_signal_callback_del (obj, "elm,vbar,press", "elm", - _efl_ui_image_zoomable_vbar_press_cb, obj); + obj, _efl_ui_image_zoomable_vbar_press_cb, NULL); efl_layout_signal_callback_del (obj, "elm,vbar,unpress", "elm", - _efl_ui_image_zoomable_vbar_unpress_cb, obj); + obj, _efl_ui_image_zoomable_vbar_unpress_cb, NULL); efl_layout_signal_callback_del (obj, "drag", "elm.dragable.hbar", - _efl_ui_image_zoomable_hbar_drag_cb, obj); + obj, _efl_ui_image_zoomable_hbar_drag_cb, NULL); efl_layout_signal_callback_del (obj, "drag,set", "elm.dragable.hbar", - _efl_ui_image_zoomable_edje_drag_cb, obj); + obj, _efl_ui_image_zoomable_edje_drag_cb, NULL); efl_layout_signal_callback_del (obj, "drag,start", "elm.dragable.hbar", - _efl_ui_image_zoomable_edje_drag_start_cb, obj); + obj, _efl_ui_image_zoomable_edje_drag_start_cb, NULL); efl_layout_signal_callback_del (obj, "drag,stop", "elm.dragable.hbar", - _efl_ui_image_zoomable_edje_drag_stop_cb, obj); + obj, _efl_ui_image_zoomable_edje_drag_stop_cb, NULL); efl_layout_signal_callback_del (obj, "drag,step", "elm.dragable.hbar", - _efl_ui_image_zoomable_edje_drag_cb, obj); + obj, _efl_ui_image_zoomable_edje_drag_cb, NULL); efl_layout_signal_callback_del (obj, "drag,page", "elm.dragable.hbar", - _efl_ui_image_zoomable_edje_drag_cb, obj); + obj, _efl_ui_image_zoomable_edje_drag_cb, NULL); efl_layout_signal_callback_del (obj, "elm,hbar,press", "elm", - _efl_ui_image_zoomable_hbar_press_cb, obj); + obj, _efl_ui_image_zoomable_hbar_press_cb, NULL); efl_layout_signal_callback_del (obj, "elm,hbar,unpress", "elm", - _efl_ui_image_zoomable_hbar_unpress_cb, obj); + obj, _efl_ui_image_zoomable_hbar_unpress_cb, NULL); } else { efl_layout_signal_callback_del - (obj, "reload", "efl", _efl_ui_image_zoomable_reload_cb, obj); + (obj, "reload", "efl", obj, _efl_ui_image_zoomable_reload_cb, NULL); efl_layout_signal_callback_del (obj, "drag", "efl.dragable.vbar", - _efl_ui_image_zoomable_vbar_drag_cb, obj); + obj, _efl_ui_image_zoomable_vbar_drag_cb, NULL); efl_layout_signal_callback_del (obj, "drag,set", "efl.dragable.vbar", - _efl_ui_image_zoomable_edje_drag_cb, obj); + obj, _efl_ui_image_zoomable_edje_drag_cb, NULL); efl_layout_signal_callback_del (obj, "drag,start", "efl.dragable.vbar", - _efl_ui_image_zoomable_edje_drag_start_cb, obj); + obj, _efl_ui_image_zoomable_edje_drag_start_cb, NULL); efl_layout_signal_callback_del (obj, "drag,stop", "efl.dragable.vbar", - _efl_ui_image_zoomable_edje_drag_stop_cb, obj); + obj, _efl_ui_image_zoomable_edje_drag_stop_cb, NULL); efl_layout_signal_callback_del (obj, "drag,step", "efl.dragable.vbar", - _efl_ui_image_zoomable_edje_drag_cb, obj); + obj, _efl_ui_image_zoomable_edje_drag_cb, NULL); efl_layout_signal_callback_del (obj, "drag,page", "efl.dragable.vbar", - _efl_ui_image_zoomable_edje_drag_cb, obj); + obj, _efl_ui_image_zoomable_edje_drag_cb, NULL); efl_layout_signal_callback_del (obj, "efl,vbar,press", "efl", - _efl_ui_image_zoomable_vbar_press_cb, obj); + obj, _efl_ui_image_zoomable_vbar_press_cb, NULL); efl_layout_signal_callback_del (obj, "efl,vbar,unpress", "efl", - _efl_ui_image_zoomable_vbar_unpress_cb, obj); + obj, _efl_ui_image_zoomable_vbar_unpress_cb, NULL); efl_layout_signal_callback_del (obj, "drag", "efl.dragable.hbar", - _efl_ui_image_zoomable_hbar_drag_cb, obj); + obj, _efl_ui_image_zoomable_hbar_drag_cb, NULL); efl_layout_signal_callback_del (obj, "drag,set", "efl.dragable.hbar", - _efl_ui_image_zoomable_edje_drag_cb, obj); + obj, _efl_ui_image_zoomable_edje_drag_cb, NULL); efl_layout_signal_callback_del (obj, "drag,start", "efl.dragable.hbar", - _efl_ui_image_zoomable_edje_drag_start_cb, obj); + obj, _efl_ui_image_zoomable_edje_drag_start_cb, NULL); efl_layout_signal_callback_del (obj, "drag,stop", "efl.dragable.hbar", - _efl_ui_image_zoomable_edje_drag_stop_cb, obj); + obj, _efl_ui_image_zoomable_edje_drag_stop_cb, NULL); efl_layout_signal_callback_del (obj, "drag,step", "efl.dragable.hbar", - _efl_ui_image_zoomable_edje_drag_cb, obj); + obj, _efl_ui_image_zoomable_edje_drag_cb, NULL); efl_layout_signal_callback_del (obj, "drag,page", "efl.dragable.hbar", - _efl_ui_image_zoomable_edje_drag_cb, obj); + obj, _efl_ui_image_zoomable_edje_drag_cb, NULL); efl_layout_signal_callback_del (obj, "efl,hbar,press", "efl", - _efl_ui_image_zoomable_hbar_press_cb, obj); + obj, _efl_ui_image_zoomable_hbar_press_cb, NULL); efl_layout_signal_callback_del (obj, "efl,hbar,unpress", "efl", - _efl_ui_image_zoomable_hbar_unpress_cb, obj); + obj, _efl_ui_image_zoomable_hbar_unpress_cb, NULL); } } @@ -1999,23 +1999,27 @@ _efl_ui_image_zoomable_efl_layout_group_group_size_max_get(const Eo *obj EINA_UN } EOLIAN static Eina_Bool -_efl_ui_image_zoomable_efl_layout_signal_signal_callback_add(Eo *obj EINA_UNUSED, Efl_Ui_Image_Zoomable_Data *sd EINA_UNUSED, const char *emission, const char *source, Edje_Signal_Cb func_cb, void *data) +_efl_ui_image_zoomable_efl_layout_signal_signal_callback_add(Eo *obj, Efl_Ui_Image_Zoomable_Data *pd EINA_UNUSED, + const char *emission, const char *source, + void *func_data, EflLayoutSignalCb func, Eina_Free_Cb func_free_cb) { Eina_Bool ok; ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE); - ok = efl_layout_signal_callback_add(wd->resize_obj, emission, source, func_cb, data); + ok = efl_layout_signal_callback_add(wd->resize_obj, emission, source, func_data, func, func_free_cb); return ok; } EOLIAN static Eina_Bool -_efl_ui_image_zoomable_efl_layout_signal_signal_callback_del(Eo *obj EINA_UNUSED, Efl_Ui_Image_Zoomable_Data *sd EINA_UNUSED, const char *emission, const char *source, Edje_Signal_Cb func_cb, void *data) +_efl_ui_image_zoomable_efl_layout_signal_signal_callback_del(Eo *obj, Efl_Ui_Image_Zoomable_Data *pd EINA_UNUSED, + const char *emission, const char *source, + void *func_data, EflLayoutSignalCb func, Eina_Free_Cb func_free_cb) { Eina_Bool ok; ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE); - ok = efl_layout_signal_callback_del(wd->resize_obj, emission, source, func_cb, data); + ok = efl_layout_signal_callback_del(wd->resize_obj, emission, source, func_data, func, func_free_cb); return ok; } diff --git a/src/lib/elementary/efl_ui_layout.c b/src/lib/elementary/efl_ui_layout.c index 798d0e8646..034cd04870 100644 --- a/src/lib/elementary/efl_ui_layout.c +++ b/src/lib/elementary/efl_ui_layout.c @@ -945,20 +945,20 @@ _efl_ui_layout_efl_layout_signal_signal_emit(Eo *obj, Efl_Ui_Layout_Data *_pd EI efl_layout_signal_emit(wd->resize_obj, emission, source); } -EOLIAN static Eina_Bool -_efl_ui_layout_efl_layout_signal_signal_callback_add(Eo *obj, Efl_Ui_Layout_Data *_pd EINA_UNUSED, const char *emission, const char *source, Efl_Signal_Cb func, void *data) +static Eina_Bool +_efl_ui_layout_efl_layout_signal_signal_callback_add(Eo *obj, Efl_Ui_Layout_Data *pd EINA_UNUSED, const char *emission, const char *source, void *func_data, EflLayoutSignalCb func, Eina_Free_Cb func_free_cb) { // Don't do anything else than call forward here ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE); - return efl_layout_signal_callback_add(wd->resize_obj, emission, source, func, data); + return efl_layout_signal_callback_add(wd->resize_obj, emission, source, func_data, func, func_free_cb); } -EOLIAN static Eina_Bool -_efl_ui_layout_efl_layout_signal_signal_callback_del(Eo *obj, Efl_Ui_Layout_Data *_pd EINA_UNUSED, const char *emission, const char *source, Edje_Signal_Cb func, void *data) +static Eina_Bool +_efl_ui_layout_efl_layout_signal_signal_callback_del(Eo *obj, Efl_Ui_Layout_Data *pd EINA_UNUSED, const char *emission, const char *source, void *func_data, EflLayoutSignalCb func, Eina_Free_Cb func_free_cb) { // Don't do anything else than call forward here ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE); - return efl_layout_signal_callback_del(wd->resize_obj, emission, source, func, data); + return efl_layout_signal_callback_del(wd->resize_obj, emission, source, func_data, func, func_free_cb); } // TODO: @@ -2862,7 +2862,7 @@ _elm_layout_signal_callback_add_legacy(Eo *obj, Eo *edje, Eina_List **p_edje_sig esd->data = data; *p_edje_signals = eina_list_append(*p_edje_signals, esd); - efl_layout_signal_callback_add(edje, emission, source, + edje_object_signal_callback_add(edje, emission, source, _edje_signal_callback, esd); } @@ -2905,8 +2905,8 @@ _elm_layout_signal_callback_del_legacy(Eo *obj EINA_UNUSED, Eo *edje, Eina_List { *p_edje_signals = eina_list_remove_list(*p_edje_signals, l); - efl_layout_signal_callback_del(edje, emission, source, - _edje_signal_callback, esd); + edje_object_signal_callback_del_full(edje, emission, source, + _edje_signal_callback, esd); eina_stringshare_del(esd->emission); eina_stringshare_del(esd->source); diff --git a/src/lib/elementary/efl_ui_list.c b/src/lib/elementary/efl_ui_list.c index 045346ceee..1a0f9aa812 100644 --- a/src/lib/elementary/efl_ui_list.c +++ b/src/lib/elementary/efl_ui_list.c @@ -255,57 +255,57 @@ _scroll_edje_object_attach(Eo *obj) efl_layout_signal_callback_add (obj, "reload", "efl", - _efl_ui_list_reload_cb, obj); + obj, _efl_ui_list_reload_cb, NULL); efl_layout_signal_callback_add (obj, "drag", "efl.dragable.vbar", - _efl_ui_list_vbar_drag_cb, obj); + obj, _efl_ui_list_vbar_drag_cb, NULL); efl_layout_signal_callback_add (obj, "drag,set", "efl.dragable.vbar", - _efl_ui_list_edje_drag_cb, obj); + obj, _efl_ui_list_edje_drag_cb, NULL); efl_layout_signal_callback_add (obj, "drag,start", "efl.dragable.vbar", - _efl_ui_list_edje_drag_start_cb, obj); + obj, _efl_ui_list_edje_drag_start_cb, NULL); efl_layout_signal_callback_add (obj, "drag,stop", "efl.dragable.vbar", - _efl_ui_list_edje_drag_stop_cb, obj); + obj, _efl_ui_list_edje_drag_stop_cb, NULL); efl_layout_signal_callback_add (obj, "drag,step", "efl.dragable.vbar", - _efl_ui_list_edje_drag_cb, obj); + obj, _efl_ui_list_edje_drag_cb, NULL); efl_layout_signal_callback_add (obj, "drag,page", "efl.dragable.vbar", - _efl_ui_list_edje_drag_cb, obj); + obj, _efl_ui_list_edje_drag_cb, NULL); efl_layout_signal_callback_add (obj, "efl,vbar,press", "efl", - _efl_ui_list_vbar_press_cb, obj); + obj, _efl_ui_list_vbar_press_cb, NULL); efl_layout_signal_callback_add (obj, "efl,vbar,unpress", "efl", - _efl_ui_list_vbar_unpress_cb, obj); + obj, _efl_ui_list_vbar_unpress_cb, NULL); /* FIXME: Horizontal Scroll is not yet supported in the list. efl_layout_signal_callback_add (obj, "drag", "efl.dragable.hbar", - _efl_ui_list_hbar_drag_cb, obj); + obj, _efl_ui_list_hbar_drag_cb, NULL); efl_layout_signal_callback_add (obj, "drag,set", "efl.dragable.hbar", - _efl_ui_list_edje_drag_cb, obj); + obj, _efl_ui_list_edje_drag_cb, NULL); efl_layout_signal_callback_add (obj, "drag,start", "efl.dragable.hbar", - _efl_ui_list_edje_drag_start_cb, obj); + obj, _efl_ui_list_edje_drag_start_cb, NULL); efl_layout_signal_callback_add (obj, "drag,stop", "efl.dragable.hbar", - _efl_ui_list_edje_drag_stop_cb, obj); + obj, _efl_ui_list_edje_drag_stop_cb, NULL); efl_layout_signal_callback_add (obj, "drag,step", "efl.dragable.hbar", - _efl_ui_list_edje_drag_cb, obj); + obj, _efl_ui_list_edje_drag_cb, NULL); efl_layout_signal_callback_add (obj, "drag,page", "efl.dragable.hbar", - _efl_ui_list_edje_drag_cb, obj); + obj, _efl_ui_list_edje_drag_cb, NULL); efl_layout_signal_callback_add (obj, "efl,hbar,press", "efl", - _efl_ui_list_hbar_press_cb, obj); + obj, _efl_ui_list_hbar_press_cb, NULL); efl_layout_signal_callback_add (obj, "efl,hbar,unpress", "efl", - _efl_ui_list_hbar_unpress_cb, obj); + obj, _efl_ui_list_hbar_unpress_cb, NULL); */ } @@ -316,57 +316,57 @@ _scroll_edje_object_detach(Eo *obj) efl_layout_signal_callback_del (obj, "reload", "efl", - _efl_ui_list_reload_cb, obj); + obj, _efl_ui_list_reload_cb, NULL); efl_layout_signal_callback_del (obj, "drag", "efl.dragable.vbar", - _efl_ui_list_vbar_drag_cb, obj); + obj, _efl_ui_list_vbar_drag_cb, NULL); efl_layout_signal_callback_del (obj, "drag,set", "efl.dragable.vbar", - _efl_ui_list_edje_drag_cb, obj); + obj, _efl_ui_list_edje_drag_cb, NULL); efl_layout_signal_callback_del (obj, "drag,start", "efl.dragable.vbar", - _efl_ui_list_edje_drag_start_cb, obj); + obj, _efl_ui_list_edje_drag_start_cb, NULL); efl_layout_signal_callback_del (obj, "drag,stop", "efl.dragable.vbar", - _efl_ui_list_edje_drag_stop_cb, obj); + obj, _efl_ui_list_edje_drag_stop_cb, NULL); efl_layout_signal_callback_del (obj, "drag,step", "efl.dragable.vbar", - _efl_ui_list_edje_drag_cb, obj); + obj, _efl_ui_list_edje_drag_cb, NULL); efl_layout_signal_callback_del (obj, "drag,page", "efl.dragable.vbar", - _efl_ui_list_edje_drag_cb, obj); + obj, _efl_ui_list_edje_drag_cb, NULL); efl_layout_signal_callback_del (obj, "efl,vbar,press", "efl", - _efl_ui_list_vbar_press_cb, obj); + obj, _efl_ui_list_vbar_press_cb, NULL); efl_layout_signal_callback_del (obj, "efl,vbar,unpress", "efl", - _efl_ui_list_vbar_unpress_cb, obj); + obj, _efl_ui_list_vbar_unpress_cb, NULL); /* FIXME: Horizontal Scroll is not yet supported in the list. efl_layout_signal_callback_del (obj, "drag", "efl.dragable.hbar", - _efl_ui_list_hbar_drag_cb, obj); + obj, _efl_ui_list_hbar_drag_cb, NULL); efl_layout_signal_callback_del (obj, "drag,set", "efl.dragable.hbar", - _efl_ui_list_edje_drag_cb, obj); + obj, _efl_ui_list_edje_drag_cb, NULL); efl_layout_signal_callback_del (obj, "drag,start", "efl.dragable.hbar", - _efl_ui_list_edje_drag_start_cb, obj); + obj, _efl_ui_list_edje_drag_start_cb, NULL); efl_layout_signal_callback_del (obj, "drag,stop", "efl.dragable.hbar", - _efl_ui_list_edje_drag_stop_cb, obj); + obj, _efl_ui_list_edje_drag_stop_cb, NULL); efl_layout_signal_callback_del (obj, "drag,step", "efl.dragable.hbar", - _efl_ui_list_edje_drag_cb, obj); + obj, _efl_ui_list_edje_drag_cb, NULL); efl_layout_signal_callback_del (obj, "drag,page", "efl.dragable.hbar", - _efl_ui_list_edje_drag_cb, obj); + obj, _efl_ui_list_edje_drag_cb, NULL); efl_layout_signal_callback_del (obj, "efl,hbar,press", "efl", - _efl_ui_list_hbar_press_cb, obj); + obj, _efl_ui_list_hbar_press_cb, NULL); efl_layout_signal_callback_del (obj, "efl,hbar,unpress", "efl", - _efl_ui_list_hbar_unpress_cb, obj); + obj, _efl_ui_list_hbar_unpress_cb, NULL); */ } diff --git a/src/lib/elementary/efl_ui_list_view.c b/src/lib/elementary/efl_ui_list_view.c index 6c1d367f67..5481803e4e 100644 --- a/src/lib/elementary/efl_ui_list_view.c +++ b/src/lib/elementary/efl_ui_list_view.c @@ -438,24 +438,24 @@ _efl_ui_list_view_bar_hide_cb(void *data, const Efl_Event *event) edje_object_signal_emit(wd->resize_obj, "efl,action,hide,vbar", "efl"); } -EOLIAN static Eina_Bool -_efl_ui_list_view_efl_layout_signal_signal_callback_add(Eo *obj EINA_UNUSED, Efl_Ui_List_View_Data *sd EINA_UNUSED, const char *emission, const char *source, Edje_Signal_Cb func_cb, void *data) +static Eina_Bool +_efl_ui_list_view_efl_layout_signal_signal_callback_add(Eo *obj, Efl_Ui_List_View_Data *pd EINA_UNUSED, const char *emission, const char *source, void *func_data, EflLayoutSignalCb func, Eina_Free_Cb func_free_cb) { Eina_Bool ok; ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE); - ok = efl_layout_signal_callback_add(wd->resize_obj, emission, source, func_cb, data); + ok = efl_layout_signal_callback_add(wd->resize_obj, emission, source, func_data, func, func_free_cb); return ok; } -EOLIAN static Eina_Bool -_efl_ui_list_view_efl_layout_signal_signal_callback_del(Eo *obj EINA_UNUSED, Efl_Ui_List_View_Data *sd EINA_UNUSED, const char *emission, const char *source, Edje_Signal_Cb func_cb, void *data) +static Eina_Bool +_efl_ui_list_view_efl_layout_signal_signal_callback_del(Eo *obj, Efl_Ui_List_View_Data *pd EINA_UNUSED, const char *emission, const char *source, void *func_data, EflLayoutSignalCb func, Eina_Free_Cb func_free_cb) { Eina_Bool ok; ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE); - ok = efl_layout_signal_callback_del(wd->resize_obj, emission, source, func_cb, data); + ok = efl_layout_signal_callback_del(wd->resize_obj, emission, source, func_data, func, func_free_cb); return ok; } @@ -464,116 +464,118 @@ static void _efl_ui_list_view_edje_object_attach(Eo *obj) { efl_layout_signal_callback_add - (obj, "reload", "efl", _efl_ui_list_view_reload_cb, obj); + (obj, "reload", "efl", + obj, _efl_ui_list_view_reload_cb, NULL); //Vertical bar efl_layout_signal_callback_add (obj, "drag", "efl.dragable.vbar", - _efl_ui_list_view_vbar_drag_cb, obj); + obj, _efl_ui_list_view_vbar_drag_cb, NULL); efl_layout_signal_callback_add (obj, "drag,set", "efl.dragable.vbar", - _efl_ui_list_view_edje_drag_cb, obj); + obj, _efl_ui_list_view_edje_drag_cb, NULL); efl_layout_signal_callback_add (obj, "drag,start", "efl.dragable.vbar", - _efl_ui_list_view_edje_drag_start_cb, obj); + obj, _efl_ui_list_view_edje_drag_start_cb, NULL); efl_layout_signal_callback_add (obj, "drag,stop", "efl.dragable.vbar", - _efl_ui_list_view_edje_drag_stop_cb, obj); + obj, _efl_ui_list_view_edje_drag_stop_cb, NULL); efl_layout_signal_callback_add (obj, "drag,step", "efl.dragable.vbar", - _efl_ui_list_view_edje_drag_cb, obj); + obj, _efl_ui_list_view_edje_drag_cb, NULL); efl_layout_signal_callback_add (obj, "drag,page", "efl.dragable.vbar", - _efl_ui_list_view_edje_drag_cb, obj); + obj, _efl_ui_list_view_edje_drag_cb, NULL); efl_layout_signal_callback_add (obj, "efl,vbar,press", "efl", - _efl_ui_list_view_vbar_press_cb, obj); + obj, _efl_ui_list_view_vbar_press_cb, NULL); efl_layout_signal_callback_add (obj, "efl,vbar,unpress", "efl", - _efl_ui_list_view_vbar_unpress_cb, obj); + obj, _efl_ui_list_view_vbar_unpress_cb, NULL); - //Horizontal bar + //Horizontal bar efl_layout_signal_callback_add (obj, "drag", "efl.dragable.hbar", - _efl_ui_list_view_hbar_drag_cb, obj); + obj, _efl_ui_list_view_hbar_drag_cb, NULL); efl_layout_signal_callback_add (obj, "drag,set", "efl.dragable.hbar", - _efl_ui_list_view_edje_drag_cb, obj); + obj, _efl_ui_list_view_edje_drag_cb, NULL); efl_layout_signal_callback_add (obj, "drag,start", "efl.dragable.hbar", - _efl_ui_list_view_edje_drag_start_cb, obj); + obj, _efl_ui_list_view_edje_drag_start_cb, NULL); efl_layout_signal_callback_add (obj, "drag,stop", "efl.dragable.hbar", - _efl_ui_list_view_edje_drag_stop_cb, obj); + obj, _efl_ui_list_view_edje_drag_stop_cb, NULL); efl_layout_signal_callback_add (obj, "drag,step", "efl.dragable.hbar", - _efl_ui_list_view_edje_drag_cb, obj); + obj, _efl_ui_list_view_edje_drag_cb, NULL); efl_layout_signal_callback_add (obj, "drag,page", "efl.dragable.hbar", - _efl_ui_list_view_edje_drag_cb, obj); + obj, _efl_ui_list_view_edje_drag_cb, NULL); efl_layout_signal_callback_add (obj, "efl,hbar,press", "efl", - _efl_ui_list_view_hbar_press_cb, obj); + obj, _efl_ui_list_view_hbar_press_cb, NULL); efl_layout_signal_callback_add (obj, "efl,hbar,unpress", "efl", - _efl_ui_list_view_hbar_unpress_cb, obj); + obj, _efl_ui_list_view_hbar_unpress_cb, NULL); } static void _efl_ui_list_view_edje_object_detach(Evas_Object *obj) { efl_layout_signal_callback_del - (obj, "reload", "efl", _efl_ui_list_view_reload_cb, obj); - //Vertical bar + (obj, "reload", "efl", + obj, _efl_ui_list_view_reload_cb, NULL); + //Vertical bar efl_layout_signal_callback_del - (obj, "drag", "efl.dragable.vbar", _efl_ui_list_view_vbar_drag_cb, - obj); + (obj, "drag", "efl.dragable.vbar", + obj, _efl_ui_list_view_vbar_drag_cb, NULL); efl_layout_signal_callback_del (obj, "drag,set", "efl.dragable.vbar", - _efl_ui_list_view_edje_drag_cb, obj); + obj, _efl_ui_list_view_edje_drag_cb, NULL); efl_layout_signal_callback_del (obj, "drag,start", "efl.dragable.vbar", - _efl_ui_list_view_edje_drag_start_cb, obj); + obj, _efl_ui_list_view_edje_drag_start_cb, NULL); efl_layout_signal_callback_del (obj, "drag,stop", "efl.dragable.vbar", - _efl_ui_list_view_edje_drag_stop_cb, obj); + obj, _efl_ui_list_view_edje_drag_stop_cb, NULL); efl_layout_signal_callback_del (obj, "drag,step", "efl.dragable.vbar", - _efl_ui_list_view_edje_drag_cb, obj); + obj, _efl_ui_list_view_edje_drag_cb, NULL); efl_layout_signal_callback_del (obj, "drag,page", "efl.dragable.vbar", - _efl_ui_list_view_edje_drag_cb, obj); + obj, _efl_ui_list_view_edje_drag_cb, NULL); efl_layout_signal_callback_del (obj, "efl,vbar,press", "efl", - _efl_ui_list_view_vbar_press_cb, obj); + obj, _efl_ui_list_view_vbar_press_cb, NULL); efl_layout_signal_callback_del (obj, "efl,vbar,unpress", "efl", - _efl_ui_list_view_vbar_unpress_cb, obj); + obj, _efl_ui_list_view_vbar_unpress_cb, NULL); //Horizontal bar efl_layout_signal_callback_del - (obj, "drag", "efl.dragable.hbar", - _efl_ui_list_view_hbar_drag_cb, obj); + (obj, "drag", "efl.dragable.hbar", + obj, _efl_ui_list_view_hbar_drag_cb, NULL); efl_layout_signal_callback_del (obj, "drag,set", "efl.dragable.hbar", - _efl_ui_list_view_edje_drag_cb, obj); + obj, _efl_ui_list_view_edje_drag_cb, NULL); efl_layout_signal_callback_del (obj, "drag,start", "efl.dragable.hbar", - _efl_ui_list_view_edje_drag_start_cb, obj); + obj, _efl_ui_list_view_edje_drag_start_cb, NULL); efl_layout_signal_callback_del (obj, "drag,stop", "efl.dragable.hbar", - _efl_ui_list_view_edje_drag_stop_cb, obj); + obj, _efl_ui_list_view_edje_drag_stop_cb, NULL); efl_layout_signal_callback_del (obj, "drag,step", "efl.dragable.hbar", - _efl_ui_list_view_edje_drag_cb, obj); + obj, _efl_ui_list_view_edje_drag_cb, NULL); efl_layout_signal_callback_del (obj, "drag,page", "efl.dragable.hbar", - _efl_ui_list_view_edje_drag_cb, obj); + obj, _efl_ui_list_view_edje_drag_cb, NULL); efl_layout_signal_callback_del (obj, "efl,hbar,press", "efl", - _efl_ui_list_view_hbar_press_cb, obj); + obj, _efl_ui_list_view_hbar_press_cb, NULL); efl_layout_signal_callback_del (obj, "efl,hbar,unpress", "efl", - _efl_ui_list_view_hbar_unpress_cb, obj); + obj, _efl_ui_list_view_hbar_unpress_cb, NULL); } EOLIAN static void diff --git a/src/lib/elementary/efl_ui_nstate.c b/src/lib/elementary/efl_ui_nstate.c index 1ee831e10a..8a16d25830 100644 --- a/src/lib/elementary/efl_ui_nstate.c +++ b/src/lib/elementary/efl_ui_nstate.c @@ -45,7 +45,7 @@ _efl_ui_nstate_efl_object_constructor(Eo *obj, Efl_Ui_Nstate_Data *pd) ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, NULL); efl_layout_signal_callback_add - (wd->resize_obj, "efl,action,state,changed", "*", _on_state_changed, obj); + (wd->resize_obj, "efl,action,state,changed", "*", obj, _on_state_changed, NULL); //TODO: Add ATSPI call here diff --git a/src/lib/elementary/efl_ui_scroller.c b/src/lib/elementary/efl_ui_scroller.c index f81aa83eb4..ef8cc1a52b 100644 --- a/src/lib/elementary/efl_ui_scroller.c +++ b/src/lib/elementary/efl_ui_scroller.c @@ -279,55 +279,56 @@ _scroll_edje_object_attach(Eo *obj) EFL_UI_SCROLLER_DATA_GET_OR_RETURN(obj, sd); efl_layout_signal_callback_add - (obj, "reload", "efl", _efl_ui_scroller_reload_cb, obj); + (obj, "reload", "efl", + obj, _efl_ui_scroller_reload_cb, NULL); efl_layout_signal_callback_add - (obj, "drag", "efl.dragable.vbar", _efl_ui_scroller_vbar_drag_cb, - obj); + (obj, "drag", "efl.dragable.vbar", + obj, _efl_ui_scroller_vbar_drag_cb, NULL); efl_layout_signal_callback_add (obj, "drag,set", "efl.dragable.vbar", - _efl_ui_scroller_edje_drag_cb, obj); + obj, _efl_ui_scroller_edje_drag_cb, NULL); efl_layout_signal_callback_add (obj, "drag,start", "efl.dragable.vbar", - _efl_ui_scroller_edje_drag_start_cb, obj); + obj, _efl_ui_scroller_edje_drag_start_cb, NULL); efl_layout_signal_callback_add (obj, "drag,stop", "efl.dragable.vbar", - _efl_ui_scroller_edje_drag_stop_cb, obj); + obj, _efl_ui_scroller_edje_drag_stop_cb, NULL); efl_layout_signal_callback_add (obj, "drag,step", "efl.dragable.vbar", - _efl_ui_scroller_edje_drag_cb, obj); + obj, _efl_ui_scroller_edje_drag_cb, NULL); efl_layout_signal_callback_add (obj, "drag,page", "efl.dragable.vbar", - _efl_ui_scroller_edje_drag_cb, obj); + obj, _efl_ui_scroller_edje_drag_cb, NULL); efl_layout_signal_callback_add (obj, "efl,vbar,press", "efl", - _efl_ui_scroller_vbar_press_cb, obj); + obj, _efl_ui_scroller_vbar_press_cb, NULL); efl_layout_signal_callback_add (obj, "efl,vbar,unpress", "efl", - _efl_ui_scroller_vbar_unpress_cb, obj); + obj, _efl_ui_scroller_vbar_unpress_cb, NULL); efl_layout_signal_callback_add - (obj, "drag", "efl.dragable.hbar", _efl_ui_scroller_hbar_drag_cb, - obj); + (obj, "drag", "efl.dragable.hbar", + obj, _efl_ui_scroller_hbar_drag_cb, NULL); efl_layout_signal_callback_add (obj, "drag,set", "efl.dragable.hbar", - _efl_ui_scroller_edje_drag_cb, obj); + obj, _efl_ui_scroller_edje_drag_cb, NULL); efl_layout_signal_callback_add (obj, "drag,start", "efl.dragable.hbar", - _efl_ui_scroller_edje_drag_start_cb, obj); + obj, _efl_ui_scroller_edje_drag_start_cb, NULL); efl_layout_signal_callback_add (obj, "drag,stop", "efl.dragable.hbar", - _efl_ui_scroller_edje_drag_stop_cb, obj); + obj, _efl_ui_scroller_edje_drag_stop_cb, NULL); efl_layout_signal_callback_add (obj, "drag,step", "efl.dragable.hbar", - _efl_ui_scroller_edje_drag_cb, obj); + obj, _efl_ui_scroller_edje_drag_cb, NULL); efl_layout_signal_callback_add (obj, "drag,page", "efl.dragable.hbar", - _efl_ui_scroller_edje_drag_cb, obj); + obj, _efl_ui_scroller_edje_drag_cb, NULL); efl_layout_signal_callback_add (obj, "efl,hbar,press", "efl", - _efl_ui_scroller_hbar_press_cb, obj); + obj, _efl_ui_scroller_hbar_press_cb, NULL); efl_layout_signal_callback_add (obj, "efl,hbar,unpress", "efl", - _efl_ui_scroller_hbar_unpress_cb, obj); + obj, _efl_ui_scroller_hbar_unpress_cb, NULL); } static void @@ -336,55 +337,56 @@ _scroll_edje_object_detach(Evas_Object *obj) EFL_UI_SCROLLER_DATA_GET_OR_RETURN(obj, sd); efl_layout_signal_callback_del - (obj, "reload", "efl", _efl_ui_scroller_reload_cb, obj); + (obj, "reload", "efl", + obj, _efl_ui_scroller_reload_cb, NULL); efl_layout_signal_callback_del - (obj, "drag", "efl.dragable.vbar", _efl_ui_scroller_vbar_drag_cb, - obj); + (obj, "drag", "efl.dragable.vbar", + obj, _efl_ui_scroller_vbar_drag_cb, NULL); efl_layout_signal_callback_del (obj, "drag,set", "efl.dragable.vbar", - _efl_ui_scroller_edje_drag_cb, obj); + obj, _efl_ui_scroller_edje_drag_cb, NULL); efl_layout_signal_callback_del (obj, "drag,start", "efl.dragable.vbar", - _efl_ui_scroller_edje_drag_start_cb, obj); + obj, _efl_ui_scroller_edje_drag_start_cb, NULL); efl_layout_signal_callback_del (obj, "drag,stop", "efl.dragable.vbar", - _efl_ui_scroller_edje_drag_stop_cb, obj); + obj, _efl_ui_scroller_edje_drag_stop_cb, NULL); efl_layout_signal_callback_del (obj, "drag,step", "efl.dragable.vbar", - _efl_ui_scroller_edje_drag_cb, obj); + obj, _efl_ui_scroller_edje_drag_cb, NULL); efl_layout_signal_callback_del (obj, "drag,page", "efl.dragable.vbar", - _efl_ui_scroller_edje_drag_cb, obj); + obj, _efl_ui_scroller_edje_drag_cb, NULL); efl_layout_signal_callback_del (obj, "efl,vbar,press", "efl", - _efl_ui_scroller_vbar_press_cb, obj); + obj, _efl_ui_scroller_vbar_press_cb, NULL); efl_layout_signal_callback_del (obj, "efl,vbar,unpress", "efl", - _efl_ui_scroller_vbar_unpress_cb, obj); + obj, _efl_ui_scroller_vbar_unpress_cb, NULL); efl_layout_signal_callback_del - (obj, "drag", "efl.dragable.hbar", _efl_ui_scroller_hbar_drag_cb, - obj); + (obj, "drag", "efl.dragable.hbar", + obj, _efl_ui_scroller_hbar_drag_cb, NULL); efl_layout_signal_callback_del (obj, "drag,set", "efl.dragable.hbar", - _efl_ui_scroller_edje_drag_cb, obj); + obj, _efl_ui_scroller_edje_drag_cb, NULL); efl_layout_signal_callback_del (obj, "drag,start", "efl.dragable.hbar", - _efl_ui_scroller_edje_drag_start_cb, obj); + obj, _efl_ui_scroller_edje_drag_start_cb, NULL); efl_layout_signal_callback_del (obj, "drag,stop", "efl.dragable.hbar", - _efl_ui_scroller_edje_drag_stop_cb, obj); + obj, _efl_ui_scroller_edje_drag_stop_cb, NULL); efl_layout_signal_callback_del (obj, "drag,step", "efl.dragable.hbar", - _efl_ui_scroller_edje_drag_cb, obj); + obj, _efl_ui_scroller_edje_drag_cb, NULL); efl_layout_signal_callback_del (obj, "drag,page", "efl.dragable.hbar", - _efl_ui_scroller_edje_drag_cb, obj); + obj, _efl_ui_scroller_edje_drag_cb, NULL); efl_layout_signal_callback_del (obj, "efl,hbar,press", "efl", - _efl_ui_scroller_hbar_press_cb, obj); + obj, _efl_ui_scroller_hbar_press_cb, NULL); efl_layout_signal_callback_del (obj, "efl,hbar,unpress", "efl", - _efl_ui_scroller_hbar_unpress_cb, obj); + obj, _efl_ui_scroller_hbar_unpress_cb, NULL); } static void diff --git a/src/lib/elementary/efl_ui_slider.c b/src/lib/elementary/efl_ui_slider.c index 78ec64c332..ec51e9b336 100644 --- a/src/lib/elementary/efl_ui_slider.c +++ b/src/lib/elementary/efl_ui_slider.c @@ -652,11 +652,11 @@ _efl_ui_slider_efl_object_constructor(Eo *obj, Efl_Ui_Slider_Data *priv) priv->val_max = 1.0; priv->step = SLIDER_STEP; - efl_layout_signal_callback_add(obj, "drag", "*", _drag, obj); - efl_layout_signal_callback_add(obj, "drag,start", "*", _drag_start, obj); - efl_layout_signal_callback_add(obj, "drag,stop", "*", _drag_stop, obj); - efl_layout_signal_callback_add(obj, "drag,step", "*", _drag_step, obj); - efl_layout_signal_callback_add(obj, "drag,page", "*", _drag_stop, obj); + efl_layout_signal_callback_add(obj, "drag", "*", obj, _drag, NULL); + efl_layout_signal_callback_add(obj, "drag,start", "*", obj, _drag_start, NULL); + efl_layout_signal_callback_add(obj, "drag,stop", "*", obj, _drag_stop, NULL); + efl_layout_signal_callback_add(obj, "drag,step", "*", obj, _drag_step, NULL); + efl_layout_signal_callback_add(obj, "drag,page", "*", obj, _drag_stop, NULL); priv->spacer = efl_add(EFL_CANVAS_RECTANGLE_CLASS, obj, efl_gfx_color_set(efl_added, 0, 0, 0, 0), diff --git a/src/lib/elementary/efl_ui_tab_bar.c b/src/lib/elementary/efl_ui_tab_bar.c index be9f8a12e1..f7b37f3799 100644 --- a/src/lib/elementary/efl_ui_tab_bar.c +++ b/src/lib/elementary/efl_ui_tab_bar.c @@ -87,7 +87,7 @@ _tab_icon_set_cb(void *data, Tab_Info *ti = data; _tab_icon_update(ti); - efl_layout_signal_callback_del(obj, emission, source, _tab_icon_set_cb, ti); + efl_layout_signal_callback_del(obj, emission, source, ti, _tab_icon_set_cb, NULL); efl_layout_signal_emit(ti->tab, "efl,state,icon,reset", "efl"); } @@ -129,7 +129,7 @@ _tab_icon_obj_set(Eo *obj, (efl_part(ti->tab, "efl.icon_new"), ti->icon); efl_layout_signal_emit(ti->tab, "efl,state,icon_new,set", "efl"); efl_layout_signal_callback_add - (ti->tab, "efl,state,icon_set,done", "efl", _tab_icon_set_cb, ti); + (ti->tab, "efl,state,icon_set,done", "efl", ti, _tab_icon_set_cb, NULL); } else _tab_icon_update(ti); @@ -248,7 +248,7 @@ _tab_add(Eo *obj, const char *label, const char *icon) CRI("Failed to set layout!"); efl_layout_signal_callback_add - (tab, "efl,action,click", "efl", _action_click_cb, ti); + (tab, "efl,action,click", "efl", ti,_action_click_cb, NULL); if (ti->icon) efl_content_set(efl_part(tab, "efl.icon"), ti->icon); diff --git a/src/lib/elementary/efl_ui_text.c b/src/lib/elementary/efl_ui_text.c index c13435175f..c11d8c1f6e 100644 --- a/src/lib/elementary/efl_ui_text.c +++ b/src/lib/elementary/efl_ui_text.c @@ -1661,26 +1661,26 @@ _efl_ui_text_efl_layout_signal_signal_emit(Eo *obj EINA_UNUSED, Efl_Ui_Text_Data } } -EOLIAN static Eina_Bool -_efl_ui_text_efl_layout_signal_signal_callback_add(Eo *obj EINA_UNUSED, Efl_Ui_Text_Data *sd, const char *emission, const char *source, Edje_Signal_Cb func_cb, void *data) +static Eina_Bool +_efl_ui_text_efl_layout_signal_signal_callback_add(Eo *obj EINA_UNUSED, Efl_Ui_Text_Data *pd, const char *emission, const char *source, void *func_data, EflLayoutSignalCb func, Eina_Free_Cb func_free_cb) { Eina_Bool ok; - ok = efl_layout_signal_callback_add(sd->entry_edje, emission, source, func_cb, data); - if (sd->scr_edje) - ok = efl_layout_signal_callback_add(sd->scr_edje, emission, source, func_cb, data); + ok = efl_layout_signal_callback_add(pd->entry_edje, emission, source, func_data, func, func_free_cb); + if (pd->scr_edje) + ok = efl_layout_signal_callback_add(pd->scr_edje, emission, source, func_data, func, func_free_cb); return ok; } -EOLIAN static Eina_Bool -_efl_ui_text_efl_layout_signal_signal_callback_del(Eo *obj EINA_UNUSED, Efl_Ui_Text_Data *sd, const char *emission, const char *source, Edje_Signal_Cb func_cb, void *data) +static Eina_Bool +_efl_ui_text_efl_layout_signal_signal_callback_del(Eo *obj EINA_UNUSED, Efl_Ui_Text_Data *pd, const char *emission, const char *source, void *func_data, EflLayoutSignalCb func, Eina_Free_Cb func_free_cb) { Eina_Bool ok; - ok = efl_layout_signal_callback_del(sd->entry_edje, emission, source, func_cb, data); - if (sd->scr_edje) - ok = efl_layout_signal_callback_del(sd->scr_edje, emission, source, func_cb, data); + ok = efl_layout_signal_callback_del(pd->entry_edje, emission, source, func_data, func, func_free_cb); + if (pd->scr_edje) + ok = efl_layout_signal_callback_del(pd->scr_edje, emission, source, func_data, func, func_free_cb); return ok; } diff --git a/src/lib/elementary/elm_entry.c b/src/lib/elementary/elm_entry.c index 8661778d09..c811e16cb4 100644 --- a/src/lib/elementary/elm_entry.c +++ b/src/lib/elementary/elm_entry.c @@ -3140,26 +3140,30 @@ _elm_entry_efl_layout_signal_signal_emit(Eo *obj EINA_UNUSED, Elm_Entry_Data *sd } } -EOLIAN static Eina_Bool -_elm_entry_efl_layout_signal_signal_callback_add(Eo *obj EINA_UNUSED, Elm_Entry_Data *sd, const char *emission, const char *source, Edje_Signal_Cb func_cb, void *data) +static Eina_Bool +_elm_entry_efl_layout_signal_signal_callback_add(Eo *obj EINA_UNUSED, Elm_Entry_Data *sd, + const char *emission, const char *source, + void *func_data, EflLayoutSignalCb func, Eina_Free_Cb func_free_cb) { Eina_Bool ok; - ok = efl_layout_signal_callback_add(sd->entry_edje, emission, source, func_cb, data); + ok = efl_layout_signal_callback_add(sd->entry_edje, emission, source, func_data, func, func_free_cb); if (sd->scr_edje) - ok = efl_layout_signal_callback_add(sd->scr_edje, emission, source, func_cb, data); + ok = efl_layout_signal_callback_add(sd->scr_edje, emission, source, func_data, func, func_free_cb); return ok; } -EOLIAN static Eina_Bool -_elm_entry_efl_layout_signal_signal_callback_del(Eo *obj EINA_UNUSED, Elm_Entry_Data *sd, const char *emission, const char *source, Edje_Signal_Cb func_cb, void *data) +static Eina_Bool +_elm_entry_efl_layout_signal_signal_callback_del(Eo *obj EINA_UNUSED, Elm_Entry_Data *sd, + const char *emission, const char *source, + void *func_data, EflLayoutSignalCb func, Eina_Free_Cb func_free_cb) { Eina_Bool ok; - ok = efl_layout_signal_callback_del(sd->entry_edje, emission, source, func_cb, data); + ok = efl_layout_signal_callback_del(sd->entry_edje, emission, source, func_data, func, func_free_cb); if (sd->scr_edje) - ok = efl_layout_signal_callback_del(sd->scr_edje, emission, source, func_cb, data); + ok = efl_layout_signal_callback_del(sd->scr_edje, emission, source, func_data, func, func_free_cb); return ok; } @@ -3177,7 +3181,7 @@ _elm_entry_signal_callback_add_legacy(Eo *obj, const char *emission, const char emission, source, func_cb, data); if (sd->scr_edje) - efl_layout_signal_callback_add(sd->scr_edje, emission, source, func_cb, data); + efl_layout_signal_callback_add(sd->scr_edje, emission, source, data, func_cb, NULL); } void * @@ -3193,7 +3197,7 @@ _elm_entry_signal_callback_del_legacy(Eo *obj, const char *emission, const char emission, source, func_cb); if (sd->scr_edje) - efl_layout_signal_callback_del(sd->scr_edje, emission, source, func_cb, data); + efl_layout_signal_callback_del(sd->scr_edje, emission, source, data, func_cb, NULL); return data; } diff --git a/src/tests/emotion/emotion_test_main-eo.c b/src/tests/emotion/emotion_test_main-eo.c index 2d5df2f9ab..b3f850c812 100644 --- a/src/tests/emotion/emotion_test_main-eo.c +++ b/src/tests/emotion/emotion_test_main-eo.c @@ -634,17 +634,17 @@ init_video_object(const char *module_filename, const char *filename) efl_event_callback_array_add(o, emotion_object_test_callbacks(), oe); - efl_layout_signal_callback_add(oe, "video_control", "play", video_obj_signal_play_cb, o); - efl_layout_signal_callback_add(oe, "video_control", "pause", video_obj_signal_pause_cb, o); - efl_layout_signal_callback_add(oe, "video_control", "stop", video_obj_signal_stop_cb, o); - efl_layout_signal_callback_add(oe, "drag", "video_progress", video_obj_signal_jump_cb, o); - efl_layout_signal_callback_add(oe, "drag", "video_alpha", video_obj_signal_alpha_cb, o); - efl_layout_signal_callback_add(oe, "drag", "video_volume", video_obj_signal_vol_cb, o); - efl_layout_signal_callback_add(oe, "frame_move", "start", video_obj_signal_frame_move_start_cb, oe); - efl_layout_signal_callback_add(oe, "frame_move", "stop", video_obj_signal_frame_move_stop_cb, oe); - efl_layout_signal_callback_add(oe, "frame_resize", "start", video_obj_signal_frame_resize_start_cb, oe); - efl_layout_signal_callback_add(oe, "frame_resize", "stop", video_obj_signal_frame_resize_stop_cb, oe); - efl_layout_signal_callback_add(oe, "mouse, move", "*", video_obj_signal_frame_move_cb, oe); + efl_layout_signal_callback_add(oe, "video_control", "play", o, video_obj_signal_play_cb, NULL); + efl_layout_signal_callback_add(oe, "video_control", "pause", o, video_obj_signal_pause_cb, NULL); + efl_layout_signal_callback_add(oe, "video_control", "stop", o, video_obj_signal_stop_cb, NULL); + efl_layout_signal_callback_add(oe, "drag", "video_progress", o, video_obj_signal_jump_cb, NULL); + efl_layout_signal_callback_add(oe, "drag", "video_alpha", o, video_obj_signal_alpha_cb, NULL); + efl_layout_signal_callback_add(oe, "drag", "video_volume", o, video_obj_signal_vol_cb, NULL); + efl_layout_signal_callback_add(oe, "frame_move", "start", oe, video_obj_signal_frame_move_start_cb, NULL); + efl_layout_signal_callback_add(oe, "frame_move", "stop", oe, video_obj_signal_frame_move_stop_cb, NULL); + efl_layout_signal_callback_add(oe, "frame_resize", "start", oe, video_obj_signal_frame_resize_start_cb, NULL); + efl_layout_signal_callback_add(oe, "frame_resize", "stop", oe, video_obj_signal_frame_resize_stop_cb, NULL); + efl_layout_signal_callback_add(oe, "mouse, move", "*", oe, video_obj_signal_frame_move_cb, NULL); efl_ui_drag_value_set(efl_part(oe, "video_alpha"), 0.0, 1.0); efl_text_set(efl_part(oe, "video_alpha_txt"), "alpha 255"); efl_ui_drag_value_set(efl_part(oe, "video_volume"), 0.0, 0.5);