In an app I'm writing, I needed to get what is the current theme used in e17, but that functionality is not available in E_Lib.h
here's a patch that adds e_lib_theme_get() call.
this is diffed from the src/ folder, hope this is fine.
--
Chady Kassouf
http://chady.net/
Index: bin/e_ipc_handlers.h
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_ipc_handlers.h,v
retrieving revision 1.56
diff -u -r1.56 e_ipc_handlers.h
--- bin/e_ipc_handlers.h 13 Jul 2005 04:46:33 -0000 1.56
+++ bin/e_ipc_handlers.h 18 Jul 2005 19:39:51 -0000
@@ -4190,6 +4190,13 @@
printf("REPLY: DEFAULT CATEGORY=\"%s\" FILE=\"%s\"\n",
category, file);
END_STRING2(e_2str);
+#elif (TYPE == E_LIB_IN)
+ STRING2(category, file, e_2str, HDL);
+ RESPONSE(r, E_Response_Theme_Get, HDL);
+ r->file = strdup(file);
+ r->category = strdup(category);
+ END_RESPONSE(r, E_RESPONSE_THEME_GET);
+ END_STRING2(e_2str);
#endif
#undef HDL
Index: lib/E_Lib.h
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/lib/E_Lib.h,v
retrieving revision 1.2
diff -u -r1.2 E_Lib.h
--- lib/E_Lib.h 8 Jun 2005 20:43:46 -0000 1.2
+++ lib/E_Lib.h 18 Jul 2005 19:40:16 -0000
@@ -24,6 +24,7 @@
typedef struct _E_Response_Dirs_List E_Response_Dirs_List;
typedef struct _E_Response_Background_Get E_Response_Background_Get;
typedef struct _E_Response_Language_Get E_Response_Language_Get;
+typedef struct _E_Response_Theme_Get E_Response_Theme_Get;
struct _E_Response_Module_List
{
@@ -48,6 +49,12 @@
char *file;
};
+struct _E_Response_Theme_Get
+{
+ char *file;
+ char *category;
+};
+
struct _E_Response_Language_Get
{
char *lang;
@@ -56,6 +63,7 @@
extern EAPI int E_RESPONSE_MODULE_LIST;
extern EAPI int E_RESPONSE_BACKGROUND_GET;
extern EAPI int E_RESPONSE_LANGUAGE_GET;
+extern EAPI int E_RESPONSE_THEME_GET;
extern EAPI int E_RESPONSE_DATA_DIRS_LIST;
extern EAPI int E_RESPONSE_IMAGE_DIRS_LIST;
@@ -87,6 +95,9 @@
EAPI void e_lib_background_set (const char *bgfile);
EAPI void e_lib_background_get (void);
+ /* E current theme manipulation */
+ EAPI void e_lib_theme_get (const char *category);
+
/* languages */
EAPI void e_lib_language_set (const char *lang);
EAPI void e_lib_language_get (void);
Index: lib/e_main.c
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/lib/e_main.c,v
retrieving revision 1.24
diff -u -r1.24 e_main.c
--- lib/e_main.c 8 Jun 2005 20:43:46 -0000 1.24
+++ lib/e_main.c 18 Jul 2005 19:40:17 -0000
@@ -56,6 +56,7 @@
int E_RESPONSE_MODULE_LIST = 0;
int E_RESPONSE_BACKGROUND_GET = 0;
int E_RESPONSE_LANGUAGE_GET = 0;
+int E_RESPONSE_THEME_GET = 0;
int E_RESPONSE_DATA_DIRS_LIST = 0;
int E_RESPONSE_IMAGE_DIRS_LIST = 0;
@@ -140,6 +141,7 @@
{
E_RESPONSE_MODULE_LIST = ecore_event_type_new();
E_RESPONSE_BACKGROUND_GET = ecore_event_type_new();
+ E_RESPONSE_THEME_GET = ecore_event_type_new();
E_RESPONSE_LANGUAGE_GET = ecore_event_type_new();
E_RESPONSE_DATA_DIRS_LIST = ecore_event_type_new();
@@ -241,6 +243,18 @@
}
void
+e_lib_theme_get(const char *category)
+{
+ char *tmp;
+ if (!category)
+ return;
+
+ tmp = strdup(category);
+ _e_ipc_call(E_IPC_OP_THEME_GET, &tmp);
+ free(tmp);
+}
+
+void
e_lib_language_set(const char *lang)
{
char *tmp;
