Enlightenment CVS committal Author : kiwi Project : e_modules Module : photo
Dir : e_modules/photo/src/module Modified Files: photo_item.h photo_menu.c photo_picture.c photo_picture_histo.c photo_picture_histo.h photo_picture_local.c Log Message: * set the thumb size to 128*128, need work * fix a bad bug related to new e_thumb changes, wich was making segv * rewrite historic menu, now its correct (refresh when you hide/show the histo submenu, don't use submenu style for each picture item) * bigger border for popup info background image =================================================================== RCS file: /cvs/e/e_modules/photo/src/module/photo_item.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- photo_item.h 7 Jul 2006 20:04:16 -0000 1.2 +++ photo_item.h 12 Jul 2006 06:11:39 -0000 1.3 @@ -48,6 +48,7 @@ Photo_Config_Item *config; E_Config_Dialog *config_dialog; E_Menu *menu; + E_Menu *menu_histo; Ecore_Timer *timer; =================================================================== RCS file: /cvs/e/e_modules/photo/src/module/photo_menu.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- photo_menu.c 7 Jul 2006 17:15:25 -0000 1.1 +++ photo_menu.c 12 Jul 2006 06:11:39 -0000 1.2 @@ -48,11 +48,7 @@ } e_menu_item_callback_set(mi, _cb_pause_toggle, pi); - mn2 = e_menu_new(); - photo_picture_histo_menu_populate(pi, mn2); - mi = e_menu_item_new(mn); - e_menu_item_label_set(mi, _("Historic")); - e_menu_item_submenu_set(mi, mn2); + photo_picture_histo_menu_append(pi, mn); mi = e_menu_item_new(mn); e_menu_item_separator_set(mi, 1); =================================================================== RCS file: /cvs/e/e_modules/photo/src/module/photo_picture.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -3 -r1.3 -r1.4 --- photo_picture.c 11 Jul 2006 05:52:13 -0000 1.3 +++ photo_picture.c 12 Jul 2006 06:11:39 -0000 1.4 @@ -59,6 +59,7 @@ im = e_thumb_icon_add(photo->e_evas); DPICL(("THUMB of %s wanted at %dx%d", picture->path, th_w, th_h)); e_thumb_icon_file_set(im, (char *)picture->path, NULL); + e_thumb_icon_size_set(im, 128, 128); evas_object_smart_callback_add(im, "e_thumb_gen", func_done, picture); picture->picture = im; e_thumb_icon_begin(im); @@ -79,6 +80,7 @@ } } + DD(("Picture Free : %s", p->path)); if (p->path) evas_stringshare_del(p->path); if (p->picture) evas_object_del(p->picture); =================================================================== RCS file: /cvs/e/e_modules/photo/src/module/photo_picture_histo.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -3 -r1.3 -r1.4 --- photo_picture_histo.c 11 Jul 2006 07:01:11 -0000 1.3 +++ photo_picture_histo.c 12 Jul 2006 06:11:39 -0000 1.4 @@ -1,9 +1,11 @@ #include "Photo.h" -static void _cb_menu_deactivate_post(void *data, E_Menu *m); -static void _cb_menu_pre_select(void *data, E_Menu *m, E_Menu_Item *mi); -static void _cb_menu_post_select(void *data, E_Menu *m, E_Menu_Item *mi); +static void _cb_menu_populate(void *data, E_Menu *m, E_Menu_Item *mi); +static void _cb_menu_activate(void *data, E_Menu *m, E_Menu_Item *mi); static void _cb_menu_select(void *data, E_Menu *m, E_Menu_Item *mi); +static void _cb_menu_pre_select(void *data, Evas *evas, Evas_Object *obj, void *event_info); +static void _cb_menu_post_select(void *data, Evas *evas, Evas_Object *obj, void *event_info); +static void _cb_menu_deactivate_post(void *data, E_Menu *m); static void _cb_popi_close(void *data); /* @@ -110,13 +112,38 @@ evas_list_free(picture->items_histo); } -void photo_picture_histo_menu_populate(Photo_Item *pi, E_Menu *mn) +void photo_picture_histo_menu_append(Photo_Item *pi, E_Menu *mn_main) { - E_Menu_Item *mi; + E_Menu_Item *mi; + + mi = e_menu_item_new(mn_main); + e_menu_item_label_set(mi, _("Historic")); + e_menu_item_submenu_pre_callback_set(mi, + _cb_menu_populate, pi); + e_menu_item_submenu_post_callback_set(mi, + _cb_menu_activate, pi); +} + + +/* + * Private functions + * + */ + +static void +_cb_menu_populate(void *data, E_Menu *m, E_Menu_Item *mi) +{ + Photo_Item *pi; + E_Menu *mn; Picture *p; int pos; + pi = data; + + mn = e_menu_new(); + pi->menu_histo = mn; e_menu_post_deactivate_callback_set(mn, _cb_menu_deactivate_post, pi); + e_menu_item_submenu_set(mi, mn); pos = evas_list_count(pi->histo.list) - 1; while ( (p=evas_list_nth(pi->histo.list, pos)) ) @@ -128,39 +155,68 @@ if (pi->histo.pos == pos) e_menu_item_toggle_set(mi, 1); - e_menu_item_submenu_pre_callback_set(mi, _cb_menu_pre_select, pi); - e_menu_item_submenu_post_callback_set(mi, _cb_menu_post_select, pi); e_menu_item_callback_set(mi, _cb_menu_select, pi); + evas_object_event_callback_add(mi->event_object, EVAS_CALLBACK_MOUSE_IN, + _cb_menu_pre_select, mi); + evas_object_event_callback_add(mi->event_object, EVAS_CALLBACK_MOUSE_OUT, + _cb_menu_post_select, mi); pos--; } } - -/* - * Private functions - * - */ +static void +_cb_menu_activate(void *data, E_Menu *m, E_Menu_Item *mi) +{ + Photo_Item *pi; + E_Menu *mn; + Evas_List *l; + + pi = data; + mn = pi->menu_histo; + + for (l=mn->items; l; l=evas_list_next(l)) + { + E_Menu_Item *mi; + + mi = evas_list_data(l); + if (mi->separator) continue; + evas_object_event_callback_add(mi->event_object, EVAS_CALLBACK_MOUSE_IN, + _cb_menu_pre_select, mi); + evas_object_event_callback_add(mi->event_object, EVAS_CALLBACK_MOUSE_OUT, + _cb_menu_post_select, mi); + } +} static void -_cb_menu_deactivate_post(void *data, E_Menu *m) +_cb_menu_select(void *data, E_Menu *m, E_Menu_Item *mi) { - e_object_del(E_OBJECT(m)); + Photo_Item *pi; + int no; + + pi = data; + + no = e_menu_item_num_get(mi); + photo_item_action_change(pi, + pi->histo.pos - + (evas_list_count(pi->histo.list) - (no+1))); } static void -_cb_menu_pre_select(void *data, E_Menu *m, E_Menu_Item *mi) +_cb_menu_pre_select(void *data, Evas *evas, Evas_Object *obj, void *event_info) { - Picture *p; + E_Menu_Item *mi; Photo_Item *pi; + Picture *p; char *text; int number; - pi = data; + mi = data; + pi = mi->cb.data; number = (evas_list_count(pi->histo.list) - (e_menu_item_num_get(mi)+1)); - DPIC(("Select %d in histo list", number)); + DPIC(("Histo menu : Select %d in histo list", number)); p = evas_list_nth(pi->histo.list, number); if (!p) return; @@ -179,11 +235,13 @@ } static void -_cb_menu_post_select(void *data, E_Menu *m, E_Menu_Item *mi) +_cb_menu_post_select(void *data, Evas *evas, Evas_Object *obj, void *event_info) { + E_Menu_Item *mi; Photo_Item *pi; - pi = data; + mi = data; + pi = mi->cb.data; DPIC(("Histo menu : Post select callback")); @@ -192,19 +250,19 @@ pi->histo.popi = NULL; } - static void -_cb_menu_select(void *data, E_Menu *m, E_Menu_Item *mi) +_cb_menu_deactivate_post(void *data, E_Menu *m) { - Photo_Item *pi; - int no; + /* + Photo_Item *pi; - pi = data; + pi = data; + pi->menu_histo = NULL; + */ + + DD(("deactivate cb post")); - no = e_menu_item_num_get(mi); - photo_item_action_change(pi, - pi->histo.pos - - (evas_list_count(pi->histo.list) - (no+1))); + e_object_del(E_OBJECT(m)); } static void =================================================================== RCS file: /cvs/e/e_modules/photo/src/module/photo_picture_histo.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- photo_picture_histo.h 7 Jul 2006 20:04:16 -0000 1.2 +++ photo_picture_histo.h 12 Jul 2006 06:11:39 -0000 1.3 @@ -20,7 +20,7 @@ void photo_picture_histo_picture_del(Picture *picture); -void photo_picture_histo_menu_populate(Photo_Item *pi, E_Menu *mn); +void photo_picture_histo_menu_append(Photo_Item *pi, E_Menu *mn_main); #endif #endif =================================================================== RCS file: /cvs/e/e_modules/photo/src/module/photo_picture_local.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -3 -r1.3 -r1.4 --- photo_picture_local.c 11 Jul 2006 05:52:13 -0000 1.3 +++ photo_picture_local.c 12 Jul 2006 06:11:39 -0000 1.4 @@ -531,7 +531,6 @@ picture->thumb = PICTURE_THUMB_READY; pl->thumb.nb--; - pl->pictures = evas_list_append(pl->pictures, picture); /* popups about thumbnailing */ ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs