Roomba App  1.0
joystick.hh
Go to the documentation of this file.
1 
14 #ifndef JOYSTICK_HH
15 #define JOYSTICK_HH
16 
17 #include <QParallelAnimationGroup>
18 #include <QPropertyAnimation>
19 #include <QWidget>
20 
24 class Joystick : public QWidget
25 {
26  Q_OBJECT
27  Q_PROPERTY(float x READ x WRITE setX NOTIFY xChange)
28  Q_PROPERTY(float y READ y WRITE setY NOTIFY yChange)
29 
30  public:
35  explicit Joystick(QWidget* parent = nullptr);
36 
41  float x() const { return _x; }
42 
47  float y() const { return _y; }
48 
53  ~Joystick();
54 
55  signals:
60  void xChange(float value);
61 
66  void yChange(float value);
67 
68  public slots:
73  void setX(const float& value);
74 
79  void setY(const float& value);
80 
84  void addXAnimation();
85 
89  void addYAnimation();
90 
94  void removeXAnimation();
95 
99  void removeYAnimation();
100 
105  void setAlignment(Qt::Alignment align);
106 
114  void movePos(const QPoint& coordinates);
115 
116  private:
126  float checkValue(const float& value, const float& min, const float& max) const;
127 
133  void resizeEvent(QResizeEvent* event) override;
134 
139  virtual void paintEvent(QPaintEvent* event) override;
140 
144  const float _midPoint = 2048.0;
145 
149  float _x;
150 
154  float _y;
155 
159  QRectF _bounds;
160 
164  QRectF _knopBounds;
165 
169  QParallelAnimationGroup* _animation;
170 
174  QPropertyAnimation* _xAnimation;
175 
179  QPropertyAnimation* _yAnimation;
180 
184  Qt::Alignment _alignment;
185 };
186 
187 #endif // JOYSTICK_HH
The Joystick class.
Definition: joystick.hh:25
const float _midPoint
Middle value of raw analog joystick coordinates.
Definition: joystick.hh:144
float checkValue(const float &value, const float &min, const float &max) const
Check if coordinate value is in proper range.
Definition: joystick.cpp:126
void addYAnimation()
Add animation for y axis to return knop to home position.
Definition: joystick.cpp:69
void yChange(float value)
Signal emitted in order to realize value change of y coordinate.
Qt::Alignment _alignment
Alignment used in resizeEvent.
Definition: joystick.hh:184
~Joystick()
Delete Joystick object.
Definition: joystick.cpp:39
QPropertyAnimation * _xAnimation
Animation on x axis when knop is returning home position.
Definition: joystick.hh:174
void removeYAnimation()
Remove animation for y axis to return knop to home position.
Definition: joystick.cpp:82
float x() const
Get x coordinate value.
Definition: joystick.hh:41
QPropertyAnimation * _yAnimation
Animation on y axis when knop is returning home position.
Definition: joystick.hh:179
void movePos(const QPoint &coordinates)
Change knop coordinates.
Definition: joystick.cpp:94
QRectF _knopBounds
Bounds of knop.
Definition: joystick.hh:164
void setX(const float &value)
Set value of x coordinate.
Definition: joystick.cpp:41
void setY(const float &value)
Set value of y coordinate.
Definition: joystick.cpp:52
float _y
Value of y coordinate.
Definition: joystick.hh:154
float _x
Value of x coordinate.
Definition: joystick.hh:149
float y() const
Get y coordinate value.
Definition: joystick.hh:47
void removeXAnimation()
Remove animation for x axis to return knop to home position.
Definition: joystick.cpp:75
virtual void paintEvent(QPaintEvent *event) override
Draw analog joystick with it's background.
Definition: joystick.cpp:173
float y
Definition: joystick.hh:28
QParallelAnimationGroup * _animation
Animation group used to animate knop returning to home position.
Definition: joystick.hh:169
void addXAnimation()
Add animation for x axis to return knop to home position.
Definition: joystick.cpp:63
void setAlignment(Qt::Alignment align)
Set alignment needed for resizeEvent to work.
Definition: joystick.cpp:89
void resizeEvent(QResizeEvent *event) override
Event handler to change size of widget.
Definition: joystick.cpp:131
Joystick(QWidget *parent=nullptr)
Construct new Joystick object.
Definition: joystick.cpp:22
float x
Definition: joystick.hh:27
void xChange(float value)
Signal emitted in order to realize value change of x coordinate.
QRectF _bounds
Bounds of background.
Definition: joystick.hh:159