Enlightenment CVS committal Author : handyande Project : e17 Module : apps/e
Dir : e17/apps/e/src/lib Modified Files: E.h e_main.c Log Message: OK, added callbacks, hope it is OK, can be tweaked ;) This allows module_list : added background_get for Codeworrior :) =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/lib/E.h,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- E.h 6 Jan 2005 23:10:55 -0000 1.1 +++ E.h 8 Jan 2005 01:44:36 -0000 1.2 @@ -19,11 +19,22 @@ # endif #endif +extern EAPI int E_RESPONSE_MODULE_LIST; +extern EAPI int E_RESPONSE_BACKGROUND_GET; +typedef struct _E_Response_Module_List E_Response_Module_List; +typedef struct _E_Response_Background_Get E_Response_Background_Get; - - - +struct _E_Response_Module_List +{ + char *name; + char enabled; +}; + +struct _E_Response_Background_Get +{ + char *data; +}; #ifdef __cplusplus @@ -38,7 +49,9 @@ int enable); EAPI void e_module_loaded_set (const char *module, int load); + EAPI void e_module_list (void); EAPI void e_background_set (const char *bgfile); + EAPI void e_background_get (void); #ifdef __cplusplus =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/lib/e_main.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- e_main.c 6 Jan 2005 23:10:56 -0000 1.1 +++ e_main.c 8 Jan 2005 01:44:36 -0000 1.2 @@ -25,9 +25,13 @@ static int _e_ipc_init(const char *display); static void _e_ipc_shutdown(void); +static int _e_cb_server_data(void *data, int type, void *event); static Ecore_Ipc_Server *_e_ipc_server = NULL; +int E_RESPONSE_MODULE_LIST = 0; +int E_RESPONSE_BACKGROUND_GET = 0; + int e_init(const char* display) { @@ -58,6 +62,12 @@ return 0; } + if (!E_RESPONSE_MODULE_LIST) + { + E_RESPONSE_MODULE_LIST = ecore_event_type_new(); + E_RESPONSE_BACKGROUND_GET = ecore_event_type_new(); + } + return 1; } @@ -108,6 +118,14 @@ } void +e_module_list(void) +{ + ecore_ipc_server_send(_e_ipc_server, E_IPC_DOMAIN_REQUEST, + E_IPC_OP_MODULE_LIST, 0/*ref*/, 0/*ref_to*/, + 0/*response*/, NULL, 0); +} + +void e_background_set(const char *bgfile) { if (!bgfile) @@ -118,6 +136,14 @@ strlen(bgfile)); } +void +e_background_get(void) +{ + ecore_ipc_server_send(_e_ipc_server, E_IPC_DOMAIN_REQUEST, + E_IPC_OP_BG_GET, 0/*ref*/, 0/*ref_to*/, + 0/*response*/, NULL, 0); +} + static int _e_ipc_init(const char *display) { @@ -132,9 +158,9 @@ /* similar... */ if (!_e_ipc_server) return 0; -// ecore_event_handler_add(ECORE_IPC_EVENT_SERVER_ADD, _e_ipc_cb_server_add, NULL); -// ecore_event_handler_add(ECORE_IPC_EVENT_SERVER_DEL, _e_ipc_cb_server_del, NULL); -// ecore_event_handler_add(ECORE_IPC_EVENT_SERVER_DATA, _e_ipc_cb_server_data, NULL); +// ecore_event_handler_add(ECORE_IPC_EVENT_SERVER_ADD, _e_cb_server_add, NULL); +// ecore_event_handler_add(ECORE_IPC_EVENT_SERVER_DEL, _e_cb_server_del, NULL); + ecore_event_handler_add(ECORE_IPC_EVENT_SERVER_DATA, _e_cb_server_data, NULL); return 1; } @@ -149,4 +175,54 @@ } } +static int +_e_cb_server_data(void *data, int type, void *event) +{ + Ecore_Ipc_Event_Server_Data *e; + + e = event; + type = E_IPC_OP_MODULE_LIST; + switch (e->minor) + { + case E_IPC_OP_MODULE_LIST_REPLY: + if (e->data) + { + char *p; + + p = e->data; + while (p < (char *)(e->data + e->size)) + { + E_Response_Module_List *res; + + res = calloc(1, sizeof(E_Response_Module_List)); + res->name = p; + p += strlen(res->name); + if (p < (char *)(e->data + e->size)) + { + p++; + if (p < (char *)(e->data + e->size)) + { + res->enabled = *p; + p++; + ecore_event_add(E_RESPONSE_MODULE_LIST, res, + NULL, NULL); + } + } + } + } + break; + case E_IPC_OP_BG_GET_REPLY: + { + E_Response_Background_Get *res; + + res = calloc(1, sizeof(E_Response_Background_Get)); + res->data = e->data; + ecore_event_add(E_RESPONSE_BACKGROUND_GET, res, NULL, NULL); + break; + } + default: + break; + } + return 1; +} ------------------------------------------------------- The SF.Net email is sponsored by: Beat the post-holiday blues Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek. It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs