* 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
|
NEEDED
|
||||||
----------------------------------------------------
|
----------------------------------------------------
|
||||||
|
|
||||||
* histo menu pre and post callbacks with evas mouse events on menu item (event object)
|
|
||||||
* fix thumbnailing messages : too much !
|
* 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
|
* find a way to have the path of a generated thumb, to load it direcly
|
||||||
instead of always using e_thumb (delay)
|
instead of always using e_thumb (delay)
|
||||||
|
|
|
@ -18,7 +18,7 @@ part
|
||||||
image
|
image
|
||||||
{
|
{
|
||||||
normal: "popup_info_background.png";
|
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;
|
Photo_Config_Item *config;
|
||||||
E_Config_Dialog *config_dialog;
|
E_Config_Dialog *config_dialog;
|
||||||
E_Menu *menu;
|
E_Menu *menu;
|
||||||
|
E_Menu *menu_histo;
|
||||||
|
|
||||||
Ecore_Timer *timer;
|
Ecore_Timer *timer;
|
||||||
|
|
||||||
|
|
|
@ -48,11 +48,7 @@ int photo_menu_show(Photo_Item *pi)
|
||||||
}
|
}
|
||||||
e_menu_item_callback_set(mi, _cb_pause_toggle, pi);
|
e_menu_item_callback_set(mi, _cb_pause_toggle, pi);
|
||||||
|
|
||||||
mn2 = e_menu_new();
|
photo_picture_histo_menu_append(pi, mn);
|
||||||
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);
|
|
||||||
|
|
||||||
mi = e_menu_item_new(mn);
|
mi = e_menu_item_new(mn);
|
||||||
e_menu_item_separator_set(mi, 1);
|
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);
|
im = e_thumb_icon_add(photo->e_evas);
|
||||||
DPICL(("THUMB of %s wanted at %dx%d", picture->path, th_w, th_h));
|
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_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);
|
evas_object_smart_callback_add(im, "e_thumb_gen", func_done, picture);
|
||||||
picture->picture = im;
|
picture->picture = im;
|
||||||
e_thumb_icon_begin(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->path) evas_stringshare_del(p->path);
|
||||||
if (p->picture) evas_object_del(p->picture);
|
if (p->picture) evas_object_del(p->picture);
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,11 @@
|
||||||
#include "Photo.h"
|
#include "Photo.h"
|
||||||
|
|
||||||
static void _cb_menu_deactivate_post(void *data, E_Menu *m);
|
static void _cb_menu_populate(void *data, E_Menu *m, E_Menu_Item *mi);
|
||||||
static void _cb_menu_pre_select(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_post_select(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_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);
|
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);
|
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;
|
Picture *p;
|
||||||
int pos;
|
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_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;
|
pos = evas_list_count(pi->histo.list) - 1;
|
||||||
while ( (p=evas_list_nth(pi->histo.list, pos)) )
|
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)
|
if (pi->histo.pos == pos)
|
||||||
e_menu_item_toggle_set(mi, 1);
|
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);
|
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--;
|
pos--;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Private functions
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
static void
|
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
|
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;
|
Photo_Item *pi;
|
||||||
char *text;
|
int no;
|
||||||
int number;
|
|
||||||
|
|
||||||
pi = data;
|
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));
|
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);
|
p = evas_list_nth(pi->histo.list, number);
|
||||||
if (!p) return;
|
if (!p) return;
|
||||||
|
@ -179,11 +235,13 @@ _cb_menu_pre_select(void *data, E_Menu *m, E_Menu_Item *mi)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
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;
|
Photo_Item *pi;
|
||||||
|
|
||||||
pi = data;
|
mi = data;
|
||||||
|
pi = mi->cb.data;
|
||||||
|
|
||||||
DPIC(("Histo menu : Post select callback"));
|
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;
|
pi->histo.popi = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void
|
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);
|
e_object_del(E_OBJECT(m));
|
||||||
photo_item_action_change(pi,
|
|
||||||
pi->histo.pos -
|
|
||||||
(evas_list_count(pi->histo.list) - (no+1)));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
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_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
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -531,7 +531,6 @@ _thumb_generate_cb(void *data, Evas_Object *obj, void *event_info)
|
||||||
picture->thumb = PICTURE_THUMB_READY;
|
picture->thumb = PICTURE_THUMB_READY;
|
||||||
|
|
||||||
pl->thumb.nb--;
|
pl->thumb.nb--;
|
||||||
pl->pictures = evas_list_append(pl->pictures, picture);
|
|
||||||
|
|
||||||
/* popups about thumbnailing */
|
/* popups about thumbnailing */
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue