Enlightenment CVS committal

Author  : codewarrior
Project : e17
Module  : libs/etk

Dir     : e17/libs/etk/src/lib


Modified Files:
        etk_config.c etk_config.h etk_theme.c 


Log Message:
make internal wm themes configurable


===================================================================
RCS file: /cvs/e/e17/libs/etk/src/lib/etk_config.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -3 -r1.3 -r1.4
--- etk_config.c        2 Apr 2007 09:48:29 -0000       1.3
+++ etk_config.c        29 Jun 2007 20:00:49 -0000      1.4
@@ -15,6 +15,7 @@
 
 typedef struct _Etk_Config_General
 {
+   char *wm_theme;
    char *widget_theme;
    char *font;
    char *engine;   
@@ -119,6 +120,7 @@
    }
    
    _etk_config_gen_edd = NEWD("Etk_Config_General", Etk_Config_General);
+   CFG_GEN_NEWI("wmt", wm_theme, EET_T_STRING);
    CFG_GEN_NEWI("wt", widget_theme, EET_T_STRING);
    CFG_GEN_NEWI("fn", font, EET_T_STRING);
    CFG_GEN_NEWI("en", engine, EET_T_STRING);
@@ -144,6 +146,7 @@
       free(_etk_config->version);
       if (_etk_config->general);
       {
+         free(_etk_config->general->wm_theme);
          free(_etk_config->general->widget_theme);
          free(_etk_config->general->font);
          free(_etk_config->general->engine);
@@ -193,6 +196,7 @@
       free(_etk_config->version);
       if (_etk_config->general)
       {
+        free(_etk_config->general->wm_theme);
         free(_etk_config->general->widget_theme);
         free(_etk_config->general->font);
         free(_etk_config->general->engine);
@@ -269,6 +273,31 @@
 }
 
 /**
+ * @brief Get Etk's current wm theme
+ * @return Returns the current wm theme used by Etk
+ */
+const char *etk_config_wm_theme_get(void)
+{
+   if (!_etk_config || !_etk_config->general)
+     return NULL;
+   return _etk_config->general->wm_theme;
+}
+
+/**
+ * @brief Sets Etk's wm theme (will not be applied on the fly)
+ * @param theme The wm theme file to use
+ */
+void etk_config_wm_theme_set(const char *wm_theme)
+{
+   if (!_etk_config || !_etk_config->general)
+     return;
+   
+   /* TODO: make sure the theme exists */
+   free(_etk_config->general->wm_theme);
+   _etk_config->general->wm_theme = strdup(wm_theme);
+}
+
+/**
  * @brief Get Etk's current widget theme
  * @return Returns the current widget theme used by Etk
  */
@@ -350,6 +379,7 @@
       free(_etk_config->version);
       if (_etk_config->general)
       {
+        free(_etk_config->general->wm_theme);
         free(_etk_config->general->widget_theme);
         free(_etk_config->general->font);
         free(_etk_config->general->engine);
@@ -361,6 +391,7 @@
    
    _etk_config->version = _etk_config_version_parse(VERSION);
    _etk_config->general = malloc(sizeof(Etk_Config_General));
+   _etk_config->general->wm_theme = strdup("default");
    _etk_config->general->widget_theme = strdup("default");
    _etk_config->general->font = strdup("Vera");
    _etk_config->general->engine = strdup("ecore_evas_software_x11");
===================================================================
RCS file: /cvs/e/e17/libs/etk/src/lib/etk_config.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -3 -r1.2 -r1.3
--- etk_config.h        2 Apr 2007 09:48:29 -0000       1.2
+++ etk_config.h        29 Jun 2007 20:00:49 -0000      1.3
@@ -17,6 +17,9 @@
 Etk_Bool    etk_config_load(void);
 Etk_Bool    etk_config_save(void);
 
+const char *etk_config_wm_theme_get(void);
+void        etk_config_wm_theme_set(const char *wm_theme);
+
 const char *etk_config_widget_theme_get(void);
 void        etk_config_widget_theme_set(const char *widget_theme);
 
===================================================================
RCS file: /cvs/e/e17/libs/etk/src/lib/etk_theme.c,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -3 -r1.14 -r1.15
--- etk_theme.c 25 Mar 2007 10:54:29 -0000      1.14
+++ etk_theme.c 29 Jun 2007 20:00:49 -0000      1.15
@@ -491,7 +491,7 @@
    char *home;
    
    if (!theme_name || !subdir)
-      return ETK_FALSE;
+      return NULL;
    
    if ((home = getenv("HOME")))
    {



-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to