lib/efreet_icon.h
Go to the documentation of this file.
00001 #ifndef EFREET_ICON_H 00002 #define EFREET_ICON_H 00003 00018 EAPI extern int EFREET_EVENT_ICON_CACHE_UPDATE; 00019 00023 typedef enum Efreet_Icon_Theme_Context 00024 { 00025 EFREET_ICON_THEME_CONTEXT_NONE, 00026 EFREET_ICON_THEME_CONTEXT_ACTIONS, 00027 EFREET_ICON_THEME_CONTEXT_DEVICES, 00028 EFREET_ICON_THEME_CONTEXT_FILESYSTEMS, 00029 EFREET_ICON_THEME_CONTEXT_MIMETYPES 00030 } Efreet_Icon_Theme_Context; 00031 00035 typedef enum Efreet_Icon_Size_Type 00036 { 00037 EFREET_ICON_SIZE_TYPE_NONE, 00038 EFREET_ICON_SIZE_TYPE_FIXED, 00039 EFREET_ICON_SIZE_TYPE_SCALABLE, 00040 EFREET_ICON_SIZE_TYPE_THRESHOLD 00041 } Efreet_Icon_Size_Type; 00042 00046 typedef struct Efreet_Icon_Theme Efreet_Icon_Theme; 00047 00052 struct Efreet_Icon_Theme 00053 { 00054 struct 00055 { 00056 const char *internal; 00057 const char *name; 00058 } name; 00060 const char *comment; 00061 const char *example_icon; 00063 /* An icon theme can have multiple directories that store it's icons. We 00064 * need to be able to find a search each one. */ 00065 00066 Eina_List *paths; 00067 Eina_List *inherits; 00068 Eina_List *directories; 00070 double last_cache_check; 00072 unsigned char hidden:1; 00073 unsigned char valid:1; 00074 }; 00075 00079 typedef struct Efreet_Icon_Theme_Directory Efreet_Icon_Theme_Directory; 00080 00085 struct Efreet_Icon_Theme_Directory 00086 { 00087 const char *name; 00088 Efreet_Icon_Theme_Context context; 00089 Efreet_Icon_Size_Type type; 00091 struct 00092 { 00093 unsigned int normal; 00094 unsigned int min; 00095 unsigned int max; 00096 unsigned int threshold; 00097 } size; 00098 }; 00099 00103 typedef struct Efreet_Icon Efreet_Icon; 00104 00109 struct Efreet_Icon 00110 { 00111 const char *path; 00112 const char *name; 00115 struct 00116 { 00117 int x0, 00118 y0, 00119 x1, 00120 y1; 00121 } embedded_text_rectangle; 00124 Eina_List *attach_points; 00127 unsigned int ref_count; 00128 unsigned char has_embedded_text_rectangle:1; 00130 }; 00131 00135 typedef struct Efreet_Icon_Point Efreet_Icon_Point; 00136 00141 struct Efreet_Icon_Point 00142 { 00143 int x; 00144 int y; 00145 }; 00146 00147 EAPI const char *efreet_icon_user_dir_get(void); 00148 EAPI const char *efreet_icon_deprecated_user_dir_get(void); 00149 EAPI void efreet_icon_extension_add(const char *ext); 00150 00151 EAPI Eina_List **efreet_icon_extra_list_get(void); 00152 EAPI Eina_List *efreet_icon_theme_list_get(void); 00153 EAPI Efreet_Icon_Theme *efreet_icon_theme_find(const char *theme_name); 00154 EAPI Efreet_Icon *efreet_icon_find(const char *theme_name, 00155 const char *icon, 00156 unsigned int size); 00157 EAPI const char *efreet_icon_list_find(const char *theme_name, 00158 Eina_List *icons, 00159 unsigned int size); 00160 EAPI const char *efreet_icon_path_find(const char *theme_name, 00161 const char *icon, 00162 unsigned int size); 00163 EAPI void efreet_icon_free(Efreet_Icon *icon); 00164 00169 #endif