This commit will change the shelf menu completly:

If you have a Gadget and open the menu over it, all gadget specific options are under a separate submenu. The menu items which the Gadget sets theirself can be put on the main menu tree or on the Gadget submenu.
If you don't see a reason for this, check the ibar menu _before_ and _after_. :)

This api change broke all modules but i already fixed them all. Hope everything works... I also shortend text strings, etc, etc.
Hope you like it! :)


SVN revision: 52041
This commit is contained in:
Miculcy Brian 2010-09-09 14:44:21 +00:00
parent e81cb900d1
commit 2f8f31fbf5
14 changed files with 261 additions and 216 deletions

View File

@ -1325,7 +1325,7 @@ e_gadcon_client_add_location_menu(E_Gadcon_Client *gcc, E_Menu *menu)
{
mn = e_menu_new();
mi = e_menu_item_new(menu);
e_menu_item_label_set(mi, _("Move this gadget to"));
e_menu_item_label_set(mi, _("Move to"));
e_util_menu_item_theme_icon_set(mi, "preferences-appearance");
e_menu_item_submenu_set(mi, mn);
e_menu_pre_activate_callback_set(mn, _e_gadcon_gadget_move_to_pre_cb, gcc);
@ -1333,80 +1333,93 @@ 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, int flags __UNUSED__)
e_gadcon_client_util_menu_items_append(E_Gadcon_Client *gcc, E_Menu *menu_main, E_Menu *menu_gadget, int flags __UNUSED__)
{
E_Menu *mn;
E_Menu *mo;
E_Menu_Item *mi;
char buf[256];
E_OBJECT_CHECK(gcc);
E_OBJECT_TYPE_CHECK(gcc, E_GADCON_CLIENT_TYPE);
if (gcc->gadcon->shelf)
{
mn = e_menu_new();
mi = e_menu_item_new(mn);
e_menu_item_label_set(mi, _("Plain"));
e_util_menu_item_theme_icon_set(mi, "enlightenment/plain");
e_menu_item_radio_group_set(mi, 1);
e_menu_item_radio_set(mi, 1);
if ((gcc->style) && (!strcmp(gcc->style, E_GADCON_CLIENT_STYLE_PLAIN)))
e_menu_item_toggle_set(mi, 1);
e_menu_item_callback_set(mi, _e_gadcon_client_cb_menu_style_plain, gcc);
mi = e_menu_item_new(mn);
e_menu_item_label_set(mi, _("Inset"));
e_util_menu_item_theme_icon_set(mi, "enlightenment/inset");
e_menu_item_radio_group_set(mi, 1);
e_menu_item_radio_set(mi, 1);
if ((gcc->style) && (!strcmp(gcc->style, E_GADCON_CLIENT_STYLE_INSET)))
e_menu_item_toggle_set(mi, 1);
e_menu_item_callback_set(mi, _e_gadcon_client_cb_menu_style_inset, gcc);
mi = e_menu_item_new(menu);
e_menu_item_label_set(mi, _("Appearance"));
e_util_menu_item_theme_icon_set(mi, "preferences-appearance");
e_menu_item_submenu_set(mi, mn);
}
if ((gcc->gadcon->shelf) || (gcc->gadcon->toolbar))
{
mi = e_menu_item_new(menu);
mi = e_menu_item_new(menu_gadget);
e_menu_item_separator_set(mi, 1);
if (!gcc->o_control)
{
mi = e_menu_item_new(menu_gadget);
e_menu_item_label_set(mi, _("Begin move/resize"));
e_util_menu_item_theme_icon_set(mi, "transform-scale");
e_menu_item_callback_set(mi, _e_gadcon_client_cb_menu_edit, gcc);
}
mi = e_menu_item_new(menu_gadget);
e_menu_item_label_set(mi, _("Resizeable"));
e_util_menu_item_theme_icon_set(mi, "transform-scale");
e_menu_item_check_set(mi, 1);
if (gcc->resizable) e_menu_item_toggle_set(mi, 1);
e_menu_item_callback_set(mi, _e_gadcon_client_cb_menu_resizable, gcc);
mi = e_menu_item_new(menu_gadget);
e_menu_item_label_set(mi, _("Automatically scroll contents"));
e_util_menu_item_theme_icon_set(mi, "transform-move");
e_menu_item_check_set(mi, 1);
if (gcc->autoscroll) e_menu_item_toggle_set(mi, 1);
e_menu_item_callback_set(mi, _e_gadcon_client_cb_menu_autoscroll, gcc);
mi = e_menu_item_new(menu);
e_menu_item_label_set(mi, _("Able to be resized"));
e_util_menu_item_theme_icon_set(mi, "transform-scale");
e_menu_item_check_set(mi, 1);
if (gcc->resizable) e_menu_item_toggle_set(mi, 1);
e_menu_item_callback_set(mi, _e_gadcon_client_cb_menu_resizable, gcc);
if (gcc->gadcon->shelf)
{
mo = e_menu_new();
mi = e_menu_item_new(menu);
mi = e_menu_item_new(mo);
e_menu_item_label_set(mi, _("Plain"));
e_util_menu_item_theme_icon_set(mi, "enlightenment/plain");
e_menu_item_radio_group_set(mi, 1);
e_menu_item_radio_set(mi, 1);
if ((gcc->style) && (!strcmp(gcc->style, E_GADCON_CLIENT_STYLE_PLAIN)))
e_menu_item_toggle_set(mi, 1);
e_menu_item_callback_set(mi, _e_gadcon_client_cb_menu_style_plain, gcc);
mi = e_menu_item_new(mo);
e_menu_item_label_set(mi, _("Inset"));
e_util_menu_item_theme_icon_set(mi, "enlightenment/inset");
e_menu_item_radio_group_set(mi, 1);
e_menu_item_radio_set(mi, 1);
if ((gcc->style) && (!strcmp(gcc->style, E_GADCON_CLIENT_STYLE_INSET)))
e_menu_item_toggle_set(mi, 1);
e_menu_item_callback_set(mi, _e_gadcon_client_cb_menu_style_inset, gcc);
mi = e_menu_item_new(menu_gadget);
e_menu_item_label_set(mi, _("Appearance"));
e_util_menu_item_theme_icon_set(mi, "preferences-appearance");
e_menu_item_submenu_set(mi, mo);
}
mi = e_menu_item_new(menu_gadget);
e_menu_item_separator_set(mi, 1);
if (!gcc->o_control)
{
mi = e_menu_item_new(menu);
e_menu_item_label_set(mi, _("Begin move/resize this gadget"));
e_util_menu_item_theme_icon_set(mi, "transform-scale");
e_menu_item_callback_set(mi, _e_gadcon_client_cb_menu_edit, gcc);
}
e_gadcon_client_add_location_menu(gcc, menu_gadget);
e_gadcon_client_add_location_menu(gcc, menu);
mi = e_menu_item_new(menu);
e_menu_item_label_set(mi, _("Remove this gadget"));
mi = e_menu_item_new(menu_gadget);
e_menu_item_label_set(mi, _("Remove"));
e_util_menu_item_theme_icon_set(mi, "list-remove");
e_menu_item_callback_set(mi, _e_gadcon_client_cb_menu_remove, gcc);
}
mi = e_menu_item_new(menu_main);
snprintf(buf, sizeof(buf), "Gadget %s", gcc->name);
e_menu_item_label_set(mi, _(buf));
e_util_menu_item_theme_icon_set(mi, "preferences-gadget"); // FIXME: icon theme
e_menu_item_submenu_set(mi, menu_gadget);
if (gcc->gadcon->menu_attach.func)
{
mi = e_menu_item_new(menu);
e_menu_item_separator_set(mi, 1);
gcc->gadcon->menu_attach.func(gcc->gadcon->menu_attach.data, gcc, menu);
if ((gcc->gadcon->shelf) || (gcc->gadcon->toolbar))
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);
}
}
@ -2524,21 +2537,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 *mn;
E_Menu *ma, *mg;
E_Zone *zone;
int cx, cy, cw, ch;
e_gadcon_locked_set(gcc->gadcon, 1);
mn = e_menu_new();
e_menu_post_deactivate_callback_set(mn, _e_gadcon_client_cb_menu_post,
ma = e_menu_new();
mg = e_menu_new();
e_menu_post_deactivate_callback_set(ma, _e_gadcon_client_cb_menu_post,
gcc);
gcc->menu = mn;
gcc->menu = ma;
e_gadcon_client_util_menu_items_append(gcc, mn, 0);
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(mn, zone,
e_menu_activate_mouse(ma, zone,
cx + ev->output.x,
cy + ev->output.y, 1, 1,
E_MENU_POP_DIRECTION_AUTO, ev->timestamp);

View File

@ -286,7 +286,7 @@ EAPI void e_gadcon_client_autoscroll_cb_set(E_Gadcon_Client *gcc, vo
EAPI void e_gadcon_client_resizable_set(E_Gadcon_Client *gcc, int resizable);
EAPI int e_gadcon_client_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, int flags);
EAPI void e_gadcon_client_util_menu_items_append(E_Gadcon_Client *gcc, E_Menu *menu_main, 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

@ -174,24 +174,26 @@ _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 *mn;
E_Menu *ma, *mg;
E_Menu_Item *mi;
int cx, cy;
mn = e_menu_new();
e_menu_post_deactivate_callback_set(mn, _menu_cb_post, inst);
battery_config->menu = mn;
ma = e_menu_new();
e_menu_post_deactivate_callback_set(ma, _menu_cb_post, inst);
battery_config->menu = ma;
mi = e_menu_item_new(mn);
mg = e_menu_new();
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, _battery_face_cb_menu_configure, NULL);
e_gadcon_client_util_menu_items_append(inst->gcc, mn, 0);
e_gadcon_client_util_menu_items_append(inst->gcc, ma, mg, 0);
e_gadcon_canvas_zone_geometry_get(inst->gcc->gadcon,
&cx, &cy, NULL, NULL);
e_menu_activate_mouse(mn,
e_menu_activate_mouse(mg,
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,24 +754,26 @@ static void
_bluez_menu_new(E_Bluez_Instance *inst, Evas_Event_Mouse_Down *ev)
{
E_Zone *zone;
E_Menu *mn;
E_Menu *ma, *mg;
E_Menu_Item *mi;
int x, y;
zone = e_util_zone_current_get(e_manager_current_get());
mn = e_menu_new();
e_menu_post_deactivate_callback_set(mn, _bluez_menu_cb_post, inst);
inst->menu = mn;
ma = e_menu_new();
e_menu_post_deactivate_callback_set(ma, _bluez_menu_cb_post, inst);
inst->menu = ma;
mi = e_menu_item_new(mn);
mg = e_menu_new();
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, _bluez_menu_cb_cfg, inst);
e_gadcon_client_util_menu_items_append(inst->gcc, mn, 0);
e_gadcon_client_util_menu_items_append(inst->gcc, ma, mg, 0);
e_gadcon_canvas_zone_geometry_get(inst->gcc->gadcon, &x, &y, NULL, NULL);
e_menu_activate_mouse(mn, zone, x + ev->output.x, y + ev->output.y,
e_menu_activate_mouse(ma, 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

@ -1211,24 +1211,26 @@ static void
_connman_menu_new(E_Connman_Instance *inst, Evas_Event_Mouse_Down *ev)
{
E_Zone *zone;
E_Menu *mn;
E_Menu *ma, *mg;
E_Menu_Item *mi;
int x, y;
zone = e_util_zone_current_get(e_manager_current_get());
mn = e_menu_new();
e_menu_post_deactivate_callback_set(mn, _connman_menu_cb_post, inst);
inst->menu = mn;
ma = e_menu_new();
e_menu_post_deactivate_callback_set(ma, _connman_menu_cb_post, inst);
inst->menu = ma;
mi = e_menu_item_new(mn);
mg = e_menu_new();
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, _connman_menu_cb_cfg, inst);
e_gadcon_client_util_menu_items_append(inst->gcc, mn, 0);
e_gadcon_client_util_menu_items_append(inst->gcc, ma, mg, 0);
e_gadcon_canvas_zone_geometry_get(inst->gcc->gadcon, &x, &y, NULL, NULL);
e_menu_activate_mouse(mn, zone, x + ev->output.x, y + ev->output.y,
e_menu_activate_mouse(ma, 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

@ -165,44 +165,44 @@ _button_cb_mouse_down(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED_
ev = event_info;
if ((ev->button == 3) && (!cpufreq_config->menu))
{
E_Menu *mn;
E_Menu *ma, *mg, *mo;
E_Menu_Item *mi;
int cx, cy;
Eina_List *l;
char buf[256];
mn = e_menu_new();
cpufreq_config->menu_poll = mn;
mo = e_menu_new();
cpufreq_config->menu_poll = mo;
mi = e_menu_item_new(mn);
mi = e_menu_item_new(mo);
e_menu_item_label_set(mi, _("Fast (4 ticks)"));
e_menu_item_radio_set(mi, 1);
e_menu_item_radio_group_set(mi, 1);
if (cpufreq_config->poll_interval <= 4) e_menu_item_toggle_set(mi, 1);
e_menu_item_callback_set(mi, _cpufreq_menu_fast, NULL);
mi = e_menu_item_new(mn);
mi = e_menu_item_new(mo);
e_menu_item_label_set(mi, _("Medium (8 ticks)"));
e_menu_item_radio_set(mi, 1);
e_menu_item_radio_group_set(mi, 1);
if (cpufreq_config->poll_interval > 4) e_menu_item_toggle_set(mi, 1);
e_menu_item_callback_set(mi, _cpufreq_menu_medium, NULL);
mi = e_menu_item_new(mn);
mi = e_menu_item_new(mo);
e_menu_item_label_set(mi, _("Normal (32 ticks)"));
e_menu_item_radio_set(mi, 1);
e_menu_item_radio_group_set(mi, 1);
if (cpufreq_config->poll_interval >= 32) e_menu_item_toggle_set(mi, 1);
e_menu_item_callback_set(mi, _cpufreq_menu_normal, NULL);
mi = e_menu_item_new(mn);
mi = e_menu_item_new(mo);
e_menu_item_label_set(mi, _("Slow (64 ticks)"));
e_menu_item_radio_set(mi, 1);
e_menu_item_radio_group_set(mi, 1);
if (cpufreq_config->poll_interval >= 64) e_menu_item_toggle_set(mi, 1);
e_menu_item_callback_set(mi, _cpufreq_menu_slow, NULL);
mi = e_menu_item_new(mn);
mi = e_menu_item_new(mo);
e_menu_item_label_set(mi, _("Very Slow (256 ticks)"));
e_menu_item_radio_set(mi, 1);
e_menu_item_radio_group_set(mi, 1);
@ -212,12 +212,12 @@ _button_cb_mouse_down(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED_
if (cpufreq_config->status->governors)
{
mn = e_menu_new();
cpufreq_config->menu_governor = mn;
mo = e_menu_new();
cpufreq_config->menu_governor = mo;
for (l = cpufreq_config->status->governors; l; l = l->next)
{
mi = e_menu_item_new(mn);
mi = e_menu_item_new(mo);
if (!strcmp(l->data, "userspace"))
e_menu_item_label_set(mi, _("Manual"));
else if (!strcmp(l->data, "ondemand"))
@ -235,25 +235,23 @@ _button_cb_mouse_down(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED_
e_menu_item_callback_set(mi, _cpufreq_menu_governor, l->data);
}
e_menu_item_separator_set(e_menu_item_new(mn), 1);
e_menu_item_separator_set(e_menu_item_new(mo), 1);
mi = e_menu_item_new(mn);
mi = e_menu_item_new(mo);
e_menu_item_label_set(mi, _("Restore CPU Power Policy"));
e_menu_item_check_set(mi, 1);
e_menu_item_toggle_set(mi, cpufreq_config->restore_governor);
e_menu_item_callback_set(mi, _cpufreq_menu_restore_governor, NULL);
mn = e_menu_new();
cpufreq_config->menu_powersave = mn;
e_menu_title_set(mn, _("Powersaving policy"));
mo = e_menu_new();
cpufreq_config->menu_powersave = mo;
for (l = cpufreq_config->status->governors; l; l = l->next)
{
if (!strcmp(l->data, "userspace"))
continue;
mi = e_menu_item_new(mn);
mi = e_menu_item_new(mo);
if (!strcmp(l->data, "ondemand"))
e_menu_item_label_set(mi, _("Automatic"));
else if (!strcmp(l->data, "conservative"))
@ -271,9 +269,9 @@ _button_cb_mouse_down(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED_
e_menu_item_callback_set(mi, _cpufreq_menu_powersave_governor, l->data);
}
e_menu_item_separator_set(e_menu_item_new(mn), 1);
e_menu_item_separator_set(e_menu_item_new(mo), 1);
mi = e_menu_item_new(mn);
mi = e_menu_item_new(mo);
e_menu_item_label_set(mi, _("Automatic powersaving"));
e_menu_item_check_set(mi, 1);
e_menu_item_toggle_set(mi, cpufreq_config->auto_powersave);
@ -283,15 +281,15 @@ _button_cb_mouse_down(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED_
if ((cpufreq_config->status->frequencies) &&
(cpufreq_config->status->can_set_frequency))
{
mn = e_menu_new();
cpufreq_config->menu_frequency = mn;
mo = e_menu_new();
cpufreq_config->menu_frequency = mo;
for (l = cpufreq_config->status->frequencies; l; l = l->next)
{
int frequency;
frequency = (long)l->data;
mi = e_menu_item_new(mn);
mi = e_menu_item_new(mo);
if (frequency < 1000000)
snprintf(buf, sizeof(buf), _("%i MHz"), frequency / 1000);
else
@ -307,39 +305,41 @@ _button_cb_mouse_down(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED_
}
}
mn = e_menu_new();
cpufreq_config->menu = mn;
e_menu_post_deactivate_callback_set(mn, _menu_cb_post, inst);
ma = e_menu_new();
cpufreq_config->menu = ma;
e_menu_post_deactivate_callback_set(ma, _menu_cb_post, inst);
mi = e_menu_item_new(mn);
mg = e_menu_new();
mi = e_menu_item_new(mg);
e_menu_item_label_set(mi, _("Time Between Updates"));
e_menu_item_submenu_set(mi, cpufreq_config->menu_poll);
if (cpufreq_config->menu_governor)
{
mi = e_menu_item_new(mn);
mi = e_menu_item_new(mg);
e_menu_item_label_set(mi, _("Set CPU Power Policy"));
e_menu_item_submenu_set(mi, cpufreq_config->menu_governor);
}
if (cpufreq_config->menu_frequency)
{
mi = e_menu_item_new(mn);
mi = e_menu_item_new(mg);
e_menu_item_label_set(mi, _("Set CPU Speed"));
e_menu_item_submenu_set(mi, cpufreq_config->menu_frequency);
}
if (cpufreq_config->menu_powersave)
{
mi = e_menu_item_new(mn);
mi = e_menu_item_new(mg);
e_menu_item_label_set(mi, _("Powersaving behavior"));
e_menu_item_submenu_set(mi, cpufreq_config->menu_powersave);
}
e_gadcon_client_util_menu_items_append(inst->gcc, mn, 0);
e_gadcon_client_util_menu_items_append(inst->gcc, ma, mg, 0);
e_gadcon_canvas_zone_geometry_get(inst->gcc->gadcon,
&cx, &cy, NULL, NULL);
e_menu_activate_mouse(mn,
e_menu_activate_mouse(ma,
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

@ -701,10 +701,20 @@ _attach_menu(void *data __UNUSED__, E_Gadcon_Client *gcc, E_Menu *menu)
//printf("Attach menu (gcc: %x id: %s) [%s]\n", gcc, gcc->cf->id, gcc->cf->style);
if (!gcc) return;
mi = e_menu_item_new(menu);
e_menu_item_separator_set(mi, 1);
/* Move / resize*/
mi = e_menu_item_new(menu);
e_menu_item_label_set(mi, _("Begin move/resize"));
e_util_menu_item_theme_icon_set(mi, "transform-scale");
e_menu_item_callback_set(mi, on_menu_edit, gcc);
/* plain / inset */
if (!gcc->cf->style)
gcc->cf->style = eina_stringshare_add(E_GADCON_CLIENT_STYLE_INSET);
/* plain / inset */
mn = e_menu_new();
mi = e_menu_item_new(mn);
e_menu_item_label_set(mi, _("Plain"));
@ -784,21 +794,21 @@ _attach_menu(void *data __UNUSED__, E_Gadcon_Client *gcc, E_Menu *menu)
e_menu_item_submenu_set(mi, mn);
e_object_del(E_OBJECT(mn));
/* Move / resize*/
mi = e_menu_item_new(menu);
e_menu_item_label_set(mi, _("Begin move/resize this gadget"));
e_util_menu_item_theme_icon_set(mi, "transform-scale");
e_menu_item_callback_set(mi, on_menu_edit, gcc);
e_menu_item_separator_set(mi, 1);
e_gadcon_client_add_location_menu(gcc, menu);
/* Remove this gadgets */
mi = e_menu_item_new(menu);
e_menu_item_label_set(mi, _("Remove this gadget"));
e_menu_item_label_set(mi, _("Remove"));
e_util_menu_item_theme_icon_set(mi, "list-remove");
e_menu_item_callback_set(mi, on_menu_delete, gcc);
/* Add other gadgets */
mi = e_menu_item_new(menu);
e_menu_item_separator_set(mi, 1);
mi = e_menu_item_new(menu);
e_menu_item_label_set(mi, _("Add other gadgets"));
e_util_menu_item_theme_icon_set(mi, "list-add");
@ -1074,14 +1084,15 @@ on_frame_click(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void
if (ev->button == 5)
{
E_Menu *mn;
E_Menu *ma, *mg;
int cx, cy, cw, ch;
mn = e_menu_new();
gcc->menu = mn;
e_gadcon_client_util_menu_items_append(gcc, mn, 0);
ma = e_menu_new();
gcc->menu = ma;
mg = e_menu_new();
e_gadcon_client_util_menu_items_append(gcc, ma, mg, 0);
e_gadcon_canvas_zone_geometry_get(gcc->gadcon, &cx, &cy, &cw, &ch);
e_menu_activate_mouse(mn,
e_menu_activate_mouse(ma,
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

@ -299,27 +299,25 @@ _ibar_cb_empty_mouse_down(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNU
b = data;
if (!ibar_config->menu)
{
E_Menu *mn;
E_Menu *ma, *mg;
E_Menu_Item *mi;
int cx, cy, cw, ch;
mn = e_menu_new();
e_menu_post_deactivate_callback_set(mn, _ibar_cb_menu_post, NULL);
ibar_config->menu = mn;
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(mn);
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, b);
mi = e_menu_item_new(mn);
e_menu_item_separator_set(mi, 1);
e_gadcon_client_util_menu_items_append(b->inst->gcc, mn, 0);
e_gadcon_client_util_menu_items_append(b->inst->gcc, ma, mg, 0);
e_gadcon_canvas_zone_geometry_get(b->inst->gcc->gadcon,
&cx, &cy, &cw, &ch);
e_menu_activate_mouse(mn,
e_menu_activate_mouse(ma,
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);
@ -764,6 +762,7 @@ _ibar_cb_icon_mouse_down(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUS
{
Evas_Event_Mouse_Down *ev;
IBar_Icon *ic;
char buf[256];
ev = event_info;
ic = data;
@ -777,55 +776,62 @@ _ibar_cb_icon_mouse_down(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUS
}
else if ((ev->button == 3) && (!ibar_config->menu))
{
E_Menu *mn;
E_Menu *ma, *mg, *mo;
E_Menu_Item *mi;
int cx, cy;
mn = e_menu_new();
e_menu_post_deactivate_callback_set(mn, _ibar_cb_menu_post, NULL);
ibar_config->menu = mn;
ma = e_menu_new();
e_menu_post_deactivate_callback_set(ma, _ibar_cb_menu_post, NULL);
ibar_config->menu = ma;
/* FIXME: other icon options go here too */
mi = e_menu_item_new(mn);
e_menu_item_label_set(mi, _("Change Icon Properties"));
mo = e_menu_new();
mi = e_menu_item_new(mo);
e_menu_item_label_set(mi, _("Properties"));
e_util_menu_item_theme_icon_set(mi, "configure");
e_menu_item_callback_set(mi, _ibar_cb_menu_icon_properties, ic);
mi = e_menu_item_new(mn);
e_menu_item_label_set(mi, _("Remove Icon"));
mi = e_menu_item_new(mo);
e_menu_item_label_set(mi, _("Remove"));
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(mn);
e_menu_item_separator_set(mi, 1);
mi = e_menu_item_new(ma);
snprintf(buf, sizeof(buf), "Icon %s", ic->app->name);
e_menu_item_label_set(mi, _(buf));
e_util_menu_item_theme_icon_set(mi, "preferences-icon");
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(mn);
e_menu_item_label_set(mi, _("Add An Icon"));
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);
}
if (e_configure_registry_exists("applications/new_application"))
{
mi = e_menu_item_new(mn);
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(mn);
e_menu_item_separator_set(mi, 1);
}
mi = e_menu_item_new(mn);
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, mn, 0);
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(mn,
e_menu_activate_mouse(ma,
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,27 +292,26 @@ _ibox_cb_empty_mouse_down(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNU
b = data;
if (!ibox_config->menu)
{
E_Menu *mn;
E_Menu *ma, *mg;
E_Menu_Item *mi;
int cx, cy;
mn = e_menu_new();
e_menu_post_deactivate_callback_set(mn, _ibox_cb_menu_post, NULL);
ibox_config->menu = mn;
ma = e_menu_new();
e_menu_post_deactivate_callback_set(ma, _ibox_cb_menu_post, NULL);
ibox_config->menu = ma;
mi = e_menu_item_new(mn);
mg = e_menu_new();
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, _ibox_cb_menu_configuration, b);
mi = e_menu_item_new(mn);
e_menu_item_separator_set(mi, 1);
e_gadcon_client_util_menu_items_append(b->inst->gcc, mn, 0);
e_gadcon_client_util_menu_items_append(b->inst->gcc, ma, mg, 0);
e_gadcon_canvas_zone_geometry_get(b->inst->gcc->gadcon,
&cx, &cy, NULL, NULL);
e_menu_activate_mouse(mn,
e_menu_activate_mouse(ma,
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);
@ -686,28 +685,27 @@ _ibox_cb_icon_mouse_down(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUS
}
else if ((ev->button == 3) && (!ibox_config->menu))
{
E_Menu *mn;
E_Menu *ma, *mg;
E_Menu_Item *mi;
int cx, cy;
mn = e_menu_new();
e_menu_post_deactivate_callback_set(mn, _ibox_cb_menu_post, NULL);
ibox_config->menu = mn;
ma = e_menu_new();
e_menu_post_deactivate_callback_set(ma, _ibox_cb_menu_post, NULL);
ibox_config->menu = ma;
mg = e_menu_new();
/* FIXME: other icon options go here too */
mi = e_menu_item_new(mn);
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, _ibox_cb_menu_configuration, ic->ibox);
mi = e_menu_item_new(mn);
e_menu_item_separator_set(mi, 1);
e_gadcon_client_util_menu_items_append(ic->ibox->inst->gcc, mn, 0);
e_gadcon_client_util_menu_items_append(ic->ibox->inst->gcc, ma, mg, 0);
e_gadcon_canvas_zone_geometry_get(ic->ibox->inst->gcc->gadcon,
&cx, &cy, NULL, NULL);
e_menu_activate_mouse(mn,
e_menu_activate_mouse(ma,
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

@ -627,24 +627,26 @@ static void
_mixer_menu_new(E_Mixer_Instance *inst, Evas_Event_Mouse_Down *ev)
{
E_Zone *zone;
E_Menu *mn;
E_Menu *ma, *mg;
E_Menu_Item *mi;
int x, y;
zone = e_util_zone_current_get(e_manager_current_get());
mn = e_menu_new();
e_menu_post_deactivate_callback_set(mn, _mixer_menu_cb_post, inst);
inst->menu = mn;
ma = e_menu_new();
e_menu_post_deactivate_callback_set(ma, _mixer_menu_cb_post, inst);
inst->menu = ma;
mi = e_menu_item_new(mn);
mg = e_menu_new();
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, _mixer_menu_cb_cfg, inst);
e_gadcon_client_util_menu_items_append(inst->gcc, mn, 0);
e_gadcon_client_util_menu_items_append(inst->gcc, ma, mg, 0);
e_gadcon_canvas_zone_geometry_get(inst->gcc->gadcon, &x, &y, NULL, NULL);
e_menu_activate_mouse(mn, zone, x + ev->output.x, y + ev->output.y,
e_menu_activate_mouse(ma, 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,18 +225,20 @@ static void
_ofono_menu_new(E_Ofono_Instance *inst, Evas_Event_Mouse_Down *ev)
{
E_Zone *zone;
E_Menu *mn;
E_Menu *ma, *mg;
int x, y;
zone = e_util_zone_current_get(e_manager_current_get());
mn = e_menu_new();
e_menu_post_deactivate_callback_set(mn, _ofono_menu_cb_post, inst);
inst->menu = mn;
ma = e_menu_new();
e_menu_post_deactivate_callback_set(ma, _ofono_menu_cb_post, inst);
inst->menu = ma;
e_gadcon_client_util_menu_items_append(inst->gcc, mn, 0);
mg = e_menu_new();
e_gadcon_client_util_menu_items_append(inst->gcc, ma, mg, 0);
e_gadcon_canvas_zone_geometry_get(inst->gcc->gadcon, &x, &y, NULL, NULL);
e_menu_activate_mouse(mn, zone, x + ev->output.x, y + ev->output.y,
e_menu_activate_mouse(ma, 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,32 +781,34 @@ _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 *mn;
E_Menu *ma, *mg;
E_Menu_Item *mi;
int cx, cy;
mn = e_menu_new();
e_menu_post_deactivate_callback_set(mn, _menu_cb_post, inst);
pager_config->menu = mn;
mi = e_menu_item_new(mn);
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);
ma = e_menu_new();
e_menu_post_deactivate_callback_set(ma, _menu_cb_post, inst);
pager_config->menu = ma;
if (e_configure_registry_exists("screen/virtual_desktops"))
{
mi = e_menu_item_new(mn);
mi = e_menu_item_new(ma);
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);
}
e_gadcon_client_util_menu_items_append(inst->gcc, mn, 0);
mg = e_menu_new();
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, _pager_inst_cb_menu_configure, NULL);
e_gadcon_client_util_menu_items_append(inst->gcc, ma, mg, 0);
e_gadcon_canvas_zone_geometry_get(inst->gcc->gadcon, &cx, &cy,
NULL, NULL);
e_menu_activate_mouse(mn,
e_menu_activate_mouse(ma,
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,18 +143,20 @@ static void
_systray_menu_new(Instance *inst, Evas_Event_Mouse_Down *ev)
{
E_Zone *zone;
E_Menu *mn;
E_Menu *ma, *mg;
int x, y;
zone = e_util_zone_current_get(e_manager_current_get());
mn = e_menu_new();
e_menu_post_deactivate_callback_set(mn, _systray_menu_cb_post, inst);
inst->menu = mn;
ma = e_menu_new();
e_menu_post_deactivate_callback_set(ma, _systray_menu_cb_post, inst);
inst->menu = ma;
e_gadcon_client_util_menu_items_append(inst->gcc, mn, 0);
mg = e_menu_new();
e_gadcon_client_util_menu_items_append(inst->gcc, ma, mg, 0);
e_gadcon_canvas_zone_geometry_get(inst->gcc->gadcon, &x, &y, NULL, NULL);
e_menu_activate_mouse(mn, zone, x + ev->output.x, y + ev->output.y,
e_menu_activate_mouse(ma, zone, x + ev->output.x, y + ev->output.y,
1, 1, E_MENU_POP_DIRECTION_AUTO, ev->timestamp);
}

View File

@ -217,24 +217,26 @@ _temperature_face_cb_mouse_down(void *data, Evas *e __UNUSED__, Evas_Object *obj
ev = event_info;
if ((ev->button == 3) && (!inst->menu))
{
E_Menu *mn;
E_Menu *ma, *mg;
E_Menu_Item *mi;
int cx, cy;
mn = e_menu_new();
e_menu_post_deactivate_callback_set(mn, _temperature_face_cb_post_menu, inst);
inst->menu = mn;
ma = e_menu_new();
e_menu_post_deactivate_callback_set(ma, _temperature_face_cb_post_menu, inst);
inst->menu = ma;
mi = e_menu_item_new(mn);
mg = e_menu_new();
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, _temperature_face_cb_menu_configure, inst);
e_gadcon_client_util_menu_items_append(inst->gcc, mn, 0);
e_gadcon_client_util_menu_items_append(inst->gcc, ma, mg, 0);
e_gadcon_canvas_zone_geometry_get(inst->gcc->gadcon,
&cx, &cy, NULL, NULL);
e_menu_activate_mouse(mn,
e_menu_activate_mouse(ma,
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);