]> Creatis software - cpPlugins.git/blob - lib/cpPlugins/BaseWidget.h
04de85a7cef7f6e6de1600179278887af24a3694
[cpPlugins.git] / lib / cpPlugins / BaseWidget.h
1 #ifndef __CPPLUGINS__BASEWIDGET__H__
2 #define __CPPLUGINS__BASEWIDGET__H__
3
4 #include <cpPlugins/ProcessObject.h>
5
6 // Some forward declarations
7 class vtkRenderWindowInteractor;
8 namespace cpExtensions
9 {
10   namespace QT
11   {
12     class SimpleMPRWidget;
13   }
14 }
15
16 namespace cpPlugins
17 {
18   /**
19    */
20   class cpPlugins_EXPORT BaseWidget
21     : public ProcessObject
22   {
23   public:
24     typedef BaseWidget                      Self;
25     typedef ProcessObject                   Superclass;
26     typedef itk::SmartPointer< Self >       Pointer;
27     typedef itk::SmartPointer< const Self > ConstPointer;
28
29     typedef cpExtensions::QT::SimpleMPRWidget TMPRWidget;
30
31   public:
32     itkTypeMacro( BaseWidget, ProcessObject );
33     cpPlugins_Id_Macro( Widgets::BaseWidget, Widgets );
34
35   public:
36     const TMPRWidget* GetMPRViewer( ) const;
37     const vtkRenderWindowInteractor*  GetSingleInteractor( ) const;
38
39     void SetMPRViewer( TMPRWidget* v );
40     void SetSingleInteractor( vtkRenderWindowInteractor* i );
41
42   protected:
43     BaseWidget( );
44     virtual ~BaseWidget( );
45
46   private:
47     // Purposely not implemented
48     BaseWidget( const Self& );
49     Self& operator=( const Self& );
50
51   protected:
52     TMPRWidget*                m_MPRViewer;
53     vtkRenderWindowInteractor* m_SingleInteractor;
54   };
55
56 } // ecapseman
57
58 #endif // __CPPLUGINS__BASEWIDGET__H__
59
60 // eof - $RCSfile$