Enlightenment CVS committal

Author  : codewarrior
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/bin


Modified Files:
        e_int_menus.c 


Log Message:
Moved theme switching to e_config. Is the extern there needed? (seemed to
compile without it). There's a comment in the code, maybe someone can look at
it until I have a chat with raster. (no more ~/.e/e/themes/default.edj
linking). I also need to scan $PREFIX's theme directory.


===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_int_menus.c,v
retrieving revision 1.52
retrieving revision 1.53
diff -u -3 -r1.52 -r1.53
--- e_int_menus.c       1 May 2005 14:41:26 -0000       1.52
+++ e_int_menus.c       1 May 2005 22:58:33 -0000       1.53
@@ -3,6 +3,8 @@
  */
 #include "e.h"
 
+extern E_Config *e_config;
+
 typedef struct _Main_Data Main_Data;
 
 struct _Main_Data
@@ -600,21 +602,17 @@
             if (themes)
               {
                  char *theme, *deftheme = NULL;
+                 Evas_List *l;
                  
-                 theme = E_NEW(char, strlen(buf) + strlen("/default.edj") + 1);
-                 strcpy(theme, buf);
-                 strcat(theme, "/default.edj");
-                 
-                 if (ecore_file_exists(theme))
-                   deftheme = ecore_file_readlink(theme);
-                 if (deftheme)
+                 for (l = e_config->themes; l; l = l->next)
                    {
-                      char *s;
+                      E_Config_Theme *et;
+                      char buf[256];
                       
-                      if ((s = strrchr(deftheme, '/')))
-                        deftheme = s + 1;
-                   }
-                 IF_FREE(theme);
+                      et = l->data;
+                      if(!strcmp(et->category,"theme"))
+                        deftheme = strdup(et->file);
+                   }                             
                  
                  while ((theme = ecore_list_next(themes)))
                    {
@@ -652,26 +650,25 @@
 static void
 _e_int_menus_themes_edit_mode_cb(void *data, E_Menu *m, E_Menu_Item *mi)
 {
-   char *theme;
-   char *homedir;
-   char buf[4096];  
+   char *theme;;
+   E_Config_Theme *et;
+   Evas_List *l;
+      
+   et = E_NEW(E_Config_Theme, 1);
+   et->category = strdup("theme");
+   
+   theme = E_NEW(char, strlen(mi->label) + 5);
+   snprintf(theme, strlen(mi->label) + 5, "%s.edj", mi->label);
+   
+   et->file = strdup(theme);
+   /* Do we want to keep one theme for now? */
+   l = evas_list_last(e_config->themes);
+   e_config->themes = evas_list_remove_list(e_config->themes, l);
+   e_config->themes = evas_list_append(e_config->themes, et);
    
-   homedir = e_user_homedir_get();
-   if (homedir)     
-     {
-       snprintf(buf, sizeof(buf), "%s/.e/e/themes/default.edj", homedir);
-       theme = E_NEW(char, 4096);
-       snprintf(theme, 4096, "%s/.e/e/themes/%s.edj", homedir, mi->label);
-       free(homedir);
-     }
-   else
-     return;   
+   e_config_save_queue();
 
-   ecore_file_unlink(buf);
-   if (!symlink(theme, buf))
-     {
-       printf("RESTART ON!\n");
-       restart = 1;
-       ecore_main_loop_quit();
-     }
+   printf("RESTART ON!\n");
+   restart = 1;
+   ecore_main_loop_quit();   
 }




-------------------------------------------------------
This SF.Net email is sponsored by: NEC IT Guy Games.
Get your fingers limbered up and give it your best shot. 4 great events, 4
opportunities to win big! Highest score wins.NEC IT Guy Games. Play to
win an NEC 61 plasma display. Visit http://www.necitguy.com/?r=20
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to