#ifndef ADS_MOUSEGRABBER_H_
#define ADS_MOUSEGRABBER_H_

#include <QMouseEvent>
#include <QCursor>

class IAdsMouseGrabber
{
public:
  IAdsMouseGrabber();
  virtual ~IAdsMouseGrabber();

  virtual const char* grabberName();

  virtual const QCursor* getCursor();

  virtual bool activate(const QPoint&);
  virtual bool mousePress(QMouseEvent*);
  virtual bool mouseRelease(QMouseEvent*);
  virtual bool mouseMove(QMouseEvent*);
  virtual bool mouseWheel(QWheelEvent*);
  virtual void deactivate();
  virtual void abort();

  virtual bool needMouseTraking();

  virtual void cursorGotoXY(int x, int y);

protected:
  QCursor cursor;

};

#endif /*ADS_MOUSEGRABBER_H_*/
