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