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
00064
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