Download

Support

/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

Copyright © Enlightenment.org

Efreet Documentation Generated: Tue Aug 3 2010 10:37:52