00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00145 #ifndef __vtkKWWindow_h
00146 #define __vtkKWWindow_h
00147
00148 #include "vtkKWWindowBase.h"
00149
00150 class vtkKWFrame;
00151 class vtkKWNotebook;
00152 class vtkKWSplitFrame;
00153 class vtkKWToolbar;
00154 class vtkKWUserInterfaceManager;
00155 class vtkKWUserInterfaceManagerNotebook;
00156 class vtkKWUserInterfaceManagerDialog;
00157 class vtkKWApplicationSettingsInterface;
00158 class vtkKWUserInterfacePanel;
00159
00160 class KWWidgets_EXPORT vtkKWWindow : public vtkKWWindowBase
00161 {
00162
00163 public:
00164
00165 static vtkKWWindow* New();
00166 vtkTypeRevisionMacro(vtkKWWindow,vtkKWWindowBase);
00167 void PrintSelf(ostream& os, vtkIndent indent);
00168
00170
00172 virtual vtkKWFrame* GetMainPanelFrame();
00173 virtual int GetMainPanelVisibility();
00174 virtual void SetMainPanelVisibility(int);
00175 vtkBooleanMacro(MainPanelVisibility, int );
00176 virtual vtkKWNotebook* GetMainNotebook();
00177 virtual int HasMainUserInterfaceManager();
00178 virtual vtkKWUserInterfaceManager* GetMainUserInterfaceManager();
00179 virtual void ShowMainUserInterface(const char *name);
00180 vtkGetObjectMacro(MainSplitFrame, vtkKWSplitFrame);
00182
00184
00186 virtual vtkKWFrame* GetSecondaryPanelFrame();
00187 virtual int GetSecondaryPanelVisibility();
00188 virtual void SetSecondaryPanelVisibility(int);
00189 vtkBooleanMacro(SecondaryPanelVisibility, int );
00190 virtual vtkKWNotebook* GetSecondaryNotebook();
00191 virtual int HasSecondaryUserInterfaceManager();
00192 virtual vtkKWUserInterfaceManager* GetSecondaryUserInterfaceManager();
00193 virtual void ShowSecondaryUserInterface(const char *name);
00194 vtkGetObjectMacro(SecondarySplitFrame, vtkKWSplitFrame);
00196
00198
00202 enum
00203 {
00204 PanelLayoutSecondaryBelowView = 0,
00205 PanelLayoutSecondaryBelowMain,
00206 PanelLayoutSecondaryBelowMainAndView
00207 };
00208
00209 vtkSetClampMacro(PanelLayout, int,
00210 vtkKWWindow::PanelLayoutSecondaryBelowView,
00211 vtkKWWindow::PanelLayoutSecondaryBelowMainAndView);
00212 vtkGetMacro(PanelLayout, int);
00213 virtual void SetPanelLayoutToSecondaryBelowView()
00214 { this->SetPanelLayout(vtkKWWindow::PanelLayoutSecondaryBelowView);};
00215 virtual void SetPanelLayoutToSecondaryBelowMain()
00216 { this->SetPanelLayout(vtkKWWindow::PanelLayoutSecondaryBelowMain);};
00217 virtual void SetPanelLayoutToSecondaryBelowMainAndView()
00218 {this->SetPanelLayout(vtkKWWindow::PanelLayoutSecondaryBelowMainAndView);};
00220
00222
00225 enum
00226 {
00227 ViewPanelPositionLeft = 0,
00228 ViewPanelPositionRight
00229 };
00230
00231 virtual void SetViewPanelPosition(int);
00232 virtual int GetViewPanelPosition();
00233 virtual void SetViewPanelPositionToLeft()
00234 { this->SetViewPanelPosition(vtkKWWindow::ViewPanelPositionLeft);};
00235 virtual void SetViewPanelPositionToRight()
00236 { this->SetViewPanelPosition(vtkKWWindow::ViewPanelPositionRight);};
00238
00248 virtual vtkKWFrame* GetViewFrame();
00249
00251
00257 virtual vtkKWNotebook* GetViewNotebook();
00258 virtual int HasViewUserInterfaceManager();
00259 virtual vtkKWUserInterfaceManager* GetViewUserInterfaceManager();
00260 virtual void ShowViewUserInterface(const char *name);
00261 virtual vtkKWFrame* GetViewPanelFrame();
00263
00265 virtual vtkKWToolbarSet* GetSecondaryToolbarSet();
00266
00268
00278 enum
00279 {
00280 StatusFramePositionWindow = 0,
00281 StatusFramePositionMainPanel,
00282 StatusFramePositionSecondaryPanel,
00283 StatusFramePositionViewPanel,
00284 StatusFramePositionLeftOfDivider,
00285 StatusFramePositionRightOfDivider
00286 };
00287
00288 vtkGetMacro(StatusFramePosition, int);
00289 virtual void SetStatusFramePosition(int);
00290 virtual void SetStatusFramePositionToWindow()
00291 { this->SetStatusFramePosition(
00292 vtkKWWindow::StatusFramePositionWindow); };
00293 virtual void SetStatusFramePositionToMainPanel()
00294 { this->SetStatusFramePosition(
00295 vtkKWWindow::StatusFramePositionMainPanel); };
00296 virtual void SetStatusFramePositionToSecondaryPanel()
00297 { this->SetStatusFramePosition(
00298 vtkKWWindow::StatusFramePositionSecondaryPanel); };
00299 virtual void SetStatusFramePositionToViewPanel()
00300 { this->SetStatusFramePosition(
00301 vtkKWWindow::StatusFramePositionViewPanel); };
00302 virtual void SetStatusFramePositionToLeftOfDivider()
00303 { this->SetStatusFramePosition(
00304 vtkKWWindow::StatusFramePositionLeftOfDivider); };
00305 virtual void SetStatusFramePositionToRightOfDivider()
00306 { this->SetStatusFramePosition(
00307 vtkKWWindow::StatusFramePositionRightOfDivider); };
00309
00312 virtual void Render();
00313
00315
00317 virtual vtkKWUserInterfaceManager* GetApplicationSettingsUserInterfaceManager();
00318 virtual void ShowApplicationSettingsUserInterface(const char *name);
00319 virtual vtkKWApplicationSettingsInterface *GetApplicationSettingsInterface();
00321
00325 virtual void Update();
00326
00328
00337 virtual void UpdateEnableState();
00338 virtual void UpdateMenuState();
00340
00342 virtual void UpdateToolbarState();
00343
00346 virtual void PrepareForDelete();
00347
00349
00350 virtual void MainPanelVisibilityCallback();
00351 virtual void SecondaryPanelVisibilityCallback();
00352 virtual void PrintSettingsCallback();
00353 virtual void ToolbarVisibilityChangedCallback(vtkKWToolbar*);
00354 virtual void NumberOfToolbarsChangedCallback();
00356
00358
00359 vtkGetStringMacro(MainPanelSizeRegKey);
00360 vtkGetStringMacro(MainPanelVisibilityRegKey);
00361 vtkGetStringMacro(MainPanelVisibilityKeyAccelerator);
00362 vtkGetStringMacro(HideMainPanelMenuLabel);
00363 vtkGetStringMacro(ShowMainPanelMenuLabel);
00364 vtkGetStringMacro(SecondaryPanelSizeRegKey);
00365 vtkGetStringMacro(SecondaryPanelVisibilityRegKey);
00366 vtkGetStringMacro(SecondaryPanelVisibilityKeyAccelerator);
00367 vtkGetStringMacro(HideSecondaryPanelMenuLabel);
00368 vtkGetStringMacro(ShowSecondaryPanelMenuLabel);
00369 vtkGetStringMacro(DefaultViewPanelName);
00370 vtkGetStringMacro(TclInteractorMenuLabel);
00371 vtkGetStringMacro(ViewPanelPositionRegKey);
00372 vtkGetStringMacro(LogDialogMenuLabel);
00374
00376
00380 virtual void AddCallbackCommandObservers();
00381 virtual void RemoveCallbackCommandObservers();
00383
00384
00385
00386 protected:
00387 vtkKWWindow();
00388 ~vtkKWWindow();
00389
00391 virtual void CreateWidget();
00392
00394
00395 virtual void SaveWindowGeometryToRegistry();
00396 virtual void RestoreWindowGeometryFromRegistry();
00398
00400
00407 virtual void ShowMainUserInterface(vtkKWUserInterfacePanel *panel);
00408 virtual void ShowSecondaryUserInterface(vtkKWUserInterfacePanel *panel);
00409 virtual void ShowViewUserInterface(vtkKWUserInterfacePanel *panel);
00410 virtual void ShowApplicationSettingsUserInterface(vtkKWUserInterfacePanel *panel);
00412
00414 virtual void Pack();
00415
00416 int PanelLayout;
00417
00418 vtkKWSplitFrame *MainSplitFrame;
00419
00420 vtkKWSplitFrame *SecondarySplitFrame;
00421
00422 vtkKWApplicationSettingsInterface *ApplicationSettingsInterface;
00423
00424 int StatusFramePosition;
00425
00427
00428 vtkSetStringMacro(MainPanelSizeRegKey);
00429 vtkSetStringMacro(MainPanelVisibilityRegKey);
00430 vtkSetStringMacro(MainPanelVisibilityKeyAccelerator);
00431 vtkSetStringMacro(HideMainPanelMenuLabel);
00432 vtkSetStringMacro(ShowMainPanelMenuLabel);
00433 vtkSetStringMacro(SecondaryPanelSizeRegKey);
00434 vtkSetStringMacro(SecondaryPanelVisibilityRegKey);
00435 vtkSetStringMacro(SecondaryPanelVisibilityKeyAccelerator);
00436 vtkSetStringMacro(HideSecondaryPanelMenuLabel);
00437 vtkSetStringMacro(ShowSecondaryPanelMenuLabel);
00438 vtkSetStringMacro(DefaultViewPanelName);
00439 vtkSetStringMacro(TclInteractorMenuLabel);
00440 vtkSetStringMacro(ViewPanelPositionRegKey);
00441 vtkSetStringMacro(LogDialogMenuLabel);
00443
00445
00448 virtual void ProcessCallbackCommandEvents(
00449 vtkObject *caller, unsigned long event, void *calldata);
00451
00453
00457 virtual void PopulateWindowMenu();
00458 virtual void PopulateViewMenu();
00460
00461
00462
00463 private:
00464
00465 vtkKWNotebook *MainNotebook;
00466 vtkKWNotebook *SecondaryNotebook;
00467 vtkKWNotebook *ViewNotebook;
00468
00469 vtkKWToolbarSet *SecondaryToolbarSet;
00470
00471 vtkKWUserInterfaceManagerNotebook *MainUserInterfaceManager;
00472 vtkKWUserInterfaceManagerNotebook *SecondaryUserInterfaceManager;
00473 vtkKWUserInterfaceManagerNotebook *ViewUserInterfaceManager;
00474
00475 vtkKWUserInterfaceManagerDialog *ApplicationSettingsUserInterfaceManager;
00476
00477 vtkKWWindow(const vtkKWWindow&);
00478 void operator=(const vtkKWWindow&);
00479
00481
00482 char *MainPanelSizeRegKey;
00483 char *MainPanelVisibilityRegKey;
00484 char *MainPanelVisibilityKeyAccelerator;
00485 char *HideMainPanelMenuLabel;
00486 char *ShowMainPanelMenuLabel;
00487 char *SecondaryPanelSizeRegKey;
00488 char *SecondaryPanelVisibilityRegKey;
00489 char *SecondaryPanelVisibilityKeyAccelerator;
00490 char *HideSecondaryPanelMenuLabel;
00491 char *ShowSecondaryPanelMenuLabel;
00492 char *DefaultViewPanelName;
00493 char *TclInteractorMenuLabel;
00494 char *ViewPanelPositionRegKey;
00495 char *LogDialogMenuLabel;
00497 };
00498
00499 #endif
00500
00501