static void _mail_cb_mouse_down (void *data, Evas * e, Evas_Object * obj, void *event_info) { Instance *inst = data; Evas_Event_Mouse_Down *ev = event_info; Eina_List *l; if (!inst) return; if ((ev->button == 3) && (!mail_config->menu)) { E_Menu *m; E_Menu_Item *mi; int x, y, w, h; char buf[1024]; m = e_menu_new (); 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, _mail_menu_cb_configure, inst); m = e_gadcon_client_util_menu_items_append (inst->gcc, m, 0); e_menu_post_deactivate_callback_set (m, _mail_menu_cb_post, inst); mail_config->menu = m; if ((inst->ci->boxes) && (eina_list_count (inst->ci->boxes) > 0)) { mi = NULL; snprintf (buf, sizeof (buf), "%s/module.edj", e_module_dir_get (mail_config->module)); for (l = inst->ci->boxes; l; l = l->next) { Config_Box *cb; cb = l->data; if (!cb) continue; mi = e_menu_item_new_relative (m, mi); snprintf (buf, sizeof (buf), "%s: %d/%d", cb->name, cb->num_new, cb->num_total); e_menu_item_label_set (mi, buf); if ((cb->exec) && (cb->use_exec)) e_menu_item_callback_set (mi, _mail_menu_cb_exec, cb); } if (mi) { mi = e_menu_item_new_relative(m, mi); e_menu_item_separator_set(mi, 1); } } e_gadcon_canvas_zone_geometry_get (inst->gcc->gadcon, &x, &y, &w, &h); e_menu_activate_mouse (m, e_util_zone_current_get (e_manager_current_get ()), 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); } else if (ev->button == 1) _mail_cb_check (inst); }
static void _button_cb_mouse_down(void *data, Evas *e, Evas_Object *obj, void *event_info) { Instance *inst; Evas_Event_Mouse_Down *ev; inst = data; ev = event_info; if ((ev->button == 3) && (!alarm_config->menu)) { E_Menu *m; E_Menu_Item *mi; int cx, cy, cw, ch; int nb_snoozed = 0; m = e_menu_new(); mi = e_menu_item_new(m); e_menu_item_label_set(mi, D_("Add an alarm")); e_menu_item_callback_set(mi, _menu_cb_alarm_add, NULL); if (!alarm_config->theme) e_util_menu_item_theme_icon_set(mi, THEME_ICON_ALARM_ON); else e_menu_item_icon_edje_set(mi, alarm_config->theme, THEME_ICON_ALARM_ON); mi = e_menu_item_new(m); e_menu_item_separator_set(mi, 1); 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, _menu_cb_configure, NULL); m = e_gadcon_client_util_menu_items_append(inst->gcc, m, 0); /* snooze menu */ if (alarm_config->alarms_state == ALARM_STATE_RINGING) { Eina_List *l; for (l=alarm_config->alarms; l; l=eina_list_next(l)) { Alarm *al; al = eina_list_data_get(l); if (al->state == ALARM_STATE_RINGING) { char buf[30]; snprintf(buf, sizeof(buf), D_("Snooze %s"), al->name); mi = e_menu_item_new_relative(m, NULL); e_menu_item_label_set(mi, buf); e_menu_item_callback_set(mi, _menu_cb_alarm_snooze, al); if (!alarm_config->theme) e_util_menu_item_theme_icon_set(mi, THEME_ICON_SNOOZE); else e_menu_item_icon_edje_set(mi, alarm_config->theme, THEME_ICON_SNOOZE); if (al->snooze.remember) { snprintf(buf, sizeof(buf), D_("Snooze %.14s of %.2d:%.2d"), al->name, al->snooze.hour, al->snooze.minute); mi = e_menu_item_new_relative(m, NULL); e_menu_item_label_set(mi, buf); e_menu_item_callback_set(mi, _menu_cb_alarm_snooze, al); } nb_snoozed = 1; } } } if (!nb_snoozed) { mi = e_menu_item_new_relative(m, NULL); e_menu_item_label_set(mi, D_("Snooze (No alarm to delay)")); if (!alarm_config->theme) e_util_menu_item_theme_icon_set(mi, THEME_ICON_SNOOZE); else e_menu_item_icon_edje_set(mi, alarm_config->theme, THEME_ICON_SNOOZE); } e_menu_post_deactivate_callback_set(m, _menu_cb_deactivate_post, inst); alarm_config->menu = m; e_gadcon_canvas_zone_geometry_get(inst->gcc->gadcon, &cx, &cy, &cw, &ch); 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); evas_event_feed_mouse_up(inst->gcc->gadcon->evas, ev->button, EVAS_BUTTON_NONE, ev->timestamp, NULL); } }
void ngi_border_menu_show(Ngi_Box *box, E_Border *bd, Evas_Coord x, Evas_Coord y, int dir, Ecore_X_Time timestamp) { E_Menu *m; E_Menu_Item *mi; Ng *ng = box->ng; if (bd->border_menu) return; m = e_menu_new(); e_menu_category_set(m,"border"); e_menu_category_data_set("border",bd); e_object_data_set(E_OBJECT(m), bd); bd->border_menu = m; e_menu_post_deactivate_callback_set(m, _ng_border_cb_border_menu_end, ng); /* FIXME */ if ((!bd->lock_user_fullscreen) && (!bd->shaded)) { mi = e_menu_item_new(m); e_menu_item_label_set(mi, D_("Fullscreen")); e_menu_item_check_set(mi, 1); e_menu_item_toggle_set(mi, bd->fullscreen); e_menu_item_callback_set(mi, _ng_border_menu_cb_fullscreen, bd); e_menu_item_icon_edje_set(mi, e_theme_edje_file_get("base/theme/borders", "e/widgets/border/default/fullscreen"), "e/widgets/border/default/fullscreen"); } mi = e_menu_item_new(m); e_menu_item_separator_set(mi, 1); if (!bd->lock_close) { mi = e_menu_item_new(m); e_menu_item_label_set(mi, D_("Close")); e_menu_item_callback_set(mi, _ng_border_menu_cb_close, bd); e_menu_item_icon_edje_set(mi, e_theme_edje_file_get("base/theme/borders", "e/widgets/border/default/close"), "e/widgets/border/default/close"); } if (!bd->internal) { mi = e_menu_item_new(m); e_menu_item_separator_set(mi, 1); if (!(((bd->client.icccm.min_w == bd->client.icccm.max_w) && (bd->client.icccm.min_h == bd->client.icccm.max_h)) || (bd->lock_user_maximize))) { if ((!bd->lock_user_maximize) && (!bd->shaded) && ((bd->layer == 50) || (bd->layer == 100) || (bd->layer == 150))) { mi = e_menu_item_new(m); e_menu_item_label_set(mi, D_("Maximized")); e_menu_item_check_set(mi, 1); e_menu_item_toggle_set(mi, (bd->maximized & E_MAXIMIZE_DIRECTION) == E_MAXIMIZE_BOTH); if((bd->maximized & E_MAXIMIZE_DIRECTION) == E_MAXIMIZE_BOTH) e_menu_item_callback_set(mi, _ng_border_menu_cb_unmaximize, bd); else e_menu_item_callback_set(mi, _ng_border_menu_cb_maximize, bd); e_menu_item_icon_edje_set(mi, e_theme_edje_file_get("base/theme/borders", "e/widgets/border/default/maximize"), "e/widgets/border/default/maximize"); } } } if (!bd->lock_user_iconify) { mi = e_menu_item_new(m); if(bd->iconic) e_menu_item_label_set(mi, D_("Uniconify")); else e_menu_item_label_set(mi, D_("Iconify")); e_menu_item_callback_set(mi, _ng_border_menu_cb_iconify, bd); e_menu_item_icon_edje_set(mi, e_theme_edje_file_get("base/theme/borders", "e/widgets/border/default/minimize"), "e/widgets/border/default/minimize"); } e_menu_activate_mouse(m, ng->zone, ng->zone->x + x, ng->zone->y + y, 1, 1, dir, timestamp); }