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 vtkKWApplication;
00151 class vtkKWFrame;
00152 class vtkKWNotebook;
00153 class vtkKWSplitFrame;
00154 class vtkKWToolbar;
00155 class vtkKWUserInterfaceManager;
00156 class vtkKWUserInterfaceManagerNotebook;
00157 class vtkKWUserInterfaceManagerDialog;
00158 class vtkKWApplicationSettingsInterface;
00159 class vtkKWUserInterfacePanel;
00160
00161 class KWWIDGETS_EXPORT vtkKWWindow : public vtkKWWindowBase
00162 {
00163 public:
00164
00165 static vtkKWWindow* New();
00166 vtkTypeRevisionMacro(vtkKWWindow,vtkKWWindowBase);
00167 void PrintSelf(ostream& os, vtkIndent indent);
00168
00170 virtual void Create(vtkKWApplication *app);
00171
00173
00175 virtual vtkKWFrame* GetMainPanelFrame();
00176 virtual int GetMainPanelVisibility();
00177 virtual void SetMainPanelVisibility(int);
00178 vtkBooleanMacro(MainPanelVisibility, int );
00179 virtual vtkKWNotebook* GetMainNotebook();
00180 virtual int HasMainUserInterfaceManager();
00181 virtual vtkKWUserInterfaceManager* GetMainUserInterfaceManager();
00182 virtual void ShowMainUserInterface(const char *name);
00184
00186
00188 virtual vtkKWFrame* GetSecondaryPanelFrame();
00189 virtual int GetSecondaryPanelVisibility();
00190 virtual void SetSecondaryPanelVisibility(int);
00191 vtkBooleanMacro(SecondaryPanelVisibility, int );
00192 virtual vtkKWNotebook* GetSecondaryNotebook();
00193 virtual int HasSecondaryUserInterfaceManager();
00194 virtual vtkKWUserInterfaceManager* GetSecondaryUserInterfaceManager();
00195 virtual void ShowSecondaryUserInterface(const char *name);
00197
00199
00203 enum
00204 {
00205 PanelLayoutSecondaryBelowView = 0,
00206 PanelLayoutSecondaryBelowMain,
00207 PanelLayoutSecondaryBelowMainAndView
00208 };
00209
00210 vtkSetClampMacro(PanelLayout, int,
00211 vtkKWWindow::PanelLayoutSecondaryBelowView,
00212 vtkKWWindow::PanelLayoutSecondaryBelowMainAndView);
00213 vtkGetMacro(PanelLayout, int);
00214 virtual void SetPanelLayoutToSecondaryBelowView()
00215 { this->SetPanelLayout(vtkKWWindow::PanelLayoutSecondaryBelowView);};
00216 virtual void SetPanelLayoutToSecondaryBelowMain()
00217 { this->SetPanelLayout(vtkKWWindow::PanelLayoutSecondaryBelowMain);};
00218 virtual void SetPanelLayoutToSecondaryBelowMainAndView()
00219 {this->SetPanelLayout(vtkKWWindow::PanelLayoutSecondaryBelowMainAndView);};
00221
00223
00226 enum
00227 {
00228 ViewPanelPositionLeft = 0,
00229 ViewPanelPositionRight
00230 };
00231
00232 virtual void SetViewPanelPosition(int);
00233 virtual int GetViewPanelPosition();
00234 virtual void SetViewPanelPositionToLeft()
00235 { this->SetViewPanelPosition(vtkKWWindow::ViewPanelPositionLeft);};
00236 virtual void SetViewPanelPositionToRight()
00237 { this->SetViewPanelPosition(vtkKWWindow::ViewPanelPositionRight);};
00239
00250 virtual vtkKWFrame* GetViewFrame();
00251
00253
00259 virtual vtkKWNotebook* GetViewNotebook();
00260 virtual int HasViewUserInterfaceManager();
00261 virtual vtkKWUserInterfaceManager* GetViewUserInterfaceManager();
00262 virtual void ShowViewUserInterface(const char *name);
00263 virtual vtkKWFrame* GetViewPanelFrame();
00265
00267 virtual vtkKWToolbarSet* GetSecondaryToolbarSet();
00268
00270
00280 enum
00281 {
00282 StatusFramePositionWindow = 0,
00283 StatusFramePositionMainPanel,
00284 StatusFramePositionSecondaryPanel,
00285 StatusFramePositionViewPanel,
00286 StatusFramePositionLeftOfDivider,
00287 StatusFramePositionRightOfDivider
00288 };
00289
00290 vtkGetMacro(StatusFramePosition, int);
00291 virtual void SetStatusFramePosition(int);
00292 virtual void SetStatusFramePositionToWindow()
00293 { this->SetStatusFramePosition(
00294 vtkKWWindow::StatusFramePositionWindow); };
00295 virtual void SetStatusFramePositionToMainPanel()
00296 { this->SetStatusFramePosition(
00297 vtkKWWindow::StatusFramePositionMainPanel); };
00298 virtual void SetStatusFramePositionToSecondaryPanel()
00299 { this->SetStatusFramePosition(
00300 vtkKWWindow::StatusFramePositionSecondaryPanel); };
00301 virtual void SetStatusFramePositionToViewPanel()
00302 { this->SetStatusFramePosition(
00303 vtkKWWindow::StatusFramePositionViewPanel); };
00304 virtual void SetStatusFramePositionToLeftOfDivider()
00305 { this->SetStatusFramePosition(
00306 vtkKWWindow::StatusFramePositionLeftOfDivider); };
00307 virtual void SetStatusFramePositionToRightOfDivider()
00308 { this->SetStatusFramePosition(
00309 vtkKWWindow::StatusFramePositionRightOfDivider); };
00311
00314 virtual void Render();
00315
00317
00319 virtual vtkKWUserInterfaceManager* GetApplicationSettingsUserInterfaceManager();
00320 virtual void ShowApplicationSettingsUserInterface(const char *name);
00321 virtual vtkKWApplicationSettingsInterface *GetApplicationSettingsInterface();
00323
00327 virtual void Update();
00328
00330
00336 virtual void UpdateEnableState();
00337 virtual void UpdateMenuState();
00339
00341 virtual void UpdateToolbarState();
00342
00344
00345 virtual void MainPanelVisibilityCallback();
00346 virtual void SecondaryPanelVisibilityCallback();
00347 virtual void PrintSettingsCallback();
00348 virtual void ToolbarVisibilityChangedCallback();
00349 virtual void NumberOfToolbarsChangedCallback();
00351
00354 virtual void PrepareForDelete();
00355
00357
00358 static const char *MainPanelSizeRegKey;
00359 static const char *MainPanelVisibilityRegKey;
00360 static const char *MainPanelVisibilityKeyAccelerator;
00361 static const char *HideMainPanelMenuLabel;
00362 static const char *ShowMainPanelMenuLabel;
00363 static const char *SecondaryPanelSizeRegKey;
00364 static const char *SecondaryPanelVisibilityRegKey;
00365 static const char *SecondaryPanelVisibilityKeyAccelerator;
00366 static const char *HideSecondaryPanelMenuLabel;
00367 static const char *ShowSecondaryPanelMenuLabel;
00368 static const char *DefaultViewPanelName;
00369 static const char *TclInteractorMenuLabel;
00370 static const char *ViewPanelPositionRegKey;
00371
00373
00374 protected:
00375 vtkKWWindow();
00376 ~vtkKWWindow();
00377
00379
00380 virtual void SaveWindowGeometryToRegistry();
00381 virtual void RestoreWindowGeometryFromRegistry();
00383
00385
00392 virtual void ShowMainUserInterface(vtkKWUserInterfacePanel *panel);
00393 virtual void ShowSecondaryUserInterface(vtkKWUserInterfacePanel *panel);
00394 virtual void ShowViewUserInterface(vtkKWUserInterfacePanel *panel);
00395 virtual void ShowApplicationSettingsUserInterface(vtkKWUserInterfacePanel *panel);
00397
00399 virtual void Pack();
00400
00401 int PanelLayout;
00402
00403 vtkKWSplitFrame *MainSplitFrame;
00404
00405 vtkKWSplitFrame *SecondarySplitFrame;
00406
00407 vtkKWApplicationSettingsInterface *ApplicationSettingsInterface;
00408
00409 int StatusFramePosition;
00410
00411 private:
00412
00413 vtkKWNotebook *MainNotebook;
00414 vtkKWNotebook *SecondaryNotebook;
00415 vtkKWNotebook *ViewNotebook;
00416
00417 vtkKWToolbarSet *SecondaryToolbarSet;
00418
00419 vtkKWUserInterfaceManagerNotebook *MainUserInterfaceManager;
00420 vtkKWUserInterfaceManagerNotebook *SecondaryUserInterfaceManager;
00421 vtkKWUserInterfaceManagerNotebook *ViewUserInterfaceManager;
00422
00423 vtkKWUserInterfaceManagerDialog *ApplicationSettingsUserInterfaceManager;
00424
00425 vtkKWWindow(const vtkKWWindow&);
00426 void operator=(const vtkKWWindow&);
00427 };
00428
00429 #endif
00430