From ec5b4619cb08299aba50e4117637be449969a9f0 Mon Sep 17 00:00:00 2001 From: Hyoyoung Chang Date: Thu, 8 Mar 2012 13:47:09 +0000 Subject: [PATCH] From: Hyoyoung Chang 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. SVN revision: 69056 --- legacy/elementary/src/lib/elm_gengrid.c | 26 ++++++++++++++++ legacy/elementary/src/lib/elm_gengrid.h | 41 +++++++++++++++++++++++++ 2 files changed, 67 insertions(+) diff --git a/legacy/elementary/src/lib/elm_gengrid.c b/legacy/elementary/src/lib/elm_gengrid.c index c48d29e333..38f5dd8b50 100644 --- a/legacy/elementary/src/lib/elm_gengrid.c +++ b/legacy/elementary/src/lib/elm_gengrid.c @@ -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; +} diff --git a/legacy/elementary/src/lib/elm_gengrid.h b/legacy/elementary/src/lib/elm_gengrid.h index 729953022c..c0f2e8f39c 100644 --- a/legacy/elementary/src/lib/elm_gengrid.h +++ b/legacy/elementary/src/lib/elm_gengrid.h @@ -1568,6 +1568,47 @@ 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); + /** * @} */