From 33fe50ae6eda26908891c0eef1c4ed6d8a3966bb Mon Sep 17 00:00:00 2001 From: Christopher Michael Date: Mon, 27 Jul 2009 00:30:06 +0000 Subject: [PATCH] Remove whitespace. Use E_FREE for things created with E_NEW. Add new function to clear the toolbar. Add new function to return the number of the selected item. SVN revision: 41501 --- src/bin/e_widget_toolbar.c | 50 +++++++++++++++++++++++++++++++++----- src/bin/e_widget_toolbar.h | 2 ++ 2 files changed, 46 insertions(+), 6 deletions(-) diff --git a/src/bin/e_widget_toolbar.c b/src/bin/e_widget_toolbar.c index acbc94bc1..d205a6f45 100644 --- a/src/bin/e_widget_toolbar.c +++ b/src/bin/e_widget_toolbar.c @@ -59,7 +59,8 @@ e_widget_toolbar_add(Evas *evas, int icon_w, int icon_h) o = wd->o_base; e_scrollframe_custom_theme_set(o, "base/theme/widgets", "e/widgets/toolbar"); e_scrollframe_single_dir_set(o, 1); - e_scrollframe_policy_set(o, E_SCROLLFRAME_POLICY_AUTO, E_SCROLLFRAME_POLICY_OFF); + e_scrollframe_policy_set(o, E_SCROLLFRAME_POLICY_AUTO, + E_SCROLLFRAME_POLICY_OFF); e_scrollframe_thumbscroll_force(o, 1); evas_object_event_callback_add(o, EVAS_CALLBACK_RESIZE, _e_wid_cb_scrollframe_resize, obj); @@ -106,7 +107,7 @@ e_widget_toolbar_item_append(Evas_Object *obj, Evas_Object *icon, const char *la it->data1 = data1; it->data2 = data2; wd->items = eina_list_append(wd->items, it); - + edje_object_signal_callback_add(o, "e,action,click", "e", _e_wid_signal_cb1, it); edje_extern_object_min_size_set(icon, wd->icon_w, wd->icon_h); @@ -147,7 +148,7 @@ e_widget_toolbar_item_remove(Evas_Object *obj, int num) evas_object_del(it->o_base); evas_object_del(it->o_icon); wd->items = eina_list_remove(wd->items, it); - free(it); + E_FREE(it); } } @@ -158,7 +159,7 @@ e_widget_toolbar_item_select(Evas_Object *obj, int num) Eina_List *l; Item *it; int i; - + wd = e_widget_data_get(obj); for (i = 0, l = wd->items; l; l = l->next, i++) { @@ -251,6 +252,43 @@ e_widget_toolbar_focus_steal_set(Evas_Object *obj, Eina_Bool steal) } } +EAPI void +e_widget_toolbar_clear(Evas_Object *obj) +{ + E_Widget_Data *wd; + + wd = e_widget_data_get(obj); + while (wd->items) + { + Item *it = NULL; + + if (!(it = wd->items->data)) continue; + evas_object_del(it->o_base); + evas_object_del(it->o_icon); + wd->items = eina_list_remove(wd->items, it); + E_FREE(it); + } +} + +EAPI int +e_widget_toolbar_item_selected_get(Evas_Object *obj) +{ + E_Widget_Data *wd = NULL; + Eina_List *l = NULL; + int i = 0; + + wd = e_widget_data_get(obj); + for (i = 0, l = wd->items; l; l = l->next, i++) + { + Item *it = NULL; + + if (!(it = l->data)) continue;; + if (it->selected) return i; + } + return 0; +} + +/* local functions */ static void _e_wid_del_hook(Evas_Object *obj) { @@ -264,10 +302,10 @@ _e_wid_del_hook(Evas_Object *obj) it = wd->items->data; evas_object_del(it->o_base); evas_object_del(it->o_icon); - free(it); wd->items = eina_list_remove_list(wd->items, wd->items); + E_FREE(it); } - free(wd); + E_FREE(wd); } static void diff --git a/src/bin/e_widget_toolbar.h b/src/bin/e_widget_toolbar.h index dc3a2ca95..7395035cc 100644 --- a/src/bin/e_widget_toolbar.h +++ b/src/bin/e_widget_toolbar.h @@ -13,6 +13,8 @@ EAPI void e_widget_toolbar_item_select(Evas_Object *obj, int num); EAPI void e_widget_toolbar_item_label_set(Evas_Object *obj, int num, const char *label); EAPI void e_widget_toolbar_scrollable_set(Evas_Object *obj, Eina_Bool scrollable); EAPI void e_widget_toolbar_focus_steal_set(Evas_Object *obj, Eina_Bool steal); +EAPI void e_widget_toolbar_clear(Evas_Object *obj); +EAPI int e_widget_toolbar_item_selected_get(Evas_Object *obj); #endif #endif