示例#1
0
    static void
_gc_shutdown(E_Gadcon_Client *gcc)
{
    Instance *inst;

    inst = gcc->data;

    exalt_config->instances = evas_list_remove(exalt_config->instances, inst);

    if (exalt_config->menu)
    {
        e_menu_post_deactivate_callback_set(exalt_config->menu, NULL, NULL);
        e_menu_pre_activate_callback_set(exalt_config->menu, NULL, NULL);
        e_object_del(E_OBJECT(exalt_config->menu));
        exalt_config->menu = NULL;
    }

    if (inst->o_button)
    {
        evas_object_event_callback_del(inst->o_button, EVAS_CALLBACK_MOUSE_DOWN,
                _cb_mouse_down);

        evas_object_del(inst->o_button);
    }

    exalt_dbus_notify_set( exalt_config->conn, NULL, NULL);
    E_FREE(inst);
}
示例#2
0
文件: e_mod_main.c 项目: Limsik/e17
EAPI int
e_modapi_shutdown (E_Module * m)
{
   ut_config->module = NULL;
   e_gadcon_provider_unregister (&_gc_class);

   if (ut_config->config_dialog)
     e_object_del (E_OBJECT (ut_config->config_dialog));

   if (ut_config->menu)
     {
	e_menu_post_deactivate_callback_set (ut_config->menu, NULL, NULL);
	e_object_del (E_OBJECT (ut_config->menu));
	ut_config->menu = NULL;
    }
   while (ut_config->items)
     {
	Config_Item *ci;

	ci = ut_config->items->data;
	ut_config->items =
	  eina_list_remove_list (ut_config->items, ut_config->items);

	if (ci->id) eina_stringshare_del (ci->id);

	E_FREE(ci);
    }

   E_FREE(ut_config);
   E_CONFIG_DD_FREE (conf_item_edd);
   E_CONFIG_DD_FREE (conf_edd);

   return 1;
}
示例#3
0
static void
_wlan_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) && (!wlan_config->menu))
    {
      E_Menu *m;
      E_Menu_Item *mi;
      int x, y, w, h;

      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, _wlan_menu_cb_configure, inst);

      m = e_gadcon_client_util_menu_items_append (inst->gcc, m, 0);
      e_menu_post_deactivate_callback_set (m, _wlan_menu_cb_post, inst);
      wlan_config->menu = m;
      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_DOWN, ev->timestamp);
      evas_event_feed_mouse_up (inst->gcc->gadcon->evas, ev->button,
				EVAS_BUTTON_NONE, ev->timestamp, NULL);
    }
}
示例#4
0
文件: e_mod_gadcon.c 项目: Limsik/e17
static void
_gc_cb_mouse_down(void *data, Evas *evas, Evas_Object *obj, void *event)
{
   Instance *inst;
   Evas_Event_Mouse_Down *ev;

   if (!(inst = data)) return;
   ev = event;
   if ((ev->button == 3) && (!inst->menu))
     {
        E_Menu *m;
        E_Menu_Item *mi;
        E_Zone *zone;
        int x = 0, y = 0;

        zone = e_util_zone_current_get(e_manager_current_get());

        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, "configure");
        e_menu_item_callback_set(mi, _menu_cb_configure, inst);

        m = e_gadcon_client_util_menu_items_append(inst->gcc, m, 0);
        e_menu_post_deactivate_callback_set(m, _gc_cb_menu_post, inst);
        inst->menu = m;

        e_gadcon_canvas_zone_geometry_get(inst->gcc->gadcon, &x, &y, NULL, NULL);
        e_menu_activate_mouse(m, zone, x + ev->output.x, y + ev->output.y,
                              1, 1, E_MENU_POP_DIRECTION_AUTO, ev->timestamp);
     }
}
示例#5
0
EAPI int
e_modapi_shutdown (E_Module * m)
{
   char *player;

   empris_config->module = NULL;
   e_gadcon_provider_unregister (&_gc_class);

   if (conn)
     {
	if (cb_name_owner_changed) e_dbus_signal_handler_del(conn, cb_name_owner_changed);
	e_dbus_connection_close(conn);
     }

   EINA_LIST_FREE(players, player)
     eina_stringshare_del(player);
  
   if (empris_config->config_dialog)
     e_object_del (E_OBJECT (empris_config->config_dialog));
   if (empris_config->menu)
     {
	e_menu_post_deactivate_callback_set (empris_config->menu, NULL, NULL);
	e_object_del (E_OBJECT (empris_config->menu));
	empris_config->menu = NULL;
     }

   while (empris_config->items)
     {
	Config_Item *ci;

	ci = empris_config->items->data;
	empris_config->items =
	  eina_list_remove_list (empris_config->items, empris_config->items);
	if (ci->id)
	  eina_stringshare_del (ci->id);
	free (ci);
	ci = NULL;
     }

   free (empris_config);
   empris_config = NULL;
   E_CONFIG_DD_FREE (conf_item_edd);
   E_CONFIG_DD_FREE (conf_edd);
   return 1;
}
示例#6
0
/* local function prototypes */
static void 
_e_mod_ind_win_cb_free(Ind_Win *iwin) 
{
   Ecore_Event_Handler *hdl;

   /* delete the handlers */
   EINA_LIST_FREE(iwin->hdls, hdl)
     ecore_event_handler_del(hdl);

   /* delete the menu */
   if (iwin->menu) 
     {
        e_menu_post_deactivate_callback_set(iwin->menu, NULL, NULL);
        e_object_del(E_OBJECT(iwin->menu));
     }
   iwin->menu = NULL;

   /* delete the gadget container */
   if (iwin->gadcon) e_object_del(E_OBJECT(iwin->gadcon));
   iwin->gadcon = NULL;

   /* delete the objects */
   if (iwin->o_base) evas_object_del(iwin->o_base);
   iwin->o_base = NULL;
   if (iwin->o_event) evas_object_del(iwin->o_event);
   iwin->o_event = NULL;

   /* tell conformant apps our position and size */
   ecore_x_e_illume_indicator_geometry_set(iwin->zone->black_win, 0, 0, 0, 0);

   if (iwin->popup) e_object_del(E_OBJECT(iwin->popup));
   iwin->popup = NULL;

   /* delete the window */
   if (iwin->win) e_object_del(E_OBJECT(iwin->win));
   iwin->win = NULL;

   /* free the allocated object */
   E_FREE(iwin);
}
EAPI int
e_modapi_shutdown(E_Module *m)
{
   e_gadcon_provider_unregister((const E_Gadcon_Client_Class *)&_gadcon_class);
   
   if (alarm_config->alarms)
     {
        while (eina_list_count(alarm_config->alarms))
          {
             Alarm *al;
             al = eina_list_data_get(alarm_config->alarms);
             alarm_alarm_del(al);
          }
        eina_list_free(alarm_config->alarms);
     }
   if (alarm_config->alarms_ring_etimer)
     ecore_timer_del(alarm_config->alarms_ring_etimer);
   if (alarm_config->alarms_program_default)
     eina_stringshare_del(alarm_config->alarms_program_default);

   if (alarm_config->theme)
     free(alarm_config->theme);
   if (alarm_config->config_dialog) 
     e_object_del(E_OBJECT(alarm_config->config_dialog));
   if (alarm_config->config_dialog_alarm_new) 
     e_object_del(E_OBJECT(alarm_config->config_dialog_alarm_new));
   if (alarm_config->menu)
     {
	e_menu_post_deactivate_callback_set(alarm_config->menu , NULL, NULL);
	e_object_del(E_OBJECT(alarm_config->menu));
     }

   E_FREE(alarm_config);
   E_CONFIG_DD_FREE(_alarms_edd);
   E_CONFIG_DD_FREE(_conf_edd);

   return 1;
}
示例#8
0
文件: e_mod_gadcon.c 项目: Limsik/e17
static void
_gc_shutdown(E_Gadcon_Client *gcc)
{
   Instance *inst;

   inst = gcc->data;
   inst->ci->inst = NULL;
   weather_cfg->instances = eina_list_remove(weather_cfg->instances, inst);

   if (inst->menu)
     {
        e_menu_post_deactivate_callback_set(inst->menu, NULL, NULL);
        e_object_del(E_OBJECT(inst->menu));
        inst->menu = NULL;
     }
   if (inst->obj)
     {
        evas_object_event_callback_del(inst->obj, EVAS_CALLBACK_MOUSE_DOWN,
                                       _gc_cb_mouse_down);
        evas_object_del(inst->obj);
     }
   E_FREE(inst);
}
示例#9
0
文件: itask_menu.c 项目: Limsik/e17
static void
_itask_menu_cb_mouse_down(void *data, Evas *e, Evas_Object *obj, void *event_info)
{
   Evas_Event_Mouse_Down *ev;
   Itask *it;
   E_Menu *m;
   E_Menu_Item *mi;

   int cx, cy, cw, ch;
   Evas_Coord x, y, w, h;
   int dir;

   it = data;
   ev = event_info;

   if (ev->button == 3)
     {
	m = e_menu_new();
	e_menu_post_deactivate_callback_set(m, _itask_menu_cb_config_post, NULL);

	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, "enlightenment/configuration");
	e_menu_item_callback_set(mi, _itask_menu_cb_configuration, it);

	m = e_gadcon_client_util_menu_items_append(it->gcc, m, 0);
     }
   else if (ev->button == 1)
     {
	/* if(it->ci->menu_all_window) */
	m = itask_menu_items_menu(it->items);
	/* else
	 *   m = itask_menu_items_menu(it->items_menu); */
     }
   if (m)
     {
	e_menu_post_deactivate_callback_set(m, _itask_menu_cb_post, NULL);
	evas_object_geometry_get(it->o_button, &x, &y, &w, &h);
	e_gadcon_canvas_zone_geometry_get(it->gcc->gadcon,
					  &cx, &cy, &cw, &ch);
	x += cx;
	y += cy;

	dir = E_MENU_POP_DIRECTION_AUTO;
	switch (it->gcc->gadcon->orient)
	  {
	   case E_GADCON_ORIENT_TOP:
	   case E_GADCON_ORIENT_CORNER_TL:
	   case E_GADCON_ORIENT_CORNER_TR:
	      dir = E_MENU_POP_DIRECTION_DOWN;
	      break;
	   case E_GADCON_ORIENT_BOTTOM:
	   case E_GADCON_ORIENT_CORNER_BL:
	   case E_GADCON_ORIENT_CORNER_BR:
	      dir = E_MENU_POP_DIRECTION_UP;
	      break;
	   case E_GADCON_ORIENT_LEFT:
	   case E_GADCON_ORIENT_CORNER_LT:
	   case E_GADCON_ORIENT_CORNER_LB:
	      dir = E_MENU_POP_DIRECTION_RIGHT;
	      break;
	   case E_GADCON_ORIENT_RIGHT:
	   case E_GADCON_ORIENT_CORNER_RT:
	   case E_GADCON_ORIENT_CORNER_RB:
	      dir = E_MENU_POP_DIRECTION_LEFT;
	      break;
	   case E_GADCON_ORIENT_FLOAT:
	   case E_GADCON_ORIENT_HORIZ:
	   case E_GADCON_ORIENT_VERT:
	   default:
	      dir = E_MENU_POP_DIRECTION_AUTO;
	      break;
	  }
	e_menu_activate_mouse(m,
			      e_util_zone_current_get(e_manager_current_get()),
			      x, y, w, h,
			      dir, ev->timestamp);

     }
}
示例#10
0
/**
 * Handle clicking on the face.
 *
 * While this callback is not a menu callback, currently all face clicks
 * that do anything popup a menu.  This will change as more emu commands
 * are implemented
 *
 * @param   data the pointer you passed to evas_object_event_callback_add().
 * @param   e not used.
 * @param   obj not used.
 * @param   event_info pointer to the event.
 * @ingroup Emu_Module_Menu_Group
 */
static void
_emu_face_cb_mouse_down(void *data, Evas *e, Evas_Object *obj, void *event_info)
{
   Emu_Face *emu_face;
   Evas_Event_Mouse_Down *ev;

   emu_face = data;
   ev = event_info;
//   if ((ev->button == 3) && emu_face->face->menu)
//     {                          /* Right click configuration menu. */
//        e_menu_activate_mouse(emu_face->face->menu,
//                              e_zone_current_get(emu_face->face->con), ev->output.x, ev->output.y, 1, 1, E_MENU_POP_DIRECTION_AUTO,
//                              ev->timestamp);
//     }
   /*else*/ if (ev->button == 1)
     {                          /* Left click default menu. */
        Easy_Menu *menu;
	Evas_Coord x, y, w, h;
	int cx, cy, cw, ch;
	
	evas_object_geometry_get(emu_face->o_button, &x, &y, &w, &h); 
	e_gadcon_canvas_zone_geometry_get(emu_face->gcc->gadcon, &cx, &cy, &cw, &ch);
	x += cx;
	y += cy;

        /* Find the default menu, if there is one. */
        menu = eina_hash_find(emu_face->menus, "");
        if (menu && menu->valid)
          {
	     int dir;
	     
             e_menu_post_deactivate_callback_set(menu->menu->menu, _emu_menu_cb_post_deactivate, emu_face);
	     dir = E_MENU_POP_DIRECTION_AUTO;
	     switch (emu_face->gcc->gadcon->orient)
	       {
		case E_GADCON_ORIENT_TOP:
		  dir = E_MENU_POP_DIRECTION_DOWN;
		  break;
		case E_GADCON_ORIENT_BOTTOM:
		  dir = E_MENU_POP_DIRECTION_UP;
		  break;
		case E_GADCON_ORIENT_LEFT:
		  dir = E_MENU_POP_DIRECTION_RIGHT;
		  break;
		case E_GADCON_ORIENT_RIGHT:
		  dir = E_MENU_POP_DIRECTION_LEFT;
		  break;
		case E_GADCON_ORIENT_CORNER_TL:
		  dir = E_MENU_POP_DIRECTION_DOWN;
		  break;
		case E_GADCON_ORIENT_CORNER_TR:
		  dir = E_MENU_POP_DIRECTION_DOWN;
		  break;
		case E_GADCON_ORIENT_CORNER_BL:
		  dir = E_MENU_POP_DIRECTION_UP;
		  break;
		case E_GADCON_ORIENT_CORNER_BR:
		  dir = E_MENU_POP_DIRECTION_UP;
		  break;
		case E_GADCON_ORIENT_CORNER_LT:
		  dir = E_MENU_POP_DIRECTION_RIGHT;
		  break;
		case E_GADCON_ORIENT_CORNER_RT:
		  dir = E_MENU_POP_DIRECTION_LEFT;
		  break;
		case E_GADCON_ORIENT_CORNER_LB:
		  dir = E_MENU_POP_DIRECTION_RIGHT;
		  break;
		case E_GADCON_ORIENT_CORNER_RB:
		  dir = E_MENU_POP_DIRECTION_LEFT;
		  break;
		case E_GADCON_ORIENT_FLOAT:
		case E_GADCON_ORIENT_HORIZ:
		case E_GADCON_ORIENT_VERT:
		default:
		  dir = E_MENU_POP_DIRECTION_AUTO;
		  break;
	       }
//             e_menu_activate_mouse(menu->menu->menu, e_zone_current_get(emu_face->face->con), ev->output.x, ev->output.y, 1, 1, E_MENU_POP_DIRECTION_AUTO, ev->timestamp);
	     e_menu_activate_mouse(menu->menu->menu, e_util_zone_current_get(e_manager_current_get()), x, y, w, h, dir, ev->timestamp);
	     edje_object_signal_emit(emu_face->o_button, "active", "");
	     evas_event_feed_mouse_up(emu_face->gcc->gadcon->evas, ev->button, EVAS_BUTTON_NONE, ev->timestamp, NULL);
          }
     }
}
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);
     }
}
示例#12
0
EAPI int
e_modapi_shutdown (E_Module * m)
{
  mail_config->module = NULL;
  e_gadcon_provider_unregister (&_gc_class);

  if (exit_handler)
    ecore_event_handler_del (exit_handler);

  if (mail_config->config_dialog)
    e_object_del (E_OBJECT (mail_config->config_dialog));
  if (mail_config->menu)
    {
      e_menu_post_deactivate_callback_set (mail_config->menu, NULL, NULL);
      e_object_del (E_OBJECT (mail_config->menu));
      mail_config->menu = NULL;
    }
  while (mail_config->items)
    {
      Config_Item *ci;

      ci = mail_config->items->data;
      while (ci->boxes)
	{
	  Config_Box *cb;

	  cb = ci->boxes->data;
	  switch (cb->type)
	    {
	    case MAIL_TYPE_IMAP:
	      _mail_imap_del_mailbox (cb);
	      break;
	    case MAIL_TYPE_POP:
	      _mail_pop_del_mailbox (cb);
	      break;
	    case MAIL_TYPE_MDIR:
	      _mail_mdir_del_mailbox (cb);
	      break;
	    case MAIL_TYPE_MBOX:
	      _mail_mbox_del_mailbox (cb);
	      break;
	    }
	  if (cb->name)
	    eina_stringshare_del (cb->name);
	  if (cb->host)
	    eina_stringshare_del (cb->host);
	  if (cb->user)
	    eina_stringshare_del (cb->user);
	  if (cb->pass)
	    eina_stringshare_del (cb->pass);
	  if (cb->new_path)
	    eina_stringshare_del (cb->new_path);
	  if (cb->cur_path)
	    eina_stringshare_del (cb->cur_path);
	  if (cb->exec)
	    eina_stringshare_del (cb->exec);
	  ci->boxes = eina_list_remove_list (ci->boxes, ci->boxes);
	  free (cb);
	  cb = NULL;
	}
      if (ci->id)
	eina_stringshare_del (ci->id);
      mail_config->items =
	eina_list_remove_list (mail_config->items, mail_config->items);
      free (ci);
      ci = NULL;
    }
  _mail_imap_shutdown ();
  _mail_pop_shutdown ();
  _mail_mdir_shutdown ();
  _mail_mbox_shutdown ();
  free (mail_config);
  mail_config = NULL;
  E_CONFIG_DD_FREE (conf_box_edd);
  E_CONFIG_DD_FREE (conf_item_edd);
  E_CONFIG_DD_FREE (conf_edd);
  return 1;
}
示例#13
0
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);
}
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);
}
示例#15
0
文件: itask_item.c 项目: Limsik/e17
static void
_itask_item_cb_mouse_down(void *data, Evas *e, Evas_Object *obj, void *event_info)
{
   Evas_Event_Mouse_Down *ev;
   Itask_Item *ic;
   Evas_Coord x, y, w, h;
   E_Menu *mn = NULL;
   int cx, cy, cw, ch, dir;

   ev = event_info;
   ic = data;

   if (ev->button == 1)
     {
	ic->drag.x = ev->output.x;
	ic->drag.y = ev->output.y;
	ic->drag.start = 1;
	ic->drag.dnd = 0;
	ic->time_press = ecore_loop_time_get();
     }
   else if (ev->button == 3)
     {
	if (ic->border)
	  {
	     evas_object_geometry_get(ic->o_holder, &x, &y, &w, &h);
	     e_gadcon_canvas_zone_geometry_get(ic->itask->gcc->gadcon,
					       &cx, &cy, &cw, &ch);
	     x += cx;
	     y += cy;

	     e_int_border_menu_show(ic->border, x, y, 0, ev->timestamp);
	  }
     }
   else if (ev->button == 2)
     {
     }
   if (mn)
     {
	e_menu_post_deactivate_callback_set(mn, _itask_item_cb_menu_post, NULL);

	evas_object_geometry_get(ic->o_holder, &x, &y, &w, &h);
	e_gadcon_canvas_zone_geometry_get(ic->itask->gcc->gadcon,
					  &cx, &cy, &cw, &ch);
	x += cx;
	y += cy;

	dir = E_MENU_POP_DIRECTION_AUTO;
	switch (ic->itask->gcc->gadcon->orient)
	  {
	   case E_GADCON_ORIENT_TOP:
	   case E_GADCON_ORIENT_CORNER_TL:
	   case E_GADCON_ORIENT_CORNER_TR:
	      dir = E_MENU_POP_DIRECTION_DOWN;
	      break;
	   case E_GADCON_ORIENT_BOTTOM:
	   case E_GADCON_ORIENT_CORNER_BL:
	   case E_GADCON_ORIENT_CORNER_BR:
	      dir = E_MENU_POP_DIRECTION_UP;
	      break;
	   case E_GADCON_ORIENT_LEFT:
	   case E_GADCON_ORIENT_CORNER_LT:
	   case E_GADCON_ORIENT_CORNER_LB:
	      dir = E_MENU_POP_DIRECTION_RIGHT;
	      break;
	   case E_GADCON_ORIENT_RIGHT:
	   case E_GADCON_ORIENT_CORNER_RT:
	   case E_GADCON_ORIENT_CORNER_RB:
	      dir = E_MENU_POP_DIRECTION_LEFT;
	      break;
	   case E_GADCON_ORIENT_FLOAT:
	   case E_GADCON_ORIENT_HORIZ:
	   case E_GADCON_ORIENT_VERT:
	   default:
	      dir = E_MENU_POP_DIRECTION_AUTO;
	      break;
	  }
	e_menu_activate_mouse(mn,
			      e_util_zone_current_get(e_manager_current_get()),
			      x, y, w, h, dir, ev->timestamp);
     }
}