lib/ewl_filelist.h
Go to the documentation of this file.00001
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
00215
00216 void ewl_filelist_cb_destroy(Ewl_Widget *w, void *ev, void *data);
00217
00222 #endif
00223