Dear all.

After api reivew, some api is missed in gengrid.
So I add this apis to gengrid.

patch file - 0001
+EAPI Eina_List
*elm_gengrid_realized_items_get(const Evas_Object *obj);
+EAPI void
elm_gengrid_realized_items_update(Evas_Object *obj);

patch file - 0002
+EAPI void
elm_gengrid_scroller_policy_set(Evas_Object *obj, Elm_Scroller_Policy
policy_h, Elm_Scroller_Policy policy_v);
+EAPI void
elm_gengrid_scroller_policy_get(const Evas_Object *obj,
Elm_Scroller_Policy *policy_h, Elm_Scroller_Policy *policy_v);

patch file - 0003
+EAPI unsigned int elm_gengrid_items_count(const Evas_Object *obj);

Thanks
From 5eb24212f94c5441209ab0bb936f6dd002c23e6e Mon Sep 17 00:00:00 2001
From: Hyoyoung Chang <hyoyoung.ch...@samsung.com>
Date: Wed, 7 Mar 2012 17:58:19 +0900
Subject: [PATCH 2/3] [gengrid] add scroller_policy_set/get

---
 src/lib/elm_gengrid.c |   28 ++++++++++++++++++++++++++++
 src/lib/elm_gengrid.h |   36 ++++++++++++++++++++++++++++++++----
 2 files changed, 60 insertions(+), 4 deletions(-)

diff --git a/src/lib/elm_gengrid.c b/src/lib/elm_gengrid.c
index a01763b..0a1cfc9 100644
--- a/src/lib/elm_gengrid.c
+++ b/src/lib/elm_gengrid.c
@@ -2714,6 +2714,34 @@ elm_gengrid_page_bring_in(const Evas_Object *obj, int h_pagenumber, int v_pagenu
    _elm_genlist_page_bring_in(obj, h_pagenumber, v_pagenumber);
 }
 
+EAPI void
+elm_gengrid_scroller_policy_set(Evas_Object        *obj,
+                                Elm_Scroller_Policy policy_h,
+                                Elm_Scroller_Policy policy_v)
+{
+   ELM_CHECK_WIDTYPE(obj, widtype);
+   Widget_Data *wd = elm_widget_data_get(obj);
+   if ((!wd) || (!wd->scr)) return;
+   if ((policy_h >= ELM_SCROLLER_POLICY_LAST) ||
+       (policy_v >= ELM_SCROLLER_POLICY_LAST))
+     return;
+   elm_smart_scroller_policy_set(wd->scr, policy_h, policy_v);
+}
+
+EAPI void
+elm_gengrid_scroller_policy_get(const Evas_Object   *obj,
+                                Elm_Scroller_Policy *policy_h,
+                                Elm_Scroller_Policy *policy_v)
+{
+   ELM_CHECK_WIDTYPE(obj, widtype);
+   Widget_Data *wd = elm_widget_data_get(obj);
+   Elm_Smart_Scroller_Policy s_policy_h, s_policy_v;
+   if ((!wd) || (!wd->scr)) return;
+   elm_smart_scroller_policy_get(wd->scr, &s_policy_h, &s_policy_v);
+   if (policy_h) *policy_h = (Elm_Scroller_Policy)s_policy_h;
+   if (policy_v) *policy_v = (Elm_Scroller_Policy)s_policy_v;
+}
+
 EAPI Elm_Object_Item *
 elm_gengrid_first_item_get(const Evas_Object *obj)
 {
diff --git a/src/lib/elm_gengrid.h b/src/lib/elm_gengrid.h
index 02f8796..054dff3 100644
--- a/src/lib/elm_gengrid.h
+++ b/src/lib/elm_gengrid.h
@@ -613,11 +613,39 @@ EAPI Elm_Object_Item             *elm_gengrid_first_item_get(const Evas_Object *
  */
 EAPI Elm_Object_Item             *elm_gengrid_last_item_get(const Evas_Object *obj);
 
-//XXX: let's add
-//EAPI void                          elm_gengrid_scroller_policy_set(Evas_Object *obj, Elm_Scroller_Policy policy_h, Elm_Scroller_Policy policy_v);
+/**
+ * Set the scrollbar policy
+ *
+ * @param obj The gengrid object
+ * @param policy_h Horizontal scrollbar policy.
+ * @param policy_v Vertical scrollbar policy.
+ *
+ * This sets the scrollbar visibility policy for the given gengrid
+ * scroller. #ELM_SMART_SCROLLER_POLICY_AUTO means the scrollbar is
+ * made visible if it is needed, and otherwise kept hidden.
+ * #ELM_SMART_SCROLLER_POLICY_ON turns it on all the time, and
+ * #ELM_SMART_SCROLLER_POLICY_OFF always keeps it off. This applies
+ * respectively for the horizontal and vertical scrollbars. Default is
+ * #ELM_SMART_SCROLLER_POLICY_AUTO
+ *
+ * @see elm_gengrid_scroller_policy_get()
+ *
+ * @ingroup Gengrid
+ */
+EAPI void                          elm_gengrid_scroller_policy_set(Evas_Object *obj, Elm_Scroller_Policy policy_h, Elm_Scroller_Policy policy_v);
 
-//XXX: lets' add
-//EAPI void                          elm_gengrid_scroller_policy_get(const Evas_Object *obj, Elm_Scroller_Policy *policy_h, Elm_Scroller_Policy *policy_v);
+/**
+ * Get the scrollbar policy
+ *
+ * @param obj The gengrid object
+ * @param policy_h Pointer to store the horizontal scrollbar policy.
+ * @param policy_v Pointer to store the vertical scrollbar policy.
+ *
+ * @see elm_gengrid_scroller_policy_set()
+ *
+ * @ingroup Gengrid
+ */
+EAPI void                          elm_gengrid_scroller_policy_get(const Evas_Object *obj, Elm_Scroller_Policy *policy_h, Elm_Scroller_Policy *policy_v);
 
 /**
  * Get the @b next item in a gengrid widget's internal list of items,
-- 
1.7.5.4

From 49447da8519415b6eec81a57c0265aff2e5870dd Mon Sep 17 00:00:00 2001
From: Hyoyoung Chang <hyoyoung.ch...@samsung.com>
Date: Wed, 7 Mar 2012 18:07:16 +0900
Subject: [PATCH 3/3] [gengrid] add elm_gengrid_items_count

---
 src/lib/elm_gengrid.c |    9 +++++++++
 src/lib/elm_gengrid.h |   13 ++++++++++++-
 2 files changed, 21 insertions(+), 1 deletions(-)

diff --git a/src/lib/elm_gengrid.c b/src/lib/elm_gengrid.c
index 0a1cfc9..c0c2807 100644
--- a/src/lib/elm_gengrid.c
+++ b/src/lib/elm_gengrid.c
@@ -2843,6 +2843,15 @@ elm_gengrid_filled_get(const Evas_Object *obj)
    return wd->filled;
 }
 
+EAPI unsigned int
+elm_gengrid_items_count(const Evas_Object *obj)
+{
+   ELM_CHECK_WIDTYPE(obj, widtype) 0;
+   Widget_Data *wd = elm_widget_data_get(obj);
+   if (!wd) return 0;
+   return wd->item_count;
+}
+
 EAPI Elm_Gengrid_Item_Class *
 elm_gengrid_item_class_new(void)
 {
diff --git a/src/lib/elm_gengrid.h b/src/lib/elm_gengrid.h
index 054dff3..4a4f450 100644
--- a/src/lib/elm_gengrid.h
+++ b/src/lib/elm_gengrid.h
@@ -793,7 +793,18 @@ EAPI const Elm_Gengrid_Item_Class *elm_gengrid_item_item_class_get(const Elm_Obj
 
 //XXX: Let's add
 //EAPI int                           elm_gengrid_item_index_get(const Elm_Object_Item *it);
-//EAPI unsigned int elm_gengrid_items_count(const Evas_Object *obj);
+
+/**
+ * Return how many items are currently in a list
+ *
+ * @param obj The list
+ * @return The total number of list items in the list
+ *
+ * This behavior is O(1) and includes items which may or may not be realized.
+ *
+ * @ingroup Gengrid
+ */
+EAPI unsigned int elm_gengrid_items_count(const Evas_Object *obj);
 
 /**
  * Add a new gengrid item class in a given gengrid widget.
-- 
1.7.5.4

From 684cd4dd91223ed435b9e0df78cccd3901651ff4 Mon Sep 17 00:00:00 2001
From: Hyoyoung Chang <hyoyoung.ch...@samsung.com>
Date: Wed, 7 Mar 2012 17:54:05 +0900
Subject: [PATCH 1/3] [gengrid] add realized_items_get/update

---
 src/lib/elm_gengrid.c |   28 ++++++++++++++++++++++++++++
 src/lib/elm_gengrid.h |   38 +++++++++++++++++++++++++++++++++++---
 2 files changed, 63 insertions(+), 3 deletions(-)

diff --git a/src/lib/elm_gengrid.c b/src/lib/elm_gengrid.c
index feaa015..a01763b 100644
--- a/src/lib/elm_gengrid.c
+++ b/src/lib/elm_gengrid.c
@@ -2372,6 +2372,34 @@ elm_gengrid_item_selected_get(const Elm_Object_Item *it)
    return elm_genlist_item_selected_get(it);
 }
 
+EAPI Eina_List *
+elm_gengrid_realized_items_get(const Evas_Object *obj)
+{
+   ELM_CHECK_WIDTYPE(obj, widtype) NULL;
+   Widget_Data *wd = elm_widget_data_get(obj);
+   Eina_List *list = NULL;
+   Elm_Gen_Item *it;
+
+   EINA_INLIST_FOREACH(wd->items, it)
+     {
+        if (it->realized) list = eina_list_append(list, (Elm_Object_Item *)it);
+     }
+   return list;
+}
+
+EAPI void
+elm_gengrid_realized_items_update(Evas_Object *obj)
+{
+   ELM_CHECK_WIDTYPE(obj, widtype);
+
+   Eina_List *list, *l;
+   Elm_Object_Item *it;
+
+   list = elm_gengrid_realized_items_get(obj);
+   EINA_LIST_FOREACH(list, l, it)
+     elm_gengrid_item_update(it);
+}
+
 EAPI void
 elm_gengrid_item_disabled_set(Elm_Object_Item  *it,
                               Eina_Bool         disabled)
diff --git a/src/lib/elm_gengrid.h b/src/lib/elm_gengrid.h
index c269182..02f8796 100644
--- a/src/lib/elm_gengrid.h
+++ b/src/lib/elm_gengrid.h
@@ -545,8 +545,41 @@ EAPI Elm_Object_Item             *elm_gengrid_selected_item_get(const Evas_Objec
  */
 EAPI const Eina_List              *elm_gengrid_selected_items_get(const Evas_Object *obj);
 
-//XXX: let's add
-//EAPI Eina_List                  *elm_gengrid_realized_items_get(const Evas_Object *obj);
+/**
+ * Get a list of realized items in gengrid
+ *
+ * @param obj The gengrid object
+ * @return The list of realized items, nor NULL if none are realized.
+ *
+ * This returns a list of the realized items in the gengrid. The list
+ * contains gengrid item pointers. The list must be freed by the
+ * caller when done with eina_list_free(). The item pointers in the
+ * list are only valid so long as those items are not deleted or the
+ * gengrid is not deleted.
+ *
+ * @see elm_gengrid_realized_items_update()
+ *
+ * @ingroup Gengrid
+ */
+EAPI Eina_List                    *elm_gengrid_realized_items_get(const Evas_Object *obj);
+
+/**
+ * Update the contents of all realized items.
+ *
+ * @param obj The gengrid object.
+ *
+ * This updates all realized items by calling all the item class functions again
+ * to get the contents, texts and states. Use this when the original
+ * item data has changed and the changes are desired to be reflected.
+ *
+ * To update just one item, use elm_gengrid_item_update().
+ *
+ * @see elm_gengrid_realized_items_get()
+ * @see elm_gengrid_item_update()
+ *
+ * @ingroup Gengrid
+ */
+EAPI void                          elm_gengrid_realized_items_update(Evas_Object *obj);
 
 /**
  * Get the first item in a given gengrid widget
@@ -732,7 +765,6 @@ EAPI const Elm_Gengrid_Item_Class *elm_gengrid_item_item_class_get(const Elm_Obj
 
 //XXX: Let's add
 //EAPI int                           elm_gengrid_item_index_get(const Elm_Object_Item *it);
-//EAPI void                          elm_gengrid_realized_items_update(Evas_Object *obj);
 //EAPI unsigned int elm_gengrid_items_count(const Evas_Object *obj);
 
 /**
-- 
1.7.5.4

------------------------------------------------------------------------------
Virtualization & Cloud Management Using Capacity Planning
Cloud computing makes use of virtualization - but cloud computing 
also focuses on allowing computing to be delivered as a service.
http://www.accelacomm.com/jaw/sfnl/114/51521223/
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to