1 #ifdef E_TYPEDEFS
2 
3 typedef struct _E_Path E_Path;
4 typedef struct _E_Path_Dir E_Path_Dir;
5 
6 #else
7 #ifndef E_PATH_H
8 #define E_PATH_H
9 
10 #define E_PATH_TYPE 0xE0b0100c
11 
12 struct _E_Path_Dir
13 {
14    const char *dir;
15 };
16 
17 struct _E_Path
18 {
19    E_Object   e_obj_inherit;
20 
21    Eina_Hash *hash;
22 
23    Eina_List *default_dir_list;
24    /* keep track of the associated e_config path */
25    Eina_List **user_dir_list;
26 };
27 
28 /* init and setup */
29 E_API E_Path     *e_path_new(void);
30 E_API void        e_path_user_path_set(E_Path *ep, Eina_List **user_dir_list);
31 E_API void        e_path_inherit_path_set(E_Path *ep, E_Path *path_inherit);
32 /* append a hardcoded path */
33 E_API void        e_path_default_path_append(E_Path *ep, const char *path);
34 /* e_config path manipulation */
35 E_API void        e_path_user_path_append(E_Path *ep, const char *path);
36 E_API void        e_path_user_path_prepend(E_Path *ep, const char *path);
37 E_API void        e_path_user_path_remove(E_Path *ep, const char *path);
38 E_API void	 e_path_user_path_clear(E_Path *ep);
39 E_API Eina_Stringshare *e_path_find(E_Path *ep, const char *file);
40 E_API void        e_path_evas_append(E_Path *ep, Evas *evas);
41 E_API Eina_List  *e_path_dir_list_get(E_Path *ep);
42 E_API void	 e_path_dir_list_free(Eina_List *dir_list);
43 
44 #endif
45 #endif
46