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