--- /dev/null
+#ifndef __cpPlugins__Pipeline__Widget__h__
+#define __cpPlugins__Pipeline__Widget__h__
+
+#include <cpPlugins/Pipeline/ProcessObject.h>
+#include <vtkRenderWindowInteractor.h>
+
+// -------------------------------------------------------------------------
+namespace cpPlugins
+{
+ namespace Pipeline
+ {
+ /**
+ */
+ class cpPlugins_EXPORT Widget
+ : public ProcessObject
+ {
+ public:
+ typedef Widget Self;
+ typedef ProcessObject Superclass;
+ typedef itk::SmartPointer< Self > Pointer;
+ typedef itk::SmartPointer< const Self > ConstPointer;
+
+ public:
+ itkTypeMacro( Widget, ProcessObject );
+ cpPlugins_Id_Macro( Widget, Object );
+
+ public:
+ virtual void AddInteractor( vtkRenderWindowInteractor* i ) cpPlugins_OVERRIDE;
+ virtual bool IsInteractive( ) cpPlugins_OVERRIDE;
+
+ virtual void EnabledOn( );
+ virtual void EnabledOff( );
+ virtual void Clear( ) = 0;
+ virtual void SetEnabled( bool v ) = 0;
+ virtual bool GetEnabled( ) const = 0;
+
+ protected:
+ Widget( );
+ virtual ~Widget( );
+
+ private:
+ // Purposely not implemented
+ Widget( const Self& );
+ Self& operator=( const Self& );
+
+ protected:
+ typedef vtkSmartPointer< vtkRenderWindowInteractor > _TInteractor;
+ struct _TInteractorCmp
+ {
+ bool operator()(
+ const _TInteractor& a, const _TInteractor& b
+ ) const
+ { return( a.GetPointer( ) < b.GetPointer( ) ); }
+ };
+ std::set< _TInteractor, _TInteractorCmp > m_Interactors;
+
+ };
+
+ } // ecapseman
+
+} // ecapseman
+
+#endif // __cpPlugins__Pipeline__Widget__h__
+
+// eof - $RCSfile$