From b14f90d3b1b139a88cc31d5e196b62bef197aab0 Mon Sep 17 00:00:00 2001 From: David Walter Seikel Date: Tue, 5 Sep 2006 17:54:20 +0000 Subject: [PATCH] Some times you still need to refer to the standard paths from outside. SVN revision: 25498 --- .../src/lib/ecore_desktop/Ecore_Desktop.h | 14 ++++++++++++- .../lib/ecore_desktop/ecore_desktop_paths.c | 20 +++++++++++++++++++ 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/legacy/ecore/src/lib/ecore_desktop/Ecore_Desktop.h b/legacy/ecore/src/lib/ecore_desktop/Ecore_Desktop.h index b36e7fb311..dfce3c3145 100644 --- a/legacy/ecore/src/lib/ecore_desktop/Ecore_Desktop.h +++ b/legacy/ecore/src/lib/ecore_desktop/Ecore_Desktop.h @@ -77,13 +77,24 @@ struct _Ecore_Desktop_Icon_Theme }; typedef struct _Ecore_Desktop_Icon_Theme Ecore_Desktop_Icon_Theme; +enum _Ecore_Desktop_Paths_Type +{ + ECORE_DESKTOP_PATHS_CONFIG = 0, + ECORE_DESKTOP_PATHS_MENUS = 1, + ECORE_DESKTOP_PATHS_DIRECTORIES = 2, + ECORE_DESKTOP_PATHS_DESKTOPS = 3, + ECORE_DESKTOP_PATHS_ICONS = 4, + ECORE_DESKTOP_PATHS_KDE_LEGACY = 5, + ECORE_DESKTOP_PATHS_XSESSIONS = 6 +}; +typedef enum _Ecore_Desktop_Paths_Type Ecore_Desktop_Paths_Type; enum _Ecore_Desktop_Tree_Element_Type { ECORE_DESKTOP_TREE_ELEMENT_TYPE_NULL = 0, ECORE_DESKTOP_TREE_ELEMENT_TYPE_STRING = 1, ECORE_DESKTOP_TREE_ELEMENT_TYPE_TREE = 2, - ECORE_DESKTOP_TREE_ELEMENT_TYPE_HASH = 3, + ECORE_DESKTOP_TREE_ELEMENT_TYPE_HASH = 3 }; typedef enum _Ecore_Desktop_Tree_Element_Type Ecore_Desktop_Tree_Element_Type; @@ -118,6 +129,7 @@ extern "C" const char *path), void *data); + EAPI int ecore_desktop_paths_for_each(Ecore_Desktop_Paths_Type type, Ecore_For_Each function, void *user_data); char *ecore_desktop_paths_recursive_search(const char *path, const char *file, int sub, int (*dir_func) (void *data, diff --git a/legacy/ecore/src/lib/ecore_desktop/ecore_desktop_paths.c b/legacy/ecore/src/lib/ecore_desktop/ecore_desktop_paths.c index 210986f58c..2be141df18 100644 --- a/legacy/ecore/src/lib/ecore_desktop/ecore_desktop_paths.c +++ b/legacy/ecore/src/lib/ecore_desktop/ecore_desktop_paths.c @@ -845,3 +845,23 @@ ecore_desktop_paths_to_list(const char *paths) } return result; } + +EAPI int +ecore_desktop_paths_for_each(Ecore_Desktop_Paths_Type type, Ecore_For_Each function, void *user_data) +{ + Ecore_List *list = NULL; + + switch (type) + { + case ECORE_DESKTOP_PATHS_CONFIG : list = ecore_desktop_paths_config; + case ECORE_DESKTOP_PATHS_MENUS : list = ecore_desktop_paths_menus; + case ECORE_DESKTOP_PATHS_DIRECTORIES : list = ecore_desktop_paths_directories; + case ECORE_DESKTOP_PATHS_DESKTOPS : list = ecore_desktop_paths_desktops; + case ECORE_DESKTOP_PATHS_ICONS : list = ecore_desktop_paths_icons; + case ECORE_DESKTOP_PATHS_KDE_LEGACY : list = ecore_desktop_paths_kde_legacy; + case ECORE_DESKTOP_PATHS_XSESSIONS : list = ecore_desktop_paths_xsessions; + } + if (list) + return ecore_list_for_each(list, function, user_data); + return 0; +}