On Sun, Jul 26, 2009 at 05:30:07PM -0700, Enlightenment SVN wrote: > Log: > 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.
got two patches: #1: hide eina_list internals by using the eina macros and methods instead #2: cleanup some duplicate code If appreciated I can provide more patches like #1 for the other parts of E. regards, Peter -- With a rubber duck, one's never alone. -- "The Hitchhiker's Guide to the Galaxy"
Index: e/src/bin/e_widget_toolbar.c =================================================================== --- e/src/bin/e_widget_toolbar.c (revision 41503) +++ e/src/bin/e_widget_toolbar.c (patch 1) @@ -46,7 +46,7 @@ e_widget_del_hook_set(obj, _e_wid_del_hook); e_widget_focus_hook_set(obj, _e_wid_focus_hook); e_widget_disable_hook_set(obj, _e_wid_disable_hook); - wd = calloc(1, sizeof(E_Widget_Data)); + wd = E_NEW(E_Widget_Data, 1); e_widget_data_set(obj, wd); wd->icon_w = icon_w; wd->icon_h = icon_h; @@ -161,9 +161,9 @@ int i; wd = e_widget_data_get(obj); - for (i = 0, l = wd->items; l; l = l->next, i++) + i = 0; + EINA_LIST_FOREACH(wd->items, l, it) { - it = l->data; if (i == num) { if (!it->selected) @@ -184,6 +184,7 @@ edje_object_signal_emit(it->o_icon, "e,state,unselected", "e"); } } + i++; } } @@ -293,16 +294,13 @@ _e_wid_del_hook(Evas_Object *obj) { E_Widget_Data *wd; + Item *it; wd = e_widget_data_get(obj); - while (wd->items) + EINA_LIST_FREE(wd->items, it) { - Item *it; - - it = wd->items->data; evas_object_del(it->o_base); evas_object_del(it->o_icon); - wd->items = eina_list_remove_list(wd->items, wd->items); E_FREE(it); } E_FREE(wd); @@ -332,9 +330,8 @@ it = data; if (it->selected) return; wd = e_widget_data_get(it->o_toolbar); - for (l = wd->items; l; l = l->next) + EINA_LIST_FOREACH(wd->items, l, it2) { - it2 = l->data; if (it2->selected) { it2->selected = EINA_FALSE; @@ -369,9 +366,8 @@ { if (w != vw) evas_object_resize(wd->o_box, vw, h); } - for (l = wd->items; l; l = l->next) + EINA_LIST_FOREACH(wd->items, l, it) { - it = l->data; if (it->selected) { _item_show(it); @@ -385,7 +381,7 @@ { Evas_Event_Key_Down *ev; E_Widget_Data *wd; - Eina_List *l; + Eina_List *l, *l2; Item *it = NULL, *it2 = NULL; ev = event_info; @@ -395,12 +391,12 @@ (!strcmp(ev->keyname, "Left")) || (!strcmp(ev->keyname, "KP_Left")) ) { - for (l = wd->items; l; l = l->next) + EINA_LIST_FOREACH(wd->items, l, it) { - it = l->data; if (it->selected) { - if (l->prev) it2 = l->prev->data; + l2 = eina_list_prev(l); + if (l2) it2 = eina_list_data_get(l2); break; } } @@ -409,24 +405,23 @@ (!strcmp(ev->keyname, "Right")) || (!strcmp(ev->keyname, "KP_Right")) ) { - for (l = wd->items; l; l = l->next) + EINA_LIST_FOREACH(wd->items, l, it) { - it = l->data; if (it->selected) { - if (l->next) it2 = l->next->data; + l2 = eina_list_next(l); + if (l2) it2 = eina_list_data_get(l2); break; } } } else if ((!strcmp(ev->keyname, "Home")) || (!strcmp(ev->keyname, "KP_Home"))) { - for (l = wd->items; l; l = l->next) + EINA_LIST_FOREACH(wd->items, l, it) { - it = l->data; if (it->selected) { - it2 = wd->items->data; + it2 = eina_list_data_get(wd->items); break; } } @@ -438,7 +433,7 @@ it = l->data; if (it->selected) { - it2 = eina_list_last(wd->items)->data; + it2 = eina_list_data_get(eina_list_last(wd->items)); break; } } @@ -465,12 +460,12 @@ if (e_widget_focus_get(obj)) { edje_object_signal_emit(wd->o_base, "e,state,focused", "e"); - evas_object_focus_set(obj, 1); + evas_object_focus_set(obj, EINA_TRUE); } else { edje_object_signal_emit(wd->o_base, "e,state,unfocused", "e"); - evas_object_focus_set(obj, 0); + evas_object_focus_set(obj, EINA_FALSE); } }
Index: e/src/bin/e_widget_toolbar.c =================================================================== --- e/src/bin/e_widget_toolbar.c (revision 41503) +++ e/src/bin/e_widget_toolbar.c (patch 2) @@ -30,6 +30,8 @@ static void _e_wid_cb_scrollframe_resize(void *data, Evas *e, Evas_Object *obj, void *event_info); static void _e_wid_cb_key_down(void *data, Evas *evas, Evas_Object *obj, void *event_info); static void _item_show(Item *it); +static void _item_select(Item *it); +static void _item_unselect(Item *it); /* local subsystem functions */ @@ -166,23 +168,11 @@ it = l->data; if (i == num) { - if (!it->selected) - { - it->selected = EINA_TRUE; - edje_object_signal_emit(it->o_base, "e,state,selected", "e"); - edje_object_signal_emit(it->o_icon, "e,state,selected", "e"); - _item_show(it); - if (it->func) it->func(it->data1, it->data2); - } + if (!it->selected) _item_select(it); } else { - if (it->selected) - { - it->selected = EINA_FALSE; - edje_object_signal_emit(it->o_base, "e,state,unselected", "e"); - edje_object_signal_emit(it->o_icon, "e,state,unselected", "e"); - } + if (it->selected) _item_unselect(it); } } } @@ -337,17 +327,11 @@ it2 = l->data; if (it2->selected) { - it2->selected = EINA_FALSE; - edje_object_signal_emit(it2->o_base, "e,state,unselected", "e"); - edje_object_signal_emit(it2->o_icon, "e,state,unselected", "e"); + _item_unselect(it2); break; } } - it->selected = EINA_TRUE; - edje_object_signal_emit(it->o_base, "e,state,selected", "e"); - edje_object_signal_emit(it->o_icon, "e,state,selected", "e"); - _item_show(it); - if (it->func) it->func(it->data1, it->data2); + _item_select(it); } static void @@ -445,14 +429,8 @@ } if ((it) && (it2) && (it != it2)) { - it->selected = EINA_FALSE; - edje_object_signal_emit(it->o_base, "e,state,unselected", "e"); - edje_object_signal_emit(it->o_icon, "e,state,unselected", "e"); - it2->selected = EINA_TRUE; - edje_object_signal_emit(it2->o_base, "e,state,selected", "e"); - edje_object_signal_emit(it2->o_icon, "e,state,selected", "e"); - _item_show(it2); - if (it2->func) it->func(it2->data1, it2->data2); + _item_unselect(it); + _item_select(it2); } } @@ -492,3 +470,20 @@ e_scrollframe_child_region_show(wd->o_base, x - bx, y - by, w, h); } +static void +_item_select(Item *it) +{ + it->selected = EINA_TRUE; + edje_object_signal_emit(it->o_base, "e,state,selected", "e"); + edje_object_signal_emit(it->o_icon, "e,state,selected", "e"); + _item_show(it); + if (it->func) it->func(it->data1, it->data2); +} + +static void +_item_unselect(Item *it) +{ + it->selected = EINA_FALSE; + edje_object_signal_emit(it->o_base, "e,state,unselected", "e"); + edje_object_signal_emit(it->o_icon, "e,state,unselected", "e"); +}
pgp5WeYGDs8tZ.pgp
Description: PGP signature
------------------------------------------------------------------------------
_______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel