Download

Support

lib/ewl_filelist.h

Go to the documentation of this file.
00001 /* vim: set sw=8 ts=8 sts=8 expandtab: */
00002 #ifndef EWL_FILELIST_H
00003 #define EWL_FILELIST_H
00004 
00005 #include "ewl_box.h"
00006 #include "ewl_image.h"
00007 #include "ewl_icon.h"
00008 #include "ewl_text.h"
00009 #include "ewl_model.h"
00010 #include "ewl_view.h"
00011 
00028 #define EWL_FILELIST_FILTER_TYPE "filelist_filter"
00029 
00030 typedef struct Ewl_Filelist_Filter Ewl_Filelist_Filter;
00031 
00036 #define EWL_FILELIST_FILTER(ff), ((Ewl_Filelist_Filter *)ff)
00037 
00041 struct Ewl_Filelist_Filter
00042 {
00043                 char *name;
00044                 char *extension;
00045                 Ecore_List *mime_list;
00046 };
00047 
00052 #define EWL_FILELIST_TYPE "filelist"
00053 
00058 #define EWL_FILELIST_IS(w) (ewl_widget_type_is(EWL_WIDGET(w), EWL_FILELIST_TYPE))
00059 
00063 typedef struct Ewl_Filelist Ewl_Filelist;
00064 
00069 #define EWL_FILELIST(fl) ((Ewl_Filelist *)fl)
00070 
00074 struct Ewl_Filelist
00075 {
00076         Ewl_Box box;                
00077         Ewl_Widget *controller; 
00079         Ewl_View *view;                 
00080         Ewl_Model *model;        
00082         char *directory;        
00083         Ewl_Filelist_Filter *filter;                
00085         unsigned char multiselect:1;        
00086         unsigned char show_dot:1;        
00088         Ewl_Filelist_View view_flag;        
00090         struct
00091         {        Ewl_Scrollpane_Flags h; 
00092                 Ewl_Scrollpane_Flags v; 
00093         } scroll_flags;                
00094 };
00095 
00100 #define EWL_FILELIST_FILE_TYPE "filelist_file"
00101 
00102 typedef struct Ewl_Filelist_File Ewl_Filelist_File;
00103 
00108 #define EWL_FILELIST_FILE(fl) ((Ewl_Filelist_File *)fl)
00109 
00113 struct Ewl_Filelist_File
00114 {
00115         const char *name;
00116         off_t size;
00117         mode_t mode;
00118         uid_t username;
00119         gid_t groupname;
00120         time_t modtime;
00121         unsigned char readable:1;
00122         unsigned char writeable:1;
00123         unsigned char is_dir:1;
00124 };
00125 
00130 #define EWL_FILELIST_DIRECTORY_TYPE "filelist_directory"
00131 
00132 typedef struct Ewl_Filelist_Directory Ewl_Filelist_Directory;
00133 
00138 #define EWL_FILELIST_DIRECTORY(fl) ((Ewl_Filelist_Directory *)fl)
00139 
00143 struct Ewl_Filelist_Directory
00144 {
00145         const char *name;
00146         Ecore_List *rfiles;
00147         Ecore_List *rdirs;
00148         Ecore_List *files;
00149         Ecore_List *dirs;
00150         Ewl_Filelist_Filter *filter;
00151         unsigned char show_dot:1;
00152         unsigned int num_dirs;
00153         unsigned int num_files;
00154 };
00155 
00156 Ewl_Widget        *ewl_filelist_new(void);
00157 
00158 int                 ewl_filelist_init(Ewl_Filelist *fl);
00159 
00160 void                 ewl_filelist_directory_set(Ewl_Filelist *fl,
00161                                                         const char *dir);
00162 const char        *ewl_filelist_directory_get(Ewl_Filelist *fl);
00163 
00164 void                 ewl_filelist_filter_set(Ewl_Filelist *fl,
00165                                                         Ewl_Filelist_Filter *filter);
00166 Ewl_Filelist_Filter        *ewl_filelist_filter_get(Ewl_Filelist *fl);
00167 
00168 void                 ewl_filelist_view_set(Ewl_Filelist *fl,
00169                                                 Ewl_Filelist_View view);
00170 Ewl_Filelist_View *ewl_filelist_view_get(Ewl_Filelist *fl);
00171 
00172 
00173 void                 ewl_filelist_multiselect_set(Ewl_Filelist *fl,
00174                                                         unsigned int ms);
00175 unsigned int         ewl_filelist_multiselect_get(Ewl_Filelist *fl);
00176 
00177 void                  ewl_filelist_show_dot_files_set(Ewl_Filelist *fl,
00178                                                         unsigned int dot);
00179 unsigned int         ewl_filelist_show_dot_files_get(Ewl_Filelist *fl);
00180 
00181 void                 ewl_filelist_selected_file_set(Ewl_Filelist *fl,
00182                                                          const char *file);
00183 char                 *ewl_filelist_selected_file_get(Ewl_Filelist *fl);
00184 char                *ewl_filelist_size_get(off_t st_size);
00185 char                *ewl_filelist_perms_get(mode_t st_mode);
00186 char                *ewl_filelist_username_get(uid_t st_uid);
00187 char                *ewl_filelist_groupname_get(gid_t st_gid);
00188 char                *ewl_filelist_modtime_get(time_t modtime);
00189 Ewl_Widget        *ewl_filelist_selected_file_preview_get(Ewl_Filelist *fl,
00190                                                         const char *path);
00191 Ewl_Widget        *ewl_filelist_multi_select_preview_get(Ewl_Filelist *fl);
00192 
00193 void                 ewl_filelist_selected_files_set(Ewl_Filelist *fl,
00194                                                         Ecore_List *files);
00195 Ecore_List        *ewl_filelist_selected_files_get(Ewl_Filelist *fl);
00196 void                  ewl_filelist_selected_files_change_notify(Ewl_Filelist *fl);
00197 
00198 void                 ewl_filelist_selected_signal_all(Ewl_Filelist *fl,
00199                                                 const char *signal);
00200 
00201 void                 ewl_filelist_vscroll_flag_set(Ewl_Filelist *fl,
00202                                                 Ewl_Scrollpane_Flags v);
00203 Ewl_Scrollpane_Flags ewl_filelist_vscroll_flag_get(Ewl_Filelist *fl);
00204 
00205 void                 ewl_filelist_hscroll_flag_set(Ewl_Filelist *fl,
00206                                                 Ewl_Scrollpane_Flags h);
00207 Ewl_Scrollpane_Flags ewl_filelist_hscroll_flag_get(Ewl_Filelist *fl);
00208 
00209 const char        *ewl_filelist_stock_icon_get(const char *path);
00210 
00211 char                 *ewl_filelist_expand_path(Ewl_Filelist *fl, const char *dir);
00212 
00213 /*
00214  * Internally used functions, override at your own risk
00215  */
00216 void ewl_filelist_cb_destroy(Ewl_Widget *w, void *ev, void *data);
00217 
00222 #endif
00223 

Copyright © Enlightenment.org

Enlightened Widget Library Documentation Generated: Sat May 17 16:49:04 2008