// This file is generated by WOK (CPPExt).
// Please do not edit this file; modify original file instead.
// The copyright and license terms as defined for the original file apply to 
// this header file considered to be the "object code" form of the original source.

#ifndef _ViewerTest_EventManager_HeaderFile
#define _ViewerTest_EventManager_HeaderFile

#include <Standard.hxx>
#include <Standard_DefineHandle.hxx>
#include <Handle_ViewerTest_EventManager.hxx>

#include <Handle_AIS_InteractiveContext.hxx>
#include <Handle_V3d_View.hxx>
#include <Standard_Integer.hxx>
#include <MMgt_TShared.hxx>
#include <Standard_Boolean.hxx>
class AIS_InteractiveContext;
class V3d_View;
class TColgp_Array1OfPnt2d;


//! used to manage mouse event (move,select,shiftselect)
//! By default the events are transmitted to interactive context.
class ViewerTest_EventManager : public MMgt_TShared
{

public:

  
  Standard_EXPORT ViewerTest_EventManager(const Handle(V3d_View)& aView, const Handle(AIS_InteractiveContext)& aCtx);
  
  Standard_EXPORT virtual   void MoveTo (const Standard_Integer xpix, const Standard_Integer ypix) ;
  
  Standard_EXPORT virtual   void Select() ;
  
  Standard_EXPORT virtual   void ShiftSelect() ;
  
  Standard_EXPORT virtual   void Select (const Standard_Integer theXPressed, const Standard_Integer theYPressed, const Standard_Integer theXMotion, const Standard_Integer theYMotion, const Standard_Boolean theIsAutoAllowOverlap = Standard_True) ;
  
  Standard_EXPORT virtual   void ShiftSelect (const Standard_Integer theXPressed, const Standard_Integer theYPressed, const Standard_Integer theXMotion, const Standard_Integer theYMotion, const Standard_Boolean theIsAutoAllowOverlap = Standard_True) ;
  
  Standard_EXPORT virtual   void Select (const TColgp_Array1OfPnt2d& thePolyline) ;
  
  Standard_EXPORT virtual   void ShiftSelect (const TColgp_Array1OfPnt2d& thePolyline) ;
  
     const  Handle(AIS_InteractiveContext)& Context()  const;
  
  //! Gets current mouse position. It tracks change of mouse position
  //! with mouse drugging or with DRAW command call (vmoveto).
  Standard_EXPORT   void GetCurrentPosition (Standard_Integer& theXPix, Standard_Integer& theYPix)  const;




  DEFINE_STANDARD_RTTI(ViewerTest_EventManager)

protected:




private: 


  Handle(AIS_InteractiveContext) myCtx;
  Handle(V3d_View) myView;
  Standard_Integer myX;
  Standard_Integer myY;


};


#include <ViewerTest_EventManager.lxx>





#endif // _ViewerTest_EventManager_HeaderFile
