diff --git a/legacy/elementary/src/lib/elm_deprecated.h b/legacy/elementary/src/lib/elm_deprecated.h index 368e59605b..d145733cce 100644 --- a/legacy/elementary/src/lib/elm_deprecated.h +++ b/legacy/elementary/src/lib/elm_deprecated.h @@ -3912,3 +3912,34 @@ EINA_DEPRECATED EAPI void *elm_gengrid_item_data_get(con */ EINA_DEPRECATED EAPI void elm_gengrid_item_data_set(Elm_Object_Item *it, const void *data); +/** + * Set whether a given gengrid item is disabled or not. + * + * @param it The gengrid item + * @param disabled Use @c EINA_TRUE, true disable it, @c EINA_FALSE + * to enable it back. + * + * A disabled item cannot be selected or unselected. It will also + * change its appearance, to signal the user it's disabled. + * + * @see elm_gengrid_item_disabled_get() + * @deprecated Use elm_object_item_disabled_set() instead + * + * @ingroup Gengrid + */ +EINA_DEPRECATED EAPI void elm_gengrid_item_disabled_set(Elm_Object_Item *it, Eina_Bool disabled); + +/** + * Get whether a given gengrid item is disabled or not. + * + * @param it The gengrid item + * @return @c EINA_TRUE, if it's disabled, @c EINA_FALSE otherwise + * (and on errors). + * + * @see elm_gengrid_item_disabled_set() for more details + * @deprecated Use elm_object_item_disabled_get() instead + * + * @ingroup Gengrid + */ +EINA_DEPRECATED EAPI Eina_Bool elm_gengrid_item_disabled_get(const Elm_Object_Item *it); + diff --git a/legacy/elementary/src/lib/elm_gengrid.c b/legacy/elementary/src/lib/elm_gengrid.c index d44ba9200b..72213be16b 100644 --- a/legacy/elementary/src/lib/elm_gengrid.c +++ b/legacy/elementary/src/lib/elm_gengrid.c @@ -1852,6 +1852,23 @@ _elm_gengrid_item_compare(const void *data, const void *data1) return it->wd->item_compare_cb(it, item1); } +static void +_item_disable_hook(Elm_Object_Item *it) +{ + ELM_OBJ_ITEM_CHECK_OR_RETURN(it); + Elm_Gen_Item *_it = (Elm_Gen_Item *) it; + + if (_it->generation < _it->wd->generation) return; + + if (_it->realized) + { + if (elm_widget_item_disabled_get(_it)) + edje_object_signal_emit(VIEW(_it), "elm,state,disabled", "elm"); + else + edje_object_signal_emit(VIEW(_it), "elm,state,enabled", "elm"); + } +} + static Elm_Gen_Item * _item_new(Widget_Data *wd, const Elm_Gengrid_Item_Class *itc, @@ -1863,6 +1880,7 @@ _item_new(Widget_Data *wd, it = _elm_genlist_item_new(wd, itc, data, NULL, func, func_data); if (!it) return NULL; + elm_widget_item_disable_hook_set(it, _item_disable_hook); it->item = ELM_NEW(Elm_Gen_Item_Type); wd->count++; it->group = it->itc->item_style && (!strcmp(it->itc->item_style, "group_index")); @@ -2357,29 +2375,13 @@ EAPI void elm_gengrid_item_disabled_set(Elm_Object_Item *it, Eina_Bool disabled) { - ELM_OBJ_ITEM_CHECK_OR_RETURN(it); - Elm_Gen_Item *_it = (Elm_Gen_Item *) it; - - if (_it->base.disabled == disabled) return; - if (_it->generation < _it->wd->generation) return; - _it->base.disabled = !!disabled; - if (_it->realized) - { - if (elm_widget_item_disabled_get(_it)) - edje_object_signal_emit(VIEW(_it), "elm,state,disabled", "elm"); - else - edje_object_signal_emit(VIEW(_it), "elm,state,enabled", "elm"); - } + elm_object_item_disabled_set(it, disabled); } EAPI Eina_Bool elm_gengrid_item_disabled_get(const Elm_Object_Item *it) { - ELM_WIDGET_ITEM_WIDTYPE_CHECK_OR_RETURN(it, EINA_FALSE); - Elm_Gen_Item *_it = (Elm_Gen_Item *) it; - - if (_it->generation < _it->wd->generation) return EINA_FALSE; - return elm_widget_item_disabled_get(_it); + return elm_object_item_disabled_get(it); } static Evas_Object * diff --git a/legacy/elementary/src/lib/elm_gengrid.h b/legacy/elementary/src/lib/elm_gengrid.h index 2170055c16..5eefb1fbbe 100644 --- a/legacy/elementary/src/lib/elm_gengrid.h +++ b/legacy/elementary/src/lib/elm_gengrid.h @@ -125,8 +125,8 @@ * elm_gengrid_item_selected_set(). To get its selected state use * elm_gengrid_item_selected_get(). To make an item disabled * (unable to be selected and appear differently) use - * elm_gengrid_item_disabled_set() to set this and - * elm_gengrid_item_disabled_get() to get the disabled state. + * elm_object_item_disabled_set() to set this and + * elm_object_item_disabled_get() to get the disabled state. * * Grid cells will only have their selection smart callbacks called * when firstly getting selected. Any further clicks will do @@ -1133,35 +1133,6 @@ EAPI void elm_gengrid_item_show(Elm_Object_Item *it); */ EAPI void elm_gengrid_item_bring_in(Elm_Object_Item *it); -/** - * Set whether a given gengrid item is disabled or not. - * - * @param it The gengrid item - * @param disabled Use @c EINA_TRUE, true disable it, @c EINA_FALSE - * to enable it back. - * - * A disabled item cannot be selected or unselected. It will also - * change its appearance, to signal the user it's disabled. - * - * @see elm_gengrid_item_disabled_get() - * - * @ingroup Gengrid - */ -EAPI void elm_gengrid_item_disabled_set(Elm_Object_Item *it, Eina_Bool disabled); - -/** - * Get whether a given gengrid item is disabled or not. - * - * @param it The gengrid item - * @return @c EINA_TRUE, if it's disabled, @c EINA_FALSE otherwise - * (and on errors). - * - * @see elm_gengrid_item_disabled_set() for more details - * - * @ingroup Gengrid - */ -EAPI Eina_Bool elm_gengrid_item_disabled_get(const Elm_Object_Item *it); - /** * Set the text to be shown in a given gengrid item's tooltips. *