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
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
00227
00228 void ewl_filelist_cb_destroy(Ewl_Widget *w, void *ev, void *data);
00229
00234 #endif
00235