// *****************************************************************************
// ��Ȩ���У�C��2023~2099 �Ϻ����ɳ������������޹�˾
// ��������Ȩ��
// *****************************************************************************
// ���� : ���
// �汾 : 1.0
// ����˵��:
//              ҡ��ҳ��
// *****************************************************************************

#ifndef __JOYSTICKPAGE_H__
#define __JOYSTICKPAGE_H__ 1

#include <QWidget>
#include <QPainter>
#include <QMouseEvent>

class JoystickPage : public QWidget 
{
    Q_OBJECT
public:
    JoystickPage(QWidget* parent = nullptr);

protected:
    void paintEvent(QPaintEvent*) override;

    void mousePressEvent(QMouseEvent* event) override;

    void mouseMoveEvent(QMouseEvent* event) override;

    void mouseReleaseEvent(QMouseEvent*) override;

private:
    void updateHandlePosition(const QPoint& pos);

signals:
    void PositionChangedSignals(qreal x, qreal y);

private:
    int         m_radius;
    QPoint      m_handlePos;
    bool        m_isPressed;

    /**΢С�ƶ�
     */
    qreal       m_deadZone= 0.11;
};

#endif  //__JOYSTICKPAGE_H__