00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00035 #ifndef __vtkKWFileBrowserDialog_h
00036 #define __vtkKWFileBrowserDialog_h
00037
00038 #include "vtkKWDialog.h"
00039
00040 class vtkKWFileBrowserWidget;
00041 class vtkKWPushButton;
00042 class vtkKWFrame;
00043 class vtkKWLabel;
00044 class vtkKWEntry;
00045 class vtkKWComboBox;
00046 class vtkKWFileBrowserDialogInternals;
00047 class vtkStringArray;
00048
00049 class KWWidgets_EXPORT vtkKWFileBrowserDialog : public vtkKWDialog
00050 {
00051
00052 public:
00053 static vtkKWFileBrowserDialog* New();
00054 vtkTypeRevisionMacro(vtkKWFileBrowserDialog,vtkKWDialog);
00055 void PrintSelf(ostream& os, vtkIndent indent);
00056
00058
00063 vtkGetStringMacro(FileName);
00064 int GetNumberOfFileNames();
00065 const char *GetNthFileName(int i);
00066 vtkGetObjectMacro(FileNames, vtkStringArray);
00068
00074 virtual void SetFileName(const char*);
00075
00087 void SetInitialSelectedFileNames(vtkStringArray* filenames);
00088
00090
00091 vtkSetStringMacro(InitialFileName);
00092 vtkGetStringMacro(InitialFileName);
00094
00096
00099 virtual void SetFileTypes(const char *);
00100 vtkGetStringMacro(FileTypes);
00102
00108 virtual const char* GetCurrentFileExtensions();
00109
00111
00112 virtual void SetDefaultExtension(const char *);
00113 vtkGetStringMacro(DefaultExtension);
00115
00117
00119 virtual void SetSaveDialog(int);
00120 vtkBooleanMacro(SaveDialog, int);
00121 vtkGetMacro(SaveDialog, int);
00123
00125
00127 virtual void SetChooseDirectory(int);
00128 vtkBooleanMacro(ChooseDirectory, int);
00129 vtkGetMacro(ChooseDirectory, int);
00131
00133
00134 virtual int GetMultipleSelection();
00135 virtual void SetMultipleSelection(int);
00136 vtkBooleanMacro(MultipleSelection, int);
00138
00140
00141 virtual char* GetLastPath();
00142 vtkSetStringMacro(LastPath);
00144
00146 const char* GenerateLastPath(const char* path);
00147
00149
00150 vtkGetObjectMacro(FileBrowserWidget, vtkKWFileBrowserWidget);
00152
00154
00156 vtkGetObjectMacro(PreviewFrame, vtkKWFrame);
00158
00160
00161 virtual void SetPreviewFrameVisibility(int);
00162 vtkBooleanMacro(PreviewFrameVisibility, int);
00163 vtkGetMacro(PreviewFrameVisibility, int);
00165
00167
00168 virtual void SaveGeometryToRegistry();
00169 virtual void RestoreGeometryFromRegistry();
00171
00173
00175 virtual void SaveLastPathToRegistry(const char *key);
00176 virtual void RetrieveLastPathFromRegistry(const char *key);
00178
00180
00188 virtual void SetFileNameChangedCommand(
00189 vtkObject *object, const char *method);
00191
00193
00196 enum
00197 {
00198 FileNameChangedEvent = 15000
00199 };
00200
00202
00204 virtual void OK();
00205
00207 virtual void Cancel();
00208
00210 virtual void FileTypeChangedCallback(const char* filetype);
00211
00213 virtual void FileNameEditingCallback(const char* filename);
00214
00216
00220 virtual void AddCallbackCommandObservers();
00221 virtual void RemoveCallbackCommandObservers();
00223
00224
00225
00226 protected:
00227 vtkKWFileBrowserDialog();
00228 ~vtkKWFileBrowserDialog();
00229
00231 virtual void CreateWidget();
00232
00234 virtual void CreatePreviewFrame();
00235
00238 virtual void PopulateFileTypes();
00239
00241 virtual void Update();
00242
00249 virtual void UpdateEnableState();
00250
00252 virtual void Display();
00253
00256 virtual int ConfirmOverwrite(const char* filename);
00257
00259
00260 virtual int FileOK();
00261 virtual int DirectoryOK();
00263
00265 vtkKWFileBrowserDialogInternals *Internals;
00266
00268
00269 vtkKWFileBrowserWidget *FileBrowserWidget;
00270 vtkKWFrame *BottomFrame;
00271 vtkKWLabel *FileNameLabel;
00272 vtkKWLabel *FileTypesLabel;
00273 vtkKWEntry *FileNameText;
00274 vtkKWComboBox *FileTypesBox;
00275 vtkKWPushButton *OKButton;
00276 vtkKWPushButton *CancelButton;
00277 vtkKWFrame *PreviewFrame;
00279
00281
00282 char *FileTypes;
00283 char *DefaultExtension;
00285
00286 int PreviewFrameVisibility;
00287 int SaveDialog;
00288 int ChooseDirectory;
00289
00290 vtkStringArray *FileNames;
00291 vtkStringArray *InitialSelecttedFileNames;
00292
00293 char *FileNameChangedCommand;
00294 virtual void InvokeFileNameChangedCommand(const char*);
00295
00298 virtual int SetupInitialSelectedFiles();
00299
00301
00304 virtual void ProcessCallbackCommandEvents(
00305 vtkObject *caller, unsigned long event, void *calldata);
00306 virtual void ProcessDirectorySelectedEvent(const char* fullname);
00307 virtual void ProcessFileSelectionChangedEvent(const char* fullname);
00308 virtual void ProcessFileDoubleClickedEvent(const char* fullname);
00310
00313 virtual int OpenMultipleFileNames(const char* inputnames);
00314
00315
00316
00317 private:
00318
00319 char *InitialFileName;
00320 char *LastPath;
00321 char *FileName;
00322
00323 vtkKWFileBrowserDialog(const vtkKWFileBrowserDialog&);
00324 void operator=(const vtkKWFileBrowserDialog&);
00325 };
00326 #endif
00327