#ifndef MCSVIRTUALJOYSTICKWIDGET_H
#define MCSVIRTUALJOYSTICKWIDGET_H

#include <QWidget>

class IAdsMouseGrabber;

namespace Ui {
class McsVirtualJoystickWidget;
}

class McsVirtualJoystickWidget : public QWidget
{
    Q_OBJECT

public:
    explicit McsVirtualJoystickWidget(IAdsMouseGrabber* theGrabber, QWidget *parent = 0);
    ~McsVirtualJoystickWidget();

    void setGrabber(IAdsMouseGrabber*);

    void activate();
    void deactivate();

    void showEvent(QShowEvent*);
    void hideEvent(QHideEvent *event);

    void keyPressEvent(QKeyEvent*);
    void keyReleaseEvent(QKeyEvent*);
    void mouseMoveEvent(QMouseEvent*);
    void mousePressEvent( QMouseEvent*);
    void mouseReleaseEvent( QMouseEvent*);
    void wheelEvent(QWheelEvent *);

private:
    Ui::McsVirtualJoystickWidget *ui;

    IAdsMouseGrabber* grabber;
};

#include <QDialog>

class McsVirtualJoystickDialog: public QDialog
{
    Q_OBJECT

public:
   McsVirtualJoystickDialog(QWidget* parent=0);

   void setGrabber(IAdsMouseGrabber*);

   void activate();
   void deactivate();

   void showEvent(QShowEvent*);
   void hideEvent(QHideEvent *event);

   void keyPressEvent(QKeyEvent*);
   void keyReleaseEvent(QKeyEvent*);
   void mouseMoveEvent(QMouseEvent*);
   void mousePressEvent( QMouseEvent*);
   void mouseReleaseEvent( QMouseEvent*);
   void wheelEvent(QWheelEvent *);

private:
   Ui::McsVirtualJoystickWidget *ui;

   IAdsMouseGrabber* grabber;
};

#endif // MCSVIRTUALJOYSTICKWIDGET_H
