elm toolbar: add item_unselect_all(). Automatically unselect the item when the menu...
authorJonathan Atton <jonathan.atton@gmail.com>
Tue, 6 Oct 2009 18:18:21 +0000 (18:18 +0000)
committerJonathan Atton <jonathan.atton@gmail.com>
Tue, 6 Oct 2009 18:18:21 +0000 (18:18 +0000)
SVN revision: 42917

src/lib/Elementary.h.in
src/lib/elm_toolbar.c

index 7accba72c113158a304fa2398b850833abed5162..48ca2907ec9cfd95a38ccad69f997526f7f1c2b3 100644 (file)
@@ -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);
index 8db6c6168ef66a5dc951802a70fbfa3457201f5d..d96a0ba06e758da5c246cd94ce31f84bfc9d3791 100644 (file)
@@ -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)