diff options
Diffstat (limited to 'include/ui/FloatingButton.h')
-rw-r--r-- | include/ui/FloatingButton.h | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/include/ui/FloatingButton.h b/include/ui/FloatingButton.h new file mode 100644 index 00000000..91e99ebb --- /dev/null +++ b/include/ui/FloatingButton.h @@ -0,0 +1,26 @@ +#pragma once + +#include "RaisedButton.h" + +constexpr int DIAMETER = 40; +constexpr int ICON_SIZE = 18; + +constexpr int OFFSET_X = 30; +constexpr int OFFSET_Y = 20; + +class FloatingButton : public RaisedButton +{ + Q_OBJECT + +public: + FloatingButton(const QIcon &icon, QWidget *parent = nullptr); + + QSize sizeHint() const override { return QSize(DIAMETER, DIAMETER); }; + QRect buttonGeometry() const; + +protected: + bool event(QEvent *event) override; + bool eventFilter(QObject *obj, QEvent *event) override; + + void paintEvent(QPaintEvent *event) override; +}; |