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
This commit is contained in:
Cedric BAIL 2019-02-06 13:48:43 -05:00 committed by Mike Blumenkrantz
parent 917e0aa0fe
commit f484ca0951
19 changed files with 416 additions and 339 deletions

View File

@ -81,7 +81,7 @@ edje_object_signal_callback_add(Evas_Object *obj, const char *emission, const ch
ed = _edje_fetch(obj); ed = _edje_fetch(obj);
if (!ed || ed->delete_me) return; 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 * EAPI void *
@ -99,7 +99,8 @@ edje_object_signal_callback_del_full(Evas_Object *obj, const char *emission, con
emission = eina_stringshare_add(emission); emission = eina_stringshare_add(emission);
source = eina_stringshare_add(source); 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 // Legacy only
if (!ok && !data) 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 && if (emission == gp->matches->matches[i].signal &&
source == gp->matches->matches[i].source && 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)
{ {
gp->flags[i].delete_me = EINA_TRUE; gp->flags[i].delete_me = EINA_TRUE;

View File

@ -553,7 +553,10 @@ edje_match_callback_exec_check_finals(const Edje_Signals_Sources_Patterns *ssp,
if (ed->callbacks->flags[idx].delete_me) continue; 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)) if (_edje_block_break(ed))
{ {
r = 0; r = 0;

View File

@ -1048,12 +1048,16 @@ struct _Edje_Signal_Callback_Match
{ {
const char *signal; const char *signal;
const char *source; const char *source;
Edje_Signal_Cb func; union {
Edje_Signal_Cb legacy;
EflLayoutSignalCb eo;
};
}; };
struct _Edje_Signal_Callback_Matches struct _Edje_Signal_Callback_Matches
{ {
Edje_Signal_Callback_Match *matches; Edje_Signal_Callback_Match *matches;
Eina_Free_Cb *free_cb;
Edje_Signals_Sources_Patterns *patterns; Edje_Signals_Sources_Patterns *patterns;
@ -1065,6 +1069,7 @@ struct _Edje_Signal_Callback_Matches
struct _Edje_Signal_Callback_Flags struct _Edje_Signal_Callback_Flags
{ {
Eina_Bool legacy:1;
Eina_Bool delete_me:1; Eina_Bool delete_me:1;
Eina_Bool just_added:1; Eina_Bool just_added:1;
Eina_Bool propagate: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 char *source,
const Eina_Rbtree *tree); const Eina_Rbtree *tree);
void edje_match_signal_source_free(Edje_Signal_Source_Char *key, void *data); 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,
Eina_Bool _edje_object_signal_callback_add(Edje *ed, const char *emission, const char *source, Efl_Signal_Cb func, void *data); 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 // FIXME remove below 3 eapi decls when edje_convert goes
EAPI void _edje_edd_init(void); 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); void _edje_callbacks_focus_del(Evas_Object *obj, Edje *ed);
const Edje_Signal_Callback_Group *_edje_signal_callback_alloc(void); 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); void _edje_signal_callback_free(const Edje_Signal_Callback_Group *cgp);
Eina_Bool _edje_signal_callback_push(Edje_Signal_Callback_Group *cgp, Eina_Bool _edje_signal_callback_push(Edje_Signal_Callback_Group *cgp,
const char *signal, const char *source, 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 propagate);
Eina_Bool _edje_signal_callback_disable(Edje_Signal_Callback_Group *cgp, Eina_Bool _edje_signal_callback_disable(Edje_Signal_Callback_Group *cgp,
const char *signal, const char *source, 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_init(void);
EAPI void _edje_edd_shutdown(void); EAPI void _edje_edd_shutdown(void);

View File

@ -237,7 +237,9 @@ edje_transition_duration_factor_set(double scale)
} }
Eina_Bool 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; Edje_Signal_Callback_Group *gp;
const char *sig; 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); src = eina_stringshare_add(source);
gp = (Edje_Signal_Callback_Group *) ed->callbacks; 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(sig);
eina_stringshare_del(src); 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); ed = _edje_fetch(obj);
if (!ed || ed->delete_me) return; 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 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) _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 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) _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; Edje_Signal_Callback_Group *gp;
Eina_Bool ok; 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); emission = eina_stringshare_add(emission);
source = eina_stringshare_add(source); 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(emission);
eina_stringshare_del(source); 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 = &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; if (_edje_block_break(ed)) break;
} }
} }
break_prog: 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); _edje_signal_callback_patterns_unref(ssp);
} }

View File

@ -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].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].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; return 0;
} }
@ -39,11 +45,16 @@ _edje_signal_match_key_hash(const void *key, int key_length EINA_UNUSED)
#ifdef EFL64 #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].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].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 #else
hash ^= eina_hash_int32((const unsigned int *)&a->matches[i].signal, sizeof (char *)); 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].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 #endif
} }
return hash; return hash;
@ -64,11 +75,17 @@ _edje_signal_callback_matches_dup(const Edje_Signal_Callback_Matches *src)
result->patterns = NULL; result->patterns = NULL;
EINA_REFCOUNT_REF(result); 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++) for (i = 0; i < src->matches_count; i++)
{ {
result->matches[i].signal = eina_stringshare_ref(src->matches[i].signal); 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].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; return result;
@ -141,14 +158,23 @@ _edje_signal_callback_unset(Edje_Signal_Callback_Group *gp, int idx)
static void static void
_edje_signal_callback_set(Edje_Signal_Callback_Group *gp, int idx, _edje_signal_callback_set(Edje_Signal_Callback_Group *gp, int idx,
const char *sig, const char *src, 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; Edje_Signal_Callback_Match *m;
m = gp->matches->matches + idx; m = gp->matches->matches + idx;
m->signal = eina_stringshare_ref(sig); m->signal = eina_stringshare_ref(sig);
m->source = eina_stringshare_ref(src); 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; 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 = (Edje_Signal_Callback_Matches *)gp->matches;
tmp->matches_count++; tmp->matches_count++;
tmp->matches = realloc(tmp->matches, sizeof (Edje_Signal_Callback_Match) * 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->custom_data = realloc(gp->custom_data, sizeof (void *) * tmp->matches_count);
gp->flags = realloc(gp->flags, sizeof (Edje_Signal_Callback_Flags) * 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 Eina_Bool
_edje_signal_callback_push(Edje_Signal_Callback_Group *gp, _edje_signal_callback_push(Edje_Signal_Callback_Group *gp,
const char *sig, const char *src, 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; unsigned int i;
Edje_Signal_Callback_Flags flags; Edje_Signal_Callback_Flags flags;
@ -181,23 +214,11 @@ _edje_signal_callback_push(Edje_Signal_Callback_Group *gp,
flags.delete_me = EINA_FALSE; flags.delete_me = EINA_FALSE;
flags.just_added = EINA_TRUE; flags.just_added = EINA_TRUE;
flags.propagate = !!propagate; 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; 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 (tmp->hashed)
{ {
if (EINA_REFCOUNT_GET(tmp) == 1) 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) if (gp->flags[i].delete_me)
{ {
_edje_signal_callback_unset(gp, i); _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; return EINA_TRUE;
} }
} }
@ -232,7 +253,7 @@ _edje_signal_callback_push(Edje_Signal_Callback_Group *gp,
_edje_signal_callback_grow(gp); _edje_signal_callback_grow(gp);
// Set propagate and just_added flags // Set propagate and just_added flags
_edje_signal_callback_set(gp, tmp->matches_count - 1, _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; return EINA_TRUE;
} }
@ -260,12 +281,24 @@ _edje_signal_callback_alloc(void)
} }
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)
{
EINA_REFCOUNT_UNREF(m)
{ {
unsigned int i; 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)
{
_edje_signal_callback_patterns_unref(m->patterns); _edje_signal_callback_patterns_unref(m->patterns);
if (m->hashed) if (m->hashed)
@ -292,7 +325,7 @@ _edje_signal_callback_free(const Edje_Signal_Callback_Group *cgp)
if (!gp) return; 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; gp->matches = NULL;
free(gp->flags); free(gp->flags);
gp->flags = NULL; gp->flags = NULL;
@ -304,7 +337,8 @@ _edje_signal_callback_free(const Edje_Signal_Callback_Group *cgp)
Eina_Bool Eina_Bool
_edje_signal_callback_disable(Edje_Signal_Callback_Group *gp, _edje_signal_callback_disable(Edje_Signal_Callback_Group *gp,
const char *sig, const char *src, 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; unsigned int i;
@ -314,10 +348,17 @@ _edje_signal_callback_disable(Edje_Signal_Callback_Group *gp,
{ {
if (sig == gp->matches->matches[i].signal && if (sig == gp->matches->matches[i].signal &&
src == gp->matches->matches[i].source && src == gp->matches->matches[i].source &&
func == gp->matches->matches[i].func && !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->custom_data[i] == data &&
!gp->flags[i].delete_me) !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; gp->flags[i].delete_me = EINA_TRUE;
//return gp->custom_data[i]; //return gp->custom_data[i];
return EINA_TRUE; return EINA_TRUE;
@ -341,9 +382,7 @@ _edje_signal_callback_move_last(Edje_Signal_Callback_Group *gp,
if (!gp->flags[j].delete_me) if (!gp->flags[j].delete_me)
{ {
_edje_signal_callback_unset(gp, i); _edje_signal_callback_unset(gp, i);
m->matches[i].signal = m->matches[j].signal; memcpy(&m->matches[i], &m->matches[j], sizeof (Edje_Signal_Callback_Match));
m->matches[i].source = m->matches[j].source;
m->matches[i].func = m->matches[j].func;
gp->flags[i] = gp->flags[j]; gp->flags[i] = gp->flags[j];
gp->custom_data[i] = gp->custom_data[j]; gp->custom_data[i] = gp->custom_data[j];
return; return;
@ -394,7 +433,7 @@ _edje_signal_callback_patterns_ref(const Edje_Signal_Callback_Group *gp)
} }
else 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; ((Edje_Signal_Callback_Group *)gp)->matches = m;
tmp = (Edje_Signal_Callback_Matches *)gp->matches; tmp = (Edje_Signal_Callback_Matches *)gp->matches;
EINA_REFCOUNT_REF(tmp); EINA_REFCOUNT_REF(tmp);

View File

@ -8,7 +8,14 @@
match that. 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 interface Efl.Layout.Signal
{ {
@ -83,9 +90,8 @@ interface Efl.Layout.Signal
params { params {
@in emission: string; [[The signal's "emission" string]] @in emission: string; [[The signal's "emission" string]]
@in source: string; [[The signal's "source" 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.]] [[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.]] return: bool; [[$true in case of success, $false in case of error.]]
} }
@ -102,9 +108,8 @@ interface Efl.Layout.Signal
params { params {
@in emission: string; [[The signal's "emission" string]] @in emission: string; [[The signal's "emission" string]]
@in source: string; [[The signal's "source" 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.]] [[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.]] return: bool; [[$true in case of success, $false in case of error.]]
} }

View File

@ -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)) if (elm_widget_is_legacy(obj))
{ {
efl_layout_signal_callback_add 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 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 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 else
{ {
efl_layout_signal_callback_add 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 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 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); efl_access_object_role_set(obj, EFL_ACCESS_ROLE_CHECK_BOX);

View File

@ -435,40 +435,40 @@ _scroll_edje_object_attach(Eo *obj)
EFL_UI_GRID_DATA_GET_OR_RETURN(obj, pd); EFL_UI_GRID_DATA_GET_OR_RETURN(obj, pd);
efl_layout_signal_callback_add(obj, "reload", "efl", 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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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 static void
@ -477,40 +477,40 @@ _scroll_edje_object_detach(Eo *obj)
EFL_UI_GRID_DATA_GET_OR_RETURN(obj, pd); EFL_UI_GRID_DATA_GET_OR_RETURN(obj, pd);
efl_layout_signal_callback_del(obj, "reload", "efl", 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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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 static void

View File

@ -1610,108 +1610,108 @@ _efl_ui_image_zoomable_edje_object_attach(Eo *obj)
if (elm_widget_is_legacy(obj)) if (elm_widget_is_legacy(obj))
{ {
efl_layout_signal_callback_add 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 efl_layout_signal_callback_add
(obj, "drag", "elm.dragable.vbar", (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 efl_layout_signal_callback_add
(obj, "drag,set", "elm.dragable.vbar", (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 efl_layout_signal_callback_add
(obj, "drag,start", "elm.dragable.vbar", (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 efl_layout_signal_callback_add
(obj, "drag,stop", "elm.dragable.vbar", (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 efl_layout_signal_callback_add
(obj, "drag,step", "elm.dragable.vbar", (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 efl_layout_signal_callback_add
(obj, "drag,page", "elm.dragable.vbar", (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 efl_layout_signal_callback_add
(obj, "elm,vbar,press", "elm", (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 efl_layout_signal_callback_add
(obj, "elm,vbar,unpress", "elm", (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 efl_layout_signal_callback_add
(obj, "drag", "elm.dragable.hbar", (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 efl_layout_signal_callback_add
(obj, "drag,set", "elm.dragable.hbar", (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 efl_layout_signal_callback_add
(obj, "drag,start", "elm.dragable.hbar", (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 efl_layout_signal_callback_add
(obj, "drag,stop", "elm.dragable.hbar", (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 efl_layout_signal_callback_add
(obj, "drag,step", "elm.dragable.hbar", (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 efl_layout_signal_callback_add
(obj, "drag,page", "elm.dragable.hbar", (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 efl_layout_signal_callback_add
(obj, "elm,hbar,press", "elm", (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 efl_layout_signal_callback_add
(obj, "elm,hbar,unpress", "elm", (obj, "elm,hbar,unpress", "elm",
_efl_ui_image_zoomable_hbar_unpress_cb, obj); obj, _efl_ui_image_zoomable_hbar_unpress_cb, NULL);
} }
else else
{ {
efl_layout_signal_callback_add 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 efl_layout_signal_callback_add
(obj, "drag", "efl.dragable.vbar", _efl_ui_image_zoomable_vbar_drag_cb, (obj, "drag", "efl.dragable.vbar",
obj); obj, _efl_ui_image_zoomable_vbar_drag_cb, NULL);
efl_layout_signal_callback_add efl_layout_signal_callback_add
(obj, "drag,set", "efl.dragable.vbar", (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 efl_layout_signal_callback_add
(obj, "drag,start", "efl.dragable.vbar", (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 efl_layout_signal_callback_add
(obj, "drag,stop", "efl.dragable.vbar", (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 efl_layout_signal_callback_add
(obj, "drag,step", "efl.dragable.vbar", (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 efl_layout_signal_callback_add
(obj, "drag,page", "efl.dragable.vbar", (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 efl_layout_signal_callback_add
(obj, "efl,vbar,press", "efl", (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 efl_layout_signal_callback_add
(obj, "efl,vbar,unpress", "efl", (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 efl_layout_signal_callback_add
(obj, "drag", "efl.dragable.hbar", _efl_ui_image_zoomable_hbar_drag_cb, (obj, "drag", "efl.dragable.hbar",
obj); obj, _efl_ui_image_zoomable_hbar_drag_cb, NULL);
efl_layout_signal_callback_add efl_layout_signal_callback_add
(obj, "drag,set", "efl.dragable.hbar", (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 efl_layout_signal_callback_add
(obj, "drag,start", "efl.dragable.hbar", (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 efl_layout_signal_callback_add
(obj, "drag,stop", "efl.dragable.hbar", (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 efl_layout_signal_callback_add
(obj, "drag,step", "efl.dragable.hbar", (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 efl_layout_signal_callback_add
(obj, "drag,page", "efl.dragable.hbar", (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 efl_layout_signal_callback_add
(obj, "efl,hbar,press", "efl", (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 efl_layout_signal_callback_add
(obj, "efl,hbar,unpress", "efl", (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)) if (elm_widget_is_legacy(obj))
{ {
efl_layout_signal_callback_del 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 efl_layout_signal_callback_del
(obj, "drag", "elm.dragable.vbar", (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 efl_layout_signal_callback_del
(obj, "drag,set", "elm.dragable.vbar", (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 efl_layout_signal_callback_del
(obj, "drag,start", "elm.dragable.vbar", (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 efl_layout_signal_callback_del
(obj, "drag,stop", "elm.dragable.vbar", (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 efl_layout_signal_callback_del
(obj, "drag,step", "elm.dragable.vbar", (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 efl_layout_signal_callback_del
(obj, "drag,page", "elm.dragable.vbar", (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 efl_layout_signal_callback_del
(obj, "elm,vbar,press", "elm", (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 efl_layout_signal_callback_del
(obj, "elm,vbar,unpress", "elm", (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 efl_layout_signal_callback_del
(obj, "drag", "elm.dragable.hbar", (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 efl_layout_signal_callback_del
(obj, "drag,set", "elm.dragable.hbar", (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 efl_layout_signal_callback_del
(obj, "drag,start", "elm.dragable.hbar", (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 efl_layout_signal_callback_del
(obj, "drag,stop", "elm.dragable.hbar", (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 efl_layout_signal_callback_del
(obj, "drag,step", "elm.dragable.hbar", (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 efl_layout_signal_callback_del
(obj, "drag,page", "elm.dragable.hbar", (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 efl_layout_signal_callback_del
(obj, "elm,hbar,press", "elm", (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 efl_layout_signal_callback_del
(obj, "elm,hbar,unpress", "elm", (obj, "elm,hbar,unpress", "elm",
_efl_ui_image_zoomable_hbar_unpress_cb, obj); obj, _efl_ui_image_zoomable_hbar_unpress_cb, NULL);
} }
else else
{ {
efl_layout_signal_callback_del 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 efl_layout_signal_callback_del
(obj, "drag", "efl.dragable.vbar", (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 efl_layout_signal_callback_del
(obj, "drag,set", "efl.dragable.vbar", (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 efl_layout_signal_callback_del
(obj, "drag,start", "efl.dragable.vbar", (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 efl_layout_signal_callback_del
(obj, "drag,stop", "efl.dragable.vbar", (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 efl_layout_signal_callback_del
(obj, "drag,step", "efl.dragable.vbar", (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 efl_layout_signal_callback_del
(obj, "drag,page", "efl.dragable.vbar", (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 efl_layout_signal_callback_del
(obj, "efl,vbar,press", "efl", (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 efl_layout_signal_callback_del
(obj, "efl,vbar,unpress", "efl", (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 efl_layout_signal_callback_del
(obj, "drag", "efl.dragable.hbar", (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 efl_layout_signal_callback_del
(obj, "drag,set", "efl.dragable.hbar", (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 efl_layout_signal_callback_del
(obj, "drag,start", "efl.dragable.hbar", (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 efl_layout_signal_callback_del
(obj, "drag,stop", "efl.dragable.hbar", (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 efl_layout_signal_callback_del
(obj, "drag,step", "efl.dragable.hbar", (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 efl_layout_signal_callback_del
(obj, "drag,page", "efl.dragable.hbar", (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 efl_layout_signal_callback_del
(obj, "efl,hbar,press", "efl", (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 efl_layout_signal_callback_del
(obj, "efl,hbar,unpress", "efl", (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 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; Eina_Bool ok;
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE); 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; return ok;
} }
EOLIAN static Eina_Bool 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; Eina_Bool ok;
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE); 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; return ok;
} }

View File

@ -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); efl_layout_signal_emit(wd->resize_obj, emission, source);
} }
EOLIAN static Eina_Bool 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) _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 // Don't do anything else than call forward here
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE); 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 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) _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 // Don't do anything else than call forward here
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE); 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: // TODO:
@ -2862,7 +2862,7 @@ _elm_layout_signal_callback_add_legacy(Eo *obj, Eo *edje, Eina_List **p_edje_sig
esd->data = data; esd->data = data;
*p_edje_signals = eina_list_append(*p_edje_signals, esd); *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); _edje_signal_callback, esd);
} }
@ -2905,7 +2905,7 @@ _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); *p_edje_signals = eina_list_remove_list(*p_edje_signals, l);
efl_layout_signal_callback_del(edje, emission, source, edje_object_signal_callback_del_full(edje, emission, source,
_edje_signal_callback, esd); _edje_signal_callback, esd);
eina_stringshare_del(esd->emission); eina_stringshare_del(esd->emission);

View File

@ -255,57 +255,57 @@ _scroll_edje_object_attach(Eo *obj)
efl_layout_signal_callback_add efl_layout_signal_callback_add
(obj, "reload", "efl", (obj, "reload", "efl",
_efl_ui_list_reload_cb, obj); obj, _efl_ui_list_reload_cb, NULL);
efl_layout_signal_callback_add efl_layout_signal_callback_add
(obj, "drag", "efl.dragable.vbar", (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 efl_layout_signal_callback_add
(obj, "drag,set", "efl.dragable.vbar", (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 efl_layout_signal_callback_add
(obj, "drag,start", "efl.dragable.vbar", (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 efl_layout_signal_callback_add
(obj, "drag,stop", "efl.dragable.vbar", (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 efl_layout_signal_callback_add
(obj, "drag,step", "efl.dragable.vbar", (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 efl_layout_signal_callback_add
(obj, "drag,page", "efl.dragable.vbar", (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 efl_layout_signal_callback_add
(obj, "efl,vbar,press", "efl", (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 efl_layout_signal_callback_add
(obj, "efl,vbar,unpress", "efl", (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. /* FIXME: Horizontal Scroll is not yet supported in the list.
efl_layout_signal_callback_add efl_layout_signal_callback_add
(obj, "drag", "efl.dragable.hbar", (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 efl_layout_signal_callback_add
(obj, "drag,set", "efl.dragable.hbar", (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 efl_layout_signal_callback_add
(obj, "drag,start", "efl.dragable.hbar", (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 efl_layout_signal_callback_add
(obj, "drag,stop", "efl.dragable.hbar", (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 efl_layout_signal_callback_add
(obj, "drag,step", "efl.dragable.hbar", (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 efl_layout_signal_callback_add
(obj, "drag,page", "efl.dragable.hbar", (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 efl_layout_signal_callback_add
(obj, "efl,hbar,press", "efl", (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 efl_layout_signal_callback_add
(obj, "efl,hbar,unpress", "efl", (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 efl_layout_signal_callback_del
(obj, "reload", "efl", (obj, "reload", "efl",
_efl_ui_list_reload_cb, obj); obj, _efl_ui_list_reload_cb, NULL);
efl_layout_signal_callback_del efl_layout_signal_callback_del
(obj, "drag", "efl.dragable.vbar", (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 efl_layout_signal_callback_del
(obj, "drag,set", "efl.dragable.vbar", (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 efl_layout_signal_callback_del
(obj, "drag,start", "efl.dragable.vbar", (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 efl_layout_signal_callback_del
(obj, "drag,stop", "efl.dragable.vbar", (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 efl_layout_signal_callback_del
(obj, "drag,step", "efl.dragable.vbar", (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 efl_layout_signal_callback_del
(obj, "drag,page", "efl.dragable.vbar", (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 efl_layout_signal_callback_del
(obj, "efl,vbar,press", "efl", (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 efl_layout_signal_callback_del
(obj, "efl,vbar,unpress", "efl", (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. /* FIXME: Horizontal Scroll is not yet supported in the list.
efl_layout_signal_callback_del efl_layout_signal_callback_del
(obj, "drag", "efl.dragable.hbar", (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 efl_layout_signal_callback_del
(obj, "drag,set", "efl.dragable.hbar", (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 efl_layout_signal_callback_del
(obj, "drag,start", "efl.dragable.hbar", (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 efl_layout_signal_callback_del
(obj, "drag,stop", "efl.dragable.hbar", (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 efl_layout_signal_callback_del
(obj, "drag,step", "efl.dragable.hbar", (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 efl_layout_signal_callback_del
(obj, "drag,page", "efl.dragable.hbar", (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 efl_layout_signal_callback_del
(obj, "efl,hbar,press", "efl", (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 efl_layout_signal_callback_del
(obj, "efl,hbar,unpress", "efl", (obj, "efl,hbar,unpress", "efl",
_efl_ui_list_hbar_unpress_cb, obj); obj, _efl_ui_list_hbar_unpress_cb, NULL);
*/ */
} }

View File

@ -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"); edje_object_signal_emit(wd->resize_obj, "efl,action,hide,vbar", "efl");
} }
EOLIAN static Eina_Bool 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) _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; Eina_Bool ok;
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE); 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; return ok;
} }
EOLIAN static Eina_Bool 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) _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; Eina_Bool ok;
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE); 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; return ok;
} }
@ -464,116 +464,118 @@ static void
_efl_ui_list_view_edje_object_attach(Eo *obj) _efl_ui_list_view_edje_object_attach(Eo *obj)
{ {
efl_layout_signal_callback_add 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 //Vertical bar
efl_layout_signal_callback_add efl_layout_signal_callback_add
(obj, "drag", "efl.dragable.vbar", (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 efl_layout_signal_callback_add
(obj, "drag,set", "efl.dragable.vbar", (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 efl_layout_signal_callback_add
(obj, "drag,start", "efl.dragable.vbar", (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 efl_layout_signal_callback_add
(obj, "drag,stop", "efl.dragable.vbar", (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 efl_layout_signal_callback_add
(obj, "drag,step", "efl.dragable.vbar", (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 efl_layout_signal_callback_add
(obj, "drag,page", "efl.dragable.vbar", (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 efl_layout_signal_callback_add
(obj, "efl,vbar,press", "efl", (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 efl_layout_signal_callback_add
(obj, "efl,vbar,unpress", "efl", (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 efl_layout_signal_callback_add
(obj, "drag", "efl.dragable.hbar", (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 efl_layout_signal_callback_add
(obj, "drag,set", "efl.dragable.hbar", (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 efl_layout_signal_callback_add
(obj, "drag,start", "efl.dragable.hbar", (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 efl_layout_signal_callback_add
(obj, "drag,stop", "efl.dragable.hbar", (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 efl_layout_signal_callback_add
(obj, "drag,step", "efl.dragable.hbar", (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 efl_layout_signal_callback_add
(obj, "drag,page", "efl.dragable.hbar", (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 efl_layout_signal_callback_add
(obj, "efl,hbar,press", "efl", (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 efl_layout_signal_callback_add
(obj, "efl,hbar,unpress", "efl", (obj, "efl,hbar,unpress", "efl",
_efl_ui_list_view_hbar_unpress_cb, obj); obj, _efl_ui_list_view_hbar_unpress_cb, NULL);
} }
static void static void
_efl_ui_list_view_edje_object_detach(Evas_Object *obj) _efl_ui_list_view_edje_object_detach(Evas_Object *obj)
{ {
efl_layout_signal_callback_del efl_layout_signal_callback_del
(obj, "reload", "efl", _efl_ui_list_view_reload_cb, obj); (obj, "reload", "efl",
obj, _efl_ui_list_view_reload_cb, NULL);
//Vertical bar //Vertical bar
efl_layout_signal_callback_del efl_layout_signal_callback_del
(obj, "drag", "efl.dragable.vbar", _efl_ui_list_view_vbar_drag_cb, (obj, "drag", "efl.dragable.vbar",
obj); obj, _efl_ui_list_view_vbar_drag_cb, NULL);
efl_layout_signal_callback_del efl_layout_signal_callback_del
(obj, "drag,set", "efl.dragable.vbar", (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 efl_layout_signal_callback_del
(obj, "drag,start", "efl.dragable.vbar", (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 efl_layout_signal_callback_del
(obj, "drag,stop", "efl.dragable.vbar", (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 efl_layout_signal_callback_del
(obj, "drag,step", "efl.dragable.vbar", (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 efl_layout_signal_callback_del
(obj, "drag,page", "efl.dragable.vbar", (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 efl_layout_signal_callback_del
(obj, "efl,vbar,press", "efl", (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 efl_layout_signal_callback_del
(obj, "efl,vbar,unpress", "efl", (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_del efl_layout_signal_callback_del
(obj, "drag", "efl.dragable.hbar", (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_del efl_layout_signal_callback_del
(obj, "drag,set", "efl.dragable.hbar", (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 efl_layout_signal_callback_del
(obj, "drag,start", "efl.dragable.hbar", (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 efl_layout_signal_callback_del
(obj, "drag,stop", "efl.dragable.hbar", (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 efl_layout_signal_callback_del
(obj, "drag,step", "efl.dragable.hbar", (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 efl_layout_signal_callback_del
(obj, "drag,page", "efl.dragable.hbar", (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 efl_layout_signal_callback_del
(obj, "efl,hbar,press", "efl", (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 efl_layout_signal_callback_del
(obj, "efl,hbar,unpress", "efl", (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 EOLIAN static void

View File

@ -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); ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, NULL);
efl_layout_signal_callback_add 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 //TODO: Add ATSPI call here

View File

@ -279,55 +279,56 @@ _scroll_edje_object_attach(Eo *obj)
EFL_UI_SCROLLER_DATA_GET_OR_RETURN(obj, sd); EFL_UI_SCROLLER_DATA_GET_OR_RETURN(obj, sd);
efl_layout_signal_callback_add 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 efl_layout_signal_callback_add
(obj, "drag", "efl.dragable.vbar", _efl_ui_scroller_vbar_drag_cb, (obj, "drag", "efl.dragable.vbar",
obj); obj, _efl_ui_scroller_vbar_drag_cb, NULL);
efl_layout_signal_callback_add efl_layout_signal_callback_add
(obj, "drag,set", "efl.dragable.vbar", (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 efl_layout_signal_callback_add
(obj, "drag,start", "efl.dragable.vbar", (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 efl_layout_signal_callback_add
(obj, "drag,stop", "efl.dragable.vbar", (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 efl_layout_signal_callback_add
(obj, "drag,step", "efl.dragable.vbar", (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 efl_layout_signal_callback_add
(obj, "drag,page", "efl.dragable.vbar", (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 efl_layout_signal_callback_add
(obj, "efl,vbar,press", "efl", (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 efl_layout_signal_callback_add
(obj, "efl,vbar,unpress", "efl", (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 efl_layout_signal_callback_add
(obj, "drag", "efl.dragable.hbar", _efl_ui_scroller_hbar_drag_cb, (obj, "drag", "efl.dragable.hbar",
obj); obj, _efl_ui_scroller_hbar_drag_cb, NULL);
efl_layout_signal_callback_add efl_layout_signal_callback_add
(obj, "drag,set", "efl.dragable.hbar", (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 efl_layout_signal_callback_add
(obj, "drag,start", "efl.dragable.hbar", (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 efl_layout_signal_callback_add
(obj, "drag,stop", "efl.dragable.hbar", (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 efl_layout_signal_callback_add
(obj, "drag,step", "efl.dragable.hbar", (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 efl_layout_signal_callback_add
(obj, "drag,page", "efl.dragable.hbar", (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 efl_layout_signal_callback_add
(obj, "efl,hbar,press", "efl", (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 efl_layout_signal_callback_add
(obj, "efl,hbar,unpress", "efl", (obj, "efl,hbar,unpress", "efl",
_efl_ui_scroller_hbar_unpress_cb, obj); obj, _efl_ui_scroller_hbar_unpress_cb, NULL);
} }
static void static void
@ -336,55 +337,56 @@ _scroll_edje_object_detach(Evas_Object *obj)
EFL_UI_SCROLLER_DATA_GET_OR_RETURN(obj, sd); EFL_UI_SCROLLER_DATA_GET_OR_RETURN(obj, sd);
efl_layout_signal_callback_del 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 efl_layout_signal_callback_del
(obj, "drag", "efl.dragable.vbar", _efl_ui_scroller_vbar_drag_cb, (obj, "drag", "efl.dragable.vbar",
obj); obj, _efl_ui_scroller_vbar_drag_cb, NULL);
efl_layout_signal_callback_del efl_layout_signal_callback_del
(obj, "drag,set", "efl.dragable.vbar", (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 efl_layout_signal_callback_del
(obj, "drag,start", "efl.dragable.vbar", (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 efl_layout_signal_callback_del
(obj, "drag,stop", "efl.dragable.vbar", (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 efl_layout_signal_callback_del
(obj, "drag,step", "efl.dragable.vbar", (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 efl_layout_signal_callback_del
(obj, "drag,page", "efl.dragable.vbar", (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 efl_layout_signal_callback_del
(obj, "efl,vbar,press", "efl", (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 efl_layout_signal_callback_del
(obj, "efl,vbar,unpress", "efl", (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 efl_layout_signal_callback_del
(obj, "drag", "efl.dragable.hbar", _efl_ui_scroller_hbar_drag_cb, (obj, "drag", "efl.dragable.hbar",
obj); obj, _efl_ui_scroller_hbar_drag_cb, NULL);
efl_layout_signal_callback_del efl_layout_signal_callback_del
(obj, "drag,set", "efl.dragable.hbar", (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 efl_layout_signal_callback_del
(obj, "drag,start", "efl.dragable.hbar", (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 efl_layout_signal_callback_del
(obj, "drag,stop", "efl.dragable.hbar", (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 efl_layout_signal_callback_del
(obj, "drag,step", "efl.dragable.hbar", (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 efl_layout_signal_callback_del
(obj, "drag,page", "efl.dragable.hbar", (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 efl_layout_signal_callback_del
(obj, "efl,hbar,press", "efl", (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 efl_layout_signal_callback_del
(obj, "efl,hbar,unpress", "efl", (obj, "efl,hbar,unpress", "efl",
_efl_ui_scroller_hbar_unpress_cb, obj); obj, _efl_ui_scroller_hbar_unpress_cb, NULL);
} }
static void static void

View File

@ -652,11 +652,11 @@ _efl_ui_slider_efl_object_constructor(Eo *obj, Efl_Ui_Slider_Data *priv)
priv->val_max = 1.0; priv->val_max = 1.0;
priv->step = SLIDER_STEP; priv->step = SLIDER_STEP;
efl_layout_signal_callback_add(obj, "drag", "*", _drag, obj); efl_layout_signal_callback_add(obj, "drag", "*", obj, _drag, NULL);
efl_layout_signal_callback_add(obj, "drag,start", "*", _drag_start, obj); efl_layout_signal_callback_add(obj, "drag,start", "*", obj, _drag_start, NULL);
efl_layout_signal_callback_add(obj, "drag,stop", "*", _drag_stop, obj); efl_layout_signal_callback_add(obj, "drag,stop", "*", obj, _drag_stop, NULL);
efl_layout_signal_callback_add(obj, "drag,step", "*", _drag_step, obj); efl_layout_signal_callback_add(obj, "drag,step", "*", obj, _drag_step, NULL);
efl_layout_signal_callback_add(obj, "drag,page", "*", _drag_stop, obj); efl_layout_signal_callback_add(obj, "drag,page", "*", obj, _drag_stop, NULL);
priv->spacer = efl_add(EFL_CANVAS_RECTANGLE_CLASS, obj, priv->spacer = efl_add(EFL_CANVAS_RECTANGLE_CLASS, obj,
efl_gfx_color_set(efl_added, 0, 0, 0, 0), efl_gfx_color_set(efl_added, 0, 0, 0, 0),

View File

@ -87,7 +87,7 @@ _tab_icon_set_cb(void *data,
Tab_Info *ti = data; Tab_Info *ti = data;
_tab_icon_update(ti); _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"); 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_part(ti->tab, "efl.icon_new"), ti->icon);
efl_layout_signal_emit(ti->tab, "efl,state,icon_new,set", "efl"); efl_layout_signal_emit(ti->tab, "efl,state,icon_new,set", "efl");
efl_layout_signal_callback_add 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 else
_tab_icon_update(ti); _tab_icon_update(ti);
@ -248,7 +248,7 @@ _tab_add(Eo *obj, const char *label, const char *icon)
CRI("Failed to set layout!"); CRI("Failed to set layout!");
efl_layout_signal_callback_add 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) if (ti->icon)
efl_content_set(efl_part(tab, "efl.icon"), ti->icon); efl_content_set(efl_part(tab, "efl.icon"), ti->icon);

View File

@ -1661,26 +1661,26 @@ _efl_ui_text_efl_layout_signal_signal_emit(Eo *obj EINA_UNUSED, Efl_Ui_Text_Data
} }
} }
EOLIAN static Eina_Bool 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) _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; Eina_Bool ok;
ok = efl_layout_signal_callback_add(sd->entry_edje, emission, source, func_cb, data); ok = efl_layout_signal_callback_add(pd->entry_edje, emission, source, func_data, func, func_free_cb);
if (sd->scr_edje) if (pd->scr_edje)
ok = efl_layout_signal_callback_add(sd->scr_edje, emission, source, func_cb, data); ok = efl_layout_signal_callback_add(pd->scr_edje, emission, source, func_data, func, func_free_cb);
return ok; return ok;
} }
EOLIAN static Eina_Bool 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) _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; Eina_Bool ok;
ok = efl_layout_signal_callback_del(sd->entry_edje, emission, source, func_cb, data); ok = efl_layout_signal_callback_del(pd->entry_edje, emission, source, func_data, func, func_free_cb);
if (sd->scr_edje) if (pd->scr_edje)
ok = efl_layout_signal_callback_del(sd->scr_edje, emission, source, func_cb, data); ok = efl_layout_signal_callback_del(pd->scr_edje, emission, source, func_data, func, func_free_cb);
return ok; return ok;
} }

View File

@ -3140,26 +3140,30 @@ _elm_entry_efl_layout_signal_signal_emit(Eo *obj EINA_UNUSED, Elm_Entry_Data *sd
} }
} }
EOLIAN static Eina_Bool 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) _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; 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) 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; return ok;
} }
EOLIAN static Eina_Bool 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) _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; 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) 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; return ok;
} }
@ -3177,7 +3181,7 @@ _elm_entry_signal_callback_add_legacy(Eo *obj, const char *emission, const char
emission, source, func_cb, data); emission, source, func_cb, data);
if (sd->scr_edje) 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 * void *
@ -3193,7 +3197,7 @@ _elm_entry_signal_callback_del_legacy(Eo *obj, const char *emission, const char
emission, source, func_cb); emission, source, func_cb);
if (sd->scr_edje) 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; return data;
} }

View File

@ -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_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", "play", o, video_obj_signal_play_cb, NULL);
efl_layout_signal_callback_add(oe, "video_control", "pause", video_obj_signal_pause_cb, o); 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", video_obj_signal_stop_cb, o); 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", video_obj_signal_jump_cb, o); 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", video_obj_signal_alpha_cb, o); 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", video_obj_signal_vol_cb, o); 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", video_obj_signal_frame_move_start_cb, oe); 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", video_obj_signal_frame_move_stop_cb, oe); 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", video_obj_signal_frame_resize_start_cb, oe); 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", video_obj_signal_frame_resize_stop_cb, oe); 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", "*", video_obj_signal_frame_move_cb, oe); 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_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_text_set(efl_part(oe, "video_alpha_txt"), "alpha 255");
efl_ui_drag_value_set(efl_part(oe, "video_volume"), 0.0, 0.5); efl_ui_drag_value_set(efl_part(oe, "video_volume"), 0.0, 0.5);