[WM_ROT] support for rotating prediction window without virtual keyboard
[platform/core/uifw/e17.git] / src / bin / e_module.h
1 #ifdef E_TYPEDEFS
2
3 #define E_MODULE_API_VERSION 11
4
5 typedef struct _E_Module     E_Module;
6 typedef struct _E_Module_Api E_Module_Api;
7
8 typedef struct _E_Event_Module_Update E_Event_Module_Update;
9
10 #else
11 #ifndef E_MODULE_H
12 #define E_MODULE_H
13
14 #define E_MODULE_TYPE 0xE0b0100b
15
16 extern EAPI int E_EVENT_MODULE_UPDATE;
17 extern EAPI int E_EVENT_MODULE_INIT_END;
18
19 struct _E_Event_Module_Update
20 {
21    char *name;
22    unsigned char enabled : 1;
23 };
24
25 struct _E_Module
26 {
27    E_Object             e_obj_inherit;
28
29    E_Module_Api        *api;
30
31    const char          *name;
32    const char          *dir;
33    void                *handle;
34
35    struct {
36       void * (*init)        (E_Module *m);
37       int    (*shutdown)    (E_Module *m);
38       int    (*save)        (E_Module *m);
39    } func;
40
41    unsigned char        enabled : 1;
42    unsigned char        error : 1;
43
44    /* the module is allowed to modify these */
45    void                *data;
46 };
47
48 struct _E_Module_Api
49 {
50    int         version;
51    const char *name;
52 };
53
54 EINTERN int          e_module_init(void);
55 EINTERN int          e_module_shutdown(void);
56
57 EAPI void         e_module_all_load(void);
58 EAPI E_Module    *e_module_new(const char *name);
59 EAPI int          e_module_save(E_Module *m);
60 EAPI const char  *e_module_dir_get(E_Module *m);
61 EAPI int          e_module_enable(E_Module *m);
62 EAPI int          e_module_disable(E_Module *m);
63 EAPI int          e_module_enabled_get(E_Module *m);
64 EAPI int          e_module_save_all(void);
65 EAPI E_Module    *e_module_find(const char *name);
66 EAPI Eina_List   *e_module_list(void);
67 EAPI void         e_module_dialog_show(E_Module *m, const char *title, const char *body);
68 EAPI void         e_module_delayed_set(E_Module *m, int delayed);
69 EAPI void         e_module_priority_set(E_Module *m, int priority);
70
71 #endif
72 #endif