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 [email protected] https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
