#ifndef FLATBUTTON_H #define FLATBUTTON_H #include #include #include "lib/theme.h" class FlatButtonPrivate; class FlatButton : public QPushButton { Q_OBJECT Q_PROPERTY(Material::Role role WRITE setRole READ role) Q_PROPERTY(Material::RippleStyle rippleStyle WRITE setRippleStyle READ rippleStyle) Q_PROPERTY(qreal cornerRadius WRITE setCornerRadius READ cornerRadius) Q_PROPERTY(Qt::BGMode bgMode WRITE setBgMode READ bgMode) public: explicit FlatButton(QWidget *parent = 0); explicit FlatButton(const QString &text, QWidget *parent = 0); ~FlatButton(); virtual void setRole(Material::Role role); Material::Role role() const; void setRippleStyle(Material::RippleStyle style); Material::RippleStyle rippleStyle() const; void setCornerRadius(qreal radius); qreal cornerRadius() const; void setBgMode(Qt::BGMode mode); Qt::BGMode bgMode() const; protected: FlatButton(FlatButtonPrivate &d, QWidget *parent = 0); void resizeEvent(QResizeEvent *event) Q_DECL_OVERRIDE; void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE; void mousePressEvent(QMouseEvent *event) Q_DECL_OVERRIDE; const QScopedPointer d_ptr; private: Q_DISABLE_COPY(FlatButton) Q_DECLARE_PRIVATE(FlatButton) }; #endif // FLATBUTTON_H