forked from enlightenment/efl
gengrid: add all contents unset API for content unset and reusing
Add elm_gengrid_item_all_contents_unset API for support content reuse and unset. User can get back content objects in unrealized smart callback in item. see elm_genlist_item_all_contents_unset also. @feature
This commit is contained in:
parent
d90f2119de
commit
55e8c3b743
|
@ -984,6 +984,24 @@ _view_clear(Evas_Object *view, Eina_List **texts, Eina_List **contents)
|
|||
evas_object_del(c);
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_elm_gengrid_item_all_contents_unset(Eo *eo_item EINA_UNUSED, Elm_Gen_Item *it, Eina_List **l)
|
||||
{
|
||||
Evas_Object *content;
|
||||
|
||||
ELM_GENGRID_ITEM_CHECK_OR_RETURN(it);
|
||||
|
||||
EINA_LIST_FREE (it->contents, content)
|
||||
{
|
||||
evas_object_smart_member_del(content);
|
||||
// edje can be reused by item caching,
|
||||
// content should be un-swallowed from edje
|
||||
edje_object_part_unswallow(VIEW(it), content);
|
||||
evas_object_hide(content);
|
||||
if (l) *l = eina_list_append(*l, content);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
_elm_gengrid_item_unrealize(Elm_Gen_Item *it,
|
||||
Eina_Bool calc)
|
||||
|
|
|
@ -191,6 +191,18 @@ class Elm.Gengrid_Item(Elm.Widget_Item)
|
|||
@in itc: const (Elm.Gengrid.Item.Class) *; [[The gengrid item class describing the function pointers and the item style.]]
|
||||
}
|
||||
}
|
||||
all_contents_unset{
|
||||
|
||||
[[Unset all contents fetched by the item class
|
||||
|
||||
This instructs gengrid to release references to contents in the item,
|
||||
meaning that they will no longer be managed by gengrid and are
|
||||
floating "orphans" that can be re-used elsewhere if the user wants
|
||||
to.]]
|
||||
params {
|
||||
@out l: own(list<own(Evas.Object *)> *); [[The contents list to return.]]
|
||||
}
|
||||
}
|
||||
}
|
||||
implements {
|
||||
Eo.Base.constructor;
|
||||
|
|
Loading…
Reference in New Issue