#ifndef __CPEXTENSIONS__VISUALIZATION__BASEINTERACTORSTYLE__H__ #define __CPEXTENSIONS__VISUALIZATION__BASEINTERACTORSTYLE__H__ #include #include namespace cpExtensions { namespace Visualization { /** */ class cpExtensions_EXPORT BaseInteractorStyle : public vtkInteractorStyle { public: typedef BaseInteractorStyle Self; vtkTypeMacro( BaseInteractorStyle, vtkInteractorStyle ); enum ButtonID { ButtonID_None = 0x00, ButtonID_Left = 0x01, ButtonID_Middle = 0x02, ButtonID_Right = 0x03 }; public: static Self* New( ); void DelegateTDxEvent( unsigned long event, void* calldata ); // Possible mouse motion events virtual void OnMouseMove( ) { } virtual void OnMouseWheelForward( ) { } virtual void OnMouseWheelBackward( ) { } // Possible mouse click-related events virtual void OnLeftButtonDown( ) { } virtual void OnLeftButtonUp( ) { } virtual void OnLeftClick( ) { } virtual void OnLeftDoubleClick( ) { } virtual void OnMiddleButtonDown( ) { } virtual void OnMiddleButtonUp( ) { } virtual void OnMiddleClick( ) { } virtual void OnMiddleDoubleClick( ) { } virtual void OnRightButtonDown( ) { } virtual void OnRightButtonUp( ) { } virtual void OnRightClick( ) { } virtual void OnRightDoubleClick( ) { } // Keyboard-related events virtual void OnChar( ) { } virtual void OnKeyDown( ) { } virtual void OnKeyUp( ) { } virtual void OnKeyPress( ) { } virtual void OnKeyRelease( ) { } // Other events virtual void OnExpose( ) { } virtual void OnConfigure( ) { } virtual void OnEnter( ) { } virtual void OnLeave( ) { } // Unused methods inline void StartState( int newstate ) { } inline void StopState( ) { } inline void StartAnimate( ) { } inline void StopAnimate( ) { } inline void StartRotate( ) { } inline void EndRotate( ) { } inline void StartZoom( ) { } inline void EndZoom( ) { } inline void StartPan( ) { } inline void EndPan( ) { } inline void StartSpin( ) { } inline void EndSpin( ) { } inline void StartDolly( ) { } inline void EndDolly( ) { } inline void StartUniformScale( ) { } inline void EndUniformScale( ) { } inline void StartTimer( ) { } inline void EndTimer( ) { } inline void StartTwoPointer( ) { } inline void EndTwoPointer( ) { } inline void OnTimer( ) { } protected: BaseInteractorStyle( ); virtual ~BaseInteractorStyle( ); static void _ProcessEvents( vtkObject* object, unsigned long event, void* clientdata, void* calldata ); private: // Purposely not implemented BaseInteractorStyle( const Self& ); Self& operator=( const Self& ); protected: static const long MAX_DOUBLE_CLICK; ButtonID LastButton; long LastButtonUp; long LastButtonHeld; long LastButtonDown; }; } // ecapseman } // ecapseman #endif // __CPEXTENSIONS__VISUALIZATION__BASEINTERACTORSTYLE__H__ // eof - $RCSfile$