Enlightenment CVS committal Author : codewarrior Project : e17 Module : apps/e
Dir : e17/apps/e/src/bin Modified Files: e_fileman.c e_fileman_smart.c e_fileman_smart.h Log Message: - more work on keyboard nav, now window scrolls when we move with keys. still have bug in top topmost first item and lowermost right item. =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_fileman.c,v retrieving revision 1.20 retrieving revision 1.21 diff -u -3 -r1.20 -r1.21 --- e_fileman.c 4 Nov 2005 21:04:20 -0000 1.20 +++ e_fileman.c 5 Nov 2005 01:01:26 -0000 1.21 @@ -26,7 +26,8 @@ static void _e_fileman_scroll_get(Evas_Object *obj, Evas_Coord *x, Evas_Coord *y); static void _e_fileman_scroll_max_get(Evas_Object *obj, Evas_Coord *x, Evas_Coord *y); static void _e_fileman_scroll_child_size_get(Evas_Object *obj, Evas_Coord *x, Evas_Coord *y); - +static int _e_fileman_reconfigure_cb(void *data, int type, void *event); + E_Fileman * e_fileman_new(E_Container *con) @@ -90,6 +91,12 @@ evas_event_thaw(fileman->evas); + fileman->event_handlers = evas_list_append(fileman->event_handlers, + ecore_event_handler_add(E_EVENT_FM_RECONFIGURE, + _e_fileman_reconfigure_cb, + fileman)); + + D(("e_fileman_new: ok\n")); return fileman; @@ -192,3 +199,15 @@ fileman->selector.func(fileman, file, fileman->selector.data); //e_object_del(E_OBJECT(fileman)); } + +static int + _e_fileman_reconfigure_cb(void *data, int type, void *event) +{ + E_Event_Fm_Reconfigure *ev; + E_Fileman *fileman; + + fileman = data; + ev = event; + + e_scrollframe_child_region_show(fileman->main, ev->x, ev->y, ev->w, ev->h); +} =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_fileman_smart.c,v retrieving revision 1.83 retrieving revision 1.84 diff -u -3 -r1.83 -r1.84 --- e_fileman_smart.c 4 Nov 2005 23:59:52 -0000 1.83 +++ e_fileman_smart.c 5 Nov 2005 01:01:26 -0000 1.84 @@ -645,7 +645,6 @@ sd->x = x; sd->y = y; - evas_object_move(sd->bg, x, y); evas_object_move(sd->clip, x, y); evas_object_move(sd->layout, sd->x - sd->child.x, sd->y - sd->child.y); @@ -685,7 +684,7 @@ ev->object = sd->object; ev->w = sd->child.w; ev->h = sd->child.h; - ecore_event_add(E_EVENT_FM_RECONFIGURE, ev, NULL, NULL); + //ecore_event_add(E_EVENT_FM_RECONFIGURE, ev, NULL, NULL); } } @@ -765,7 +764,7 @@ ev->object = sd->object; ev->w = sd->child.w; ev->h = sd->child.h; - ecore_event_add(E_EVENT_FM_RECONFIGURE, ev, NULL, NULL); + //ecore_event_add(E_EVENT_FM_RECONFIGURE, ev, NULL, NULL); } } @@ -1413,7 +1412,7 @@ ev->object = sd->object; ev->w = sd->child.w; ev->h = sd->child.h; - ecore_event_add(E_EVENT_FM_RECONFIGURE, ev, NULL, NULL); + //ecore_event_add(E_EVENT_FM_RECONFIGURE, ev, NULL, NULL); } } @@ -2263,6 +2262,28 @@ _e_fm_selections_clear(sd); _e_fm_selections_add(l->data, l); } + if(l) + { + E_Fm_Icon *icon; + Evas_Coord x, y, w, h; + icon = l->data; + evas_object_geometry_get(icon->icon_object, &x, &y, &w, &h); + if(!E_CONTAINS(sd->x, sd->y, sd->w, sd->h, x, y, w, h)) + { + E_Event_Fm_Reconfigure *ev; + + ev = E_NEW(E_Event_Fm_Reconfigure, 1); + if (ev) + { + ev->object = sd->object; + ev->x = sd->x; + ev->y = sd->child.y - (sd->y - (y - sd->icon_info.y_space)); + ev->w = sd->w; + ev->h = sd->h; + ecore_event_add(E_EVENT_FM_RECONFIGURE, ev, NULL, NULL); + } + } + } } else _e_fm_selections_add(sd->files->data, sd->files); @@ -2306,6 +2327,28 @@ _e_fm_selections_clear(sd); _e_fm_selections_add(l->data, l); } + if(l) + { + E_Fm_Icon *icon; + Evas_Coord x, y, w, h; + icon = l->data; + evas_object_geometry_get(icon->icon_object, &x, &y, &w, &h); + if(!E_CONTAINS(sd->x, sd->y, sd->w, sd->h, x, y, w, h)) + { + E_Event_Fm_Reconfigure *ev; + + ev = E_NEW(E_Event_Fm_Reconfigure, 1); + if (ev) + { + ev->object = sd->object; + ev->x = sd->x; + ev->y = sd->child.y + y + h + sd->icon_info.y_space - (sd->y + sd->h); + ev->w = sd->w; + ev->h = sd->h; + ecore_event_add(E_EVENT_FM_RECONFIGURE, ev, NULL, NULL); + } + } + } } else _e_fm_selections_add(sd->files->data, sd->files); @@ -2339,6 +2382,27 @@ _e_fm_selections_clear(sd); _e_fm_selections_add(prev->data, prev); } + { + E_Fm_Icon *icon; + Evas_Coord x, y, w, h; + icon = prev->data; + evas_object_geometry_get(icon->icon_object, &x, &y, &w, &h); + if(!E_CONTAINS(sd->x, sd->y, sd->w, sd->h, x, y, w, h)) + { + E_Event_Fm_Reconfigure *ev; + + ev = E_NEW(E_Event_Fm_Reconfigure, 1); + if (ev) + { + ev->object = sd->object; + ev->x = sd->x; + ev->y = sd->child.y - (sd->y - (y - sd->icon_info.y_space)); + ev->w = sd->w; + ev->h = sd->h; + ecore_event_add(E_EVENT_FM_RECONFIGURE, ev, NULL, NULL); + } + } + } } } else @@ -2372,6 +2436,27 @@ { _e_fm_selections_clear(sd); _e_fm_selections_add(next->data, next); + } + { + E_Fm_Icon *icon; + Evas_Coord x, y, w, h; + icon = next->data; + evas_object_geometry_get(icon->icon_object, &x, &y, &w, &h); + if(!E_CONTAINS(sd->x, sd->y, sd->w, sd->h, x, y, w, h)) + { + E_Event_Fm_Reconfigure *ev; + + ev = E_NEW(E_Event_Fm_Reconfigure, 1); + if (ev) + { + ev->object = sd->object; + ev->x = sd->x; + ev->y = sd->child.y + y + h + sd->icon_info.y_space - (sd->y + sd->h); + ev->w = sd->w; + ev->h = sd->h; + ecore_event_add(E_EVENT_FM_RECONFIGURE, ev, NULL, NULL); + } + } } } } =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_fileman_smart.h,v retrieving revision 1.11 retrieving revision 1.12 diff -u -3 -r1.11 -r1.12 --- e_fileman_smart.h 30 Oct 2005 08:40:37 -0000 1.11 +++ e_fileman_smart.h 5 Nov 2005 01:01:26 -0000 1.12 @@ -13,7 +13,7 @@ struct _E_Event_Fm_Reconfigure { Evas_Object *object; - Evas_Coord w, h; + Evas_Coord x, y, w, h; }; struct _E_Event_Fm_Directory_Change ------------------------------------------------------- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42" plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs