From 9029e6ed9e347f95b2cb31ceb55ce1282fe59edb Mon Sep 17 00:00:00 2001 From: Jonathan Atton Date: Tue, 6 Oct 2009 18:18:21 +0000 Subject: [PATCH] elm toolbar: add item_unselect_all(). Automatically unselect the item when the menu is closed. SVN revision: 42917 --- legacy/elementary/src/lib/Elementary.h.in | 1 + legacy/elementary/src/lib/elm_toolbar.c | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/legacy/elementary/src/lib/Elementary.h.in b/legacy/elementary/src/lib/Elementary.h.in index 7accba72c1..48ca2907ec 100644 --- a/legacy/elementary/src/lib/Elementary.h.in +++ b/legacy/elementary/src/lib/Elementary.h.in @@ -601,6 +601,7 @@ extern "C" { EAPI Evas_Object *elm_toolbar_add(Evas_Object *parent); EAPI void elm_toolbar_icon_size_set(Evas_Object *obj, int icon_size); EAPI int elm_toolbar_icon_size_get(Evas_Object *obj); + EAPI void elm_toolbar_item_unselect_all(Evas_Object *obj); EAPI Elm_Toolbar_Item *elm_toolbar_item_add(Evas_Object *obj, Evas_Object *icon, const char *label, void (*func) (void *data, Evas_Object *obj, void *event_info), const void *data); EAPI Evas_Object *elm_toolbar_item_icon_get(Elm_Toolbar_Item *item); EAPI const char *elm_toolbar_item_label_get(Elm_Toolbar_Item *item); diff --git a/legacy/elementary/src/lib/elm_toolbar.c b/legacy/elementary/src/lib/elm_toolbar.c index 8db6c6168e..d96a0ba06e 100644 --- a/legacy/elementary/src/lib/elm_toolbar.c +++ b/legacy/elementary/src/lib/elm_toolbar.c @@ -155,6 +155,7 @@ _menu_hide(void *data, Evas_Object *obj, void *event_info) it->menu_position = NULL; evas_object_del(it->menu_hover); it->menu_hover = NULL; + elm_toolbar_item_unselect_all(it->obj); } static void @@ -570,6 +571,23 @@ elm_toolbar_menu_parent_set(Evas_Object *obj, Evas_Object *parent) wd->menu_parent = parent; } +EAPI void +elm_toolbar_item_unselect_all(Evas_Object *obj) +{ + Eina_List *l; + Elm_Toolbar_Item *it; + Widget_Data *wd = elm_widget_data_get(obj); + if (!wd) return; + EINA_LIST_FOREACH(wd->items, l, it) + { + if (it->selected) + { + it->selected = EINA_FALSE; + edje_object_signal_emit(it->base, "elm,state,unselected", "elm"); + break; + } + } +} EAPI void elm_toolbar_item_menu_set(Elm_Toolbar_Item *item, Eina_Bool menu)