00001 // .NAME vtkSlicerDiffusionEditorWidget 00002 // .SECTION Description 00003 // This class implements Slicer's main DiffusionEditor GUI. 00004 // Inherits most behavior from vtkSlicerWidget. 00005 #ifndef __vtkSlicerDiffusionEditorWidget_h 00006 #define __vtkSlicerDiffusionEditorWidget_h 00007 00008 #include "vtkVolumes.h" 00009 #include "vtkSlicerWidget.h" 00010 #include "vtkSlicerApplication.h" 00011 00012 class vtkSlicerDiffusionEditorLogic; 00013 class vtkMRMLDiffusionWeightedVolumeNode; 00014 class vtkSlicerMeasurementFrameWidget; 00015 class vtkSlicerDiffusionTestingWidget; 00016 class vtkSlicerGradientsWidget; 00017 //widgets 00018 class vtkKWFrame; 00019 class vtkKWPushButton; 00020 00021 class VTK_VOLUMES_EXPORT vtkSlicerDiffusionEditorWidget : public vtkSlicerWidget 00022 { 00023 public: 00024 00025 // Description: 00026 // Usual vtk class functions. 00027 static vtkSlicerDiffusionEditorWidget* New(); 00028 vtkTypeRevisionMacro(vtkSlicerDiffusionEditorWidget,vtkSlicerWidget); 00029 void PrintSelf(ostream& os, vtkIndent indent); 00030 00031 // Description: 00032 // Add/Remove observers on KWwidgets in the GUI. 00033 virtual void AddWidgetObservers(); 00034 virtual void RemoveWidgetObservers(); 00035 00036 // Description: 00037 // Propagates events generated in GUI to logic / mrml. 00038 void ProcessWidgetEvents(vtkObject *caller, unsigned long event, void *callData ); 00039 00040 // Description: 00041 // Updates the widget if a new ActiveVolumeNode is loaded. 00042 void UpdateWidget(vtkMRMLVolumeNode *node); 00043 00044 // Description: 00045 // Sets the Application to the current vtkSlicerApplication. 00046 vtkSetObjectMacro(Application, vtkSlicerApplication); 00047 //BTX 00048 using vtkKWObject::SetApplication; 00049 //ETX 00050 00051 // Description: 00052 // Returns the logic of the DiffusionEditor. 00053 vtkGetObjectMacro(Logic, vtkSlicerDiffusionEditorLogic); 00054 00055 vtkGetObjectMacro(TestingWidget, vtkSlicerDiffusionTestingWidget); 00056 00057 protected: 00058 vtkSlicerDiffusionEditorWidget(void); 00059 virtual ~vtkSlicerDiffusionEditorWidget(void); 00060 00061 // Description: 00062 // Creates the widget. 00063 virtual void CreateWidget(); 00064 00065 vtkSlicerApplication *Application; 00066 vtkSlicerDiffusionEditorLogic *Logic; 00067 00068 //nodes 00069 vtkMRMLVolumeNode *ActiveVolumeNode; 00070 00071 //widgets (GUI) 00072 vtkSlicerMeasurementFrameWidget *MeasurementFrameWidget; 00073 vtkSlicerGradientsWidget *GradientsWidget; 00074 vtkSlicerDiffusionTestingWidget *TestingWidget; 00075 vtkKWFrame *ButtonFrame; 00076 vtkKWPushButton *RestoreButton; 00077 vtkKWPushButton *UndoButton; 00078 vtkKWPushButton *RedoButton; 00079 00080 private: 00081 vtkSlicerDiffusionEditorWidget (const vtkSlicerDiffusionEditorWidget&); // Not implemented. 00082 void operator = (const vtkSlicerDiffusionEditorWidget&); //Not implemented. 00083 }; 00084 00085 #endif
1.6.1