From 269168dbf18716f57881085cfb55e4041fb934df Mon Sep 17 00:00:00 2001 From: tasn Date: Sun, 10 Jun 2012 14:56:20 +0000 Subject: [PATCH] Eo composite: Reordered parameters and improved docs. git-svn-id: http://svn.enlightenment.org/svn/e/trunk/PROTO/eobj@71906 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33 --- src/examples/evas/elw_boxedbutton.c | 2 +- src/lib/Eo.h | 16 ++++++++++------ src/lib/eo.c | 32 ++++++++++++++++---------------- src/tests/composite_objects/comp.c | 2 +- src/tests/composite_objects/main.c | 4 ++-- src/tests/eo_suite/eo_test_general.c | 2 +- 6 files changed, 31 insertions(+), 27 deletions(-) diff --git a/src/examples/evas/elw_boxedbutton.c b/src/examples/evas/elw_boxedbutton.c index 361a8d3..825fcb9 100644 --- a/src/examples/evas/elw_boxedbutton.c +++ b/src/examples/evas/elw_boxedbutton.c @@ -21,7 +21,7 @@ _constructor(Eo *obj, void *class_data EINA_UNUSED, va_list *list EINA_UNUSED) eo_do_super(obj, eo_constructor()); Eo *bt = eo_add(ELW_BUTTON_CLASS, obj); - eo_composite_object_attach(obj, bt); + eo_composite_object_attach(bt, obj); eo_do(bt, eo_event_callback_forwarder_add(EV_CLICKED, obj)); eo_do(bt, evas_obj_visibility_set(EINA_TRUE)); diff --git a/src/lib/Eo.h b/src/lib/Eo.h index 5ec12af..976509c 100644 --- a/src/lib/Eo.h +++ b/src/lib/Eo.h @@ -790,23 +790,27 @@ EAPI void eo_manual_free(Eo *obj); /** * @brief Make an object a composite object of another. - * @param obj the "parent" object. - * @param comp_obj the object that will be used to composite obj. + * @param comp_obj the object that will be used to composite parent. + * @param parent the "parent" object. + * + * This functions also sets the parent of comp_obj to parent. * * @see eo_composite_object_detach() * @see eo_composite_is() */ -EAPI void eo_composite_object_attach(Eo *obj, Eo *comp_obj); +EAPI void eo_composite_object_attach(Eo *comp_obj, Eo *parent); /** * @brief Detach a composite object from another object. - * @param obj the "parent" object. - * @param comp_obj the object attached to obj. + * @param comp_obj the object attached to parent. + * @param parent the "parent" object. + * + * This functions also sets the parent of comp_obj to @c NULL. * * @see eo_composite_object_attach() * @see eo_composite_is() */ -EAPI void eo_composite_object_detach(Eo *obj, Eo *comp_obj); +EAPI void eo_composite_object_detach(Eo *comp_obj, Eo *parent); /** * @brief Check if an object is a composite object. diff --git a/src/lib/eo.c b/src/lib/eo.c index 91a90a7..f0b6011 100644 --- a/src/lib/eo.c +++ b/src/lib/eo.c @@ -1506,37 +1506,37 @@ eo_shutdown(void) } EAPI void -eo_composite_object_attach(Eo *obj, Eo *emb_obj) +eo_composite_object_attach(Eo *comp_obj, Eo *parent) { - EO_MAGIC_RETURN(obj, EO_EINA_MAGIC); - EO_MAGIC_RETURN(emb_obj, EO_EINA_MAGIC); + EO_MAGIC_RETURN(comp_obj, EO_EINA_MAGIC); + EO_MAGIC_RETURN(parent, EO_EINA_MAGIC); - emb_obj->composite = EINA_TRUE; - eo_parent_set(emb_obj, obj); - obj->composite_objects = eina_list_prepend(obj->composite_objects, emb_obj); + comp_obj->composite = EINA_TRUE; + eo_parent_set(comp_obj, parent); + parent->composite_objects = eina_list_prepend(parent->composite_objects, comp_obj); } EAPI void -eo_composite_object_detach(Eo *obj, Eo *emb_obj) +eo_composite_object_detach(Eo *comp_obj, Eo *parent) { - EO_MAGIC_RETURN(obj, EO_EINA_MAGIC); - EO_MAGIC_RETURN(emb_obj, EO_EINA_MAGIC); + EO_MAGIC_RETURN(comp_obj, EO_EINA_MAGIC); + EO_MAGIC_RETURN(parent, EO_EINA_MAGIC); - emb_obj->composite = EINA_FALSE; - obj->composite_objects = eina_list_remove(obj->composite_objects, emb_obj); - eo_parent_set(emb_obj, NULL); + comp_obj->composite = EINA_FALSE; + parent->composite_objects = eina_list_remove(parent->composite_objects, comp_obj); + eo_parent_set(comp_obj, NULL); } EAPI Eina_Bool -eo_composite_is(const Eo *emb_obj) +eo_composite_is(const Eo *comp_obj) { - if (!EINA_MAGIC_CHECK(emb_obj, EO_EINA_MAGIC)) + if (!EINA_MAGIC_CHECK(comp_obj, EO_EINA_MAGIC)) { - EINA_MAGIC_FAIL(emb_obj, EO_EINA_MAGIC); + EINA_MAGIC_FAIL(comp_obj, EO_EINA_MAGIC); return EINA_FALSE; } - return emb_obj->composite; + return comp_obj->composite; } EAPI void diff --git a/src/tests/composite_objects/comp.c b/src/tests/composite_objects/comp.c index 4774974..1f463c2 100644 --- a/src/tests/composite_objects/comp.c +++ b/src/tests/composite_objects/comp.c @@ -24,7 +24,7 @@ _constructor(Eo *obj, void *class_data EINA_UNUSED, va_list *list EINA_UNUSED) eo_do_super(obj, eo_constructor()); Eo *simple = eo_add(SIMPLE_CLASS, obj); - eo_composite_object_attach(obj, simple); + eo_composite_object_attach(simple, obj); eo_do(simple, eo_event_callback_forwarder_add(EV_A_CHANGED, obj)); fail_if(eo_composite_is(obj)); diff --git a/src/tests/composite_objects/main.c b/src/tests/composite_objects/main.c index 2be1b13..36bad0f 100644 --- a/src/tests/composite_objects/main.c +++ b/src/tests/composite_objects/main.c @@ -47,9 +47,9 @@ main(int argc, char *argv[]) fail_if(cb_called); fail_if(!eo_composite_is(simple)); - eo_composite_object_detach(obj, simple); + eo_composite_object_detach(simple, obj); fail_if(eo_composite_is(simple)); - eo_composite_object_attach(obj, simple); + eo_composite_object_attach(simple, obj); fail_if(!eo_composite_is(simple)); eo_unref(simple); diff --git a/src/tests/eo_suite/eo_test_general.c b/src/tests/eo_suite/eo_test_general.c index e784afb..550b62a 100644 --- a/src/tests/eo_suite/eo_test_general.c +++ b/src/tests/eo_suite/eo_test_general.c @@ -72,7 +72,7 @@ START_TEST(eo_composite_tests) Eo *obj2 = eo_add(SIMPLE_CLASS, NULL); fail_if(!obj2); - eo_composite_object_attach(obj, obj2); + eo_composite_object_attach(obj2, obj); eo_parent_set(obj2, NULL); fail_if(eo_composite_is(obj2)); -- 2.7.4