News

Documentation

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 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 };
00026 
00030 typedef enum Efreet_Icon_Theme_Context Efreet_Icon_Theme_Context;
00031 
00035 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 };
00042 
00046 typedef enum Efreet_Icon_Size_Type Efreet_Icon_Size_Type;
00047 
00051 typedef struct Efreet_Icon_Theme Efreet_Icon_Theme;
00052 
00057 struct Efreet_Icon_Theme
00058 {
00059     struct
00060     {
00061         const char *internal;   
00062         const char *name;       
00063     } name;                     
00065     char *comment;        
00066     char *example_icon;   
00068     /* An icon theme can have multiple directories that store it's icons. We
00069      * need to be able to find a search each one. If count is 1 then path
00070      * will be a char * pointing to the directory. If count > 1 then path
00071      * will be an Ecore_List of char *'s pointing to the directories */
00072     struct
00073     {
00074         void *path;       
00075         int count;        
00076     } paths;              
00078     Ecore_List *inherits;       
00079     Ecore_List *directories;    
00081     double last_cache_check;    
00082     Ecore_Hash *icon_cache;     
00084     unsigned char hidden:1;     
00085     unsigned char valid:1;      
00086     unsigned char fake:1;       
00089 };
00090 
00094 typedef struct Efreet_Icon_Theme_Directory Efreet_Icon_Theme_Directory;
00095 
00100 struct Efreet_Icon_Theme_Directory
00101 {
00102     char *name;               
00103     Efreet_Icon_Theme_Context context;  
00104     Efreet_Icon_Size_Type type;     
00106     struct
00107     {
00108         unsigned int normal;        
00109         unsigned int min;           
00110         unsigned int max;           
00111         unsigned int threshold;     
00112     } size;                         
00113 };
00114 
00118 typedef struct Efreet_Icon Efreet_Icon;
00119 
00124 struct Efreet_Icon
00125 {
00126     char *path;       
00127     char *name;       
00130     struct
00131     {
00132         int x0,             
00133             y0,             
00134             x1,             
00135             y1;             
00136     } embedded_text_rectangle;  
00139     Ecore_List *attach_points; 
00142     unsigned int ref_count;    
00143     unsigned char has_embedded_text_rectangle:1; 
00145 };
00146 
00150 typedef struct Efreet_Icon_Point Efreet_Icon_Point;
00151 
00156 struct Efreet_Icon_Point
00157 {
00158     int x;          
00159     int y;          
00160 };
00161 
00162 const char        *efreet_icon_dir_get(void);
00163 void               efreet_icon_extension_add(const char *ext);
00164 
00165 Ecore_List        *efreet_icon_extra_list_get(void);
00166 Ecore_List        *efreet_icon_theme_list_get(void);
00167 Efreet_Icon_Theme *efreet_icon_theme_find(const char *theme_name);
00168 Efreet_Icon       *efreet_icon_find(const char *theme_name, const char *icon, 
00169                                                         const char *size);
00170 
00171 const char        *efreet_icon_path_find(const char *theme, const char *icon,
00172                                                         const char *size);
00173 
00178 #endif
00179 

Copyright © Enlightenment.org

Efreet Documentation Generated: Sat Apr 7 17:55:36 2007