Added theme functionality to support the examine changes
authorhandyande <handyande>
Sun, 2 May 2004 21:02:49 +0000 (21:02 +0000)
committerhandyande <handyande@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Sun, 2 May 2004 21:02:49 +0000 (21:02 +0000)
Oh, and I was told to blow my trumpet ;)

SVN revision: 10010

legacy/ecore/AUTHORS
legacy/ecore/src/lib/ecore_config/Ecore_Config.h
legacy/ecore/src/lib/ecore_config/ecore_config.c
legacy/ecore/src/lib/ecore_config/ipc_main.c

index 07bed76..410626c 100644 (file)
@@ -9,3 +9,4 @@ Yuri <da2001@hotmail.ru>
 Nicholas Curran <quasar@bigblue.net.au>
 Howell Tam <pigeon@pigeond.net>
 Nathan Ingersoll <rbdpngn@users.sourceforge.net>
+Andrew Elcock <andy@elcock.org>
index be69b9c..2067d5e 100644 (file)
@@ -82,6 +82,7 @@ typedef struct Ecore_Config_Prop {
   long                   val,lo,hi,step;
   Ecore_Config_Flag      flags;
   Ecore_Config_Listener_List  *listeners;
+  void                  *data;
   struct Ecore_Config_Prop    *next; /**< pointer to the next property in the list */
   } Ecore_Config_Prop;
 
@@ -133,6 +134,7 @@ int            ecore_config_set_rgb(const char *key,char *val);
 char          *ecore_config_get_rgbstr(const char *key);
 int            ecore_config_set_float(const char *key,float val);
 int            ecore_config_set_theme(const char *key,char *val);
+int            ecore_config_set_theme_preview_group(const char *key, char *group);
 int            ecore_config_set_as_string(const char *key,char *val);
 
 int            ecore_config_default(const char *key,char *val,float lo,float hi,float step);
index c345008..e3457dc 100644 (file)
@@ -366,6 +366,25 @@ int ecore_config_set_rgb(const char *key, char* val) {
 int ecore_config_set_theme(const char *key, char* val) {
   return ecore_config_set_typed(__ecore_config_bundle_local,key,(void *)val,PT_THM); }
 
+int ecore_config_set_theme_preview_group(const char *key, char *group) {
+  int            ret;
+  Ecore_Config_Prop *e;
+  Ecore_Config_Bundle *t;
+  
+  ret=ECORE_CONFIG_ERR_SUCC;
+  t=__ecore_config_bundle_local;
+  if(!(e=ecore_config_get(t,key))) {  /* prop doesn't exist yet */
+    if((ret=ecore_config_add_typed(t,key,"",PT_THM))!=ECORE_CONFIG_ERR_SUCC)  /* try to add it */
+      return ret;                                  /* ...failed */
+    if(!(e=ecore_config_get(t,key)))                  /* get handle */
+      return ECORE_CONFIG_ERR_FAIL;
+    }
+  if (e->data) free(e->data);
+  printf("Set group of %s on key %s\n", group, key);
+  e->data=strdup(group);
+
+  return ret; }
+
 static int ecore_config_default_typed(Ecore_Config_Bundle *t,const char *key,void *val,int type) {
   int            ret;
   Ecore_Config_Prop *e;
index 85f2248..a91f307 100644 (file)
@@ -83,6 +83,8 @@ char *_ecore_config_ipc_prop_list(Ecore_Config_Server *srv, const long serial) {
       else
         estring_appendf(s,", range %d..%d",e->lo,e->hi);
       }
+    if(e->type==PT_THM)
+      estring_appendf(s,", group %s",e->data?e->data:"Main");
     f=1;
     e=e->next; }