00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00021 #ifndef __vtkKWWindowBase_h
00022 #define __vtkKWWindowBase_h
00023
00024 #include "vtkKWTopLevel.h"
00025
00026 class vtkKWApplication;
00027 class vtkKWFrame;
00028 class vtkKWLabel;
00029 class vtkKWMenu;
00030 class vtkKWMostRecentFilesManager;
00031 class vtkKWProgressGauge;
00032 class vtkKWSeparator;
00033 class vtkKWTclInteractor;
00034 class vtkKWToolbar;
00035 class vtkKWToolbarSet;
00036
00037 class KWWIDGETS_EXPORT vtkKWWindowBase : public vtkKWTopLevel
00038 {
00039 public:
00040
00041 static vtkKWWindowBase* New();
00042 vtkTypeRevisionMacro(vtkKWWindowBase,vtkKWTopLevel);
00043 void PrintSelf(ostream& os, vtkIndent indent);
00044
00046 virtual void Create(vtkKWApplication *app);
00047
00053 virtual int Close();
00054
00056
00058 vtkSetMacro(PromptBeforeClose, int);
00059 vtkGetMacro(PromptBeforeClose, int);
00060 vtkBooleanMacro(PromptBeforeClose, int);
00062
00064
00067 virtual void LoadScript();
00068 virtual void LoadScript(const char *filename);
00070
00072
00073 vtkSetStringMacro(ScriptExtension);
00074 vtkGetStringMacro(ScriptExtension);
00076
00078
00079 vtkSetStringMacro(ScriptType);
00080 vtkGetStringMacro(ScriptType);
00082
00084
00085 virtual void SetStatusText(const char *);
00086 virtual const char *GetStatusText();
00088
00090
00093 virtual void WarningMessage(const char* message);
00094 virtual void ErrorMessage(const char* message);
00096
00098
00102 enum
00103 {
00104 ErrorIconNone = 0,
00105 ErrorIconBlack,
00106 ErrorIconRed
00107 };
00108
00109 virtual void SetErrorIcon(int);
00110 virtual void SetErrorIconToNone()
00111 { this->SetErrorIcon(vtkKWWindowBase::ErrorIconNone); };
00112 virtual void SetErrorIconToBlack()
00113 { this->SetErrorIcon(vtkKWWindowBase::ErrorIconBlack); };
00114 virtual void SetErrorIconToRed()
00115 { this->SetErrorIcon(vtkKWWindowBase::ErrorIconRed); };
00117
00129 virtual vtkKWFrame* GetViewFrame();
00130
00132
00133 vtkGetObjectMacro(MainToolbarSet, vtkKWToolbarSet);
00135
00137
00138 vtkGetObjectMacro(StatusFrame, vtkKWFrame);
00140
00142
00148 virtual void SetStatusFrameVisibility(int flag);
00149 vtkGetMacro(StatusFrameVisibility, int);
00150 vtkBooleanMacro(StatusFrameVisibility, int);
00152
00154
00156 vtkGetObjectMacro(ProgressGauge, vtkKWProgressGauge);
00158
00160
00164 enum
00165 {
00166 ProgressGaugePositionStatusFrame = 0,
00167 ProgressGaugePositionToolbar
00168 };
00169
00170 virtual void SetProgressGaugePosition(int);
00171 virtual void SetProgressGaugePositionToStatusFrame()
00172 { this->SetProgressGaugePosition(
00173 vtkKWWindowBase::ProgressGaugePositionStatusFrame); };
00174 virtual void SetProgressGaugePositionToToolbar()
00175 { this->SetProgressGaugePosition(
00176 vtkKWWindowBase::ProgressGaugePositionToolbar); };
00178
00180
00183 vtkGetObjectMacro(TrayFrame, vtkKWFrame);
00185
00187
00191 enum
00192 {
00193 TrayFramePositionStatusFrame = 0,
00194 TrayFramePositionToolbar
00195 };
00196
00197 vtkGetMacro(TrayFramePosition, int);
00198 virtual void SetTrayFramePosition(int);
00199 virtual void SetTrayFramePositionToStatusFrame()
00200 { this->SetTrayFramePosition(
00201 vtkKWWindowBase::TrayFramePositionStatusFrame); };
00202 virtual void SetTrayFramePositionToToolbar()
00203 { this->SetTrayFramePosition(
00204 vtkKWWindowBase::TrayFramePositionToolbar); };
00206
00208
00212 vtkKWMenu *GetFileMenu();
00213 vtkKWMenu *GetEditMenu();
00214 vtkKWMenu *GetViewMenu();
00215 vtkKWMenu *GetWindowMenu();
00216 vtkKWMenu *GetHelpMenu();
00217 vtkKWMenu *GetToolbarsVisibilityMenu();
00219
00221
00228 virtual int GetFileMenuInsertPosition();
00229 virtual int GetHelpMenuInsertPosition();
00230 virtual int GetViewMenuInsertPosition();
00232
00242 vtkSetClampMacro(SupportHelp, int, 0, 1);
00243 vtkGetMacro(SupportHelp, int);
00244 vtkBooleanMacro(SupportHelp, int);
00246
00248
00252 virtual void AddRecentFile(
00253 const char *filename, vtkObject *target, const char *command);
00255
00257
00262 vtkSetClampMacro(SupportPrint, int, 0, 1);
00263 vtkGetMacro(SupportPrint, int);
00264 vtkBooleanMacro(SupportPrint, int);
00266
00269 virtual char* GetTitle();
00270
00272
00273 virtual vtkKWTclInteractor* GetTclInteractor();
00274 virtual void DisplayTclInteractor();
00276
00280 virtual void Update();
00281
00283 virtual void UpdateToolbarState();
00284
00286
00292 virtual void UpdateEnableState();
00293 virtual void UpdateMenuState();
00295
00298 virtual void PrepareForDelete();
00299
00301
00303 virtual void ErrorIconCallback();
00304 virtual void PrintSettingsCallback() {};
00305 virtual void ToolbarVisibilityChangedCallback();
00306 virtual void NumberOfToolbarsChangedCallback();
00308
00310
00311 static const char *PrintOptionsMenuLabel;
00312 static const char *FileMenuLabel;
00313 static const char *FileCloseMenuLabel;
00314 static const char *FileExitMenuLabel;
00315 static const char *OpenRecentFileMenuLabel;
00316 static const char *EditMenuLabel;
00317 static const char *ViewMenuLabel;
00318 static const char *WindowMenuLabel;
00319 static const char *HelpMenuLabel;
00320 static const char *HelpTopicsMenuLabel;
00321 static const char *HelpCheckForUpdatesMenuLabel;
00322 static const char *ToolbarsVisibilityMenuLabel;
00323 static const char *WindowGeometryRegKey;
00324 static const char *DefaultGeometry;
00325
00327
00328 protected:
00329 vtkKWWindowBase();
00330 ~vtkKWWindowBase();
00331
00336 virtual void InsertRecentFilesMenu(int pos, vtkObject *target);
00337
00340 virtual int DisplayCloseDialog();
00341
00343
00345 virtual void UpdateStatusImage();
00346 virtual vtkKWLabel *GetStatusImage();
00348
00350 vtkKWMostRecentFilesManager *MostRecentFilesManager;
00351
00353
00354 virtual void SaveWindowGeometryToRegistry();
00355 virtual void RestoreWindowGeometryFromRegistry();
00357
00359 virtual void Pack();
00360
00361 vtkKWSeparator *MenuBarSeparator;
00362 vtkKWFrame *MainFrame;
00363
00364 vtkKWSeparator *StatusFrameSeparator;
00365 vtkKWFrame *StatusFrame;
00366 vtkKWLabel *StatusImage;
00367 vtkKWLabel *StatusLabel;
00368
00369 vtkKWProgressGauge *ProgressGauge;
00370 int ProgressGaugePosition;
00371
00372 vtkKWFrame *TrayFrame;
00373 vtkKWLabel *TrayImageError;
00374 int TrayFramePosition;
00375
00376 vtkKWToolbarSet *MainToolbarSet;
00377 vtkKWToolbar *StatusToolbar;
00378
00379 char *ScriptExtension;
00380 char *ScriptType;
00381 int SupportHelp;
00382 int SupportPrint;
00383 int PromptBeforeClose;
00384 int StatusFrameVisibility;
00385
00386
00387
00388 vtkKWMenu *FileMenu;
00389 vtkKWMenu *EditMenu;
00390 vtkKWMenu *ViewMenu;
00391 vtkKWMenu *WindowMenu;
00392 vtkKWMenu *HelpMenu;
00393 vtkKWMenu *ToolbarsVisibilityMenu;
00394
00395 vtkKWTclInteractor *TclInteractor;
00396
00397 private:
00398
00399 vtkKWWindowBase(const vtkKWWindowBase&);
00400 void operator=(const vtkKWWindowBase&);
00401 };
00402
00403 #endif