sanghyeonlee pushed a commit to branch master.

http://git.enlightenment.org/core/elementary.git/commit/?id=1094fb77a0ee23cbe1e8b15783e406a8d93b7fd4

commit 1094fb77a0ee23cbe1e8b15783e406a8d93b7fd4
Author: SangHyeon Lee <sh10233....@samsung.com>
Date:   Mon Oct 12 14:41:44 2015 +0900

    gengrid : add all_contents_unset API in gengrid for reusing contents.
    
    Summary:
    Add elm_gengrid_item_all_contents_unset API for reusing contents in 
application side.
    User can unset all contents or re-use their contents for increase scrolling 
performance.
    genlist already support this API.
    
    @feature
    
    Test Plan: Need to add test in elementary_test.
    
    Reviewers: raster, singh.amitesh, cedric
    
    Subscribers: woohyun, Hermet, seoz
    
    Differential Revision: https://phab.enlightenment.org/D3066
---
 src/lib/elm_gengrid.c       | 16 ++++++++++++++++
 src/lib/elm_gengrid_item.eo | 12 ++++++++++++
 2 files changed, 28 insertions(+)

diff --git a/src/lib/elm_gengrid.c b/src/lib/elm_gengrid.c
index 01c72cc..c3dead7 100644
--- a/src/lib/elm_gengrid.c
+++ b/src/lib/elm_gengrid.c
@@ -4585,6 +4585,22 @@ elm_gengrid_item_object_get(const Elm_Object_Item *eo_it)
 }
 
 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)
+     {
+        elm_widget_sub_object_del(WIDGET(it), content);
+        edje_object_part_unswallow(VIEW(it), content);
+        evas_object_hide(content);
+        if (l) *l = eina_list_append(*l, content);
+     }
+}
+
+EOLIAN static void
 _elm_gengrid_item_update(Eo *eo_item EINA_UNUSED, Elm_Gen_Item *it)
 {
    ELM_GENGRID_ITEM_CHECK_OR_RETURN(it);
diff --git a/src/lib/elm_gengrid_item.eo b/src/lib/elm_gengrid_item.eo
index 95a079c..7da7ff5 100644
--- a/src/lib/elm_gengrid_item.eo
+++ b/src/lib/elm_gengrid_item.eo
@@ -154,6 +154,18 @@ class Elm.Gengrid_Item(Elm.Widget_Item)
                      @in type: Elm_Gengrid_Item_Scrollto_Type; [[Where to 
position the item in the viewport.]]
                 }
            }
+           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.]]
+                }
+           }
            update {
                 [[Update the contents of a given gengrid item
 

-- 


Reply via email to