From 27a111524affcc69baba3be3573a25bc12e0f30c Mon Sep 17 00:00:00 2001 From: raster Date: Tue, 3 Jan 2012 13:13:39 +0000 Subject: [PATCH] ooh deprecate elm_list calls than can be done with elm_object_item stuff :) git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/elementary@66796 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33 --- src/lib/elm_deprecated.h | 132 +++++++++++++++++++++++++++++++++++ src/lib/elm_list.c | 174 +++++++++++++++++++++++++++++------------------ src/lib/elm_list.h | 126 ---------------------------------- 3 files changed, 241 insertions(+), 191 deletions(-) diff --git a/src/lib/elm_deprecated.h b/src/lib/elm_deprecated.h index 0d78f68..054b6c8 100644 --- a/src/lib/elm_deprecated.h +++ b/src/lib/elm_deprecated.h @@ -2718,3 +2718,135 @@ EINA_DEPRECATED EAPI void elm_list_item_del_cb_set(Elm_L */ EINA_DEPRECATED EAPI void *elm_list_item_data_get(const Elm_List_Item *item); +/** + * Get the left side icon associated to the item. + * + * @param item The list item + * @return The left side icon associated to @p item + * + * The return value is a pointer to the icon associated to @p item when + * it was + * created, with function elm_list_item_append() or similar, or later + * with function elm_list_item_icon_set(). If no icon + * was passed as argument, it will return @c NULL. + * + * @see elm_list_item_append() + * @see elm_list_item_icon_set() + * + * @deprecated Please use elm_object_item_part_content_get(item, NULL); + * @ingroup List + */ +EINA_DEPRECATED EAPI Evas_Object *elm_list_item_icon_get(const Elm_List_Item *item); + +/** + * Set the left side icon associated to the item. + * + * @param item The list item + * @param icon The left side icon object to associate with @p item + * + * The icon object to use at left side of the item. An + * icon can be any Evas object, but usually it is an icon created + * with elm_icon_add(). + * + * Once the icon object is set, a previously set one will be deleted. + * @warning Setting the same icon for two items will cause the icon to + * dissapear from the first item. + * + * If an icon was passed as argument on item creation, with function + * elm_list_item_append() or similar, it will be already + * associated to the item. + * + * @see elm_list_item_append() + * @see elm_list_item_icon_get() + * + * @deprecated Please use elm_object_item_part_content_set(item, NULL, icon); + * @ingroup List + */ +EINA_DEPRECATED EAPI void elm_list_item_icon_set(Elm_List_Item *item, Evas_Object *icon); + +/** + * Get the right side icon associated to the item. + * + * @param item The list item + * @return The right side icon associated to @p item + * + * The return value is a pointer to the icon associated to @p item when + * it was + * created, with function elm_list_item_append() or similar, or later + * with function elm_list_item_icon_set(). If no icon + * was passed as argument, it will return @c NULL. + * + * @see elm_list_item_append() + * @see elm_list_item_icon_set() + * + * @deprecated Please use elm_object_item_part_content_get(item, "end"); + * @ingroup List + */ +EINA_DEPRECATED EAPI Evas_Object *elm_list_item_end_get(const Elm_List_Item *item); + +/** + * Set the right side icon associated to the item. + * + * @param item The list item + * @param end The right side icon object to associate with @p item + * + * The icon object to use at right side of the item. An + * icon can be any Evas object, but usually it is an icon created + * with elm_icon_add(). + * + * Once the icon object is set, a previously set one will be deleted. + * @warning Setting the same icon for two items will cause the icon to + * dissapear from the first item. + * + * If an icon was passed as argument on item creation, with function + * elm_list_item_append() or similar, it will be already + * associated to the item. + * + * @see elm_list_item_append() + * @see elm_list_item_end_get() + * + * @deprecated Please use elm_object_item_part_content_set(item, "end", end); + * @ingroup List + */ +EINA_DEPRECATED EAPI void elm_list_item_end_set(Elm_List_Item *item, Evas_Object *end); + +/** + * Get the label of item. + * + * @param item The item of list. + * @return The label of item. + * + * The return value is a pointer to the label associated to @p item when + * it was created, with function elm_list_item_append(), or later + * with function elm_list_item_label_set. If no label + * was passed as argument, it will return @c NULL. + * + * @see elm_list_item_label_set() for more details. + * @see elm_list_item_append() + * + * @deprecated Please use elm_object_item_text_get(item); + * @ingroup List + */ +EINA_DEPRECATED EAPI const char *elm_list_item_label_get(const Elm_List_Item *item); + +/** + * Set the label of item. + * + * @param item The item of list. + * @param text The label of item. + * + * The label to be displayed by the item. + * Label will be placed between left and right side icons (if set). + * + * If a label was passed as argument on item creation, with function + * elm_list_item_append() or similar, it will be already + * displayed by the item. + * + * @see elm_list_item_label_get() + * @see elm_list_item_append() + * + * @deprecated Please use elm_object_item_text_set(item, text); + * @ingroup List + */ +EINA_DEPRECATED EAPI void elm_list_item_label_set(Elm_List_Item *item, const char *text); + diff --git a/src/lib/elm_list.c b/src/lib/elm_list.c index 175de2b..4eb103f 100644 --- a/src/lib/elm_list.c +++ b/src/lib/elm_list.c @@ -1029,6 +1029,104 @@ _item_disable(void *data) edje_object_signal_emit(VIEW(it), "elm,state,enabled", "elm"); } +static void +_item_content_set(void *data, const char *part, Evas_Object *content) +{ + Elm_List_Item *it = data; + Evas_Object **icon_p = NULL; + Eina_Bool dummy = EINA_FALSE; + + if ((!part) || (!strcmp(part, "start"))) + { + icon_p = &(it->icon); + dummy = it->dummy_icon; + if (!content) it->dummy_icon = EINA_FALSE; + else it->dummy_icon = EINA_TRUE; + } + else if (!strcmp(part, "end")) + { + icon_p = &(it->end); + dummy = it->dummy_end; + if (!content) it->dummy_end = EINA_FALSE; + else it->dummy_end = EINA_TRUE; + } + else + return; + + if (content == *icon_p) return; + if ((dummy) && (!content)) return; + if (dummy) evas_object_del(*icon_p); + if (!content) + { + content = evas_object_rectangle_add(evas_object_evas_get(WIDGET(it))); + evas_object_color_set(content, 0, 0, 0, 0); + } + if (*icon_p) + { + evas_object_del(*icon_p); + *icon_p = NULL; + } + *icon_p = content; + if (VIEW(it)) + edje_object_part_swallow(VIEW(it), "elm.swallow.icon", content); +} + +static Evas_Object * +_item_content_get(const void *data, const char *part) +{ + Elm_List_Item *it = (Elm_List_Item *)data; + + if ((!part) || (!strcmp(part, "start"))) + { + if (it->dummy_icon) return NULL; + return it->icon; + } + else if (!strcmp(part, "end")) + { + if (it->dummy_end) return NULL; + return it->end; + } + return NULL; +} + +static Evas_Object * +_item_content_unset(const void *data, const char *part) +{ + Elm_List_Item *it = (Elm_List_Item *)data; + + if ((!part) || (!strcmp(part, "start"))) + { + Evas_Object *obj = it->icon; + _item_content_set((void *)data, part, NULL); + return obj; + } + else if (!strcmp(part, "end")) + { + Evas_Object *obj = it->end; + _item_content_set((void *)data, part, NULL); + return obj; + } + return NULL; +} + +static void +_item_text_set(void *data, const char *part __UNUSED__, const char *text) +{ + Elm_List_Item *it = data; + + if (!eina_stringshare_replace(&it->label, text)) return; + if (VIEW(it)) + edje_object_part_text_set(VIEW(it), "elm.text", it->label); +} + +static const char * +_item_text_get(const void *data, const char *part __UNUSED__) +{ + Elm_List_Item *it = (Elm_List_Item *)data; + + return it->label; +} + static Elm_List_Item * _item_new(Evas_Object *obj, const char *label, Evas_Object *icon, Evas_Object *end, Evas_Smart_Cb func, const void *data) { @@ -1066,6 +1164,11 @@ _item_new(Evas_Object *obj, const char *label, Evas_Object *icon, Evas_Object *e _changed_size_hints, obj); } _elm_widget_item_disable_set_hook_set((Elm_Widget_Item *)it, _item_disable); + _elm_widget_item_content_set_hook_set((Elm_Widget_Item *)it, _item_content_set); + _elm_widget_item_content_get_hook_set((Elm_Widget_Item *)it, _item_content_get); + _elm_widget_item_content_unset_hook_set((Elm_Widget_Item *)it, _item_content_unset); + _elm_widget_item_text_set_hook_set((Elm_Widget_Item *)it, _item_text_set); + _elm_widget_item_text_get_hook_set((Elm_Widget_Item *)it, _item_text_get); return it; } @@ -1866,108 +1969,49 @@ elm_list_item_disabled_get(const Elm_List_Item *it) EINA_DEPRECATED EAPI void elm_list_item_del_cb_set(Elm_List_Item *it, Evas_Smart_Cb func) { - ELM_LIST_ITEM_CHECK_DELETED_RETURN(it); elm_widget_item_del_cb_set(it, func); } EINA_DEPRECATED EAPI void * elm_list_item_data_get(const Elm_List_Item *it) { - ELM_LIST_ITEM_CHECK_DELETED_RETURN(it, NULL); return elm_widget_item_data_get(it); } -// XXX: the below need to use the elm_object_item infra indicated -// use elm_object_item_part_content_get EINA_DEPRECATED EAPI Evas_Object * elm_list_item_icon_get(const Elm_List_Item *it) { - ELM_LIST_ITEM_CHECK_DELETED_RETURN(it, NULL); - if (it->dummy_icon) return NULL; - return it->icon; + return _elm_widget_item_content_part_get((Elm_Widget_Item *)it, NULL); } -// use elm_object_item_part_content_set EINA_DEPRECATED EAPI void elm_list_item_icon_set(Elm_List_Item *it, Evas_Object *icon) { - ELM_LIST_ITEM_CHECK_DELETED_RETURN(it); - if (it->icon == icon) return; - if ((it->dummy_icon) && (!icon)) return; - if (it->dummy_icon) - { - evas_object_del(it->icon); - it->dummy_icon = EINA_FALSE; - } - if (!icon) - { - icon = evas_object_rectangle_add(evas_object_evas_get(WIDGET(it))); - evas_object_color_set(icon, 0, 0, 0, 0); - it->dummy_icon = EINA_TRUE; - } - if (it->icon) - { - evas_object_del(it->icon); - it->icon = NULL; - } - it->icon = icon; - if (VIEW(it)) - edje_object_part_swallow(VIEW(it), "elm.swallow.icon", icon); + _elm_widget_item_content_part_set((Elm_Widget_Item *)it, NULL, icon); } -// use elm_object_item_part_content_get EINA_DEPRECATED EAPI Evas_Object * elm_list_item_end_get(const Elm_List_Item *it) { - ELM_LIST_ITEM_CHECK_DELETED_RETURN(it, NULL); - if (it->dummy_end) return NULL; - return it->end; + return _elm_widget_item_content_part_get((Elm_Widget_Item *)it, "end"); } -// use elm_object_item_part_content_set EINA_DEPRECATED EAPI void elm_list_item_end_set(Elm_List_Item *it, Evas_Object *end) { - ELM_LIST_ITEM_CHECK_DELETED_RETURN(it); - if (it->end == end) return; - if ((it->dummy_end) && (!end)) return; - if (it->dummy_end) - { - evas_object_del(it->end); - it->dummy_icon = EINA_FALSE; - } - if (!end) - { - end = evas_object_rectangle_add(evas_object_evas_get(WIDGET(it))); - evas_object_color_set(end, 0, 0, 0, 0); - it->dummy_end = EINA_TRUE; - } - if (it->end) - { - evas_object_del(it->end); - it->end = NULL; - } - it->end = end; - if (VIEW(it)) - edje_object_part_swallow(VIEW(it), "elm.swallow.end", end); + _elm_widget_item_content_part_set((Elm_Widget_Item *)it, "end", end); } -// use elm_object_item_part_text_get EINA_DEPRECATED EAPI const char * elm_list_item_label_get(const Elm_List_Item *it) { - ELM_LIST_ITEM_CHECK_DELETED_RETURN(it, NULL); - return it->label; + return _elm_widget_item_text_part_get((Elm_Widget_Item *)it, NULL); } -// use elm_object_item_part_text_set EINA_DEPRECATED EAPI void elm_list_item_label_set(Elm_List_Item *it, const char *text) { - ELM_LIST_ITEM_CHECK_DELETED_RETURN(it); - if (!eina_stringshare_replace(&it->label, text)) return; - if (VIEW(it)) - edje_object_part_text_set(VIEW(it), "elm.text", it->label); + _elm_widget_item_text_part_set((Elm_Widget_Item *)it, NULL, text); } // XXX: all the below - make elm_object_item*() calls to do these diff --git a/src/lib/elm_list.h b/src/lib/elm_list.h index 0a3f09e..647e13b 100644 --- a/src/lib/elm_list.h +++ b/src/lib/elm_list.h @@ -720,94 +720,6 @@ EAPI void elm_list_item_bring_in(Elm_List_Item *item); EAPI void elm_list_item_del(Elm_List_Item *item); /** - * Get the left side icon associated to the item. - * - * @param item The list item - * @return The left side icon associated to @p item - * - * The return value is a pointer to the icon associated to @p item when - * it was - * created, with function elm_list_item_append() or similar, or later - * with function elm_list_item_icon_set(). If no icon - * was passed as argument, it will return @c NULL. - * - * @see elm_list_item_append() - * @see elm_list_item_icon_set() - * - * @ingroup List - */ -EAPI Evas_Object *elm_list_item_icon_get(const Elm_List_Item *item); - -/** - * Set the left side icon associated to the item. - * - * @param item The list item - * @param icon The left side icon object to associate with @p item - * - * The icon object to use at left side of the item. An - * icon can be any Evas object, but usually it is an icon created - * with elm_icon_add(). - * - * Once the icon object is set, a previously set one will be deleted. - * @warning Setting the same icon for two items will cause the icon to - * dissapear from the first item. - * - * If an icon was passed as argument on item creation, with function - * elm_list_item_append() or similar, it will be already - * associated to the item. - * - * @see elm_list_item_append() - * @see elm_list_item_icon_get() - * - * @ingroup List - */ -EAPI void elm_list_item_icon_set(Elm_List_Item *item, Evas_Object *icon); - -/** - * Get the right side icon associated to the item. - * - * @param item The list item - * @return The right side icon associated to @p item - * - * The return value is a pointer to the icon associated to @p item when - * it was - * created, with function elm_list_item_append() or similar, or later - * with function elm_list_item_icon_set(). If no icon - * was passed as argument, it will return @c NULL. - * - * @see elm_list_item_append() - * @see elm_list_item_icon_set() - * - * @ingroup List - */ -EAPI Evas_Object *elm_list_item_end_get(const Elm_List_Item *item); - -/** - * Set the right side icon associated to the item. - * - * @param item The list item - * @param end The right side icon object to associate with @p item - * - * The icon object to use at right side of the item. An - * icon can be any Evas object, but usually it is an icon created - * with elm_icon_add(). - * - * Once the icon object is set, a previously set one will be deleted. - * @warning Setting the same icon for two items will cause the icon to - * dissapear from the first item. - * - * If an icon was passed as argument on item creation, with function - * elm_list_item_append() or similar, it will be already - * associated to the item. - * - * @see elm_list_item_append() - * @see elm_list_item_end_get() - * - * @ingroup List - */ -EAPI void elm_list_item_end_set(Elm_List_Item *item, Evas_Object *end); - -/** * Gets the base object of the item. * * @param item The list item @@ -820,44 +732,6 @@ EAPI void elm_list_item_end_set(Elm_List_Item *item, Eva EAPI Evas_Object *elm_list_item_object_get(const Elm_List_Item *item); /** - * Get the label of item. - * - * @param item The item of list. - * @return The label of item. - * - * The return value is a pointer to the label associated to @p item when - * it was created, with function elm_list_item_append(), or later - * with function elm_list_item_label_set. If no label - * was passed as argument, it will return @c NULL. - * - * @see elm_list_item_label_set() for more details. - * @see elm_list_item_append() - * - * @ingroup List - */ -EAPI const char *elm_list_item_label_get(const Elm_List_Item *item); - -/** - * Set the label of item. - * - * @param item The item of list. - * @param text The label of item. - * - * The label to be displayed by the item. - * Label will be placed between left and right side icons (if set). - * - * If a label was passed as argument on item creation, with function - * elm_list_item_append() or similar, it will be already - * displayed by the item. - * - * @see elm_list_item_label_get() - * @see elm_list_item_append() - * - * @ingroup List - */ -EAPI void elm_list_item_label_set(Elm_List_Item *item, const char *text); - -/** * Get the item before @p it in list. * * @param it The list item. -- 2.7.4