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

Reply via email to