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

Reply via email to