enlightenment/src/modules/luncher/luncher.h

115 lines
3.0 KiB
C
Raw Normal View History

#ifndef LUNCHER_H
#define LUNCHER_H
#include "e.h"
E_API extern E_Module_Api e_modapi;
E_API void *e_modapi_init (E_Module *m);
E_API int e_modapi_shutdown (E_Module *m);
E_API int e_modapi_save (E_Module *m);
typedef struct _Config Config;
typedef struct _Config_Item Config_Item;
typedef struct _Instance Instance;
typedef struct _Icon Icon;
typedef enum _Luncher_Type Luncher_Type;
enum _Luncher_Type
{
E_LUNCHER_MODULE_FULL = 0,
E_LUNCHER_MODULE_LAUNCH_ONLY,
E_LUNCHER_MODULE_TASKS_ONLY
};
struct _Config
{
Eina_List *items;
E_Module *module;
Evas_Object *config_dialog;
Evas_Object *slist;
Evas_Object *list;
Evas_Object *general;
Evas_Object *contents;
Eina_Bool bar;
};
struct _Config_Item
{
int id;
int version;
int preview_size;
int hide_tooltips;
Eina_Stringshare *dir;
Luncher_Type type;
};
struct _Instance
{
Evas_Object *o_main;
Evas_Object *o_icon_con;
Evas_Object *drop_handler;
Evas_Object *place_holder;
Evas_Object *current_preview;
E_Order *order;
Eina_List *icons;
Eina_Hash *icons_desktop_hash;
Eina_Hash *icons_clients_hash;
Evas_Coord size;
Ecore_Job *resize_job;
Ecore_Job *recalc_job;
E_Comp_Object_Mover *iconify_provider;
Eina_Bool main_del;
Eina_Bool bar;
Eina_Bool inside;
Eina_Bool current_preview_menu;
Config_Item *cfg;
Icon *drop_before;
};
struct _Icon
{
Instance *inst;
Evas_Object *o_layout;
Evas_Object *o_icon;
Evas_Object *preview;
Evas_Object *preview_box;
Evas_Object *preview_scroller;
Evas_Object *client_menu;
E_Exec_Instance *exec;
Efreet_Desktop *desktop;
Eina_List *execs;
Eina_List *clients;
remove client callback from luncher icon when necessary ==20443== Invalid read of size 8 ==20443== at 0x28CED526: _bar_exec_new_show (bar.c:980) ==20443== by 0x819D78D: _eo_evas_object_cb (evas_callbacks.c:184) ==20443== by 0xDFB6FED: _event_callback_call (eo_base_class.c:1496) ==20443== by 0xDFB7373: _efl_object_event_callback_legacy_call (eo_base_class.c:1569) ==20443== by 0xDFB743A: efl_event_callback_legacy_call (eo_base_class.c:1572) ==20443== by 0x81DC562: _efl_canvas_object_efl_object_event_callback_legacy_call (evas_object_main.c:993) ==20443== by 0xDFB743A: efl_event_callback_legacy_call (eo_base_class.c:1572) ==20443== by 0x819E1F8: evas_object_event_callback_call (evas_callbacks.c:404) ==20443== by 0x81E6B23: evas_object_inform_call_show (evas_object_inform.c:13) ==20443== by 0x81DECA2: _show (evas_object_main.c:1689) ==20443== by 0x81DF0E7: _efl_canvas_object_efl_gfx_visible_set (evas_object_main.c:1810) ==20443== by 0xDD670B9: efl_gfx_visible_set (efl_gfx.eo.c:21) ==20443== by 0x81DEA93: evas_object_show (evas_object_main.c:1639) ==20443== by 0x483706: _e_comp_intercept_show_helper (e_comp_object.c:1754) ==20443== by 0x483761: _e_comp_intercept_show (e_comp_object.c:1768) ==20443== by 0x81E7536: evas_object_intercept_call_show (evas_object_intercept.c:71) ==20443== by 0x81E7ED2: _evas_object_intercept_call_internal (evas_object_intercept.c:103) ==20443== by 0x81E88B0: _evas_object_intercept_call_evas (evas_object_intercept.c:236) ==20443== by 0x81DF0CA: _efl_canvas_object_efl_gfx_visible_set (evas_object_main.c:1807) ==20443== by 0xDD670B9: efl_gfx_visible_set (efl_gfx.eo.c:21) ==20443== by 0x81DEA93: evas_object_show (evas_object_main.c:1639) ==20443== by 0x4A6793: _e_desk_show_begin (e_desk.c:821) ==20443== by 0x4A4E39: e_desk_show (e_desk.c:312) ==20443== by 0x537C2E: _e_int_menus_clients_item_cb (e_int_menus.c:1624) ==20443== by 0x548D3F: _e_menu_active_call (e_menu.c:2056) ==20443== by 0x54ABFB: _e_menu_cb_mouse_up (e_menu.c:2789) ==20443== by 0xC636B66: _ecore_call_handler_cb (ecore_private.h:325) ==20443== by 0xC637B3F: _ecore_event_call (ecore_events.c:518) ==20443== by 0xC641158: _ecore_main_loop_iterate_internal (ecore_main.c:2397) ==20443== by 0xC63EC7E: ecore_main_loop_begin (ecore_main.c:1299) ==20443== by 0x43DE81: main (e_main.c:1081) ==20443== Address 0x20 is not stack'd, malloc'd or (recently) free'd
2017-06-09 17:18:20 -07:00
Eina_List *client_cbs;
Ecore_Timer *mouse_in_timer;
Ecore_Timer *mouse_out_timer;
Ecore_Timer *drag_timer;
Eina_Stringshare *icon;
Eina_Stringshare *key;
Eina_Bool in_order;
Eina_Bool active;
Eina_Bool starting;
Eina_Bool preview_dismissed;
struct
{
unsigned char start E_BITFIELD;
unsigned char dnd E_BITFIELD;
int x, y;
} drag;
};
EINTERN Evas_Object *config_luncher(E_Zone *zone, Instance *inst, Eina_Bool bar);
EINTERN Evas_Object *bar_create(Evas_Object *parent, int *id, E_Gadget_Site_Orient orient);
EINTERN void bar_reorder(Instance *inst);
EINTERN void bar_recalculate(Instance *inst);
EINTERN void bar_config_updated(Instance *inst);
EINTERN Evas_Object *grid_create(Evas_Object *parent, int *id, E_Gadget_Site_Orient orient);
EINTERN void grid_reorder(Instance *inst);
EINTERN void grid_recalculate(Instance *inst);
EINTERN extern Config *luncher_config;
EINTERN extern Eina_List *luncher_instances;
#endif