Enlightenment CVS committal Author : raster Project : e17 Module : apps/e
Dir : e17/apps/e/src/bin Modified Files: e_ilist.c e_ilist.h e_widget_ilist.c Log Message: ilist jumps to the selected spot now with the ilist widget (keyboard nav is sane again) =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_ilist.c,v retrieving revision 1.11 retrieving revision 1.12 diff -u -3 -r1.11 -r1.12 --- e_ilist.c 7 Jan 2006 10:39:45 -0000 1.11 +++ e_ilist.c 21 Jan 2006 10:06:13 -0000 1.12 @@ -27,6 +27,7 @@ Evas_Object *base_obj; Evas_Object *icon_obj; void (*func) (void *data, void *data2); + void (*func_hilight) (void *data, void *data2); void *data; void *data2; }; @@ -91,7 +92,7 @@ } EAPI void -e_ilist_append(Evas_Object *obj, Evas_Object *icon, char *label, void (*func) (void *data, void *data2), void *data, void *data2) +e_ilist_append(Evas_Object *obj, Evas_Object *icon, char *label, void (*func) (void *data, void *data2), void (*func_hilight) (void *data, void *data2), void *data, void *data2) { E_Smart_Item *si; Evas_Coord mw = 0, mh = 0; @@ -114,7 +115,8 @@ edje_object_part_swallow(si->base_obj, "icon_swallow", si->icon_obj); evas_object_show(si->icon_obj); } - si->func = func; + si->func = func; + si->func_hilight = func_hilight; si->data = data; si->data2 = data2; sd->items = evas_list_append(sd->items, si); @@ -151,6 +153,7 @@ { evas_object_raise(si->base_obj); edje_object_signal_emit(si->base_obj, "active", ""); + if (si->func_hilight) si->func_hilight(si->data, si->data2); if (!sd->selector) { if (si->func) si->func(si->data, si->data2); =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_ilist.h,v retrieving revision 1.5 retrieving revision 1.6 diff -u -3 -r1.5 -r1.6 --- e_ilist.h 22 Dec 2005 21:08:34 -0000 1.5 +++ e_ilist.h 21 Jan 2006 10:06:13 -0000 1.6 @@ -8,7 +8,7 @@ EAPI Evas_Object *e_ilist_add (Evas *evas); EAPI void e_ilist_icon_size_set (Evas_Object *obj, Evas_Coord w, Evas_Coord h); -EAPI void e_ilist_append (Evas_Object *obj, Evas_Object *icon, char *label, void (*func) (void *data, void *data2), void *data, void *data2); +EAPI void e_ilist_append (Evas_Object *obj, Evas_Object *icon, char *label, void (*func) (void *data, void *data2), void (*func_hilight) (void *data, void *data2), void *data, void *data2); EAPI void e_ilist_selected_set (Evas_Object *obj, int n); EAPI int e_ilist_selected_get (Evas_Object *obj); EAPI const char *e_ilist_selected_label_get (Evas_Object *obj); =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_widget_ilist.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -3 -r1.7 -r1.8 --- e_widget_ilist.c 7 Jan 2006 10:39:45 -0000 1.7 +++ e_widget_ilist.c 21 Jan 2006 10:06:13 -0000 1.8 @@ -22,6 +22,7 @@ static void _e_wid_focus_hook(Evas_Object *obj); static void _e_wid_cb_scrollframe_resize(void *data, Evas *e, Evas_Object *obj, void *event_info); static void _e_wid_cb_item_sel(void *data, void *data2); +static void _e_wid_cb_item_hilight(void *data, void *data2); static void _e_wid_focus_steal(void *data, Evas *e, Evas_Object *obj, void *event_info); /* externally accessible functions */ @@ -73,7 +74,7 @@ wcb->data = data; if (val) wcb->value = strdup(val); wd->callbacks = evas_list_append(wd->callbacks, wcb); - e_ilist_append(wd->o_ilist, icon, label, _e_wid_cb_item_sel, wd, wcb); + e_ilist_append(wd->o_ilist, icon, label, _e_wid_cb_item_sel, _e_wid_cb_item_hilight, wd, wcb); if (icon) evas_object_show(icon); e_ilist_min_size_get(wd->o_ilist, &mw, &mh); evas_object_resize(wd->o_ilist, mw, mh); @@ -228,6 +229,19 @@ } static void +_e_wid_cb_item_hilight(void *data, void *data2) +{ + E_Widget_Data *wd; + Evas_Coord x, y, w, h; + E_Widget_Callback *wcb; + + wd = data; + wcb = data2; + e_ilist_selected_geometry_get(wd->o_ilist, &x, &y, &w, &h); + e_scrollframe_child_region_show(wd->o_scrollframe, x, y, w, h); +} + +static void _e_wid_focus_steal(void *data, Evas *e, Evas_Object *obj, void *event_info) { e_widget_focus_steal(data); ------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Do you grep through log files for problems? Stop! Download the new AJAX search engine that makes searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642 _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs