00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00030 #ifndef __vtkKWFavoriteDirectoriesFrame_h
00031 #define __vtkKWFavoriteDirectoriesFrame_h
00032
00033 #include "vtkKWCompositeWidget.h"
00034
00035 class vtkKWPushButton;
00036 class vtkKWToolbar;
00037 class vtkKWFrameWithScrollbar;
00038 class vtkKWFavoriteDirectoriesFrameInternals;
00039 class vtkKWMenu;
00040
00041 class KWWidgets_EXPORT vtkKWFavoriteDirectoriesFrame : public vtkKWCompositeWidget
00042 {
00043
00044 public:
00045 static vtkKWFavoriteDirectoriesFrame* New();
00046 vtkTypeRevisionMacro(vtkKWFavoriteDirectoriesFrame,vtkKWCompositeWidget);
00047 void PrintSelf(ostream& os, vtkIndent indent);
00048
00051 virtual void AddFavoriteDirectory(const char *path, const char *name);
00052
00054
00055 virtual void SetFavoriteDirectoryPath(
00056 const char* oldpath, const char* newpath);
00057 virtual void SetFavoriteDirectoryName(
00058 const char* oldname, const char* newname);
00060
00062 virtual void RemoveFavoriteDirectory(const char *path);
00063
00065
00067 virtual void SelectFavoriteDirectory(const char *path);
00068 virtual int IsFavoriteDirectorySelected(const char *path);
00070
00072 virtual const char* GetSelectedFavoriteDirectory();
00073
00075 virtual int HasFavoriteDirectory(const char* path);
00076
00078 virtual int HasFavoriteDirectoryWithName(const char *name);
00079
00081
00083 virtual void SetMaximumNumberOfFavoriteDirectoriesInRegistry(int);
00084 vtkGetMacro(MaximumNumberOfFavoriteDirectoriesInRegistry, int);
00086
00088 virtual void RestoreFavoriteDirectoriesFromRegistry();
00089
00091
00093 virtual void GetContainerFrameBackgroundColor(
00094 double *r, double *g, double *b);
00095 virtual double* GetContainerFrameBackgroundColor();
00096 virtual void SetContainerFrameBackgroundColor(
00097 double r, double g, double b);
00098 virtual void SetContainerFrameBackgroundColor(double rgb[3])
00099 { this->SetContainerFrameBackgroundColor(rgb[0], rgb[1], rgb[2]); };
00101
00103
00112 virtual void SetAddFavoriteDirectoryCommand(
00113 vtkObject *obj, const char *method);
00115
00117
00125 virtual void SetFavoriteDirectorySelectedCommand(
00126 vtkObject *obj, const char *method);
00128
00130
00131 vtkGetObjectMacro(Toolbar, vtkKWToolbar);
00133
00135
00141 vtkSetMacro(UseSystemDefaultPlaces, int);
00142 vtkGetMacro(UseSystemDefaultPlaces, int);
00143 vtkBooleanMacro(UseSystemDefaultPlaces, int);
00144
00146
00148
00151 vtkGetObjectMacro(AddFavoriteDirectoryButton, vtkKWPushButton);
00153
00155
00161 virtual void UpdateEnableState();
00162 virtual void Update();
00164
00169 virtual void AddFavoriteDirectoryCallback();
00170
00172
00173 virtual void SelectFavoriteDirectoryCallback(
00174 const char* path, const char*name);
00175 virtual void PopupFavoriteDirectoryCallback(
00176 const char* path, int x, int y);
00178
00181 virtual void RenameFavoriteDirectoryCallback(const char* path);
00182
00185 virtual void ExploreFavoriteDirectoryCallback(const char* path);
00186
00190 virtual void RemoveFavoriteDirectoryCallback(const char* path);
00191
00192
00193
00194 protected:
00195 vtkKWFavoriteDirectoriesFrame();
00196 ~vtkKWFavoriteDirectoriesFrame();
00197
00199 virtual void CreateWidget();
00200
00202
00204 virtual const char* GetNameOfFavoriteDirectory(const char *path);
00205 virtual vtkKWPushButton* GetButtonOfFavoriteDirectoryWithName(
00206 const char *name);
00208
00210
00214 virtual void RestoreFavoriteDirectoriesFromSystemRegistry();
00215 virtual void RestoreFavoriteDirectoriesFromUserRegistry(
00216 const char *reg_key, int max_nb);
00217 virtual void WriteFavoriteDirectoriesToRegistry();
00218 virtual void WriteFavoriteDirectoriesToRegistry(
00219 const char *reg_key, int max_nb);
00220 virtual void WriteFavoriteDirectoriesToSystemRegistry();
00222
00225 virtual void PruneFavoriteDirectoriesInRegistry();
00226
00229 virtual int AddSpecialFavoriteFolder(int csidl);
00230
00232
00233 virtual void AddFavoriteDirectoryToFrame(
00234 const char *path,
00235 const char *name);
00236 virtual void UpdateFavoriteDirectoryButton(
00237 vtkKWPushButton *button, const char *path, const char *name);
00239
00241 virtual void SelectFavoriteDirectoryWithName(const char* path);
00242
00244 const char* GetSelectedFavoriteDirectoryWithName(const char* name);
00245
00247 virtual void PopulateContextMenu(vtkKWMenu *menu, const char* path);
00248
00250 virtual void ClearInternalList();
00251
00253 virtual void ClearFavoriteDirectorySelection();
00254
00256
00258 vtkGetStringMacro(RegistryKey);
00259 vtkSetStringMacro(RegistryKey);
00261
00263
00264 char *AddFavoriteDirectoryCommand;
00265 char *FavoriteDirectorySelectedCommand;
00266 virtual void InvokeAddFavoriteDirectoryCommand();
00267 virtual void InvokeFavoriteDirectorySelectedCommand(
00268 const char* path, const char *name);
00270
00272 vtkKWFavoriteDirectoriesFrameInternals *Internals;
00273
00275
00276 vtkKWToolbar *Toolbar;
00277 vtkKWFrameWithScrollbar *ContainerFrame;
00278 vtkKWPushButton *AddFavoriteDirectoryButton;
00279 vtkKWMenu *ContextMenu;
00281
00283
00284 char *RegistryKey;
00285 int MaximumNumberOfFavoriteDirectoriesInRegistry;
00286 int UseSystemDefaultPlaces;
00288
00289
00290
00291 private:
00292
00293 vtkKWFavoriteDirectoriesFrame(const vtkKWFavoriteDirectoriesFrame&);
00294 void operator=(const vtkKWFavoriteDirectoriesFrame&);
00295 };
00296 #endif
00297