OK, added callbacks, hope it is OK, can be tweaked ;)
This allows module_list : added background_get for Codeworrior :) SVN revision: 12818
This commit is contained in:
parent
447426c79f
commit
47edbfedb0
|
@ -199,6 +199,20 @@ _e_ipc_cb_client_data(void *data, int type, void *event)
|
||||||
}
|
}
|
||||||
e_config_save_queue();
|
e_config_save_queue();
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
|
case E_IPC_OP_BG_GET:
|
||||||
|
{
|
||||||
|
char *bg;
|
||||||
|
bg = e_config->desktop_default_background;
|
||||||
|
if (!bg)
|
||||||
|
bg = "";
|
||||||
|
ecore_ipc_client_send(e->client,
|
||||||
|
E_IPC_DOMAIN_REPLY,
|
||||||
|
E_IPC_OP_BG_GET_REPLY,
|
||||||
|
0/*ref*/, 0/*ref_to*/, 0/*response*/,
|
||||||
|
bg, strlen(bg));
|
||||||
|
}
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,6 +19,8 @@ typedef enum _E_Ipc_Op {
|
||||||
E_IPC_OP_MODULE_LIST,
|
E_IPC_OP_MODULE_LIST,
|
||||||
E_IPC_OP_MODULE_LIST_REPLY,
|
E_IPC_OP_MODULE_LIST_REPLY,
|
||||||
E_IPC_OP_BG_SET,
|
E_IPC_OP_BG_SET,
|
||||||
|
E_IPC_OP_BG_GET,
|
||||||
|
E_IPC_OP_BG_GET_REPLY,
|
||||||
E_IPC_OP_LAST
|
E_IPC_OP_LAST
|
||||||
} E_Ipc_Op;
|
} E_Ipc_Op;
|
||||||
|
|
||||||
|
|
17
src/lib/E.h
17
src/lib/E.h
|
@ -19,11 +19,22 @@
|
||||||
# endif
|
# endif
|
||||||
#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
|
#ifdef __cplusplus
|
||||||
|
@ -38,7 +49,9 @@ extern "C" {
|
||||||
int enable);
|
int enable);
|
||||||
EAPI void e_module_loaded_set (const char *module,
|
EAPI void e_module_loaded_set (const char *module,
|
||||||
int load);
|
int load);
|
||||||
|
EAPI void e_module_list (void);
|
||||||
EAPI void e_background_set (const char *bgfile);
|
EAPI void e_background_set (const char *bgfile);
|
||||||
|
EAPI void e_background_get (void);
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
|
|
@ -25,9 +25,13 @@
|
||||||
|
|
||||||
static int _e_ipc_init(const char *display);
|
static int _e_ipc_init(const char *display);
|
||||||
static void _e_ipc_shutdown(void);
|
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;
|
static Ecore_Ipc_Server *_e_ipc_server = NULL;
|
||||||
|
|
||||||
|
int E_RESPONSE_MODULE_LIST = 0;
|
||||||
|
int E_RESPONSE_BACKGROUND_GET = 0;
|
||||||
|
|
||||||
int
|
int
|
||||||
e_init(const char* display)
|
e_init(const char* display)
|
||||||
{
|
{
|
||||||
|
@ -58,6 +62,12 @@ e_init(const char* display)
|
||||||
return 0;
|
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;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -107,6 +117,14 @@ e_module_load_set(const char *module, int load)
|
||||||
strlen(module));
|
strlen(module));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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
|
void
|
||||||
e_background_set(const char *bgfile)
|
e_background_set(const char *bgfile)
|
||||||
{
|
{
|
||||||
|
@ -118,6 +136,14 @@ e_background_set(const char *bgfile)
|
||||||
strlen(bgfile));
|
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
|
static int
|
||||||
_e_ipc_init(const char *display)
|
_e_ipc_init(const char *display)
|
||||||
{
|
{
|
||||||
|
@ -132,9 +158,9 @@ _e_ipc_init(const char *display)
|
||||||
/* similar... */
|
/* similar... */
|
||||||
if (!_e_ipc_server) return 0;
|
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_ADD, _e_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_DEL, _e_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_DATA, _e_cb_server_data, NULL);
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
@ -149,4 +175,54 @@ _e_ipc_shutdown(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue