e17: add option to have gadcon client settings menu in toplevel again.

added e_menu_item_new_relative(E_Menu, E_Menu_Item *rel) which appends 
 new item to rel or prepends it when rel is NULL.

changed e_gadcon_util_client_menu_append to to take only the gadget menu
 and returns the new toplevel menu that should be shown by gcc
 depending on the setting this is a new menu with gadget menu as submenu
 or the gadet_menu with gadget menu items appended

updated e-modules-extra comes in a minute


SVN revision: 57826
This commit is contained in:
Hannes Janetzek 2011-03-17 17:08:36 +00:00
parent 95c6c09a33
commit 7f457f1911
29 changed files with 222 additions and 186 deletions

View File

@ -423,6 +423,7 @@ group "E_Config" struct {
value "menu_eap_name_show" int: 1;
value "menu_eap_generic_show" int: 1;
value "menu_eap_comment_show" int: 0;
value "menu_gadcon_client_toplevel" int: 0;
value "fullscreen_policy" int: 0;
value "exebuf_term_cmd" string: "xterm -hold -e";
value "use_app_icon" int: 0;

View File

@ -1350,6 +1350,7 @@ group "E_Config" struct {
value "menu_eap_name_show" int: 1;
value "menu_eap_generic_show" int: 0;
value "menu_eap_comment_show" int: 0;
value "menu_gadcon_client_toplevel" int: 0;
value "fullscreen_policy" int: 0;
value "exebuf_term_cmd" string: "xterm -hold -e";
value "use_app_icon" int: 0;

View File

@ -484,6 +484,7 @@ group "E_Config" struct {
value "menu_eap_name_show" int: 1;
value "menu_eap_generic_show" int: 1;
value "menu_eap_comment_show" int: 0;
value "menu_gadcon_client_toplevel" int: 0;
value "fullscreen_policy" int: 0;
value "exebuf_max_exe_list" int: 20;
value "exebuf_max_eap_list" int: 20;

View File

@ -1429,6 +1429,7 @@ group "E_Config" struct {
value "menu_eap_name_show" int: 1;
value "menu_eap_generic_show" int: 1;
value "menu_eap_comment_show" int: 0;
value "menu_gadcon_client_toplevel" int: 0;
value "fullscreen_policy" int: 0;
value "exebuf_term_cmd" string: "xterm -hold -e";
value "use_app_icon" int: 0;

View File

@ -1493,6 +1493,7 @@ group "E_Config" struct {
value "menu_eap_name_show" int: 1;
value "menu_eap_generic_show" int: 1;
value "menu_eap_comment_show" int: 0;
value "menu_gadcon_client_toplevel" int: 0;
value "fullscreen_policy" int: 0;
value "exebuf_term_cmd" string: "xterm -hold -e";
value "use_app_icon" int: 0;

View File

@ -1516,6 +1516,7 @@ group "E_Config" struct {
value "menu_eap_name_show" int: 1;
value "menu_eap_generic_show" int: 1;
value "menu_eap_comment_show" int: 0;
value "menu_gadcon_client_toplevel" int: 0;
value "fullscreen_policy" int: 0;
value "exebuf_max_exe_list" int: 20;
value "exebuf_max_eap_list" int: 20;

View File

@ -1651,6 +1651,7 @@ group "E_Config" struct {
value "menu_eap_name_show" int: 1;
value "menu_eap_generic_show" int: 1;
value "menu_eap_comment_show" int: 0;
value "menu_gadcon_client_toplevel" int: 0;
value "fullscreen_policy" int: 0;
value "exebuf_term_cmd" string: "xterm -hold -e";
value "use_app_icon" int: 0;

View File

@ -843,7 +843,8 @@ e_config_init(void)
E_CONFIG_VAL(D, T, menu_favorites_show, INT);
E_CONFIG_VAL(D, T, menu_apps_show, INT);
E_CONFIG_VAL(D, T, menu_gadcon_client_toplevel, INT);
E_CONFIG_VAL(D, T, ping_clients_interval, INT);
E_CONFIG_VAL(D, T, cache_flush_poll_interval, INT);
@ -1286,6 +1287,7 @@ e_config_load(void)
E_CONFIG_LIMIT(e_config->menu_favorites_show, 0, 1);
E_CONFIG_LIMIT(e_config->menu_apps_show, 0, 1);
E_CONFIG_LIMIT(e_config->menu_gadcon_client_toplevel, 0, 1);
E_CONFIG_LIMIT(e_config->ping_clients_interval, 16, 1024);

View File

@ -188,6 +188,7 @@ struct _E_Config
int menu_eap_comment_show; // GUI
int menu_favorites_show; // GUI
int menu_apps_show; // GUI
int menu_gadcon_client_toplevel; // GUI
int fullscreen_policy; // GUI
const char *exebuf_term_cmd; // GUI
Eina_List *color_classes; // GUI

View File

@ -1370,16 +1370,21 @@ e_gadcon_client_add_location_menu(E_Gadcon_Client *gcc, E_Menu *menu)
}
}
EAPI void
e_gadcon_client_util_menu_items_append(E_Gadcon_Client *gcc, E_Menu *menu_main, E_Menu *menu_gadget, int flags __UNUSED__)
EAPI E_Menu *
e_gadcon_client_util_menu_items_append(E_Gadcon_Client *gcc, E_Menu *menu_gadget, int flags __UNUSED__)
{
E_Menu *mo;
E_Menu *mo, *menu_main = NULL;
E_Menu_Item *mi;
char buf[256];
E_OBJECT_CHECK(gcc);
E_OBJECT_TYPE_CHECK(gcc, E_GADCON_CLIENT_TYPE);
if (e_config->menu_gadcon_client_toplevel)
menu_main = menu_gadget;
else
menu_main = e_menu_new();
if ((gcc->gadcon->shelf) || (gcc->gadcon->toolbar))
{
if (e_menu_item_nth(menu_gadget, 0))
@ -1387,7 +1392,7 @@ e_gadcon_client_util_menu_items_append(E_Gadcon_Client *gcc, E_Menu *menu_main,
mi = e_menu_item_new(menu_gadget);
e_menu_item_separator_set(mi, 1);
}
if (!gcc->o_control)
if (!gcc->o_control)
{
mi = e_menu_item_new(menu_gadget);
e_menu_item_label_set(mi, _("Begin move/resize"));
@ -1448,24 +1453,36 @@ e_gadcon_client_util_menu_items_append(E_Gadcon_Client *gcc, E_Menu *menu_main,
e_menu_item_callback_set(mi, _e_gadcon_client_cb_menu_remove, gcc);
}
mi = e_menu_item_new(menu_main);
if (gcc->client_class->func.label)
snprintf(buf, sizeof(buf), "Gadget %s",
gcc->client_class->func.label((E_Gadcon_Client_Class *)gcc->client_class));
else
snprintf(buf, sizeof(buf), "Gadget %s", gcc->name);
e_menu_item_label_set(mi, _(buf));
e_menu_item_realize_callback_set(mi, _e_gadcon_client_cb_menu_pre, gcc);
e_menu_item_submenu_set(mi, menu_gadget);
if (!e_config->menu_gadcon_client_toplevel)
{
mi = e_menu_item_new(menu_main);
if (gcc->client_class->func.label)
snprintf(buf, sizeof(buf), "Gadget %s",
gcc->client_class->func.label((E_Gadcon_Client_Class *)gcc->client_class));
else
snprintf(buf, sizeof(buf), "Gadget %s", gcc->name);
e_menu_item_label_set(mi, _(buf));
e_menu_item_realize_callback_set(mi, _e_gadcon_client_cb_menu_pre, gcc);
e_menu_item_submenu_set(mi, menu_gadget);
}
if (gcc->gadcon->menu_attach.func)
{
if ((gcc->gadcon->shelf) || (gcc->gadcon->toolbar))
gcc->gadcon->menu_attach.func(gcc->gadcon->menu_attach.data, gcc, menu_main);
{
if (e_config->menu_gadcon_client_toplevel)
{
mi = e_menu_item_new(menu_main);
e_menu_item_separator_set(mi, 1);
}
gcc->gadcon->menu_attach.func(gcc->gadcon->menu_attach.data, gcc, menu_main);
}
else
gcc->gadcon->menu_attach.func(gcc->gadcon->menu_attach.data, gcc, menu_gadget);
}
return menu_main;
}
EAPI void
@ -2593,22 +2610,22 @@ _e_gadcon_client_cb_mouse_down(void *data, Evas *e __UNUSED__, Evas_Object *obj
if (gcc->menu) return;
if (ev->button == 3)
{
E_Menu *ma, *mg;
E_Menu *m;
E_Zone *zone;
int cx, cy, cw, ch;
e_gadcon_locked_set(gcc->gadcon, 1);
ma = e_menu_new();
mg = e_menu_new();
e_menu_post_deactivate_callback_set(ma, _e_gadcon_client_cb_menu_post,
gcc);
gcc->menu = ma;
m = e_menu_new();
m = e_gadcon_client_util_menu_items_append(gcc, m, 0);
e_menu_post_deactivate_callback_set(m, _e_gadcon_client_cb_menu_post,
gcc);
gcc->menu = m;
e_gadcon_client_util_menu_items_append(gcc, ma, mg, 0);
e_gadcon_canvas_zone_geometry_get(gcc->gadcon, &cx, &cy, &cw, &ch);
zone = gcc->gadcon->zone;
if (!zone) zone = e_util_zone_current_get(e_manager_current_get());
e_menu_activate_mouse(ma, zone,
e_menu_activate_mouse(m, zone,
cx + ev->output.x,
cy + ev->output.y, 1, 1,
E_MENU_POP_DIRECTION_AUTO, ev->timestamp);

View File

@ -287,7 +287,7 @@ EAPI void e_gadcon_client_resizable_set(E_Gadcon_Client *gcc, int re
EAPI int e_gadcon_client_geometry_get(E_Gadcon_Client *gcc, int *x, int *y, int *w, int *h);
EAPI int e_gadcon_client_viewport_geometry_get(E_Gadcon_Client *gcc, int *x, int *y, int *w, int *h);
EAPI E_Zone *e_gadcon_client_zone_get(E_Gadcon_Client *gcc);
EAPI void e_gadcon_client_util_menu_items_append(E_Gadcon_Client *gcc, E_Menu *menu_main, E_Menu *menu_gadget, int flags);
EAPI E_Menu *e_gadcon_client_util_menu_items_append(E_Gadcon_Client *gcc, E_Menu *menu_gadget, int flags);
EAPI void e_gadcon_client_util_menu_attach(E_Gadcon_Client *gcc);
EAPI void e_gadcon_locked_set(E_Gadcon *gc, int lock);
EAPI void e_gadcon_urgent_show(E_Gadcon *gc);

View File

@ -176,7 +176,7 @@ _basic_create(E_Config_Dialog *cfd __UNUSED__, Evas *evas, E_Config_Dialog_Data
/* size */
ol = e_widget_list_add(evas, 0, 0);
ow = e_widget_slider_add(evas, 1, 0, _("Height (%3.0f pixels)"), 4, 120, 4, 0,
ow = e_widget_slider_add(evas, 1, 0, _("Height (%3.0f pixels)"), 4, 256, 4, 0,
NULL, &(cfdata->size), 100);
e_widget_list_object_append(ol, ow, 1, 1, 0.5);
ow = e_widget_check_add(evas, _("Shrink to Content Width"),
@ -224,7 +224,7 @@ _basic_create(E_Config_Dialog *cfd __UNUSED__, Evas *evas, E_Config_Dialog_Data
cfdata->autohide_list = eina_list_append(cfdata->autohide_list, ow);
e_widget_disabled_set(ow, !cfdata->autohide);
e_widget_list_object_append(ol, ow, 1, 1, 0.5);
ow = e_widget_slider_add(evas, 1, 0, _("%.1f seconds"), 0.2, 6.0, 0.2, 0,
ow = e_widget_slider_add(evas, 1, 0, _("%.2f seconds"), 0.05, 6.0, 0.05, 0,
&(cfdata->hide_duration), NULL, 100);
cfdata->autohide_list = eina_list_append(cfdata->autohide_list, ow);
e_widget_disabled_set(ow, !cfdata->autohide);

View File

@ -583,6 +583,39 @@ e_menu_item_new(E_Menu *m)
return mi;
}
EAPI E_Menu_Item *
e_menu_item_new_relative(E_Menu *m, E_Menu_Item *rel)
{
E_Menu_Item *mi;
E_OBJECT_CHECK_RETURN(m, NULL);
E_OBJECT_TYPE_CHECK_RETURN(m, E_MENU_TYPE, NULL);
if (rel)
{
E_OBJECT_CHECK_RETURN(rel, NULL);
E_OBJECT_TYPE_CHECK_RETURN(rel, E_MENU_ITEM_TYPE, NULL);
if (rel->menu != m) return NULL;
}
mi = E_OBJECT_ALLOC(E_Menu_Item, E_MENU_ITEM_TYPE, _e_menu_item_free);
mi->menu = m;
if (rel)
{
Eina_List *l;
l = eina_list_data_find_list(m->items, rel);
m->items = eina_list_append_relative_list(m->items, mi, l);
mi->list_position = eina_list_data_find_list(m->items, mi);
}
else
{
m->items = eina_list_prepend(m->items, mi);
mi->list_position = m->items;
}
return mi;
}
EAPI E_Menu_Item *
e_menu_item_nth(E_Menu *m, int n)
{

View File

@ -181,6 +181,7 @@ EAPI void e_menu_post_deactivate_callback_set(E_Menu *m, void (*func) (
EAPI E_Menu *e_menu_root_get(E_Menu *m);
EAPI E_Menu_Item *e_menu_item_new(E_Menu *m);
EAPI E_Menu_Item *e_menu_item_new_relative(E_Menu *m, E_Menu_Item *rel);
EAPI E_Menu_Item *e_menu_item_nth(E_Menu *m, int n);
EAPI int e_menu_item_num_get(const E_Menu_Item *mi);
EAPI void e_menu_item_icon_file_set(E_Menu_Item *mi, const char *icon);

View File

@ -1164,17 +1164,12 @@ _e_shelf_menu_append(E_Shelf *es, E_Menu *mn)
{
E_Menu_Item *mi;
E_Menu *subm;
const char *name;
char buf[256];
name = e_shelf_orient_string_get (es);
snprintf(buf, sizeof(buf), "Shelf %s", name);
e_shelf_locked_set(es, 1);
subm = e_menu_new();
mi = e_menu_item_new(mn);
e_menu_item_label_set(mi, buf);
e_menu_item_label_set(mi, _("Shelf Settings"));
e_util_menu_item_theme_icon_set(mi, "preferences-desktop-shelf");
e_menu_pre_activate_callback_set(subm, _e_shelf_menu_pre_cb, es);
e_object_free_attach_func_set(E_OBJECT(mi), _e_shelf_menu_item_free);

View File

@ -174,26 +174,23 @@ _button_cb_mouse_down(void *data, Evas *e, Evas_Object *obj, void *event_info)
ev = event_info;
if ((ev->button == 3) && (!battery_config->menu))
{
E_Menu *ma, *mg;
E_Menu *m;
E_Menu_Item *mi;
int cx, cy;
ma = e_menu_new();
e_menu_post_deactivate_callback_set(ma, _menu_cb_post, inst);
battery_config->menu = ma;
mg = e_menu_new();
mi = e_menu_item_new(mg);
m = e_menu_new();
mi = e_menu_item_new(m);
e_menu_item_label_set(mi, _("Settings"));
e_util_menu_item_theme_icon_set(mi, "configure");
e_menu_item_callback_set(mi, _battery_face_cb_menu_configure, NULL);
e_gadcon_client_util_menu_items_append(inst->gcc, ma, mg, 0);
m = e_gadcon_client_util_menu_items_append(inst->gcc, m, 0);
e_menu_post_deactivate_callback_set(m, _menu_cb_post, inst);
battery_config->menu = m;
e_gadcon_canvas_zone_geometry_get(inst->gcc->gadcon,
&cx, &cy, NULL, NULL);
e_menu_activate_mouse(ma,
e_menu_activate_mouse(m,
e_util_zone_current_get(e_manager_current_get()),
cx + ev->output.x, cy + ev->output.y, 1, 1,
E_MENU_POP_DIRECTION_DOWN, ev->timestamp);

View File

@ -754,26 +754,24 @@ static void
_bluez_menu_new(E_Bluez_Instance *inst, Evas_Event_Mouse_Down *ev)
{
E_Zone *zone;
E_Menu *ma, *mg;
E_Menu *m;
E_Menu_Item *mi;
int x, y;
zone = e_util_zone_current_get(e_manager_current_get());
ma = e_menu_new();
e_menu_post_deactivate_callback_set(ma, _bluez_menu_cb_post, inst);
inst->menu = ma;
mg = e_menu_new();
mi = e_menu_item_new(mg);
m = e_menu_new();
mi = e_menu_item_new(m);
e_menu_item_label_set(mi, _("Settings"));
e_util_menu_item_theme_icon_set(mi, "configure");
e_menu_item_callback_set(mi, _bluez_menu_cb_cfg, inst);
e_gadcon_client_util_menu_items_append(inst->gcc, ma, mg, 0);
m = e_gadcon_client_util_menu_items_append(inst->gcc, m, 0);
e_menu_post_deactivate_callback_set(m, _bluez_menu_cb_post, inst);
inst->menu = m;
e_gadcon_canvas_zone_geometry_get(inst->gcc->gadcon, &x, &y, NULL, NULL);
e_menu_activate_mouse(ma, zone, x + ev->output.x, y + ev->output.y,
e_menu_activate_mouse(m, zone, x + ev->output.x, y + ev->output.y,
1, 1, E_MENU_POP_DIRECTION_AUTO, ev->timestamp);
evas_event_feed_mouse_up(inst->gcc->gadcon->evas, ev->button,
EVAS_BUTTON_NONE, ev->timestamp, NULL);

Binary file not shown.

View File

@ -5,6 +5,7 @@ struct _E_Config_Dialog_Data
{
int show_favs, show_apps;
int show_name, show_generic, show_comment;
int menu_gadcon_client_toplevel;
double scroll_speed, fast_mouse_move_threshhold;
double click_drag_timeout;
int autoscroll_margin, autoscroll_cursor_margin;
@ -69,6 +70,7 @@ _fill_data(E_Config_Dialog_Data *cfdata __UNUSED__)
cfdata->show_name = e_config->menu_eap_name_show;
cfdata->show_generic = e_config->menu_eap_generic_show;
cfdata->show_comment = e_config->menu_eap_comment_show;
cfdata->menu_gadcon_client_toplevel = e_config->menu_gadcon_client_toplevel;
cfdata->scroll_speed = e_config->menus_scroll_speed;
cfdata->fast_mouse_move_threshhold =
e_config->menus_fast_mouse_move_threshhold;
@ -108,6 +110,11 @@ _basic_create(E_Config_Dialog *cfd __UNUSED__, Evas *evas, E_Config_Dialog_Data
e_widget_framelist_object_append(of, ow);
e_widget_list_object_append(o, of, 1, 0, 0.5);
of = e_widget_framelist_add(evas, _("Gadgets"), 0);
ow = e_widget_check_add(evas, _("Show gadget settings in top-level"), &(cfdata->menu_gadcon_client_toplevel));
e_widget_framelist_object_append(of, ow);
e_widget_list_object_append(o, of, 1, 0, 0.5);
return o;
}
@ -119,6 +126,7 @@ _basic_apply(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata)
e_config->menu_eap_name_show = cfdata->show_name;
e_config->menu_eap_generic_show = cfdata->show_generic;
e_config->menu_eap_comment_show = cfdata->show_comment;
e_config->menu_gadcon_client_toplevel = cfdata->menu_gadcon_client_toplevel;
e_config_save_queue();
return 1;
}
@ -130,7 +138,8 @@ _basic_check_changed(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfda
(e_config->menu_apps_show != cfdata->show_apps) ||
(e_config->menu_eap_name_show != cfdata->show_name) ||
(e_config->menu_eap_generic_show != cfdata->show_generic) ||
(e_config->menu_eap_comment_show != cfdata->show_comment));
(e_config->menu_eap_comment_show != cfdata->show_comment) ||
(e_config->menu_gadcon_client_toplevel != cfdata->menu_gadcon_client_toplevel));
}
static void

View File

@ -1211,26 +1211,23 @@ static void
_connman_menu_new(E_Connman_Instance *inst, Evas_Event_Mouse_Down *ev)
{
E_Zone *zone;
E_Menu *ma, *mg;
E_Menu *m;
E_Menu_Item *mi;
int x, y;
zone = e_util_zone_current_get(e_manager_current_get());
ma = e_menu_new();
e_menu_post_deactivate_callback_set(ma, _connman_menu_cb_post, inst);
inst->menu = ma;
mg = e_menu_new();
mi = e_menu_item_new(mg);
m = e_menu_new();
mi = e_menu_item_new(m);
e_menu_item_label_set(mi, _("Settings"));
e_util_menu_item_theme_icon_set(mi, "configure");
e_menu_item_callback_set(mi, _connman_menu_cb_cfg, inst);
e_gadcon_client_util_menu_items_append(inst->gcc, ma, mg, 0);
m = e_gadcon_client_util_menu_items_append(inst->gcc, m, 0);
e_menu_post_deactivate_callback_set(m, _connman_menu_cb_post, inst);
inst->menu = m;
e_gadcon_canvas_zone_geometry_get(inst->gcc->gadcon, &x, &y, NULL, NULL);
e_menu_activate_mouse(ma, zone, x + ev->output.x, y + ev->output.y,
e_menu_activate_mouse(m, zone, x + ev->output.x, y + ev->output.y,
1, 1, E_MENU_POP_DIRECTION_AUTO, ev->timestamp);
evas_event_feed_mouse_up(inst->gcc->gadcon->evas, ev->button,
EVAS_BUTTON_NONE, ev->timestamp, NULL);

View File

@ -347,20 +347,18 @@ _button_cb_mouse_down(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED_
}
else if (ev->button == 3)
{
E_Menu *ma, *mg;
E_Menu *m;
int cx, cy;
ma = e_menu_new();
mg = e_menu_new();
cpufreq_config->menu = ma;
e_menu_post_deactivate_callback_set(ma, _menu_cb_post, NULL);
e_gadcon_client_util_menu_items_append(inst->gcc, ma, mg, 0);
m = e_menu_new();
m = e_gadcon_client_util_menu_items_append(inst->gcc, m, 0);
cpufreq_config->menu = m;
e_menu_post_deactivate_callback_set(m, _menu_cb_post, NULL);
e_gadcon_canvas_zone_geometry_get(inst->gcc->gadcon,
&cx, &cy, NULL, NULL);
e_menu_activate_mouse(ma,
e_menu_activate_mouse(m,
e_util_zone_current_get(e_manager_current_get()),
cx + ev->output.x, cy + ev->output.y, 1, 1,
E_MENU_POP_DIRECTION_AUTO, ev->timestamp);

View File

@ -1062,15 +1062,14 @@ on_frame_click(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void
if (ev->button == 5)
{
E_Menu *ma, *mg;
E_Menu *m;
int cx, cy, cw, ch;
ma = e_menu_new();
gcc->menu = ma;
mg = e_menu_new();
e_gadcon_client_util_menu_items_append(gcc, ma, mg, 0);
m = e_menu_new();
m = e_gadcon_client_util_menu_items_append(gcc, m, 0);
gcc->menu = m;
e_gadcon_canvas_zone_geometry_get(gcc->gadcon, &cx, &cy, &cw, &ch);
e_menu_activate_mouse(ma,
e_menu_activate_mouse(m,
e_util_zone_current_get(e_manager_current_get()),
cx + ev->output.x, cy + ev->output.y, 1, 1,
E_MENU_POP_DIRECTION_DOWN, ev->timestamp);

View File

@ -300,25 +300,23 @@ _ibar_cb_empty_mouse_down(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNU
b = data;
if (!ibar_config->menu)
{
E_Menu *ma, *mg;
E_Menu *m;
E_Menu_Item *mi;
int cx, cy, cw, ch;
ma = e_menu_new();
mg = e_menu_new();
e_menu_post_deactivate_callback_set(ma, _ibar_cb_menu_post, NULL);
ibar_config->menu = ma;
mi = e_menu_item_new(mg);
m = e_menu_new();
mi = e_menu_item_new(m);
e_menu_item_label_set(mi, _("Settings"));
e_util_menu_item_theme_icon_set(mi, "configure");
e_menu_item_callback_set(mi, _ibar_cb_menu_configuration, b);
e_gadcon_client_util_menu_items_append(b->inst->gcc, ma, mg, 0);
m = e_gadcon_client_util_menu_items_append(b->inst->gcc, m, 0);
e_menu_post_deactivate_callback_set(m, _ibar_cb_menu_post, NULL);
ibar_config->menu = m;
e_gadcon_canvas_zone_geometry_get(b->inst->gcc->gadcon,
&cx, &cy, &cw, &ch);
e_menu_activate_mouse(ma,
e_menu_activate_mouse(m,
e_util_zone_current_get(e_manager_current_get()),
cx + ev->output.x, cy + ev->output.y, 1, 1,
E_MENU_POP_DIRECTION_DOWN, ev->timestamp);
@ -776,18 +774,44 @@ _ibar_cb_icon_mouse_down(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUS
}
else if ((ev->button == 3) && (!ibar_config->menu))
{
E_Menu *ma, *mg, *mo;
E_Menu *m, *mo;
E_Menu_Item *mi;
char buf[256];
int cx, cy;
ma = e_menu_new();
e_menu_post_deactivate_callback_set(ma, _ibar_cb_menu_post, NULL);
ibar_config->menu = ma;
m = e_menu_new();
/* FIXME: other icon options go here too */
mo = e_menu_new();
if (e_configure_registry_exists("applications/new_application"))
{
mi = e_menu_item_new(m);
e_menu_item_label_set(mi, _("Create new Icon"));
e_util_menu_item_theme_icon_set(mi, "document-new");
e_menu_item_callback_set(mi, _ibar_cb_menu_icon_new, NULL);
mi = e_menu_item_new(m);
e_menu_item_separator_set(mi, 1);
}
if (e_configure_registry_exists("applications/ibar_applications"))
{
mi = e_menu_item_new(m);
e_menu_item_label_set(mi, _("Contents"));
e_util_menu_item_theme_icon_set(mi, "list-add");
e_menu_item_callback_set(mi, _ibar_cb_menu_icon_add, NULL);
}
mi = e_menu_item_new(m);
e_menu_item_label_set(mi, _("Settings"));
e_util_menu_item_theme_icon_set(mi, "configure");
e_menu_item_callback_set(mi, _ibar_cb_menu_configuration, ic->ibar);
m = e_gadcon_client_util_menu_items_append(ic->ibar->inst->gcc, m, 0);
e_menu_post_deactivate_callback_set(m, _ibar_cb_menu_post, NULL);
ibar_config->menu = m;
mi = e_menu_item_new(mo);
e_menu_item_label_set(mi, _("Properties"));
e_util_menu_item_theme_icon_set(mi, "configure");
@ -798,7 +822,7 @@ _ibar_cb_icon_mouse_down(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUS
e_util_menu_item_theme_icon_set(mi, "list-remove");
e_menu_item_callback_set(mi, _ibar_cb_menu_icon_remove, ic);
mi = e_menu_item_new(ma);
mi = e_menu_item_new_relative(m, NULL);
snprintf(buf, sizeof(buf), "Icon %s", ic->app->name);
e_menu_item_label_set(mi, _(buf));
e_util_desktop_menu_item_icon_add(ic->app,
@ -806,35 +830,9 @@ _ibar_cb_icon_mouse_down(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUS
mi);
e_menu_item_submenu_set(mi, mo);
mg = e_menu_new();
if (e_configure_registry_exists("applications/new_application"))
{
mi = e_menu_item_new(mg);
e_menu_item_label_set(mi, _("Create new Icon"));
e_util_menu_item_theme_icon_set(mi, "document-new");
e_menu_item_callback_set(mi, _ibar_cb_menu_icon_new, NULL);
mi = e_menu_item_new(mg);
e_menu_item_separator_set(mi, 1);
}
if (e_configure_registry_exists("applications/ibar_applications"))
{
mi = e_menu_item_new(mg);
e_menu_item_label_set(mi, _("Contents"));
e_util_menu_item_theme_icon_set(mi, "list-add");
e_menu_item_callback_set(mi, _ibar_cb_menu_icon_add, NULL);
}
mi = e_menu_item_new(mg);
e_menu_item_label_set(mi, _("Settings"));
e_util_menu_item_theme_icon_set(mi, "configure");
e_menu_item_callback_set(mi, _ibar_cb_menu_configuration, ic->ibar);
e_gadcon_client_util_menu_items_append(ic->ibar->inst->gcc, ma, mg, 0);
e_gadcon_canvas_zone_geometry_get(ic->ibar->inst->gcc->gadcon,
&cx, &cy, NULL, NULL);
e_menu_activate_mouse(ma,
e_menu_activate_mouse(m,
e_util_zone_current_get(e_manager_current_get()),
cx + ev->output.x, cy + ev->output.y, 1, 1,
E_MENU_POP_DIRECTION_DOWN, ev->timestamp);

View File

@ -292,26 +292,24 @@ _ibox_cb_empty_mouse_down(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNU
b = data;
if (!ibox_config->menu)
{
E_Menu *ma, *mg;
E_Menu *m;
E_Menu_Item *mi;
int cx, cy;
ma = e_menu_new();
e_menu_post_deactivate_callback_set(ma, _ibox_cb_menu_post, NULL);
ibox_config->menu = ma;
mg = e_menu_new();
mi = e_menu_item_new(mg);
m = e_menu_new();
mi = e_menu_item_new(m);
e_menu_item_label_set(mi, _("Settings"));
e_util_menu_item_theme_icon_set(mi, "configure");
e_menu_item_callback_set(mi, _ibox_cb_menu_configuration, b);
e_gadcon_client_util_menu_items_append(b->inst->gcc, ma, mg, 0);
m = e_gadcon_client_util_menu_items_append(b->inst->gcc, m, 0);
e_menu_post_deactivate_callback_set(m, _ibox_cb_menu_post, NULL);
ibox_config->menu = m;
e_gadcon_canvas_zone_geometry_get(b->inst->gcc->gadcon,
&cx, &cy, NULL, NULL);
e_menu_activate_mouse(ma,
e_menu_activate_mouse(m,
e_util_zone_current_get(e_manager_current_get()),
cx + ev->output.x, cy + ev->output.y, 1, 1,
E_MENU_POP_DIRECTION_DOWN, ev->timestamp);
@ -685,27 +683,25 @@ _ibox_cb_icon_mouse_down(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUS
}
else if ((ev->button == 3) && (!ibox_config->menu))
{
E_Menu *ma, *mg;
E_Menu *m;
E_Menu_Item *mi;
int cx, cy;
ma = e_menu_new();
e_menu_post_deactivate_callback_set(ma, _ibox_cb_menu_post, NULL);
ibox_config->menu = ma;
mg = e_menu_new();
m = e_menu_new();
/* FIXME: other icon options go here too */
mi = e_menu_item_new(mg);
mi = e_menu_item_new(m);
e_menu_item_label_set(mi, _("Settings"));
e_util_menu_item_theme_icon_set(mi, "configure");
e_menu_item_callback_set(mi, _ibox_cb_menu_configuration, ic->ibox);
e_gadcon_client_util_menu_items_append(ic->ibox->inst->gcc, ma, mg, 0);
m = e_gadcon_client_util_menu_items_append(ic->ibox->inst->gcc, m, 0);
e_menu_post_deactivate_callback_set(m, _ibox_cb_menu_post, NULL);
ibox_config->menu = m;
e_gadcon_canvas_zone_geometry_get(ic->ibox->inst->gcc->gadcon,
&cx, &cy, NULL, NULL);
e_menu_activate_mouse(ma,
e_menu_activate_mouse(m,
e_util_zone_current_get(e_manager_current_get()),
cx + ev->output.x, cy + ev->output.y, 1, 1,
E_MENU_POP_DIRECTION_DOWN, ev->timestamp);

View File

@ -665,26 +665,25 @@ static void
_mixer_menu_new(E_Mixer_Instance *inst, Evas_Event_Mouse_Down *ev)
{
E_Zone *zone;
E_Menu *ma, *mg;
E_Menu *m;
E_Menu_Item *mi;
int x, y;
zone = e_util_zone_current_get(e_manager_current_get());
ma = e_menu_new();
e_menu_post_deactivate_callback_set(ma, _mixer_menu_cb_post, inst);
inst->menu = ma;
m = e_menu_new();
mg = e_menu_new();
mi = e_menu_item_new(mg);
mi = e_menu_item_new(m);
e_menu_item_label_set(mi, _("Settings"));
e_util_menu_item_theme_icon_set(mi, "configure");
e_menu_item_callback_set(mi, _mixer_menu_cb_cfg, inst);
e_gadcon_client_util_menu_items_append(inst->gcc, ma, mg, 0);
m = e_gadcon_client_util_menu_items_append(inst->gcc, m, 0);
e_menu_post_deactivate_callback_set(m, _mixer_menu_cb_post, inst);
inst->menu = m;
e_gadcon_canvas_zone_geometry_get(inst->gcc->gadcon, &x, &y, NULL, NULL);
e_menu_activate_mouse(ma, zone, x + ev->output.x, y + ev->output.y,
e_menu_activate_mouse(m, zone, x + ev->output.x, y + ev->output.y,
1, 1, E_MENU_POP_DIRECTION_AUTO, ev->timestamp);
evas_event_feed_mouse_up(inst->gcc->gadcon->evas, ev->button,
EVAS_BUTTON_NONE, ev->timestamp, NULL);

View File

@ -225,20 +225,17 @@ static void
_ofono_menu_new(E_Ofono_Instance *inst, Evas_Event_Mouse_Down *ev)
{
E_Zone *zone;
E_Menu *ma, *mg;
E_Menu *m;
int x, y;
zone = e_util_zone_current_get(e_manager_current_get());
ma = e_menu_new();
e_menu_post_deactivate_callback_set(ma, _ofono_menu_cb_post, inst);
inst->menu = ma;
mg = e_menu_new();
e_gadcon_client_util_menu_items_append(inst->gcc, ma, mg, 0);
m = e_menu_new();
m = e_gadcon_client_util_menu_items_append(inst->gcc, m, 0);
e_menu_post_deactivate_callback_set(m, _ofono_menu_cb_post, inst);
inst->menu = m;
e_gadcon_canvas_zone_geometry_get(inst->gcc->gadcon, &x, &y, NULL, NULL);
e_menu_activate_mouse(ma, zone, x + ev->output.x, y + ev->output.y,
e_menu_activate_mouse(m, zone, x + ev->output.x, y + ev->output.y,
1, 1, E_MENU_POP_DIRECTION_AUTO, ev->timestamp);
evas_event_feed_mouse_up(inst->gcc->gadcon->evas, ev->button,
EVAS_BUTTON_NONE, ev->timestamp, NULL);

View File

@ -781,34 +781,32 @@ _button_cb_mouse_down(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED_
ev = event_info;
if ((ev->button == 3) && (!pager_config->menu))
{
E_Menu *ma, *mg;
E_Menu *m;
E_Menu_Item *mi;
int cx, cy;
ma = e_menu_new();
e_menu_post_deactivate_callback_set(ma, _menu_cb_post, inst);
pager_config->menu = ma;
m = e_menu_new();
if (e_configure_registry_exists("screen/virtual_desktops"))
{
mi = e_menu_item_new(ma);
mi = e_menu_item_new(m);
e_menu_item_label_set(mi, _("Virtual Desktops Settings"));
e_util_menu_item_theme_icon_set(mi, "preferences-desktop");
e_menu_item_callback_set(mi, _pager_inst_cb_menu_virtual_desktops_dialog, inst);
}
mg = e_menu_new();
mi = e_menu_item_new(mg);
mi = e_menu_item_new(m);
e_menu_item_label_set(mi, _("Settings"));
e_util_menu_item_theme_icon_set(mi, "configure");
e_menu_item_callback_set(mi, _pager_inst_cb_menu_configure, NULL);
e_gadcon_client_util_menu_items_append(inst->gcc, ma, mg, 0);
m = e_gadcon_client_util_menu_items_append(inst->gcc, m, 0);
e_menu_post_deactivate_callback_set(m, _menu_cb_post, inst);
pager_config->menu = m;
e_gadcon_canvas_zone_geometry_get(inst->gcc->gadcon, &cx, &cy,
NULL, NULL);
e_menu_activate_mouse(ma,
e_menu_activate_mouse(m,
e_util_zone_current_get(e_manager_current_get()),
cx + ev->output.x, cy + ev->output.y, 1, 1,
E_MENU_POP_DIRECTION_DOWN, ev->timestamp);

View File

@ -143,20 +143,17 @@ static void
_systray_menu_new(Instance *inst, Evas_Event_Mouse_Down *ev)
{
E_Zone *zone;
E_Menu *ma, *mg;
E_Menu *m;
int x, y;
zone = e_util_zone_current_get(e_manager_current_get());
ma = e_menu_new();
e_menu_post_deactivate_callback_set(ma, _systray_menu_cb_post, inst);
inst->menu = ma;
mg = e_menu_new();
e_gadcon_client_util_menu_items_append(inst->gcc, ma, mg, 0);
m = e_menu_new();
m = e_gadcon_client_util_menu_items_append(inst->gcc, m, 0);
e_menu_post_deactivate_callback_set(m, _systray_menu_cb_post, inst);
inst->menu = m;
e_gadcon_canvas_zone_geometry_get(inst->gcc->gadcon, &x, &y, NULL, NULL);
e_menu_activate_mouse(ma, zone, x + ev->output.x, y + ev->output.y,
e_menu_activate_mouse(m, zone, x + ev->output.x, y + ev->output.y,
1, 1, E_MENU_POP_DIRECTION_AUTO, ev->timestamp);
}

View File

@ -217,26 +217,23 @@ _temperature_face_cb_mouse_down(void *data, Evas *e __UNUSED__, Evas_Object *obj
ev = event_info;
if ((ev->button == 3) && (!inst->menu))
{
E_Menu *ma, *mg;
E_Menu *m;
E_Menu_Item *mi;
int cx, cy;
ma = e_menu_new();
e_menu_post_deactivate_callback_set(ma, _temperature_face_cb_post_menu, inst);
inst->menu = ma;
mg = e_menu_new();
mi = e_menu_item_new(mg);
m = e_menu_new();
mi = e_menu_item_new(m);
e_menu_item_label_set(mi, _("Settings"));
e_util_menu_item_theme_icon_set(mi, "configure");
e_menu_item_callback_set(mi, _temperature_face_cb_menu_configure, inst);
e_gadcon_client_util_menu_items_append(inst->gcc, ma, mg, 0);
m = e_gadcon_client_util_menu_items_append(inst->gcc, m, 0);
e_menu_post_deactivate_callback_set(m, _temperature_face_cb_post_menu, inst);
inst->menu = m;
e_gadcon_canvas_zone_geometry_get(inst->gcc->gadcon,
&cx, &cy, NULL, NULL);
e_menu_activate_mouse(ma,
e_menu_activate_mouse(m,
e_util_zone_current_get(e_manager_current_get()),
cx + ev->output.x, cy + ev->output.y, 1, 1,
E_MENU_POP_DIRECTION_AUTO, ev->timestamp);