You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

108 lines
2.9 KiB

#ifndef LUNCHER_H
#define LUNCHER_H
#include "e.h"
extern int luncher_log;
#define L_DBG(...) EINA_LOG_DOM_DBG(luncher_log, __VA_ARGS__)
#define L_INF(...) EINA_LOG_DOM_INFO(luncher_log, __VA_ARGS__)
#define L_WRN(...) EINA_LOG_DOM_WARN(luncher_log, __VA_ARGS__)
#define L_ERR(...) EINA_LOG_DOM_ERR(luncher_log, __VA_ARGS__)
#define L_CRI(...) EINA_LOG_DOM_CRIT(luncher_log, __VA_ARGS__)
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;
struct _Config
{
Eina_List *items;
E_Module *module;
Evas_Object *config_dialog;
Evas_Object *slist;
Evas_Object *list;
Eina_Bool bar;
};
struct _Config_Item
{
int id;
Eina_Stringshare *style;
Eina_Stringshare *dir;
};
struct _Instance
{
Evas_Object *o_main;
Evas_Object *o_icon_con;
Evas_Object *drop_handler;
Evas_Object *place_holder;
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 bar;
Eina_Bool inside;
Eina_Bool effect;
Config_Item *cfg;
Icon *drop_before;
};
struct _Icon
{
Instance *inst;
Evas_Object *o_layout;
Evas_Object *o_icon;
Evas_Object *o_overlay;
Evas_Object *preview;
Evas_Object *preview_box;
Evas_Object *preview_scroller;
E_Exec_Instance *exec;
Efreet_Desktop *desktop;
Eina_List *execs;
Eina_List *clients;
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 : 1;
unsigned char dnd : 1;
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 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);
extern Config *luncher_config;
extern Eina_List *luncher_instances;
extern E_Module *module;
#endif