00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00024 #ifndef __vtkKWWindowBase_h
00025 #define __vtkKWWindowBase_h
00026
00027 #include "vtkKWTopLevel.h"
00028
00029 class vtkKWFrame;
00030 class vtkKWLabel;
00031 class vtkKWMenu;
00032 class vtkKWMostRecentFilesManager;
00033 class vtkKWKeyBindingsManager;
00034 class vtkKWProgressGauge;
00035 class vtkKWSeparator;
00036 class vtkKWToolbar;
00037 class vtkKWToolbarSet;
00038
00039 class KWWidgets_EXPORT vtkKWWindowBase : public vtkKWTopLevel
00040 {
00041
00042 public:
00043 static vtkKWWindowBase* New();
00044 vtkTypeRevisionMacro(vtkKWWindowBase,vtkKWTopLevel);
00045 void PrintSelf(ostream& os, vtkIndent indent);
00046
00052 virtual int Close();
00053
00055
00057 vtkSetMacro(PromptBeforeClose, int);
00058 vtkGetMacro(PromptBeforeClose, int);
00059 vtkBooleanMacro(PromptBeforeClose, int);
00061
00063
00066 virtual void LoadScript();
00067 virtual void LoadScript(const char *filename);
00069
00071
00072 vtkSetStringMacro(ScriptExtension);
00073 vtkGetStringMacro(ScriptExtension);
00075
00077
00078 vtkSetStringMacro(ScriptType);
00079 vtkGetStringMacro(ScriptType);
00081
00083
00084 virtual void SetStatusText(const char *);
00085 virtual const char *GetStatusText();
00087
00089
00093 enum
00094 {
00095 ErrorIconNone = 0,
00096 ErrorIconBlack,
00097 ErrorIconRed
00098 };
00099
00100 virtual void SetErrorIcon(int);
00101 virtual void SetErrorIconToNone()
00102 { this->SetErrorIcon(vtkKWWindowBase::ErrorIconNone); };
00103 virtual void SetErrorIconToBlack()
00104 { this->SetErrorIcon(vtkKWWindowBase::ErrorIconBlack); };
00105 virtual void SetErrorIconToRed()
00106 { this->SetErrorIcon(vtkKWWindowBase::ErrorIconRed); };
00108
00120 virtual vtkKWFrame* GetViewFrame();
00121
00123
00124 vtkGetObjectMacro(MainToolbarSet, vtkKWToolbarSet);
00126
00128
00129 vtkGetObjectMacro(StatusFrame, vtkKWFrame);
00131
00133
00139 virtual void SetStatusFrameVisibility(int flag);
00140 vtkGetMacro(StatusFrameVisibility, int);
00141 vtkBooleanMacro(StatusFrameVisibility, int);
00143
00145
00147 vtkGetObjectMacro(ProgressGauge, vtkKWProgressGauge);
00149
00151
00155 enum
00156 {
00157 ProgressGaugePositionStatusFrame = 0,
00158 ProgressGaugePositionToolbar
00159 };
00160
00161 virtual void SetProgressGaugePosition(int);
00162 virtual void SetProgressGaugePositionToStatusFrame()
00163 { this->SetProgressGaugePosition(
00164 vtkKWWindowBase::ProgressGaugePositionStatusFrame); };
00165 virtual void SetProgressGaugePositionToToolbar()
00166 { this->SetProgressGaugePosition(
00167 vtkKWWindowBase::ProgressGaugePositionToolbar); };
00169
00171
00174 vtkGetObjectMacro(TrayFrame, vtkKWFrame);
00176
00178
00182 enum
00183 {
00184 TrayFramePositionStatusFrame = 0,
00185 TrayFramePositionToolbar
00186 };
00187
00188 vtkGetMacro(TrayFramePosition, int);
00189 virtual void SetTrayFramePosition(int);
00190 virtual void SetTrayFramePositionToStatusFrame()
00191 { this->SetTrayFramePosition(
00192 vtkKWWindowBase::TrayFramePositionStatusFrame); };
00193 virtual void SetTrayFramePositionToToolbar()
00194 { this->SetTrayFramePosition(
00195 vtkKWWindowBase::TrayFramePositionToolbar); };
00197
00199
00206 vtkKWMenu *GetFileMenu();
00207 vtkKWMenu *GetEditMenu();
00208 vtkKWMenu *GetViewMenu();
00209 vtkKWMenu *GetWindowMenu();
00210 vtkKWMenu *GetHelpMenu();
00211 vtkKWMenu *GetToolbarsVisibilityMenu();
00212 vtkGetObjectMacro(MenuBarSeparator, vtkKWSeparator);
00214
00216
00223 virtual int GetFileMenuInsertPosition();
00224 virtual int GetHelpMenuInsertPosition();
00225 virtual int GetViewMenuInsertPosition();
00227
00229
00234 vtkSetClampMacro(SupportHelp, int, 0, 1);
00235 vtkGetMacro(SupportHelp, int);
00236 vtkBooleanMacro(SupportHelp, int);
00238
00240
00244 virtual void AddRecentFile(
00245 const char *filename, vtkObject *target, const char *command);
00247
00252 virtual void InsertRecentFilesMenu(int pos, vtkObject *target);
00253
00255
00260 vtkSetClampMacro(SupportPrint, int, 0, 1);
00261 vtkGetMacro(SupportPrint, int);
00262 vtkBooleanMacro(SupportPrint, int);
00264
00266
00267 vtkGetObjectMacro(KeyBindingsManager, vtkKWKeyBindingsManager);
00269
00272 virtual char* GetTitle();
00273
00277 virtual void Update();
00278
00280 virtual void UpdateToolbarState();
00281
00283
00292 virtual void UpdateEnableState();
00293 virtual void UpdateMenuState();
00295
00298 virtual void PrepareForDelete();
00299
00301
00302 vtkGetStringMacro(PrintOptionsMenuLabel);
00303 vtkGetStringMacro(FileMenuLabel);
00304 vtkGetStringMacro(FileCloseMenuLabel);
00305 vtkGetStringMacro(FileExitMenuLabel);
00306 vtkGetStringMacro(OpenRecentFileMenuLabel);
00307 vtkGetStringMacro(EditMenuLabel);
00308 vtkGetStringMacro(ViewMenuLabel);
00309 vtkGetStringMacro(WindowMenuLabel);
00310 vtkGetStringMacro(HelpMenuLabel);
00311 vtkGetStringMacro(HelpAboutMenuLabel);
00312 vtkGetStringMacro(HelpTopicsMenuLabel);
00313 vtkGetStringMacro(HelpTutorialMenuLabel);
00314 vtkGetStringMacro(HelpKeyBindingsMenuLabel);
00315 vtkGetStringMacro(HelpCheckForUpdatesMenuLabel);
00316 vtkGetStringMacro(ToolbarsVisibilityMenuLabel);
00317 vtkGetStringMacro(WindowGeometryRegKey);
00318 vtkGetStringMacro(DefaultGeometry);
00320
00322
00326 enum
00327 {
00328 WindowClosingEvent = 10000
00329 };
00330
00332
00334
00338 virtual void AddCallbackCommandObservers();
00339 virtual void RemoveCallbackCommandObservers();
00341
00343
00347 virtual void AddErrorCallbackCommandObservers();
00348 virtual void RemoveErrorCallbackCommandObservers();
00350
00352
00353 virtual void ErrorIconCallback();
00354 virtual void PrintSettingsCallback() {};
00355 virtual void ToolbarVisibilityChangedCallback(vtkKWToolbar*);
00356 virtual void NumberOfToolbarsChangedCallback();
00357 virtual void DisplayKeyBindingsCallback();
00359
00360
00361
00362 protected:
00363 vtkKWWindowBase();
00364 ~vtkKWWindowBase();
00365
00367 virtual void CreateWidget();
00368
00371 virtual int DisplayCloseDialog();
00372
00374
00376 virtual void UpdateStatusImage();
00377 virtual vtkKWLabel *GetStatusImage();
00379
00381 vtkKWMostRecentFilesManager *MostRecentFilesManager;
00382
00384 vtkKWKeyBindingsManager *KeyBindingsManager;
00385
00387
00388 virtual void SaveWindowGeometryToRegistry();
00389 virtual void RestoreWindowGeometryFromRegistry();
00391
00393 virtual void Pack();
00394
00395 vtkKWSeparator *MenuBarSeparator;
00396 vtkKWFrame *MainFrame;
00397
00398 vtkKWSeparator *StatusFrameSeparator;
00399 vtkKWFrame *StatusFrame;
00400 vtkKWLabel *StatusImage;
00401 vtkKWLabel *StatusLabel;
00402
00403 vtkKWProgressGauge *ProgressGauge;
00404 int ProgressGaugePosition;
00405
00406 vtkKWFrame *TrayFrame;
00407 vtkKWLabel *TrayImageError;
00408 int TrayFramePosition;
00409
00410 vtkKWToolbarSet *MainToolbarSet;
00411 vtkKWToolbar *StatusToolbar;
00412
00413 char *ScriptExtension;
00414 char *ScriptType;
00415 int SupportHelp;
00416 int SupportPrint;
00417 int PromptBeforeClose;
00418 int StatusFrameVisibility;
00419
00420
00421
00422 vtkKWMenu *FileMenu;
00423 vtkKWMenu *EditMenu;
00424 vtkKWMenu *ViewMenu;
00425 vtkKWMenu *WindowMenu;
00426 vtkKWMenu *HelpMenu;
00427 vtkKWMenu *ToolbarsVisibilityMenu;
00428
00430
00434 virtual void PopulateFileMenu();
00435 virtual void PopulateEditMenu();
00436 virtual void PopulateViewMenu();
00437 virtual void PopulateWindowMenu();
00438 virtual void PopulateHelpMenu();
00440
00441 vtkKWTclInteractor *TclInteractor;
00442
00444
00445 vtkSetStringMacro(PrintOptionsMenuLabel);
00446 vtkSetStringMacro(FileMenuLabel);
00447 vtkSetStringMacro(FileCloseMenuLabel);
00448 vtkSetStringMacro(FileExitMenuLabel);
00449 vtkSetStringMacro(OpenRecentFileMenuLabel);
00450 vtkSetStringMacro(EditMenuLabel);
00451 vtkSetStringMacro(ViewMenuLabel);
00452 vtkSetStringMacro(WindowMenuLabel);
00453 vtkSetStringMacro(HelpMenuLabel);
00454 vtkSetStringMacro(HelpTopicsMenuLabel);
00455 vtkSetStringMacro(HelpTutorialMenuLabel);
00456 vtkSetStringMacro(HelpKeyBindingsMenuLabel);
00457 vtkSetStringMacro(HelpAboutMenuLabel);
00458 vtkSetStringMacro(HelpCheckForUpdatesMenuLabel);
00459 vtkSetStringMacro(ToolbarsVisibilityMenuLabel);
00460 vtkSetStringMacro(WindowGeometryRegKey);
00461 vtkSetStringMacro(DefaultGeometry);
00463
00465
00468 virtual void ProcessCallbackCommandEvents(
00469 vtkObject *caller, unsigned long event, void *calldata);
00471
00472
00473
00474 private:
00475
00477
00478 char *PrintOptionsMenuLabel;
00479 char *FileMenuLabel;
00480 char *FileCloseMenuLabel;
00481 char *FileExitMenuLabel;
00482 char *OpenRecentFileMenuLabel;
00483 char *EditMenuLabel;
00484 char *ViewMenuLabel;
00485 char *WindowMenuLabel;
00486 char *HelpMenuLabel;
00487 char *HelpTopicsMenuLabel;
00488 char *HelpTutorialMenuLabel;
00489 char *HelpKeyBindingsMenuLabel;
00490 char *HelpAboutMenuLabel;
00491 char *HelpCheckForUpdatesMenuLabel;
00492 char *ToolbarsVisibilityMenuLabel;
00493 char *WindowGeometryRegKey;
00494 char *DefaultGeometry;
00496
00497 vtkKWWindowBase(const vtkKWWindowBase&);
00498 void operator=(const vtkKWWindowBase&);
00499 };
00500
00501 #endif
00502