00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00035 #ifndef __vtkKWMostRecentFilesManager_h
00036 #define __vtkKWMostRecentFilesManager_h
00037
00038 #include "vtkKWObject.h"
00039
00040 class vtkKWMostRecentFilesManagerInternals;
00041 class vtkKWMenu;
00042
00043 class KWWidgets_EXPORT vtkKWMostRecentFilesManager : public vtkKWObject
00044 {
00045
00046 public:
00047 static vtkKWMostRecentFilesManager* New();
00048 vtkTypeRevisionMacro(vtkKWMostRecentFilesManager,vtkKWObject);
00049 void PrintSelf(ostream& os, vtkIndent indent);
00050
00052
00062 virtual void AddFile(
00063 const char *filename,
00064 vtkObject *target_object = NULL,
00065 const char *target_command = NULL,
00066 const char *label = NULL);
00068
00070
00071 virtual int GetNumberOfFiles();
00072 virtual const char* GetNthFileName(int idx);
00073 virtual vtkObject* GetNthTargetObject(int idx);
00074 virtual const char* GetNthTargetCommand(int idx);
00075 virtual const char* GetNthLabel(int idx);
00077
00079
00086 vtkGetObjectMacro(DefaultTargetObject, vtkObject);
00087 virtual void SetDefaultTargetObject(vtkObject *object);
00088 vtkGetStringMacro(DefaultTargetCommand);
00089 virtual void SetDefaultTargetCommand(const char *);
00091
00093
00099 virtual void RestoreFilesListFromRegistry();
00100 virtual void SaveFilesToRegistry();
00101 virtual void RestoreFilesListFromRegistry(
00102 const char *reg_key, int max_nb);
00103 virtual void SaveFilesToRegistry(
00104 const char *reg_key, int max_nb);
00106
00108
00111 vtkGetStringMacro(RegistryKey);
00112 vtkSetStringMacro(RegistryKey);
00114
00116
00118 vtkGetMacro(MaximumNumberOfFilesInRegistry, int);
00119 vtkSetMacro(MaximumNumberOfFilesInRegistry, int);
00121
00127 vtkKWMenu* GetMenu();
00128
00130
00132 vtkGetMacro(MaximumNumberOfFilesInMenu, int);
00133 virtual void SetMaximumNumberOfFilesInMenu(int);
00135
00138 virtual void SetFileLabel(const char *filename, const char *label);
00139
00141
00142 virtual void SetLabelVisibilityInMenu(int);
00143 vtkBooleanMacro(LabelVisibilityInMenu, int);
00144 vtkGetMacro(LabelVisibilityInMenu, int);
00146
00148
00153 virtual void SetBaseNameVisibilityInMenu(int);
00154 vtkBooleanMacro(BaseNameVisibilityInMenu, int);
00155 vtkGetMacro(BaseNameVisibilityInMenu, int);
00157
00159
00161 virtual void SetSeparatePathInMenu(int);
00162 vtkBooleanMacro(SeparatePathInMenu, int);
00163 vtkGetMacro(SeparatePathInMenu, int);
00165
00168 virtual void UpdateMenuStateInParent();
00169
00173 virtual void PopulateMenu(vtkKWMenu*, int max_nb);
00174
00176
00177 enum
00178 {
00179 MenuHasChangedEvent = 24000
00180 };
00181
00183
00184
00185
00186 protected:
00187 vtkKWMostRecentFilesManager();
00188 ~vtkKWMostRecentFilesManager();
00189
00190 char *DefaultTargetCommand;
00191 vtkObject *DefaultTargetObject;
00192 char *RegistryKey;
00193 int MaximumNumberOfFilesInRegistry;
00194 int MaximumNumberOfFilesInMenu;
00195 int LabelVisibilityInMenu;
00196 int BaseNameVisibilityInMenu;
00197 int SeparatePathInMenu;
00198
00199
00200
00201
00202
00203 vtkKWMostRecentFilesManagerInternals *Internals;
00204 friend class vtkKWMostRecentFilesManagerInternals;
00205
00206
00207
00209
00211 virtual void AddFileInternal(
00212 const char *filename,
00213 vtkObject *target_object = NULL,
00214 const char *target_command = NULL,
00215 const char *label = NULL);
00217
00219 virtual void UpdateMenu();
00220
00221
00222
00223 private:
00224
00225
00226
00227 vtkKWMenu *Menu;
00228
00229 vtkKWMostRecentFilesManager(const vtkKWMostRecentFilesManager&);
00230 void operator=(const vtkKWMostRecentFilesManager&);
00231 };
00232
00233 #endif
00234
00235