Add in the right-click menu for Set Wallpaper & Set Desk Name.
Set wallpaper works, set desk name is in progress. Remove a todo which was done already. Some formatting. SVN revision: 27112
This commit is contained in:
parent
86add777e6
commit
2af09ac83b
|
@ -2,9 +2,6 @@
|
|||
* vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2
|
||||
*/
|
||||
|
||||
/*
|
||||
* XXX need to detect when bg's change and update
|
||||
*/
|
||||
#include "e.h"
|
||||
|
||||
typedef struct _E_Widget_Data E_Widget_Data;
|
||||
|
@ -25,14 +22,17 @@ struct _E_Widget_Data
|
|||
typedef struct _E_Widget_Desk_Data E_Widget_Desk_Data;
|
||||
struct _E_Widget_Desk_Data
|
||||
{
|
||||
E_Menu *menu;
|
||||
Evas_Object *thumb;
|
||||
int container, zone;
|
||||
int x, y;
|
||||
};
|
||||
|
||||
static void _e_wid_reconfigure(E_Widget_Data *wd);
|
||||
static void _e_wid_desk_cb_menu(void *data, Evas_Object *obj, const char *signal, const char *source);
|
||||
static void _e_wid_desk_cb_menu(void *data, Evas *e, Evas_Object *obj, void *event_info);
|
||||
static int _e_wid_cb_bg_update(void *data, int type, void *event);
|
||||
static void _menu_cb_post(void *data, E_Menu *m);
|
||||
static void _menu_cb_wallpaper(void *data, E_Menu *m, E_Menu_Item *mi);
|
||||
|
||||
static void
|
||||
_e_wid_del_hook(Evas_Object *obj)
|
||||
|
@ -108,7 +108,7 @@ e_widget_deskpreview_desk_add(Evas *evas, E_Zone *zone, int x, int y, int tw, in
|
|||
evas_object_show(o);
|
||||
e_widget_sub_object_add(obj, o);
|
||||
overlay = o;
|
||||
edje_object_signal_callback_add(o, "mouse,down,1", "e.event.menu", _e_wid_desk_cb_menu, dd);
|
||||
evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_DOWN, _e_wid_desk_cb_menu, dd);
|
||||
|
||||
o = e_thumb_icon_add(evas);
|
||||
e_icon_fill_inside_set(o, 0);
|
||||
|
@ -123,7 +123,6 @@ e_widget_deskpreview_desk_add(Evas *evas, E_Zone *zone, int x, int y, int tw, in
|
|||
return obj;
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
_e_wid_reconfigure(E_Widget_Data *wd)
|
||||
{
|
||||
|
@ -252,14 +251,44 @@ e_widget_desk_preview_add(Evas *evas, int nx, int ny)
|
|||
return obj;
|
||||
}
|
||||
|
||||
static void
|
||||
_e_wid_desk_cb_menu(void *data, Evas_Object *obj, const char *signal, const char *source)
|
||||
static void
|
||||
_e_wid_desk_cb_menu(void *data, Evas *e, Evas_Object *obj, void *event_info)
|
||||
{
|
||||
E_Widget_Desk_Data *dd;
|
||||
|
||||
Evas_Event_Mouse_Down *ev;
|
||||
|
||||
dd = data;
|
||||
/* XXX change this to display a menu with the option to set the desktop name or change the desktop bg */
|
||||
e_int_config_wallpaper_desk(dd->container, dd->zone, dd->x, dd->y);
|
||||
ev = event_info;
|
||||
if ((ev->button == 3) && (!dd->menu))
|
||||
{
|
||||
E_Zone *zone;
|
||||
E_Menu *m;
|
||||
E_Menu_Item *mi;
|
||||
int x, y;
|
||||
|
||||
m = e_menu_new();
|
||||
e_menu_post_deactivate_callback_set(m, _menu_cb_post, dd);
|
||||
dd->menu = m;
|
||||
|
||||
mi = e_menu_item_new(m);
|
||||
e_menu_item_label_set(mi, _("Set Wallpaper"));
|
||||
e_util_menu_item_edje_icon_set(mi, "enlightenment/background");
|
||||
e_menu_item_callback_set(mi, _menu_cb_wallpaper, dd);
|
||||
|
||||
/*
|
||||
e_menu_item_label_set(mi, _("Set Desk Name"));
|
||||
e_util_menu_item_edje_icon_set(mi, "enlightenment/desktops");
|
||||
*/
|
||||
|
||||
zone = e_util_zone_current_get(e_manager_current_get());
|
||||
ecore_x_pointer_xy_get(zone->container->win, &x, &y);
|
||||
|
||||
e_menu_activate_mouse(m, zone,
|
||||
x, y, 1, 1,
|
||||
E_MENU_POP_DIRECTION_DOWN, ev->timestamp);
|
||||
e_util_evas_fake_mouse_up_later(evas_object_evas_get(dd->thumb),
|
||||
ev->button);
|
||||
}
|
||||
}
|
||||
|
||||
static int
|
||||
|
@ -296,3 +325,24 @@ _e_wid_cb_bg_update(void *data, int type, void *event)
|
|||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
static void
|
||||
_menu_cb_post(void *data, E_Menu *m)
|
||||
{
|
||||
E_Widget_Desk_Data *dd;
|
||||
|
||||
dd = data;
|
||||
if (!dd->menu) return;
|
||||
e_object_del(E_OBJECT(dd->menu));
|
||||
dd->menu = NULL;
|
||||
}
|
||||
|
||||
static void
|
||||
_menu_cb_wallpaper(void *data, E_Menu *m, E_Menu_Item *mi)
|
||||
{
|
||||
E_Widget_Desk_Data *dd;
|
||||
|
||||
dd = data;
|
||||
if (!dd) return;
|
||||
e_int_config_wallpaper_desk(dd->container, dd->zone, dd->x, dd->y);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue