Enlightenment CVS committal

Author  : onefang
Project : e17
Module  : libs/ecore

Dir     : e17/libs/ecore/src/lib/ecore_desktop


Modified Files:
        Ecore_Desktop.h ecore_desktop_icon.c 


Log Message:
New function for creating a hash of existing icon themes.  To be used
for caching purposes, and an icon theme selector dialog.

===================================================================
RCS file: /cvs/e/e17/libs/ecore/src/lib/ecore_desktop/Ecore_Desktop.h,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -3 -r1.12 -r1.13
--- Ecore_Desktop.h     18 Aug 2006 21:52:33 -0000      1.12
+++ Ecore_Desktop.h     19 Aug 2006 06:26:00 -0000      1.13
@@ -118,6 +118,10 @@
                                               const char *icon_size,
                                               const char *icon_theme);
 
+
+   Ecore_Hash         *ecore_desktop_icon_theme_list(void);
+
+
    Ecore_Desktop_Tree *ecore_desktop_menu_get(char *file);
 
 
===================================================================
RCS file: /cvs/e/e17/libs/ecore/src/lib/ecore_desktop/ecore_desktop_icon.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -3 -r1.9 -r1.10
--- ecore_desktop_icon.c        17 Aug 2006 20:24:36 -0000      1.9
+++ ecore_desktop_icon.c        19 Aug 2006 06:26:00 -0000      1.10
@@ -9,6 +9,9 @@
                                              const char *icon_size,
                                              const char *icon_theme);
 
+static int _ecore_desktop_icon_theme_list_add(void *data, const char *path);
+
+
 static const char  *ext[] = { ".png", ".svgz", ".svg", ".xpm", "", NULL };
 
 
@@ -371,4 +374,45 @@
      }
 
    return NULL;
+}
+
+
+Ecore_Hash *
+ecore_desktop_icon_theme_list(void)
+{
+   Ecore_Hash *result = NULL;
+
+   result = ecore_hash_new(ecore_str_hash, ecore_str_compare);
+   if (result)
+      {
+        ecore_hash_set_free_key(result, free);
+        ecore_hash_set_free_value(result, free);
+         ecore_desktop_paths_file_find(ecore_desktop_paths_icons, 
"index.theme", 1, _ecore_desktop_icon_theme_list_add, result);
+      }
+
+   return result;
+}
+
+
+static int 
+_ecore_desktop_icon_theme_list_add(void *data, const char *path)
+{
+   Ecore_Hash *result;
+
+   result = data;
+   if (result)
+      {
+         char *key, *dir;
+
+         dir = ecore_file_get_dir(path);
+        if (dir)
+           {
+              key = (char *) ecore_file_get_file(dir);
+              if (ecore_hash_get(result, key) == NULL)  /* Only the first one 
found for each name is important. */
+                  ecore_hash_set(result, strdup(key), strdup(path));
+              free(dir);
+           }
+      }
+
+   return 0;
 }



-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to