vtkKWMimxMainNotebook.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003 Program:   MIMX Meshing Toolkit
00004 Module:    $RCSfile: vtkKWMimxMainNotebook.h,v $
00005 Language:  C++
00006 Date:      $Date: 2008/10/26 18:51:24 $
00007 Version:   $Revision: 1.24.4.2 $
00008 
00009  Musculoskeletal Imaging, Modelling and Experimentation (MIMX)
00010  Center for Computer Aided Design
00011  The University of Iowa
00012  Iowa City, IA 52242
00013  http://www.ccad.uiowa.edu/mimx/
00014  
00015 Copyright (c) The University of Iowa. All rights reserved.
00016 See MIMXCopyright.txt or http://www.ccad.uiowa.edu/mimx/Copyright.htm for details.
00017 
00018 This software is distributed WITHOUT ANY WARRANTY; without even 
00019 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
00020 PURPOSE.  See the above copyright notices for more information.
00021 
00022 =========================================================================*/
00023 // .NAME vtkKWMimxMainNotebook - a tabbed notebook of UI pages containing 
00024 // menu buttons of operations.
00025 // .SECTION Description
00026 // Class contains 7 pages 1) Image 2) Surface 3) Block(s) 4) Mesh 5) Quality
00027 // 6) Materials 7) Load/BC. Each page contains operations menu button to
00028 // launch subsequent GUI
00029 
00030 
00031 #ifndef __vtkKWMimxMainNotebook_h
00032 #define __vtkKWMimxMainNotebook_h
00033 
00034 #include "vtkKWCompositeWidget.h"
00035 #include "vtkKWMimxMainWindow.h"
00036 #include "vtkLinkedListWrapperTree.h"
00037 #include "vtkBuildingBlockWin32Header.h"
00038 
00039 class vtkKWUserInterfacePanel;
00040 class vtkKWMimxBBMenuGroup;
00041 class vtkKWMimxBoundaryConditionsMenuGroup;
00042 class vtkKWMimxFEMeshMenuGroup;
00043 class vtkKWMimxImageMenuGroup;
00044 class vtkKWMimxMainWindow;
00045 class vtkKWMimxMaterialPropertyMenuGroup;
00046 class vtkKWMimxQualityMenuGroup;
00047 class vtkKWMimxSurfaceMenuGroup;
00048 
00049 class VTK_BUILDINGBLOCK_EXPORT vtkKWMimxMainNotebook : public vtkKWCompositeWidget
00050 {
00051 public:
00052   static vtkKWMimxMainNotebook* New();
00053   vtkTypeRevisionMacro(vtkKWMimxMainNotebook,vtkKWCompositeWidget);
00054   void PrintSelf(ostream& os, vtkIndent indent);
00055  
00056   virtual void Update();
00057   virtual void UpdateEnableState();
00058   vtkSetObjectMacro(MimxMainWindow, vtkKWMimxMainWindow);
00059   vtkGetObjectMacro(MimxMainWindow, vtkKWMimxMainWindow);
00060   vtkGetObjectMacro(SurfaceMenuGroup, vtkKWMimxSurfaceMenuGroup);
00061   vtkGetObjectMacro(ImageMenuGroup, vtkKWMimxImageMenuGroup);
00062   vtkGetObjectMacro(FEMeshMenuGroup, vtkKWMimxFEMeshMenuGroup);
00063   vtkGetObjectMacro(BBMenuGroup, vtkKWMimxBBMenuGroup);
00064   vtkSetObjectMacro(DoUndoTree, vtkLinkedListWrapperTree);
00065   
00066   // save and restore the visibility state of all objects managed by the notebook tabs
00067   void SaveVisibilityStateOfObjectLists(void);
00068   void RestoreVisibilityStateOfObjectLists(void);
00069 
00070   // methods to update the view Properties dialog when the MRML scene changes
00071   void SynchronizeViewPropertiesWithMRMLScene();
00072   void SynchronizeViewPropertiesImages();
00073   void SynchronizeViewPropertiesSurfaces();
00074   void SynchronizeViewPropertiesBBlocks();
00075   void SynchronizeViewPropertiesMeshes();
00076 
00077   // Description:
00078   // disconnect circular references that prevent clean shutdown (leaks)
00079   virtual void TearDown();
00080   
00081 protected:
00082         vtkKWMimxMainNotebook();
00083         ~vtkKWMimxMainNotebook();
00084         
00085   void SetLists();
00086         virtual void CreateWidget();
00087         
00088         vtkKWNotebook *Notebook;
00089         vtkKWMimxMainWindow *MimxMainWindow;
00090         vtkKWMimxSurfaceMenuGroup *SurfaceMenuGroup;
00091         vtkKWMimxBBMenuGroup *BBMenuGroup;
00092         vtkKWMimxFEMeshMenuGroup *FEMeshMenuGroup;
00093         vtkKWMimxImageMenuGroup *ImageMenuGroup;
00094   vtkKWMimxQualityMenuGroup *QualityMenuGroup;
00095   vtkKWMimxMaterialPropertyMenuGroup *MaterialPropertyMenuGroup;
00096   vtkKWMimxBoundaryConditionsMenuGroup *BoundaryConditionsMenuGroup;
00097         vtkLinkedListWrapperTree *DoUndoTree;
00098     
00099 private:
00100   vtkKWMimxMainNotebook(const vtkKWMimxMainNotebook&); // Not implemented
00101   void operator=(const vtkKWMimxMainNotebook&); // Not implemented
00102   
00103 };
00104 
00105 #endif
00106 

Generated on 6 Apr 2011 for Slicer3 by  doxygen 1.6.1