implement flat button color roles

This commit is contained in:
laserpants 2016-05-14 15:18:57 +03:00
parent 4bc4d6aa92
commit a7da6ce162
5 changed files with 43 additions and 1 deletions

View File

@ -3,6 +3,8 @@
#include <QMouseEvent> #include <QMouseEvent>
#include <QStylePainter> #include <QStylePainter>
#include <QStyleOption> #include <QStyleOption>
#include <QApplication>
#include <QPalette>
#include <QDebug> #include <QDebug>
#include "lib/style.h" #include "lib/style.h"
#include "lib/rippleoverlay.h" #include "lib/rippleoverlay.h"
@ -26,6 +28,30 @@ FlatButton::~FlatButton()
{ {
} }
void FlatButton::setRole(Material::Role role)
{
Q_D(FlatButton);
d->role = role;
//Style &style = Style::instance();
//switch (role)
//{
//case Material::Primary:
// d->palette.setColor(QPalette::ButtonText, style.themeColor("primary1"));
// break;
//case Material::Secondary:
// d->palette.setColor(QPalette::ButtonText, style.themeColor("accent1"));
// break;
//default:
// d->palette.setColor(QPalette::ButtonText, style.themeColor("text"));
// break;
//}
//setPalette(d->palette);
update();
}
void FlatButton::resizeEvent(QResizeEvent *event) void FlatButton::resizeEvent(QResizeEvent *event)
{ {
Q_D(FlatButton); Q_D(FlatButton);

View File

@ -3,6 +3,7 @@
#include <QPushButton> #include <QPushButton>
#include <QScopedPointer> #include <QScopedPointer>
#include "lib/theme.h"
class FlatButtonPrivate; class FlatButtonPrivate;
@ -15,6 +16,8 @@ public:
explicit FlatButton(const QString &text, QWidget *parent = 0); explicit FlatButton(const QString &text, QWidget *parent = 0);
~FlatButton(); ~FlatButton();
void setRole(Material::Role role);
protected: protected:
void resizeEvent(QResizeEvent *event) Q_DECL_OVERRIDE; void resizeEvent(QResizeEvent *event) Q_DECL_OVERRIDE;
void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE; void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE;

View File

@ -3,6 +3,7 @@
#include "flatbutton.h" #include "flatbutton.h"
#include "lib/rippleoverlay.h" #include "lib/rippleoverlay.h"
#include "lib/theme.h"
class FlatButtonPrivate class FlatButtonPrivate
{ {
@ -14,11 +15,13 @@ public:
FlatButton *const q_ptr; FlatButton *const q_ptr;
RippleOverlay *const ripple; RippleOverlay *const ripple;
Material::Role role;
}; };
FlatButtonPrivate::FlatButtonPrivate(FlatButton *parent) FlatButtonPrivate::FlatButtonPrivate(FlatButton *parent)
: q_ptr(parent), : q_ptr(parent),
ripple(new RippleOverlay(parent)) ripple(new RippleOverlay(parent)),
role(Material::Default)
{ {
parent->setStyle(&Style::instance()); parent->setStyle(&Style::instance());
parent->setAttribute(Qt::WA_Hover); parent->setAttribute(Qt::WA_Hover);

View File

@ -15,8 +15,12 @@ FlatButtonExamples::FlatButtonExamples(QWidget *parent)
flatButton->setText("Press me!"); flatButton->setText("Press me!");
flatButton->setMinimumSize(200, 42); flatButton->setMinimumSize(200, 42);
flatButton->setRole(Material::Primary);
// flatButton->setDisabled(true);
ExampleView *view = new ExampleView; ExampleView *view = new ExampleView;
view->setWidget(flatButton); view->setWidget(flatButton);
view->setBackgroundRole(QPalette::Base);
Frame *frame = new Frame; Frame *frame = new Frame;
frame->setCodeSnippet( frame->setCodeSnippet(

View File

@ -8,6 +8,12 @@
namespace Material namespace Material
{ {
enum Role {
Default,
Primary,
Secondary
};
enum Color { enum Color {
red50, red50,
red100, red100,