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
1.6.1