From c4caf9d82fcd71e79e92374edf15cde5b077f459 Mon Sep 17 00:00:00 2001 From: Gustavo Sverzut Barbieri Date: Mon, 2 Jul 2012 01:38:21 +0000 Subject: [PATCH] safety for elm_object_item_widget_get(). SVN revision: 73117 --- legacy/elementary/ChangeLog | 3 +++ legacy/elementary/src/lib/elm_main.c | 2 +- legacy/elementary/src/lib/elm_widget.c | 16 ++++++++++++++++ legacy/elementary/src/lib/elm_widget.h | 8 ++++++++ 4 files changed, 28 insertions(+), 1 deletion(-) diff --git a/legacy/elementary/ChangeLog b/legacy/elementary/ChangeLog index fc1fe7745a..08bba59184 100644 --- a/legacy/elementary/ChangeLog +++ b/legacy/elementary/ChangeLog @@ -251,3 +251,6 @@ * Fix panel theme_hook handling for scaling +2012-07-01 Gustavo Sverzut Barbieri (k-s) + + * Add and use elm_widget_item_widget_get() diff --git a/legacy/elementary/src/lib/elm_main.c b/legacy/elementary/src/lib/elm_main.c index 18da204c12..eb976945da 100644 --- a/legacy/elementary/src/lib/elm_main.c +++ b/legacy/elementary/src/lib/elm_main.c @@ -1337,7 +1337,7 @@ elm_coords_finger_size_adjust(int times_w, EAPI Evas_Object * elm_object_item_widget_get(const Elm_Object_Item *it) { - return WIDGET(it); + return elm_widget_item_widget_get(it); } EAPI void diff --git a/legacy/elementary/src/lib/elm_widget.c b/legacy/elementary/src/lib/elm_widget.c index f2a3ea8ede..cae7440981 100644 --- a/legacy/elementary/src/lib/elm_widget.c +++ b/legacy/elementary/src/lib/elm_widget.c @@ -3784,6 +3784,22 @@ _elm_widget_item_del_cb_set(Elm_Widget_Item *item, item->del_func = func; } +/** + * @internal + * + * Retrieves owner widget of this item. + * + * @param item a valid #Elm_Widget_Item to get data from. + * @return owner widget of this item. + * @ingroup Widget + */ +EAPI Evas_Object * +_elm_widget_item_widget_get(const Elm_Widget_Item *item) +{ + ELM_WIDGET_ITEM_CHECK_OR_RETURN(item, NULL); + return item->widget; +} + /** * @internal * diff --git a/legacy/elementary/src/lib/elm_widget.h b/legacy/elementary/src/lib/elm_widget.h index 7bd1f2b20b..72b6ff6dfb 100644 --- a/legacy/elementary/src/lib/elm_widget.h +++ b/legacy/elementary/src/lib/elm_widget.h @@ -756,6 +756,7 @@ EAPI void elm_widget_access_info_set(Evas_Object *obj, const char *t EAPI const char *elm_widget_access_info_get(const Evas_Object *obj); EAPI Elm_Widget_Item *_elm_widget_item_new(Evas_Object *parent, size_t alloc_size); EAPI void _elm_widget_item_free(Elm_Widget_Item *item); +EAPI Evas_Object *_elm_widget_item_widget_get(const Elm_Widget_Item *item); EAPI void _elm_widget_item_del(Elm_Widget_Item *item); EAPI void _elm_widget_item_pre_notify_del(Elm_Widget_Item *item); EAPI void _elm_widget_item_del_cb_set(Elm_Widget_Item *item, Evas_Smart_Cb del_cb); @@ -834,6 +835,13 @@ EAPI void elm_widget_tree_dot_dump(const Evas_Object *top, FILE *out #define elm_widget_item_del_cb_set(item, del_cb) \ _elm_widget_item_del_cb_set((Elm_Widget_Item *)item, del_cb) +/** + * Get item's owner widget + * @see _elm_widget_item_widget_get() + */ +#define elm_widget_item_widget_get(item) \ + _elm_widget_item_widget_get((const Elm_Widget_Item *)item) + /** * Set item's data * @see _elm_widget_item_data_set()