00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #ifndef __vtkKWFileBrowserWidget_h
00030 #define __vtkKWFileBrowserWidget_h
00031
00032 #include "vtkKWCompositeWidget.h"
00033
00034 class vtkKWFavoriteDirectoriesFrame;
00035 class vtkKWDirectoryExplorer;
00036 class vtkKWFileListTable;
00037 class vtkKWFrame;
00038 class vtkKWSplitFrame;
00039 class vtkKWFileBrowserWidgetInternals;
00040
00041 class KWWidgets_EXPORT vtkKWFileBrowserWidget : public vtkKWCompositeWidget
00042 {
00043 public:
00044 static vtkKWFileBrowserWidget* New();
00045 vtkTypeRevisionMacro(vtkKWFileBrowserWidget,vtkKWCompositeWidget);
00046 void PrintSelf(ostream& os, vtkIndent indent);
00047
00048
00049
00050
00051 virtual int OpenDirectory(const char* path);
00052
00053
00054
00055
00056
00057
00058 virtual void FilterFilesByExtensions(const char* fileextensions);
00059
00060
00061
00062 vtkGetObjectMacro(DirectoryExplorer, vtkKWDirectoryExplorer);
00063 vtkGetObjectMacro(FileListTable, vtkKWFileListTable);
00064 vtkGetObjectMacro(FavoriteDirectoriesFrame, vtkKWFavoriteDirectoriesFrame);
00065 vtkGetObjectMacro(MainFrame, vtkKWSplitFrame);
00066 vtkGetObjectMacro(DirFileFrame, vtkKWSplitFrame);
00067
00068
00069
00070 virtual void SetDirectoryExplorerVisibility(int);
00071 vtkBooleanMacro(DirectoryExplorerVisibility, int);
00072 vtkGetMacro(DirectoryExplorerVisibility, int);
00073
00074
00075
00076 virtual void SetFavoriteDirectoriesFrameVisibility(int);
00077 vtkBooleanMacro(FavoriteDirectoriesFrameVisibility, int);
00078 vtkGetMacro(FavoriteDirectoriesFrameVisibility, int);
00079
00080
00081
00082 virtual void SetFileListTableVisibility(int);
00083 vtkBooleanMacro(FileListTableVisibility, int);
00084 vtkGetMacro(FileListTableVisibility, int);
00085
00086
00087
00088 virtual void SetMultipleSelection(int);
00089 vtkBooleanMacro(MultipleSelection, int);
00090 vtkGetMacro(MultipleSelection, int);
00091
00092
00093
00094
00095 vtkGetVector3Macro(SelectionForegroundColor, double);
00096 virtual void SetSelectionForegroundColor(double r, double g, double b);
00097 virtual void SetSelectionForegroundColor(double rgb[3])
00098 { this->SetSelectionForegroundColor(rgb[0], rgb[1], rgb[2]); };
00099 vtkGetVector3Macro(SelectionBackgroundColor, double);
00100 virtual void SetSelectionBackgroundColor(double r, double g, double b);
00101 virtual void SetSelectionBackgroundColor(double rgb[3])
00102 { this->SetSelectionBackgroundColor(rgb[0], rgb[1], rgb[2]); };
00103 vtkGetVector3Macro(OutOfFocusSelectionForegroundColor, double);
00104 virtual void SetOutOfFocusSelectionForegroundColor(
00105 double r, double g, double b);
00106 virtual void SetOutOfFocusSelectionForegroundColor(double rgb[3])
00107 { this->SetOutOfFocusSelectionForegroundColor(rgb[0], rgb[1], rgb[2]); };
00108 vtkGetVector3Macro(OutOfFocusSelectionBackgroundColor, double);
00109 virtual void SetOutOfFocusSelectionBackgroundColor(
00110 double r, double g, double b);
00111 virtual void SetOutOfFocusSelectionBackgroundColor(double rgb[3])
00112 { this->SetOutOfFocusSelectionBackgroundColor(rgb[0], rgb[1], rgb[2]); };
00113
00114
00115
00116 virtual void SetFocusToDirectoryExplorer();
00117 virtual void SetFocusToFileListTable();
00118
00119
00120
00121
00122
00123
00124
00125 virtual void AddFavoriteDirectoryCallback();
00126
00127
00128
00129
00130
00131
00132 virtual void FavoriteDirectorySelectedCallback(
00133 const char* path,
00134 const char* text);
00135
00136
00137
00138
00139 virtual void DirectoryCreatedCallback(const char* fullname);
00140 virtual void DirectorySelectedCallback(const char* fullname);
00141 virtual void DirectoryOpenedCallback(const char* fullname);
00142 virtual void DirectoryClosedCallback(const char* fullname);
00143 virtual void DirectoryDeletedCallback(const char* fullname);
00144 virtual void DirectoryRenamedCallback(
00145 const char* oldname,
00146 const char* newname);
00147
00148
00149
00150
00151 virtual void FileSelectionChangedCallback(const char* fullname);
00152 virtual void FileDoubleClickedCallback(const char* fullname);
00153 virtual void FileRenamedCallback(
00154 const char* oldname,
00155 const char* newname);
00156 virtual void FolderCreatedCallback(const char* filename);
00157 virtual void FileDeletedCallback(const char* fullname, int isDir);
00158
00159
00160
00161 virtual void DirectoryTreeFocusInCallback();
00162 virtual void FileTableFocusInCallback();
00163 virtual void DirectoryTreeFocusOutCallback();
00164 virtual void FileTableFocusOutCallback();
00165
00166
00167
00168
00169
00170
00171
00172
00173 virtual void UpdateEnableState();
00174
00175
00176
00177 virtual void SetWidth(int);
00178 virtual int GetWidth();
00179 virtual void SetHeight(int);
00180 virtual int GetHeight();
00181
00182 protected:
00183 vtkKWFileBrowserWidget();
00184 ~vtkKWFileBrowserWidget();
00185
00186
00187
00188 virtual void CreateWidget();
00189
00190
00191
00192 virtual void Pack();
00193
00194
00195
00196 virtual void CreateFavoriteDirectoriesFrame();
00197 virtual void CreateDirectoryExplorerAndFileListTableFrame();
00198 virtual void CreateDirectoryExplorer();
00199 virtual void CreateFileListTable();
00200
00201
00202
00203 virtual void UpdateDirectorySelectionColor(int infocus = 0);
00204 virtual void UpdateFileSelectionColor(int infocus = 0);
00205
00206 virtual void UpdateForCurrentDirectory();
00207 virtual void PropagateMultipleSelection();
00208
00209
00210
00211
00212 vtkKWFileBrowserWidgetInternals *Internals;
00213
00214
00215
00216
00217
00218
00219
00220 vtkKWSplitFrame *MainFrame;
00221 vtkKWSplitFrame *DirFileFrame;
00222
00223
00224
00225 vtkKWFavoriteDirectoriesFrame *FavoriteDirectoriesFrame;
00226 vtkKWDirectoryExplorer *DirectoryExplorer;
00227 vtkKWFileListTable *FileListTable;
00228
00229
00230
00231 int DirectoryExplorerVisibility;
00232 int FavoriteDirectoriesFrameVisibility;
00233 int FileListTableVisibility;
00234 int MultipleSelection;
00235
00236
00237
00238 double SelectionForegroundColor[3];
00239 double SelectionBackgroundColor[3];
00240 double OutOfFocusSelectionForegroundColor[3];
00241 double OutOfFocusSelectionBackgroundColor[3];
00242
00243 private:
00244 vtkKWFileBrowserWidget(const vtkKWFileBrowserWidget&);
00245 void operator=(const vtkKWFileBrowserWidget&);
00246 };
00247
00248 #endif