From: Boris Faure Date: Sat, 21 Nov 2009 16:21:35 +0000 (+0000) Subject: elementary: add del_cb to toolbar items X-Git-Tag: v1.0.0~4975 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=5a0236cf871a8ba2695424ff83c9948c83db7819;p=platform%2Fupstream%2Felementary.git elementary: add del_cb to toolbar items SVN revision: 43862 --- diff --git a/src/lib/elm_toolbar.c b/src/lib/elm_toolbar.c index a573e28..9952564 100644 --- a/src/lib/elm_toolbar.c +++ b/src/lib/elm_toolbar.c @@ -24,6 +24,7 @@ struct _Elm_Toolbar_Item const char *label; Evas_Object *icon; void (*func) (void *data, Evas_Object *obj, void *event_info); + void (*del_cb) (void *data, Evas_Object *obj, void *event_info); const void *data; Eina_Bool selected : 1; Eina_Bool disabled : 1; @@ -145,6 +146,7 @@ _del_pre_hook(Evas_Object *obj) if (!wd) return; EINA_LIST_FREE(wd->items, it) { + if (it->del_cb) it->del_cb((void *)it->data, it->obj, it); eina_stringshare_del(it->label); if (it->icon) evas_object_del(it->icon); if ((!wd->menu_parent) && (it->o_menu)) evas_object_del(it->o_menu); @@ -434,6 +436,7 @@ elm_toolbar_item_del(Elm_Toolbar_Item *it) Evas_Object *obj2 = it->obj; if ((!wd) || (!it)) return; + if (it->del_cb) it->del_cb((void *)it->data, it->obj, it); wd->items = eina_list_remove(wd->items, it); eina_stringshare_del(it->label); if (it->icon) evas_object_del(it->icon); @@ -442,6 +445,20 @@ elm_toolbar_item_del(Elm_Toolbar_Item *it) _theme_hook(obj2); } +/** + * Set the function called when a toolbar item is freed. + * + * @param it The item to set the callback on + * @param func The function called + * + * @ingroup Hoversel + */ +EAPI void +elm_toolbar_item_del_cb_set(Elm_Toolbar_Item *it, void (*func)(void *data, Evas_Object *obj, void *event_info)) +{ + it->del_cb = func; +} + EAPI void elm_toolbar_item_select(Elm_Toolbar_Item *item) {