handle overlay geometry
This commit is contained in:
parent
cdd16e1230
commit
51cf801c88
|
@ -1,25 +1,54 @@
|
|||
#include "flatbutton.h"
|
||||
#include <QPainter>
|
||||
#include <QMouseEvent>
|
||||
#include "lib/style.h"
|
||||
#include "lib/rippleoverlay.h"
|
||||
|
||||
FlatButton::FlatButton(QWidget *parent)
|
||||
: QPushButton(parent)
|
||||
: QPushButton(parent),
|
||||
_ripple(new RippleOverlay(this))
|
||||
{
|
||||
setStyle(&Style::instance());
|
||||
setAttribute(Qt::WA_Hover);
|
||||
setMouseTracking(true);
|
||||
|
||||
QFont f(font());
|
||||
f.setCapitalization(QFont::AllUppercase);
|
||||
f.setPointSizeF(10.5);
|
||||
f.setStyleName("Medium");
|
||||
setFont(f);
|
||||
}
|
||||
|
||||
FlatButton::FlatButton(const QString &text, QWidget *parent)
|
||||
: QPushButton(parent)
|
||||
: QPushButton(parent),
|
||||
_ripple(new RippleOverlay(this))
|
||||
{
|
||||
setText(text);
|
||||
|
||||
setStyle(&Style::instance());
|
||||
setAttribute(Qt::WA_Hover);
|
||||
setMouseTracking(true);
|
||||
|
||||
QFont f(font());
|
||||
f.setCapitalization(QFont::AllUppercase);
|
||||
f.setPointSizeF(10.5);
|
||||
f.setStyleName("Medium");
|
||||
setFont(f);
|
||||
}
|
||||
|
||||
FlatButton::~FlatButton()
|
||||
{
|
||||
}
|
||||
|
||||
void FlatButton::resizeEvent(QResizeEvent *event)
|
||||
{
|
||||
if (_ripple) {
|
||||
_ripple->setGeometry(rect());
|
||||
}
|
||||
|
||||
QPushButton::resizeEvent(event);
|
||||
}
|
||||
|
||||
void FlatButton::paintEvent(QPaintEvent *event)
|
||||
{
|
||||
Q_UNUSED(event)
|
||||
|
@ -29,6 +58,13 @@ void FlatButton::paintEvent(QPaintEvent *event)
|
|||
painter.drawRect(rect().adjusted(0, 0, -1, -1));
|
||||
}
|
||||
|
||||
void FlatButton::mousePressEvent(QMouseEvent *event)
|
||||
{
|
||||
_ripple->addRipple(event->pos());
|
||||
|
||||
QPushButton::mousePressEvent(event);
|
||||
}
|
||||
|
||||
//#include <QDebug>
|
||||
//#include <QStylePainter>
|
||||
//#include <QMouseEvent>
|
||||
|
|
|
@ -3,6 +3,8 @@
|
|||
|
||||
#include <QPushButton>
|
||||
|
||||
class RippleOverlay;
|
||||
|
||||
class FlatButton : public QPushButton
|
||||
{
|
||||
Q_OBJECT
|
||||
|
@ -13,7 +15,12 @@ public:
|
|||
~FlatButton();
|
||||
|
||||
protected:
|
||||
void resizeEvent(QResizeEvent *event) Q_DECL_OVERRIDE;
|
||||
void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE;
|
||||
void mousePressEvent(QMouseEvent *event) Q_DECL_OVERRIDE;
|
||||
|
||||
private:
|
||||
RippleOverlay *const _ripple;
|
||||
};
|
||||
|
||||
#endif // FLATBUTTON_H
|
||||
|
|
Loading…
Reference in New Issue