00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00031 #ifndef __vtkKWFileBrowserWidget_h
00032 #define __vtkKWFileBrowserWidget_h
00033
00034 #include "vtkKWCompositeWidget.h"
00035
00036 class vtkKWFavoriteDirectoriesFrame;
00037 class vtkKWDirectoryExplorer;
00038 class vtkKWFileListTable;
00039 class vtkKWFrame;
00040 class vtkKWSplitFrame;
00041 class vtkKWFileBrowserWidgetInternals;
00042
00043 class KWWidgets_EXPORT vtkKWFileBrowserWidget : public vtkKWCompositeWidget
00044 {
00045
00046 public:
00047 static vtkKWFileBrowserWidget* New();
00048 vtkTypeRevisionMacro(vtkKWFileBrowserWidget,vtkKWCompositeWidget);
00049 void PrintSelf(ostream& os, vtkIndent indent);
00050
00052 virtual int OpenDirectory(const char* path);
00053
00057 virtual void FilterFilesByExtensions(const char* fileextensions);
00058
00060
00061 vtkGetObjectMacro(DirectoryExplorer, vtkKWDirectoryExplorer);
00062 vtkGetObjectMacro(FileListTable, vtkKWFileListTable);
00063 vtkGetObjectMacro(FavoriteDirectoriesFrame, vtkKWFavoriteDirectoriesFrame);
00064 vtkGetObjectMacro(MainFrame, vtkKWSplitFrame);
00065 vtkGetObjectMacro(DirFileFrame, vtkKWSplitFrame);
00067
00069
00070 virtual void SetDirectoryExplorerVisibility(int);
00071 vtkBooleanMacro(DirectoryExplorerVisibility, int);
00072 vtkGetMacro(DirectoryExplorerVisibility, int);
00074
00076
00077 virtual void SetFavoriteDirectoriesFrameVisibility(int);
00078 vtkBooleanMacro(FavoriteDirectoriesFrameVisibility, int);
00079 vtkGetMacro(FavoriteDirectoriesFrameVisibility, int);
00081
00083
00084 virtual void SetFileListTableVisibility(int);
00085 vtkBooleanMacro(FileListTableVisibility, int);
00086 vtkGetMacro(FileListTableVisibility, int);
00088
00090
00091 virtual void SetMultipleSelection(int);
00092 vtkBooleanMacro(MultipleSelection, int);
00093 vtkGetMacro(MultipleSelection, int);
00095
00097
00099 vtkGetVector3Macro(SelectionForegroundColor, double);
00100 virtual void SetSelectionForegroundColor(double r, double g, double b);
00101 virtual void SetSelectionForegroundColor(double rgb[3])
00102 { this->SetSelectionForegroundColor(rgb[0], rgb[1], rgb[2]); };
00103 vtkGetVector3Macro(SelectionBackgroundColor, double);
00104 virtual void SetSelectionBackgroundColor(double r, double g, double b);
00105 virtual void SetSelectionBackgroundColor(double rgb[3])
00106 { this->SetSelectionBackgroundColor(rgb[0], rgb[1], rgb[2]); };
00107 vtkGetVector3Macro(OutOfFocusSelectionForegroundColor, double);
00108 virtual void SetOutOfFocusSelectionForegroundColor(
00109 double r, double g, double b);
00110 virtual void SetOutOfFocusSelectionForegroundColor(double rgb[3])
00111 { this->SetOutOfFocusSelectionForegroundColor(rgb[0], rgb[1], rgb[2]); };
00112 vtkGetVector3Macro(OutOfFocusSelectionBackgroundColor, double);
00113 virtual void SetOutOfFocusSelectionBackgroundColor(
00114 double r, double g, double b);
00115 virtual void SetOutOfFocusSelectionBackgroundColor(double rgb[3])
00116 { this->SetOutOfFocusSelectionBackgroundColor(rgb[0], rgb[1], rgb[2]); };
00118
00120
00121 virtual void SetFocusToDirectoryExplorer();
00122 virtual void SetFocusToFileListTable();
00124
00129 virtual void AddFavoriteDirectoryCallback();
00130
00132
00136 virtual void FavoriteDirectorySelectedCallback(
00137 const char* path,
00138 const char* text);
00140
00142
00143 virtual void DirectoryCreatedCallback(const char* fullname);
00144 virtual void DirectorySelectedCallback(const char* fullname);
00145 virtual void DirectoryOpenedCallback(const char* fullname);
00146 virtual void DirectoryClosedCallback(const char* fullname);
00147 virtual void DirectoryDeletedCallback(const char* fullname);
00148 virtual void DirectoryRenamedCallback(
00149 const char* oldname,
00150 const char* newname);
00152
00154
00155 virtual void FileSelectionChangedCallback(const char* fullname);
00156 virtual void FileDoubleClickedCallback(const char* fullname);
00157 virtual void FileRenamedCallback(
00158 const char* oldname,
00159 const char* newname);
00160 virtual void FolderCreatedCallback(const char* filename);
00161 virtual void FileDeletedCallback(const char* fullname, int isDir);
00163
00165
00166 virtual void DirectoryTreeFocusInCallback();
00167 virtual void FileTableFocusInCallback();
00168 virtual void DirectoryTreeFocusOutCallback();
00169 virtual void FileTableFocusOutCallback();
00171
00178 virtual void UpdateEnableState();
00179
00181
00182 virtual void SetWidth(int);
00183 virtual int GetWidth();
00184 virtual void SetHeight(int);
00185 virtual int GetHeight();
00187
00188
00189
00190 protected:
00191 vtkKWFileBrowserWidget();
00192 ~vtkKWFileBrowserWidget();
00193
00195 virtual void CreateWidget();
00196
00198 virtual void Pack();
00199
00201
00202 virtual void CreateFavoriteDirectoriesFrame();
00203 virtual void CreateDirectoryExplorerAndFileListTableFrame();
00204 virtual void CreateDirectoryExplorer();
00205 virtual void CreateFileListTable();
00207
00209
00210 virtual void UpdateDirectorySelectionColor(int infocus = 0);
00211 virtual void UpdateFileSelectionColor(int infocus = 0);
00213
00214 virtual void UpdateForCurrentDirectory();
00215 virtual void PropagateMultipleSelection();
00216
00218 vtkKWFileBrowserWidgetInternals *Internals;
00219
00221
00224 vtkKWSplitFrame *MainFrame;
00225 vtkKWSplitFrame *DirFileFrame;
00227
00229
00230 vtkKWFavoriteDirectoriesFrame *FavoriteDirectoriesFrame;
00231 vtkKWDirectoryExplorer *DirectoryExplorer;
00232 vtkKWFileListTable *FileListTable;
00234
00236
00237 int DirectoryExplorerVisibility;
00238 int FavoriteDirectoriesFrameVisibility;
00239 int FileListTableVisibility;
00240 int MultipleSelection;
00242
00244
00245 double SelectionForegroundColor[3];
00246 double SelectionBackgroundColor[3];
00247 double OutOfFocusSelectionForegroundColor[3];
00248 double OutOfFocusSelectionBackgroundColor[3];
00250
00251
00252
00253 private:
00254 vtkKWFileBrowserWidget(const vtkKWFileBrowserWidget&);
00255 void operator=(const vtkKWFileBrowserWidget&);
00256 };
00257
00258 #endif
00259