StickWidget.h 706 B

12345678910111213141516171819202122232425262728293031323334353637
  1. // Copyright 2018 Dolphin Emulator Project
  2. // SPDX-License-Identifier: GPL-2.0-or-later
  3. #pragma once
  4. #include <QDialog>
  5. #include "Common/CommonTypes.h"
  6. class StickWidget : public QWidget
  7. {
  8. Q_OBJECT
  9. public:
  10. explicit StickWidget(QWidget* parent, u16 width, u16 height);
  11. signals:
  12. void ChangedX(u16 x);
  13. void ChangedY(u16 y);
  14. public slots:
  15. void SetX(u16 x);
  16. void SetY(u16 y);
  17. protected:
  18. void paintEvent(QPaintEvent* event) override;
  19. void mousePressEvent(QMouseEvent* event) override;
  20. void mouseMoveEvent(QMouseEvent* event) override;
  21. void handleMouseEvent(QMouseEvent* event);
  22. private:
  23. u16 m_max_x;
  24. u16 m_max_y;
  25. u16 m_x = 0;
  26. u16 m_y = 0;
  27. bool m_ignore_movement = false;
  28. };