1 #ifndef E_MOD_GADMAN_H
2 #define E_MOD_GADMAN_H
3 
4 #include "e.h"
5 
6 #define DEFAULT_POS_X  0.1
7 #define DEFAULT_POS_Y  0.1
8 #define DEFAULT_SIZE_W 0.07
9 #define DEFAULT_SIZE_H 0.07
10 
11 #define DRAG_START 0
12 #define DRAG_STOP  1
13 #define DRAG_MOVE  2
14 
15 #define BG_STD    0
16 #define BG_COLOR  1
17 #define BG_CUSTOM 2
18 #define BG_TRANS  3
19 
20 #define MIN_VISIBLE_MARIGIN 20
21 
22 typedef struct _Manager Manager;
23 typedef struct _Config Config;
24 
25 struct _Config
26 {
27    int bg_type;
28    int color_r;
29    int color_g;
30    int color_b;
31    int color_a;
32    const char* custom_bg;
33    int anim_bg;
34    int anim_gad;
35 };
36 
37 typedef enum
38 {
39   GADMAN_LAYER_BG = 0, /* layer is considered unsigned int */
40   GADMAN_LAYER_TOP,
41   GADMAN_LAYER_COUNT
42 } Gadman_Layer_Type;
43 
44 #define ID_GADMAN_LAYER_BASE 114
45 #define ID_GADMAN_LAYER_BG (ID_GADMAN_LAYER_BASE + GADMAN_LAYER_BG)
46 #define ID_GADMAN_LAYER_TOP (ID_GADMAN_LAYER_BASE + GADMAN_LAYER_TOP)
47 
48 struct _Manager
49 {
50    Eina_List   *gadcons[GADMAN_LAYER_COUNT];
51    E_Gadcon_Location *location[GADMAN_LAYER_COUNT];
52    Eina_List   *gadgets[GADMAN_LAYER_COUNT];
53    Evas_Object *movers[GADMAN_LAYER_COUNT];
54    Evas_Object *full_bg;
55    const char  *icon_name;
56    E_Gadcon_Client *drag_gcc[GADMAN_LAYER_COUNT];
57 
58    Eina_List *waiting;
59    Ecore_Event_Handler *add;
60 
61    int             visible;
62    Evas_Object     *overlay;
63 
64    int  width, height;
65 
66    E_Module                *module;
67    E_Config_Dialog         *config_dialog;
68    E_Int_Menu_Augmentation *maug;
69    E_Menu_Category_Callback *mcat;
70    E_Action                *action;
71 
72    E_Config_DD    *conf_edd;
73    Config         *conf;
74 };
75 
76 extern Manager *Man;
77 
78 void             gadman_init(E_Module *m);
79 void             gadman_shutdown(void);
80 E_Gadcon_Client *gadman_gadget_add(const E_Gadcon_Client_Class *cc, E_Gadcon_Client *, Gadman_Layer_Type layer);
81 void             gadman_gadget_edit_start(E_Gadcon_Client *gcc);
82 void             gadman_gadget_edit_end(void *data, Evas_Object *obj, const char *emission, const char *source);
83 void             gadman_gadgets_toggle(void);
84 void             gadman_update_bg(void);
85 Eina_Bool gadman_gadget_add_handler(void *d, int type, E_Event_Gadcon_Client_Add *ev);
86 
87 E_Config_Dialog *_config_gadman_module(Evas_Object *parent, const char *params EINA_UNUSED);
88 
89 /**
90  * @addtogroup Optional_Gadgets
91  * @{
92  *
93  * @defgroup Module_Gadman Gadman (Gadget Manager)
94  *
95  * Manages @ref Optional_Gadgets on desktop or overlay.
96  *
97  * @}
98  */
99 #endif
100