00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
#ifndef FXFILESELECTOR_H
00025
#define FXFILESELECTOR_H
00026
00027
#ifndef FXPACKER_H
00028
#include "FXPacker.h"
00029
#endif
00030
00031
namespace FX {
00032
00033
class FXFileList;
00034
class FXTextField;
00035
class FXComboBox;
00036
class FXDirBox;
00037
class FXButton;
00038
class FXIcon;
00039
class FXMenuPane;
00040
class FXCheckButton;
00041
class FXMatrix;
00042
class FXHorizontalFrame;
00043
00044
00045
00046
enum {
00047
SELECTFILE_ANY,
00048
SELECTFILE_EXISTING,
00049
SELECTFILE_MULTIPLE,
00050
SELECTFILE_MULTIPLE_ALL,
00051
SELECTFILE_DIRECTORY
00052 };
00053
00054
00055
00056
class FXAPI FXFileSelector :
public FXPacker {
00057 FXDECLARE(FXFileSelector)
00058 protected:
00059 FXFileList *filebox;
00060 FXTextField *filename;
00061 FXComboBox *filefilter;
00062 FXMenuPane *bookmarkmenu;
00063 FXHorizontalFrame *navbuttons;
00064 FXHorizontalFrame *fileboxframe;
00065
FXMatrix *entryblock;
00066
FXCheckButton *readonly;
00067
FXDirBox *dirbox;
00068
FXButton *accept;
00069
FXButton *cancel;
00070
FXIcon *updiricon;
00071
FXIcon *listicon;
00072
FXIcon *detailicon;
00073
FXIcon *iconsicon;
00074
FXIcon *homeicon;
00075
FXIcon *workicon;
00076
FXIcon *shownicon;
00077
FXIcon *hiddenicon;
00078
FXIcon *markicon;
00079
FXIcon *clearicon;
00080
FXIcon *newicon;
00081
FXIcon *deleteicon;
00082
FXIcon *moveicon;
00083
FXIcon *copyicon;
00084
FXIcon *linkicon;
00085
FXRecentFiles bookmarks;
00086 FXuint selectmode;
00087 protected:
00088 FXFileSelector(){}
00089
FXString *getSelectedFiles() const;
00090
FXString *getSelectedFilesOnly() const;
00091 private:
00092 FXFileSelector(const FXFileSelector&);
00093 FXFileSelector &operator=(const FXFileSelector&);
00094 public:
00095
long onCmdAccept(
FXObject*,FXSelector,
void*);
00096 long onCmdFilter(FXObject*,FXSelector,
void*);
00097
long onCmdItemDblClicked(FXObject*,FXSelector,
void*);
00098
long onCmdItemSelected(FXObject*,FXSelector,
void*);
00099 long onCmdItemDeselected(FXObject*,FXSelector,
void*);
00100
long onCmdDirectoryUp(FXObject*,FXSelector,
void*);
00101
long onUpdDirectoryUp(FXObject*,FXSelector,
void*);
00102
long onCmdDirTree(FXObject*,FXSelector,
void*);
00103
long onCmdHome(FXObject*,FXSelector,
void*);
00104
long onCmdWork(FXObject*,FXSelector,
void*);
00105
long onCmdBookmark(FXObject*,FXSelector,
void*);
00106
long onCmdVisit(FXObject*,FXSelector,
void*);
00107
long onCmdNew(FXObject*,FXSelector,
void*);
00108
long onUpdNew(FXObject*,FXSelector,
void*);
00109
long onCmdMove(FXObject*,FXSelector,
void*);
00110
long onCmdCopy(FXObject*,FXSelector,
void*);
00111
long onCmdLink(FXObject*,FXSelector,
void*);
00112
long onCmdDelete(FXObject*,FXSelector,
void*);
00113
long onUpdSelected(FXObject*,FXSelector,
void*);
00114
long onPopupMenu(FXObject*,FXSelector,
void*);
00115
long onCmdImageSize(FXObject*,FXSelector,
void*);
00116
long onUpdImageSize(FXObject*,FXSelector,
void*);
00117 public:
00118 enum {
00119 ID_FILEFILTER=FXPacker::ID_LAST,
00120 ID_ACCEPT,
00121 ID_FILELIST,
00122 ID_DIRECTORY_UP,
00123 ID_DIRTREE,
00124 ID_NORMAL_SIZE,
00125 ID_MEDIUM_SIZE,
00126 ID_GIANT_SIZE,
00127 ID_HOME,
00128 ID_WORK,
00129 ID_BOOKMARK,
00130 ID_VISIT,
00131 ID_NEW,
00132 ID_DELETE,
00133 ID_MOVE,
00134 ID_COPY,
00135 ID_LINK,
00136 ID_LAST
00137 };
00138
public:
00139
00140
00141 FXFileSelector(
FXComposite *p,
FXObject* tgt=NULL,FXSelector sel=0,FXuint opts=0,FXint x=0,FXint y=0,FXint w=0,FXint h=0);
00142
00143
00144
FXButton *acceptButton()
const {
return accept; }
00145
00146
00147 FXButton *cancelButton()
const {
return cancel; }
00148
00149
00150
void setFilename(
const FXString& path);
00151
00152
00153 FXString getFilename() const;
00154
00155
00156
00157
00158
00159
00160 FXString* getFilenames() const;
00161
00162
00163
void setPattern(const FXString& ptrn);
00164
00165
00166 FXString getPattern() const;
00167
00168
00169
00170
00171
00172
00173
00174
00175
00176
00177
00178
00179
00180
00181
00182
void setPatternList(const FXString& patterns);
00183
00184
00185 FXString getPatternList() const;
00186
00187
00188
00189
00190
00191
void setCurrentPattern(FXint n);
00192
00193
00194 FXint getCurrentPattern() const;
00195
00196
00197 FXString getPatternText(FXint patno) const;
00198
00199
00200
void setPatternText(FXint patno,const
FXString& text);
00201
00202
00203
void allowPatternEntry(FXbool allow);
00204
00205
00206 FXbool allowPatternEntry() const;
00207
00208
00209
00210
00211
00212
00213
00214 static
FXString patternFromText(const
FXString& pattern);
00215
00216
00217
00218
00219
00220
00221 static
FXString extensionFromPattern(const
FXString& pattern);
00222
00223
00224
void setDirectory(const
FXString& path);
00225
00226
00227
FXString getDirectory() const;
00228
00229
00230
void setItemSpace(FXint s);
00231
00232
00233 FXint getItemSpace() const;
00234
00235
00236
void setFileBoxStyle(FXuint style);
00237
00238
00239 FXuint getFileBoxStyle() const;
00240
00241
00242
void setSelectMode(FXuint mode);
00243
00244
00245 FXuint getSelectMode()
const {
return selectmode; }
00246
00247
00248
void setMatchMode(FXuint mode);
00249
00250
00251 FXuint getMatchMode() const;
00252
00253
00254 FXbool showHiddenFiles() const;
00255
00256
00257
void showHiddenFiles(FXbool showing);
00258
00259
00260 FXbool showImages() const;
00261
00262
00263
void showImages(FXbool showing);
00264
00265
00266 FXint getImageSize() const;
00267
00268
00269
void setImageSize(FXint size);
00270
00271
00272
void showReadOnly(FXbool show);
00273
00274
00275 FXbool shownReadOnly() const;
00276
00277
00278
void setReadOnly(FXbool state);
00279
00280
00281 FXbool getReadOnly() const;
00282
00283
00284 virtual
void save(
FXStream& store) const;
00285
00286
00287 virtual
void load(
FXStream& store);
00288
00289
00290 virtual ~FXFileSelector();
00291 };
00292
00293 }
00294
00295 #endif