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 <QStylePainter>
#include <QStyleOption>
#include <QApplication>
#include <QPalette>
#include <QDebug>
#include "lib/style.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)
{
Q_D(FlatButton);

View File

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

View File

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

View File

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

View File

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