* 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 SVN revision: 23857
This commit is contained in:
parent
993aa12b45
commit
9bb5242817
2
TODO
2
TODO
|
@ -10,8 +10,8 @@ BUGS
|
|||
NEEDED
|
||||
----------------------------------------------------
|
||||
|
||||
* histo menu pre and post callbacks with evas mouse events on menu item (event object)
|
||||
* fix thumbnailing messages : too much !
|
||||
* option to set the thumb size, and no thumb mode
|
||||
|
||||
* find a way to have the path of a generated thumb, to load it direcly
|
||||
instead of always using e_thumb (delay)
|
||||
|
|
|
@ -18,7 +18,7 @@ part
|
|||
image
|
||||
{
|
||||
normal: "popup_info_background.png";
|
||||
border: 5 5 5 5;
|
||||
border: 10 10 10 10;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -48,6 +48,7 @@ struct _Photo_Item
|
|||
Photo_Config_Item *config;
|
||||
E_Config_Dialog *config_dialog;
|
||||
E_Menu *menu;
|
||||
E_Menu *menu_histo;
|
||||
|
||||
Ecore_Timer *timer;
|
||||
|
||||
|
|
|
@ -48,11 +48,7 @@ int photo_menu_show(Photo_Item *pi)
|
|||
}
|
||||
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);
|
||||
|
|
|
@ -59,6 +59,7 @@ Picture *photo_picture_new(char *path, char *name, int thumb_it, void (*func_don
|
|||
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 @@ int photo_picture_free(Picture *p, int force, int force_now)
|
|||
}
|
||||
}
|
||||
|
||||
DD(("Picture Free : %s", p->path));
|
||||
if (p->path) evas_stringshare_del(p->path);
|
||||
if (p->picture) evas_object_del(p->picture);
|
||||
|
||||
|
|
|
@ -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 @@ void photo_picture_histo_picture_del(Picture *picture)
|
|||
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 @@ void photo_picture_histo_menu_populate(Photo_Item *pi, E_Menu *mn)
|
|||
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_deactivate_post(void *data, E_Menu *m)
|
||||
_cb_menu_activate(void *data, E_Menu *m, E_Menu_Item *mi)
|
||||
{
|
||||
e_object_del(E_OBJECT(m));
|
||||
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_pre_select(void *data, E_Menu *m, E_Menu_Item *mi)
|
||||
_cb_menu_select(void *data, E_Menu *m, E_Menu_Item *mi)
|
||||
{
|
||||
Picture *p;
|
||||
Photo_Item *pi;
|
||||
char *text;
|
||||
int number;
|
||||
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, Evas *evas, Evas_Object *obj, void *event_info)
|
||||
{
|
||||
E_Menu_Item *mi;
|
||||
Photo_Item *pi;
|
||||
Picture *p;
|
||||
char *text;
|
||||
int number;
|
||||
|
||||
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 @@ _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)
|
||||
_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 @@ _cb_menu_post_select(void *data, E_Menu *m, E_Menu_Item *mi)
|
|||
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
|
||||
|
|
|
@ -20,7 +20,7 @@ Picture *photo_picture_histo_change(Photo_Item *pi, int offset);
|
|||
|
||||
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
|
||||
|
|
|
@ -531,7 +531,6 @@ _thumb_generate_cb(void *data, Evas_Object *obj, void *event_info)
|
|||
picture->thumb = PICTURE_THUMB_READY;
|
||||
|
||||
pl->thumb.nb--;
|
||||
pl->pictures = evas_list_append(pl->pictures, picture);
|
||||
|
||||
/* popups about thumbnailing */
|
||||
|
||||
|
|
Loading…
Reference in New Issue