Enlightenment CVS committal Author : devilhorns Project : e17 Module : apps/e
Dir : e17/apps/e/src/bin Modified Files: e_widget_ilist.c Log Message: Don't calculate size on every append, just calculate when e_widget_ilist_go is called. This speeds up widget_ilist drastically, especially when adding a lot of items and does not appear to have any adverse effects. Tested with all code that is using e_widget_ilist. =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_widget_ilist.c,v retrieving revision 1.11 retrieving revision 1.12 diff -u -3 -r1.11 -r1.12 --- e_widget_ilist.c 3 Mar 2006 10:04:59 -0000 1.11 +++ e_widget_ilist.c 18 Mar 2006 17:00:27 -0000 1.12 @@ -65,7 +65,6 @@ e_widget_ilist_append(Evas_Object *obj, Evas_Object *icon, char *label, void (*func) (void *data), void *data, char *val) { E_Widget_Data *wd; - Evas_Coord mw, mh, vw, vh, w, h; E_Widget_Callback *wcb; wd = e_widget_data_get(obj); @@ -76,21 +75,6 @@ wd->callbacks = evas_list_append(wd->callbacks, 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); - e_scrollframe_child_viewport_size_get(wd->o_scrollframe, &vw, &vh); - evas_object_geometry_get(wd->o_scrollframe, NULL, NULL, &w, &h); - if (mw > vw) - { - Evas_Coord wmw, wmh; - - e_widget_min_size_get(obj, &wmw, &wmh); - e_widget_min_size_set(obj, mw + (w - vw), wmh); - } - else if (mw < vw) - { - evas_object_resize(wd->o_ilist, vw,mh); - } } EAPI void @@ -133,9 +117,25 @@ e_widget_ilist_go(Evas_Object *obj) { E_Widget_Data *wd; + Evas_Coord mw, mh, vw, vh, w, h; wd = e_widget_data_get(obj); wd->o_widget = obj; + e_ilist_min_size_get(wd->o_ilist, &mw, &mh); + evas_object_resize(wd->o_ilist, mw, mh); + e_scrollframe_child_viewport_size_get(wd->o_scrollframe, &vw, &vh); + evas_object_geometry_get(wd->o_scrollframe, NULL, NULL, &w, &h); + if (mw > vw) + { + Evas_Coord wmw, wmh; + + e_widget_min_size_get(obj, &wmw, &wmh); + e_widget_min_size_set(obj, mw + (w - vw), wmh); + } + else if (mw < vw) + { + evas_object_resize(wd->o_ilist, vw,mh); + } } EAPI void ------------------------------------------------------- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642 _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs