From 6281a6afe0cbac2dbad2df269590946bd933c9e1 Mon Sep 17 00:00:00 2001 From: Peter Hartmann Date: Fri, 3 Jun 2022 09:11:29 +0200 Subject: [PATCH] Material: Use predefined palettes At some later point we might want to make the palettes settable, so the user can define his own palettes. --- skins/material/QskMaterialSkinFactory.cpp | 14 ++++++++++++-- skins/material/QskMaterialSkinFactory.h | 16 ++++++++++++++++ 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/skins/material/QskMaterialSkinFactory.cpp b/skins/material/QskMaterialSkinFactory.cpp index cfeeebd6..2f12ba79 100644 --- a/skins/material/QskMaterialSkinFactory.cpp +++ b/skins/material/QskMaterialSkinFactory.cpp @@ -48,6 +48,14 @@ namespace QskMaterialSkinFactory::QskMaterialSkinFactory( QObject* parent ) : QskSkinFactory( parent ) { + using Q = QskRgbPalette; + + m_palettes[ Primary ] = Q::palette( Q::DefaultMaterialPrimary ); + m_palettes[ Secondary ] = Q::palette( Q::DefaultMaterialSecondary ); + m_palettes[ Tertiary ] = Q::palette( Q::DefaultMaterialTertiary ); + m_palettes[ Error ] = Q::palette( Q::DefaultMaterialError ); + m_palettes[ Neutral ] = Q::palette( Q::DefaultMaterialNeutral ); + m_palettes[ NeutralVariant ] = Q::palette( Q::DefaultMaterialNeutralVariant ); } QskMaterialSkinFactory::~QskMaterialSkinFactory() @@ -63,9 +71,11 @@ QskSkin* QskMaterialSkinFactory::createSkin( const QString& skinName ) { if ( QString::compare( skinName, materialLightSkinName, Qt::CaseInsensitive ) == 0 ) { - QskMaterialPalette pal( QskMaterialPalette::Light );; + QskMaterialPalette pal( QskMaterialPalette::Light ); - pal.primary = 0xff6200ee; + using Q = QskRgbPalette; + + pal.primary = m_palettes[ Primary ].rgb( Q::W40 ); pal.primaryVariant = 0xff3700b3; pal.onPrimary = QskRgb::White; pal.secondary = 0xff03dac6; diff --git a/skins/material/QskMaterialSkinFactory.h b/skins/material/QskMaterialSkinFactory.h index 8294e824..f1a06c8a 100644 --- a/skins/material/QskMaterialSkinFactory.h +++ b/skins/material/QskMaterialSkinFactory.h @@ -7,6 +7,7 @@ #define QSK_MATERIAL_SKIN_FACTORY_H #include "QskMaterialGlobal.h" +#include #include class QSK_MATERIAL_EXPORT QskMaterialSkinFactory : public QskSkinFactory @@ -20,8 +21,23 @@ class QSK_MATERIAL_EXPORT QskMaterialSkinFactory : public QskSkinFactory QskMaterialSkinFactory( QObject* parent = nullptr ); ~QskMaterialSkinFactory() override; + enum PaletteType + { + Primary, + Secondary, + Tertiary, + Error, + Neutral, + NeutralVariant, + + NumPaletteTypes + }; + QStringList skinNames() const override; QskSkin* createSkin( const QString& skinName ) override; + + private: + QskRgbPalette m_palettes[ NumPaletteTypes ]; }; #endif