From: Hyoyoung Chang <hyoyoung@gmail.com>
authorraster <raster@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Thu, 8 Mar 2012 13:47:09 +0000 (13:47 +0000)
committerraster <raster@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Thu, 8 Mar 2012 13:47:09 +0000 (13:47 +0000)
Subject: [E-devel] [patch] elm_gengrid - add item_select_mode_set/get
apis

I made a item_select_mode_set/get in elm_gengrid.
It works like genlist_item_select_mode apis.

+EAPI void
+elm_gengrid_item_select_mode_set(Elm_Object_Item *it,
+                                 Elm_Object_Select_Mode mode)
+EAPI Elm_Object_Select_Mode
+elm_gengrid_item_select_mode_get(const Elm_Object_Item *it)

from this morning - left over from last night.

git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/elementary@69056 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

src/lib/elm_gengrid.c
src/lib/elm_gengrid.h

index c48d29e..38f5dd8 100644 (file)
@@ -2938,3 +2938,29 @@ elm_gengrid_item_index_get(const Elm_Object_Item *it)
 
    return _it->position;
 }
+
+EAPI void
+elm_gengrid_item_select_mode_set(Elm_Object_Item *it,
+                                 Elm_Object_Select_Mode mode)
+{
+   ELM_OBJ_ITEM_CHECK_OR_RETURN(it);
+   Elm_Gen_Item *_it = (Elm_Gen_Item *)it;
+   if (!_it) return;
+   if (_it->generation < _it->wd->generation) return;
+   if (mode >= ELM_OBJECT_SELECT_MODE_MAX)
+     return;
+   if (_it->select_mode != mode)
+     _it->select_mode = mode;
+
+   if (_it->select_mode == ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY)
+     elm_gengrid_item_update(it);
+}
+
+EAPI Elm_Object_Select_Mode
+elm_gengrid_item_select_mode_get(const Elm_Object_Item *it)
+{
+   ELM_OBJ_ITEM_CHECK_OR_RETURN(it, ELM_OBJECT_SELECT_MODE_MAX);
+   Elm_Gen_Item *_it = (Elm_Gen_Item *)it;
+   if (!_it) return ELM_OBJECT_SELECT_MODE_MAX;
+   return _it->select_mode;
+}
index 7299530..c0f2e8f 100644 (file)
@@ -1569,5 +1569,46 @@ EAPI void                          elm_gengrid_highlight_mode_set(Evas_Object *o
 EAPI Eina_Bool                     elm_gengrid_highlight_mode_get(const Evas_Object *obj);
 
 /**
+ * Set the gengrid item's select mode.
+ *
+ * @param it The gengrid item object
+ * @param mode The select mode
+ *
+ * elm_gengrid_select_mode_set() changes item's select mode.
+ * - ELM_OBJECT_SELECT_MODE_DEFAULT : The item will only call their selection func and
+ *      callback when first becoming selected. Any further clicks will
+ *      do nothing, unless you set always select mode.
+ * - ELM_OBJECT_SELECT_MODE_ALWAYS : This means that, even if selected,
+ *      every click will make the selected callbacks be called.
+ * - ELM_OBJECT_SELECT_MODE_NONE : This will turn off the ability to select the item
+ *      entirely and they will neither appear selected nor call selected
+ *      callback functions.
+ * - ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY : This will apply no-finger-size rule
+ *      with ELM_OBJECT_SELECT_MODE_NONE. No-finger-size rule makes an item can be
+ *      smaller than lower limit. Clickable objects should be bigger than
+ *      human touch point device (your finger) for some touch or
+ *      small screen devices. So it is enabled, the item can be shrink than
+ *      predefined finger-size value. And the item will be updated.
+ *
+ * @see elm_gengrid_item_select_mode_get()
+ *
+ * @ingroup Gengrid
+ */
+EAPI void                          elm_gengrid_item_select_mode_set(Elm_Object_Item *it, Elm_Object_Select_Mode mode);
+
+/**
+ * Get the gengrid item's select mode.
+ *
+ * @param it The gengrid item object
+ * @return The select mode
+ * (If getting mode is failed, it returns ELM_OBJECT_SELECT_MODE_MAX)
+ *
+ * @see elm_gengrid_item_select_mode_set()
+ *
+ * @ingroup Gengrid
+ */
+EAPI Elm_Object_Select_Mode        elm_gengrid_item_select_mode_get(const Elm_Object_Item *it);
+
+/**
  * @}
  */