1 #ifndef __cpPlugins__Pipeline__Widget__h__
2 #define __cpPlugins__Pipeline__Widget__h__
4 #include <cpPlugins/Pipeline/ProcessObject.h>
5 #include <vtkRenderWindowInteractor.h>
7 // -------------------------------------------------------------------------
14 class cpPlugins_EXPORT Widget
15 : public ProcessObject
19 typedef ProcessObject Superclass;
20 typedef itk::SmartPointer< Self > Pointer;
21 typedef itk::SmartPointer< const Self > ConstPointer;
24 itkTypeMacro( Widget, ProcessObject );
25 cpPlugins_Id_Macro( Widget, Object );
28 virtual void AddInteractor( vtkRenderWindowInteractor* i ) override;
29 virtual bool IsInteractive( ) override;
31 virtual void EnabledOn( );
32 virtual void EnabledOff( );
33 virtual void Clear( ) = 0;
34 virtual void SetEnabled( bool v ) = 0;
35 virtual bool GetEnabled( ) const = 0;
42 // Purposely not implemented
43 Widget( const Self& );
44 Self& operator=( const Self& );
47 typedef vtkSmartPointer< vtkRenderWindowInteractor > _TInteractor;
48 struct _TInteractorCmp
51 const _TInteractor& a, const _TInteractor& b
53 { return( a.GetPointer( ) < b.GetPointer( ) ); }
55 std::set< _TInteractor, _TInteractorCmp > m_Interactors;
63 #endif // __cpPlugins__Pipeline__Widget__h__