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 
00012 #include <Ecore_File.h>
00013 
00014 #ifndef uid_t
00015 # define uid_t unsigned long
00016 #endif
00017 
00018 #ifndef gid_t
00019 # define gid_t unsigned long
00020 #endif
00021 
00038 #define EWL_FILELIST_FILTER_TYPE "filelist_filter"
00039 
00040 typedef struct Ewl_Filelist_Filter Ewl_Filelist_Filter;
00041 
00046 #define EWL_FILELIST_FILTER(ff), ((Ewl_Filelist_Filter *)ff)
00047 
00051 struct Ewl_Filelist_Filter
00052 {
00053                 char *name;
00054                 char *extension;
00055                 Ecore_List *mime_list;
00056 };
00057 
00062 #define EWL_FILELIST_TYPE "filelist"
00063 
00068 #define EWL_FILELIST_IS(w) (ewl_widget_type_is(EWL_WIDGET(w), EWL_FILELIST_TYPE))
00069 
00073 typedef struct Ewl_Filelist Ewl_Filelist;
00074 
00079 #define EWL_FILELIST(fl) ((Ewl_Filelist *)fl)
00080 
00084 struct Ewl_Filelist
00085 {
00086         Ewl_Box box;                     
00087         Ewl_Widget *controller;          
00089         Ewl_View *view;                  
00090         Ewl_Model *model;                
00092         char *directory;                 
00093         Ewl_Filelist_Filter *filter;     
00095         unsigned char multiselect:1;     
00096         unsigned char show_dot:1;        
00098         Ewl_Filelist_View view_flag;     
00100         struct
00101         {        Ewl_Scrollpane_Flags h; 
00102                 Ewl_Scrollpane_Flags v;  
00103         } scroll_flags;                  
00104         Ecore_File_Monitor *fm;          
00105 };
00106 
00111 #define EWL_FILELIST_FILE_TYPE "filelist_file"
00112 
00113 typedef struct Ewl_Filelist_File Ewl_Filelist_File;
00114 
00119 #define EWL_FILELIST_FILE(fl) ((Ewl_Filelist_File *)fl)
00120 
00124 struct Ewl_Filelist_File
00125 {
00126         const char *name;
00127         off_t size;
00128         mode_t mode;
00129         uid_t username;
00130         gid_t groupname;
00131         time_t modtime;
00132         unsigned char readable:1;
00133         unsigned char writeable:1;
00134         unsigned char is_dir:1;
00135 };
00136 
00141 #define EWL_FILELIST_DIRECTORY_TYPE "filelist_directory"
00142 
00143 typedef struct Ewl_Filelist_Directory Ewl_Filelist_Directory;
00144 
00149 #define EWL_FILELIST_DIRECTORY(fl) ((Ewl_Filelist_Directory *)fl)
00150 
00154 struct Ewl_Filelist_Directory
00155 {
00156         const char *name;
00157         Ecore_List *rfiles;
00158         Ecore_List *rdirs;
00159         Ecore_List *files;
00160         Ecore_List *dirs;
00161         Ewl_Filelist_Filter *filter;
00162         unsigned char show_dot:1;
00163         unsigned int num_dirs;
00164         unsigned int num_files;
00165 };
00166 
00167 Ewl_Widget              *ewl_filelist_new(void);
00168 
00169 int                      ewl_filelist_init(Ewl_Filelist *fl);
00170 
00171 void                     ewl_filelist_directory_set(Ewl_Filelist *fl,
00172                                                         const char *dir);
00173 const char              *ewl_filelist_directory_get(Ewl_Filelist *fl);
00174 void                     ewl_filelist_refresh(Ewl_Filelist *fl);
00175 
00176 void                     ewl_filelist_filter_set(Ewl_Filelist *fl,
00177                                                         Ewl_Filelist_Filter *filter);
00178 Ewl_Filelist_Filter     *ewl_filelist_filter_get(Ewl_Filelist *fl);
00179 
00180 void                     ewl_filelist_view_set(Ewl_Filelist *fl,
00181                                                 Ewl_Filelist_View view);
00182 Ewl_Filelist_View        ewl_filelist_view_get(Ewl_Filelist *fl);
00183 
00184 
00185 void                     ewl_filelist_multiselect_set(Ewl_Filelist *fl,
00186                                                         unsigned int ms);
00187 unsigned int             ewl_filelist_multiselect_get(Ewl_Filelist *fl);
00188 
00189 void                     ewl_filelist_show_dot_files_set(Ewl_Filelist *fl,
00190                                                         unsigned int dot);
00191 unsigned int             ewl_filelist_show_dot_files_get(Ewl_Filelist *fl);
00192 
00193 void                     ewl_filelist_selected_file_set(Ewl_Filelist *fl,
00194                                                          const char *file);
00195 char                    *ewl_filelist_selected_file_get(Ewl_Filelist *fl);
00196 char                    *ewl_filelist_size_get(off_t st_size);
00197 char                    *ewl_filelist_perms_get(mode_t st_mode);
00198 char                    *ewl_filelist_username_get(uid_t st_uid);
00199 char                    *ewl_filelist_groupname_get(gid_t st_gid);
00200 char                    *ewl_filelist_modtime_get(time_t modtime);
00201 Ewl_Widget              *ewl_filelist_selected_file_preview_get(Ewl_Filelist *fl,
00202                                                         const char *path);
00203 Ewl_Widget              *ewl_filelist_multi_select_preview_get(Ewl_Filelist *fl);
00204 
00205 void                     ewl_filelist_selected_files_set(Ewl_Filelist *fl,
00206                                                         Ecore_List *files);
00207 Ecore_List              *ewl_filelist_selected_files_get(Ewl_Filelist *fl);
00208 void                     ewl_filelist_selected_files_change_notify(Ewl_Filelist *fl);
00209 
00210 void                     ewl_filelist_selected_signal_all(Ewl_Filelist *fl,
00211                                                 const char *signal);
00212 
00213 void                     ewl_filelist_vscroll_flag_set(Ewl_Filelist *fl,
00214                                                 Ewl_Scrollpane_Flags v);
00215 Ewl_Scrollpane_Flags     ewl_filelist_vscroll_flag_get(Ewl_Filelist *fl);
00216 
00217 void                     ewl_filelist_hscroll_flag_set(Ewl_Filelist *fl,
00218                                                 Ewl_Scrollpane_Flags h);
00219 Ewl_Scrollpane_Flags     ewl_filelist_hscroll_flag_get(Ewl_Filelist *fl);
00220 
00221 const char              *ewl_filelist_stock_icon_get(const char *path);
00222 
00223 char                    *ewl_filelist_expand_path(Ewl_Filelist *fl, const char *dir);
00224 
00225 /*
00226  * Internally used functions, override at your own risk
00227  */
00228 void ewl_filelist_cb_destroy(Ewl_Widget *w, void *ev, void *data);
00229 
00234 #endif
00235 

Copyright © Enlightenment.org

Enlightened Widget Library Documentation Generated: Fri Jan 23 21:56:24 2009