/build/buildd/efreet-0.5.0.49898/src/lib/efreet_icon.h
Go to the documentation of this file.
00001 /* vim: set sw=4 ts=4 sts=4 et: */ 00002 #ifndef EFREET_ICON_H 00003 #define EFREET_ICON_H 00004 00018 typedef enum Efreet_Icon_Theme_Context 00019 { 00020 EFREET_ICON_THEME_CONTEXT_NONE, 00021 EFREET_ICON_THEME_CONTEXT_ACTIONS, 00022 EFREET_ICON_THEME_CONTEXT_DEVICES, 00023 EFREET_ICON_THEME_CONTEXT_FILESYSTEMS, 00024 EFREET_ICON_THEME_CONTEXT_MIMETYPES 00025 } Efreet_Icon_Theme_Context; 00026 00030 typedef enum Efreet_Icon_Size_Type 00031 { 00032 EFREET_ICON_SIZE_TYPE_NONE, 00033 EFREET_ICON_SIZE_TYPE_FIXED, 00034 EFREET_ICON_SIZE_TYPE_SCALABLE, 00035 EFREET_ICON_SIZE_TYPE_THRESHOLD 00036 } Efreet_Icon_Size_Type; 00037 00041 typedef struct Efreet_Icon_Theme Efreet_Icon_Theme; 00042 00047 struct Efreet_Icon_Theme 00048 { 00049 struct 00050 { 00051 const char *internal; 00052 const char *name; 00053 } name; 00055 const char *comment; 00056 const char *example_icon; 00058 /* An icon theme can have multiple directories that store it's icons. We 00059 * need to be able to find a search each one. */ 00060 00061 Eina_List *paths; 00062 Eina_List *inherits; 00063 Eina_List *directories; 00065 double last_cache_check; 00067 unsigned char hidden:1; 00068 unsigned char valid:1; 00069 unsigned char fake:1; 00072 }; 00073 00077 typedef struct Efreet_Icon_Theme_Directory Efreet_Icon_Theme_Directory; 00078 00083 struct Efreet_Icon_Theme_Directory 00084 { 00085 const char *name; 00086 Efreet_Icon_Theme_Context context; 00087 Efreet_Icon_Size_Type type; 00089 struct 00090 { 00091 unsigned int normal; 00092 unsigned int min; 00093 unsigned int max; 00094 unsigned int threshold; 00095 } size; 00096 }; 00097 00101 typedef struct Efreet_Icon Efreet_Icon; 00102 00107 struct Efreet_Icon 00108 { 00109 const char *path; 00110 const char *name; 00113 struct 00114 { 00115 int x0, 00116 y0, 00117 x1, 00118 y1; 00119 } embedded_text_rectangle; 00122 Eina_List *attach_points; 00125 unsigned int ref_count; 00126 unsigned char has_embedded_text_rectangle:1; 00128 }; 00129 00133 typedef struct Efreet_Icon_Point Efreet_Icon_Point; 00134 00139 struct Efreet_Icon_Point 00140 { 00141 int x; 00142 int y; 00143 }; 00144 00145 EAPI const char *efreet_icon_user_dir_get(void); 00146 EAPI void efreet_icon_extension_add(const char *ext); 00147 00148 EAPI Eina_List **efreet_icon_extra_list_get(void); 00149 EAPI Eina_List *efreet_icon_theme_list_get(void); 00150 EAPI Efreet_Icon_Theme *efreet_icon_theme_find(const char *theme_name); 00151 EAPI Efreet_Icon *efreet_icon_find(const char *theme_name, 00152 const char *icon, 00153 unsigned int size); 00154 EAPI char *efreet_icon_list_find(const char *theme_name, 00155 Eina_List *icons, 00156 unsigned int size); 00157 EAPI char *efreet_icon_path_find(const char *theme_name, 00158 const char *icon, 00159 unsigned int size); 00160 EAPI void efreet_icon_free(Efreet_Icon *icon); 00161 00166 #endif