EFL 1.7 svn doobies
[profile/ivi/efreet.git] / src / lib / efreet_cache_private.h
1 #ifndef EFREET_CACHE_PRIVATE_H
2 #define EFREET_CACHE_PRIVATE_H
3
4 #define EFREET_DESKTOP_CACHE_MAJOR 1
5 #define EFREET_DESKTOP_CACHE_MINOR 0
6 #define EFREET_DESKTOP_UTILS_CACHE_MAJOR 1
7 #define EFREET_DESKTOP_UTILS_CACHE_MINOR 0
8
9 #define EFREET_ICON_CACHE_MAJOR 1
10 #define EFREET_ICON_CACHE_MINOR 0
11
12 #define EFREET_CACHE_VERSION "__efreet//version"
13 #define EFREET_CACHE_ICON_FALLBACK "__efreet_fallback"
14 #define EFREET_CACHE_ICON_EXTENSIONS "__efreet//icon_extensions"
15 #define EFREET_CACHE_ICON_EXTRA_DIRS "__efreet//icon_extra_dirs"
16 #define EFREET_CACHE_DESKTOP_DIRS "__efreet//desktop_dirs"
17
18 EAPI const char *efreet_desktop_util_cache_file(void);
19 EAPI const char *efreet_desktop_cache_file(void);
20 EAPI const char *efreet_icon_cache_file(const char *theme);
21 EAPI const char *efreet_icon_theme_cache_file(void);
22
23 EAPI Eet_Data_Descriptor *efreet_version_edd(void);
24 EAPI Eet_Data_Descriptor *efreet_desktop_edd(void);
25 EAPI Eet_Data_Descriptor *efreet_hash_array_string_edd(void);
26 EAPI Eet_Data_Descriptor *efreet_hash_string_edd(void);
27 EAPI Eet_Data_Descriptor *efreet_array_string_edd(void);
28 EAPI Eet_Data_Descriptor *efreet_icon_theme_edd(Eina_Bool cache);
29 EAPI Eet_Data_Descriptor *efreet_icon_edd(void);
30 EAPI Eet_Data_Descriptor *efreet_icon_fallback_edd(void);
31
32 typedef struct _Efreet_Cache_Icon_Theme Efreet_Cache_Icon_Theme;
33 typedef struct _Efreet_Cache_Directory Efreet_Cache_Directory;
34 typedef struct _Efreet_Cache_Desktop Efreet_Cache_Desktop;
35
36 struct _Efreet_Cache_Icon_Theme
37 {
38     Efreet_Icon_Theme theme;
39
40     long long last_cache_check; /**< Last time the cache was checked */
41
42     Eina_Hash *dirs;            /**< All possible icon paths for this theme */
43
44     const char *path;           /**< path to index.theme */
45
46     Eina_Bool hidden:1;         /**< Should this theme be hidden from users */
47     Eina_Bool valid:1;          /**< Have we seen an index for this theme */
48     Eina_Bool changed:1;        /**< Changed since last seen */
49 };
50
51 struct _Efreet_Cache_Directory
52 {
53     long long modified_time;
54 };
55
56 struct _Efreet_Cache_Desktop
57 {
58     Efreet_Desktop desktop;
59
60     double check_time; /**< Last time we check for disk modification */
61 };
62
63 #endif