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