Eo composite: Reordered parameters and improved docs.

SVN revision: 71906
This commit is contained in:
Tom Hacohen 2012-06-10 14:56:20 +00:00
parent 1fabc3a749
commit b122dd0dc5
6 changed files with 31 additions and 27 deletions

View File

@ -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));

View File

@ -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.

View File

@ -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

View File

@ -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));

View File

@ -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);

View File

@ -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));