69 lines
1.6 KiB
C++
69 lines
1.6 KiB
C++
#ifndef FLATBUTTON_P_H
|
|
#define FLATBUTTON_P_H
|
|
|
|
#include "flatbutton.h"
|
|
#include "lib/rippleoverlay.h"
|
|
#include "lib/theme.h"
|
|
#include "lib/style.h"
|
|
|
|
class FlatButtonPrivate
|
|
{
|
|
Q_DISABLE_COPY(FlatButtonPrivate)
|
|
Q_DECLARE_PUBLIC(FlatButton)
|
|
|
|
public:
|
|
FlatButtonPrivate(FlatButton *parent);
|
|
|
|
QColor textColor() const;
|
|
void setTextColor(const QString &themeColor);
|
|
|
|
FlatButton *const q_ptr;
|
|
RippleOverlay *const ripple;
|
|
Material::Role role;
|
|
};
|
|
|
|
FlatButtonPrivate::FlatButtonPrivate(FlatButton *parent)
|
|
: q_ptr(parent),
|
|
ripple(new RippleOverlay(parent)),
|
|
role(Material::Default)
|
|
{
|
|
Style &style = Style::instance();
|
|
|
|
parent->setStyle(&style);
|
|
parent->setAttribute(Qt::WA_Hover);
|
|
parent->setMouseTracking(true);
|
|
|
|
QFont font(parent->font());
|
|
font.setCapitalization(QFont::AllUppercase);
|
|
font.setPointSizeF(10.5);
|
|
font.setStyleName("Medium");
|
|
parent->setFont(font);
|
|
|
|
QPalette palette;
|
|
palette.setColor(QPalette::Disabled, QPalette::ButtonText,
|
|
style.themeColor("disabled"));
|
|
parent->setPalette(palette);
|
|
}
|
|
|
|
QColor FlatButtonPrivate::textColor() const
|
|
{
|
|
Q_Q(const FlatButton);
|
|
|
|
return q->palette().color(QPalette::Active, QPalette::ButtonText);
|
|
}
|
|
|
|
void FlatButtonPrivate::setTextColor(const QString &themeColor)
|
|
{
|
|
Q_Q(FlatButton);
|
|
|
|
QPalette palette(q->palette());
|
|
Style &style = Style::instance();
|
|
|
|
palette.setColor(QPalette::Active, QPalette::ButtonText,
|
|
style.themeColor(themeColor));
|
|
|
|
q->setPalette(palette);
|
|
}
|
|
|
|
#endif // FLATBUTTON_P_H
|