e-modules: update do e_gadcon_util_cliet_menu_append api changes. allowing to have settings menu in toplevel again
SVN revision: 57828
This commit is contained in:
parent
24b9b99d3f
commit
209296a683
267
src/photo_menu.c
267
src/photo_menu.c
|
@ -9,7 +9,21 @@ static void _cb_picture_viewer(void *data, E_Menu *m, E_Menu_Item *mi);
|
|||
static void _cb_pause_toggle(void *data, E_Menu *m, E_Menu_Item *mi);
|
||||
static void _cb_configure_item(void *data, E_Menu *m, E_Menu_Item *mi);
|
||||
static void _cb_configure_general(void *data, E_Menu *m, E_Menu_Item *mi);
|
||||
static void _cb_hist_menu_populate(void *data, E_Menu *m, E_Menu_Item *mi);
|
||||
static void _cb_hist_menu_activate(void *data, E_Menu *m, E_Menu_Item *mi);
|
||||
static void _cb_hist_menu_populate(void *data, E_Menu *m, E_Menu_Item *mi);
|
||||
static void _cb_hist_menu_activate(void *data, E_Menu *m, E_Menu_Item *mi);
|
||||
static void _cb_hist_menu_select(void *data, E_Menu *m, E_Menu_Item *mi);
|
||||
static void _cb_hist_menu_pre_select(void *data, Evas *evas, Evas_Object *obj, void *event_info);
|
||||
static void _cb_hist_menu_post_select(void *data, Evas *evas, Evas_Object *obj, void *event_info);
|
||||
static void _cb_hist_menu_deactivate_post(void *data, E_Menu *m);
|
||||
static void _cb_popi_close(void *data);
|
||||
|
||||
void photo_picture_histo_menu_append(Photo_Item *pi, E_Menu *mn_main)
|
||||
{
|
||||
E_Menu_Item *mi;
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* Public functions
|
||||
|
@ -17,68 +31,72 @@ static void _cb_configure_general(void *data, E_Menu *m, E_Menu_Item *mi);
|
|||
|
||||
int photo_menu_show(Photo_Item *pi)
|
||||
{
|
||||
E_Menu *ma, *mg;
|
||||
E_Menu *m;
|
||||
E_Menu_Item *mi;
|
||||
char buf[4096];
|
||||
|
||||
ma = e_menu_new();
|
||||
e_menu_post_deactivate_callback_set(ma, _cb_deactivate_post, pi);
|
||||
pi->menu = ma;
|
||||
m = e_menu_new();
|
||||
|
||||
mi = e_menu_item_new(ma);
|
||||
if (pi->config->timer_active)
|
||||
{
|
||||
e_menu_item_label_set(mi, D_("Pause slideshow"));
|
||||
photo_util_menu_icon_set(mi, PHOTO_THEME_ICON_PAUSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
e_menu_item_label_set(mi, D_("Resume slideshow"));
|
||||
photo_util_menu_icon_set(mi, PHOTO_THEME_ICON_RESUME);
|
||||
}
|
||||
e_menu_item_callback_set(mi, _cb_pause_toggle, pi);
|
||||
mi = e_menu_item_new(ma);
|
||||
e_menu_item_label_set(mi, D_("Next picture"));
|
||||
photo_util_menu_icon_set(mi, PHOTO_THEME_ICON_NEXT);
|
||||
e_menu_item_callback_set(mi, _cb_picture_next, pi);
|
||||
mi = e_menu_item_new(ma);
|
||||
e_menu_item_label_set(mi, D_("Previous picture"));
|
||||
photo_util_menu_icon_set(mi, PHOTO_THEME_ICON_PREVIOUS);
|
||||
e_menu_item_callback_set(mi, _cb_picture_prev, pi);
|
||||
|
||||
photo_picture_histo_menu_append(pi, ma);
|
||||
|
||||
mi = e_menu_item_new(ma);
|
||||
e_menu_item_separator_set(mi, 1);
|
||||
|
||||
mi = e_menu_item_new(ma);
|
||||
e_menu_item_label_set(mi, D_("Picture informations"));
|
||||
photo_util_menu_icon_set(mi, PHOTO_THEME_ICON_INFOS);
|
||||
e_menu_item_callback_set(mi, _cb_picture_info, pi);
|
||||
mi = e_menu_item_new(ma);
|
||||
e_menu_item_label_set(mi, D_("Set as background"));
|
||||
photo_util_menu_icon_set(mi, PHOTO_THEME_ICON_SETBG);
|
||||
e_menu_item_callback_set(mi, _cb_picture_setbg, pi);
|
||||
mi = e_menu_item_new(ma);
|
||||
snprintf(buf, sizeof(buf), "%s %s", D_("Open in"), photo->config->pictures_viewer);
|
||||
e_menu_item_label_set(mi, buf);
|
||||
photo_util_menu_icon_set(mi, PHOTO_THEME_ICON_VIEWER);
|
||||
e_menu_item_callback_set(mi, _cb_picture_viewer, pi);
|
||||
|
||||
mg = e_menu_new();
|
||||
|
||||
mi = e_menu_item_new(mg);
|
||||
mi = e_menu_item_new(m);
|
||||
e_menu_item_label_set(mi, D_("Module Settings"));
|
||||
e_util_menu_item_theme_icon_set(mi, "preferences-system");
|
||||
e_menu_item_callback_set(mi, _cb_configure_general, NULL);
|
||||
mi = e_menu_item_new(mg);
|
||||
mi = e_menu_item_new(m);
|
||||
e_menu_item_separator_set(mi, 1);
|
||||
mi = e_menu_item_new(mg);
|
||||
mi = e_menu_item_new(m);
|
||||
e_menu_item_label_set(mi, D_("Settings"));
|
||||
e_util_menu_item_theme_icon_set(mi, "preferences-system");
|
||||
e_menu_item_callback_set(mi, _cb_configure_item, pi);
|
||||
|
||||
e_gadcon_client_util_menu_items_append(pi->gcc, ma, mg, 0);
|
||||
m = e_gadcon_client_util_menu_items_append(pi->gcc, m, 0);
|
||||
e_menu_post_deactivate_callback_set(m, _cb_deactivate_post, pi);
|
||||
pi->menu = m;
|
||||
|
||||
mi = e_menu_item_new_relative(m, NULL);
|
||||
if (pi->config->timer_active)
|
||||
{
|
||||
e_menu_item_label_set(mi, D_("Pause slideshow"));
|
||||
photo_util_menu_icon_set(mi, PHOTO_THEME_ICON_PAUSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
e_menu_item_label_set(mi, D_("Resume slideshow"));
|
||||
photo_util_menu_icon_set(mi, PHOTO_THEME_ICON_RESUME);
|
||||
}
|
||||
e_menu_item_callback_set(mi, _cb_pause_toggle, pi);
|
||||
mi = e_menu_item_new_relative(m, mi);
|
||||
e_menu_item_label_set(mi, D_("Next picture"));
|
||||
photo_util_menu_icon_set(mi, PHOTO_THEME_ICON_NEXT);
|
||||
e_menu_item_callback_set(mi, _cb_picture_next, pi);
|
||||
mi = e_menu_item_new_relative(m, mi);
|
||||
e_menu_item_label_set(mi, D_("Previous picture"));
|
||||
photo_util_menu_icon_set(mi, PHOTO_THEME_ICON_PREVIOUS);
|
||||
e_menu_item_callback_set(mi, _cb_picture_prev, pi);
|
||||
|
||||
|
||||
mi = e_menu_item_new_relative(m, mi);
|
||||
e_menu_item_label_set(mi, D_("Historic"));
|
||||
e_menu_item_submenu_pre_callback_set(mi,
|
||||
_cb_hist_menu_populate, pi);
|
||||
e_menu_item_submenu_post_callback_set(mi,
|
||||
_cb_hist_menu_activate, pi);
|
||||
|
||||
mi = e_menu_item_new_relative(m, mi);
|
||||
e_menu_item_separator_set(mi, 1);
|
||||
|
||||
mi = e_menu_item_new_relative(m, mi);
|
||||
e_menu_item_label_set(mi, D_("Picture informations"));
|
||||
photo_util_menu_icon_set(mi, PHOTO_THEME_ICON_INFOS);
|
||||
e_menu_item_callback_set(mi, _cb_picture_info, pi);
|
||||
mi = e_menu_item_new_relative(m, mi);
|
||||
e_menu_item_label_set(mi, D_("Set as background"));
|
||||
photo_util_menu_icon_set(mi, PHOTO_THEME_ICON_SETBG);
|
||||
e_menu_item_callback_set(mi, _cb_picture_setbg, pi);
|
||||
mi = e_menu_item_new_relative(m, mi);
|
||||
snprintf(buf, sizeof(buf), "%s %s", D_("Open in"), photo->config->pictures_viewer);
|
||||
e_menu_item_label_set(mi, buf);
|
||||
photo_util_menu_icon_set(mi, PHOTO_THEME_ICON_VIEWER);
|
||||
e_menu_item_callback_set(mi, _cb_picture_viewer, pi);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
@ -196,3 +214,152 @@ _cb_configure_general(void *data, E_Menu *m, E_Menu_Item *mi)
|
|||
|
||||
photo_config_dialog_show();
|
||||
}
|
||||
|
||||
static void
|
||||
_cb_hist_menu_select(void *data, E_Menu *m, E_Menu_Item *mi)
|
||||
{
|
||||
Photo_Item *pi;
|
||||
int no;
|
||||
|
||||
pi = data;
|
||||
|
||||
no = e_menu_item_num_get(mi);
|
||||
photo_item_action_change(pi,
|
||||
pi->histo.pos -
|
||||
(eina_list_count(pi->histo.list) - (no+1)));
|
||||
photo_item_timer_set(pi, pi->config->timer_active, 0);
|
||||
}
|
||||
|
||||
static void
|
||||
_cb_hist_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;
|
||||
if (!mi) return;
|
||||
pi = mi->cb.data;
|
||||
if (!pi) return;
|
||||
|
||||
number = (eina_list_count(pi->histo.list) - (e_menu_item_num_get(mi)+1));
|
||||
|
||||
DPIC(("Histo menu : Select %d in histo list", number));
|
||||
|
||||
p = eina_list_nth(pi->histo.list, number);
|
||||
if (!p) return;
|
||||
|
||||
text = photo_picture_infos_get(p);
|
||||
|
||||
if (pi->histo.popi)
|
||||
photo_popup_info_del(pi->histo.popi);
|
||||
|
||||
pi->histo.popi = photo_popup_info_add(pi, p->infos.name, text, p,
|
||||
PICTURE_HISTO_POPUP_TIMER,
|
||||
POPUP_INFO_PLACEMENT_CENTERED,
|
||||
_cb_popi_close, NULL);
|
||||
|
||||
free(text);
|
||||
}
|
||||
|
||||
static void
|
||||
_cb_hist_menu_post_select(void *data, Evas *evas, Evas_Object *obj, void *event_info)
|
||||
{
|
||||
E_Menu_Item *mi;
|
||||
Photo_Item *pi;
|
||||
|
||||
mi = data;
|
||||
if (!mi) return;
|
||||
pi = mi->cb.data;
|
||||
if (!pi) return;
|
||||
|
||||
DPIC(("Histo menu : Post select callback"));
|
||||
|
||||
if (pi->histo.popi)
|
||||
photo_popup_info_del(pi->histo.popi);
|
||||
pi->histo.popi = NULL;
|
||||
}
|
||||
|
||||
static void
|
||||
_cb_hist_menu_deactivate_post(void *data, E_Menu *m)
|
||||
{
|
||||
Photo_Item *pi;
|
||||
|
||||
pi = data;
|
||||
pi->menu_histo = NULL;
|
||||
|
||||
DD(("deactivate cb post"));
|
||||
|
||||
e_object_del(E_OBJECT(m));
|
||||
}
|
||||
|
||||
static void
|
||||
_cb_hist_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_hist_menu_deactivate_post, pi);
|
||||
e_menu_item_submenu_set(mi, mn);
|
||||
|
||||
pos = eina_list_count(pi->histo.list) - 1;
|
||||
while ( (p=eina_list_nth(pi->histo.list, pos)) )
|
||||
{
|
||||
mi = e_menu_item_new(mn);
|
||||
e_menu_item_label_set(mi, p->infos.name);
|
||||
e_menu_item_radio_group_set(mi, 1);
|
||||
e_menu_item_radio_set(mi, 1);
|
||||
if (pi->histo.pos == pos)
|
||||
e_menu_item_toggle_set(mi, 1);
|
||||
|
||||
e_menu_item_callback_set(mi, _cb_hist_menu_select, pi);
|
||||
evas_object_event_callback_add(mi->event_object, EVAS_CALLBACK_MOUSE_IN,
|
||||
_cb_hist_menu_pre_select, mi);
|
||||
evas_object_event_callback_add(mi->event_object, EVAS_CALLBACK_MOUSE_OUT,
|
||||
_cb_hist_menu_post_select, mi);
|
||||
|
||||
pos--;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
_cb_hist_menu_activate(void *data, E_Menu *m, E_Menu_Item *mi)
|
||||
{
|
||||
Photo_Item *pi;
|
||||
E_Menu *mn;
|
||||
Eina_List *l;
|
||||
|
||||
pi = data;
|
||||
mn = pi->menu_histo;
|
||||
|
||||
if (!mn) return;
|
||||
|
||||
for (l=mn->items; l; l=eina_list_next(l))
|
||||
{
|
||||
E_Menu_Item *mi;
|
||||
|
||||
mi = eina_list_data_get(l);
|
||||
if (!mi || mi->separator) continue;
|
||||
evas_object_event_callback_add(mi->event_object, EVAS_CALLBACK_MOUSE_IN,
|
||||
_cb_hist_menu_pre_select, mi);
|
||||
evas_object_event_callback_add(mi->event_object, EVAS_CALLBACK_MOUSE_OUT,
|
||||
_cb_hist_menu_post_select, mi);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
_cb_popi_close(void *data)
|
||||
{
|
||||
Photo_Item *pi;
|
||||
|
||||
pi = data;
|
||||
pi->histo.popi = NULL;
|
||||
}
|
||||
|
|
|
@ -1,12 +1,6 @@
|
|||
#include "Photo.h"
|
||||
|
||||
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);
|
||||
|
||||
|
||||
/*
|
||||
* Public functions
|
||||
|
@ -112,170 +106,3 @@ void photo_picture_histo_picture_del(Picture *picture)
|
|||
|
||||
eina_list_free(picture->items_histo);
|
||||
}
|
||||
|
||||
void photo_picture_histo_menu_append(Photo_Item *pi, E_Menu *mn_main)
|
||||
{
|
||||
E_Menu_Item *mi;
|
||||
|
||||
mi = e_menu_item_new(mn_main);
|
||||
e_menu_item_label_set(mi, D_("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 = eina_list_count(pi->histo.list) - 1;
|
||||
while ( (p=eina_list_nth(pi->histo.list, pos)) )
|
||||
{
|
||||
mi = e_menu_item_new(mn);
|
||||
e_menu_item_label_set(mi, p->infos.name);
|
||||
e_menu_item_radio_group_set(mi, 1);
|
||||
e_menu_item_radio_set(mi, 1);
|
||||
if (pi->histo.pos == pos)
|
||||
e_menu_item_toggle_set(mi, 1);
|
||||
|
||||
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--;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
_cb_menu_activate(void *data, E_Menu *m, E_Menu_Item *mi)
|
||||
{
|
||||
Photo_Item *pi;
|
||||
E_Menu *mn;
|
||||
Eina_List *l;
|
||||
|
||||
pi = data;
|
||||
mn = pi->menu_histo;
|
||||
|
||||
if (!mn) return;
|
||||
|
||||
for (l=mn->items; l; l=eina_list_next(l))
|
||||
{
|
||||
E_Menu_Item *mi;
|
||||
|
||||
mi = eina_list_data_get(l);
|
||||
if (!mi || 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_select(void *data, E_Menu *m, E_Menu_Item *mi)
|
||||
{
|
||||
Photo_Item *pi;
|
||||
int no;
|
||||
|
||||
pi = data;
|
||||
|
||||
no = e_menu_item_num_get(mi);
|
||||
photo_item_action_change(pi,
|
||||
pi->histo.pos -
|
||||
(eina_list_count(pi->histo.list) - (no+1)));
|
||||
photo_item_timer_set(pi, pi->config->timer_active, 0);
|
||||
}
|
||||
|
||||
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;
|
||||
if (!mi) return;
|
||||
pi = mi->cb.data;
|
||||
if (!pi) return;
|
||||
|
||||
number = (eina_list_count(pi->histo.list) - (e_menu_item_num_get(mi)+1));
|
||||
|
||||
DPIC(("Histo menu : Select %d in histo list", number));
|
||||
|
||||
p = eina_list_nth(pi->histo.list, number);
|
||||
if (!p) return;
|
||||
|
||||
text = photo_picture_infos_get(p);
|
||||
|
||||
if (pi->histo.popi)
|
||||
photo_popup_info_del(pi->histo.popi);
|
||||
|
||||
pi->histo.popi = photo_popup_info_add(pi, p->infos.name, text, p,
|
||||
PICTURE_HISTO_POPUP_TIMER,
|
||||
POPUP_INFO_PLACEMENT_CENTERED,
|
||||
_cb_popi_close, NULL);
|
||||
|
||||
free(text);
|
||||
}
|
||||
|
||||
static void
|
||||
_cb_menu_post_select(void *data, Evas *evas, Evas_Object *obj, void *event_info)
|
||||
{
|
||||
E_Menu_Item *mi;
|
||||
Photo_Item *pi;
|
||||
|
||||
mi = data;
|
||||
if (!mi) return;
|
||||
pi = mi->cb.data;
|
||||
if (!pi) return;
|
||||
|
||||
DPIC(("Histo menu : Post select callback"));
|
||||
|
||||
if (pi->histo.popi)
|
||||
photo_popup_info_del(pi->histo.popi);
|
||||
pi->histo.popi = NULL;
|
||||
}
|
||||
|
||||
static void
|
||||
_cb_menu_deactivate_post(void *data, E_Menu *m)
|
||||
{
|
||||
Photo_Item *pi;
|
||||
|
||||
pi = data;
|
||||
pi->menu_histo = NULL;
|
||||
|
||||
DD(("deactivate cb post"));
|
||||
|
||||
e_object_del(E_OBJECT(m));
|
||||
}
|
||||
|
||||
static void
|
||||
_cb_popi_close(void *data)
|
||||
{
|
||||
Photo_Item *pi;
|
||||
|
||||
pi = data;
|
||||
pi->histo.popi = NULL;
|
||||
}
|
||||
|
|
|
@ -20,7 +20,5 @@ Picture *photo_picture_histo_change(Photo_Item *pi, int offset);
|
|||
|
||||
void photo_picture_histo_picture_del(Picture *picture);
|
||||
|
||||
void photo_picture_histo_menu_append(Photo_Item *pi, E_Menu *mn_main);
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue