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