00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00034 #ifndef __vtkKWFileListTable_h
00035 #define __vtkKWFileListTable_h
00036
00037 #include "vtkKWCompositeWidget.h"
00038
00039 class vtkKWMultiColumnListWithScrollbars;
00040 class vtkKWMenu;
00041 class vtkGlobFileNames;
00042 class vtkKWFileListTableInternals;
00043
00044 class KWWidgets_EXPORT vtkKWFileListTable : public vtkKWCompositeWidget
00045 {
00046
00047 public:
00048 static vtkKWFileListTable* New();
00049 vtkTypeRevisionMacro(vtkKWFileListTable,vtkKWCompositeWidget);
00050 void PrintSelf(ostream& os, vtkIndent indent);
00051
00053
00057 virtual int ShowFileList(
00058 const char *path,
00059 const char *filepattern,
00060 const char *fileextensions);
00062
00064
00066 virtual void SetParentDirectory(const char *arg);
00067 vtkGetStringMacro(ParentDirectory);
00069
00071
00075 virtual void SetFilePattern(const char *arg);
00076 vtkGetStringMacro(FilePattern);
00078
00080
00085 virtual void SetFileExtensions(const char *arg);
00086 vtkGetStringMacro(FileExtensions);
00088
00090
00092 virtual void SetSelectionMode(int);
00093 virtual void SetSelectionModeToSingle();
00094 virtual void SetSelectionModeToBrowse();
00095 virtual void SetSelectionModeToMultiple();
00096 virtual void SetSelectionModeToExtended();
00098
00100
00102 virtual const char *GetSelectedFileName()
00103 {return GetNthSelectedFileName(0);}
00104 virtual int GetNumberOfSelectedFileNames();
00105 virtual const char *GetNthSelectedFileName(int i);
00106 virtual void SelectFileName(const char* filename);
00107 virtual void DeselectFileName(const char*);
00108 virtual void ClearSelection();
00110
00112
00113 virtual void GetSelectionBackgroundColor(double *r, double *g, double *b);
00114 virtual double* GetSelectionBackgroundColor();
00115 virtual void SetSelectionBackgroundColor(double r, double g, double b);
00116 virtual void SetSelectionBackgroundColor(double rgb[3])
00117 { this->SetSelectionBackgroundColor(rgb[0], rgb[1], rgb[2]); };
00118 virtual void GetSelectionForegroundColor(double *r, double *g, double *b);
00119 virtual double* GetSelectionForegroundColor();
00120 virtual void SetSelectionForegroundColor(double r, double g, double b);
00121 virtual void SetSelectionForegroundColor(double rgb[3])
00122 { this->SetSelectionForegroundColor(rgb[0], rgb[1], rgb[2]); };
00124
00126
00130 virtual void SetTableWidth(int width);
00131 virtual int GetTableWidth();
00132 virtual void SetTableHeight(int height);
00133 virtual int GetTableHeight();
00135
00137
00138 virtual void GetTableBackgroundColor(double *r, double *g, double *b);
00139 virtual double* GetTableBackgroundColor();
00140 virtual void SetTableBackgroundColor(double r, double g, double b);
00141 virtual void SetTableBackgroundColor(double rgb[3])
00142 { this->SetTableBackgroundColor(rgb[0], rgb[1], rgb[2]); };
00144
00146
00156 virtual void SetFileSelectedCommand(vtkObject *obj, const char *method);
00157 virtual void SetFileDoubleClickedCommand(vtkObject *obj, const char *method);
00158 virtual void SetFileDeletedCommand(vtkObject *obj, const char *method);
00159 virtual void SetFileRenamedCommand(vtkObject *obj, const char *method);
00160 virtual void SetFolderCreatedCommand(vtkObject *obj, const char *method);
00162
00164
00172 enum
00173 {
00174 FileSelectionChangedEvent = 10000,
00175 FileDoubleClickedEvent,
00176 FileRenamedEvent,
00177 FolderCreatedEvent,
00178 FileDeletedEvent
00179 };
00180
00182
00184
00186 virtual void Focus();
00187 virtual int HasFocus();
00189
00191
00194 virtual void AddBindingToInternalWidget(const char* event,
00195 vtkObject *obj, const char* method);
00196 virtual void RemoveBindingFromInternalWidget(const char* event,
00197 vtkObject *obj, const char* method);
00199
00201 virtual void ContextMenuCallback(int row, int col, int x, int y);
00202
00204
00206 virtual void KeyPriorNextNavigationCallback(
00207 const char *w, int x, int y,
00208 int root_x, int root_y, const char* key);
00210
00212 virtual int RenameFileCallback();
00213
00216 virtual void FocusInCallback();
00217
00219 virtual void ExploreFileCallback();
00220
00222 virtual void CreateNewFolderCallback(const char* parentdir);
00223
00226 virtual void SelectedFileChangedCallback();
00227
00232 virtual void KeyHomeEndNavigationCallback(const char *key);
00233
00236 virtual void FileDoubleClickCallback();
00237
00240 virtual int RemoveSelectedFileCallback();
00241
00247 virtual char *GetFormatTimeStringCallback(const char* celltext);
00248
00250 virtual int SortTimeCallback(const char* cell1, const char* cell2);
00251
00256 virtual char *GetFormatSizeStringCallback(const char* celltext);
00257
00263 virtual char *GetRealNameStringCallback(const char* celltext);
00264
00271 virtual void UpdateEnableState();
00272
00275 virtual void ScrollToFile(const char* prefix);
00276
00277
00278
00279 protected:
00280 vtkKWFileListTable();
00281 ~vtkKWFileListTable();
00282
00284 virtual void CreateWidget();
00285
00287 virtual void PopulateContextMenu(int rowselected);
00288
00290
00291 char *FileSelectedCommand;
00292 char *FileDoubleClickedCommand;
00293 char *FileDeletedCommand;
00294 char *FileRenamedCommand;
00295 char *FolderCreatedCommand;
00297
00299
00300 virtual void InvokeFileSelectedCommand(const char* path);
00301 virtual void InvokeFileDoubleClickedCommand(const char* path);
00302 virtual void InvokeFileDeletedCommand(const char* path, int isDir);
00303 virtual void InvokeFileRenamedCommand(
00304 const char* oldname, const char* newname);
00305 virtual void InvokeFolderCreatedCommand(const char* filename);
00307
00309
00310 virtual void SetParentDirectoryInternal(const char *arg);
00311 virtual void SetFilePatternInternal(const char *arg);
00312 virtual void SetFileExtensionsInternal(const char *arg);
00314
00316
00317 vtkKWFileListTableInternals *Internals;
00318 vtkKWMultiColumnListWithScrollbars *FileList;
00319 vtkKWMenu *ContextMenu;
00320 char* ParentDirectory;
00321 char* FilePattern;
00322 char* FileExtensions;
00324
00325
00326
00327 private:
00328 vtkKWFileListTable(const vtkKWFileListTable&);
00329 void operator=(const vtkKWFileListTable&);
00330
00333 virtual char* GetRowFileName(int row);
00334
00336 virtual const char* GetCellText(int row, int col);
00337
00338 };
00339 #endif
00340