Material: Use predefined palettes

At some later point we might want to make the palettes settable,
so the user can define his own palettes.
This commit is contained in:
Peter Hartmann 2022-06-03 09:11:29 +02:00
parent d1fb1e71cb
commit 6281a6afe0
2 changed files with 28 additions and 2 deletions

View File

@ -48,6 +48,14 @@ namespace
QskMaterialSkinFactory::QskMaterialSkinFactory( QObject* parent ) QskMaterialSkinFactory::QskMaterialSkinFactory( QObject* parent )
: QskSkinFactory( 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() QskMaterialSkinFactory::~QskMaterialSkinFactory()
@ -63,9 +71,11 @@ QskSkin* QskMaterialSkinFactory::createSkin( const QString& skinName )
{ {
if ( QString::compare( skinName, materialLightSkinName, Qt::CaseInsensitive ) == 0 ) 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.primaryVariant = 0xff3700b3;
pal.onPrimary = QskRgb::White; pal.onPrimary = QskRgb::White;
pal.secondary = 0xff03dac6; pal.secondary = 0xff03dac6;

View File

@ -7,6 +7,7 @@
#define QSK_MATERIAL_SKIN_FACTORY_H #define QSK_MATERIAL_SKIN_FACTORY_H
#include "QskMaterialGlobal.h" #include "QskMaterialGlobal.h"
#include <QskRgbPalette.h>
#include <QskSkinFactory.h> #include <QskSkinFactory.h>
class QSK_MATERIAL_EXPORT QskMaterialSkinFactory : public QskSkinFactory class QSK_MATERIAL_EXPORT QskMaterialSkinFactory : public QskSkinFactory
@ -20,8 +21,23 @@ class QSK_MATERIAL_EXPORT QskMaterialSkinFactory : public QskSkinFactory
QskMaterialSkinFactory( QObject* parent = nullptr ); QskMaterialSkinFactory( QObject* parent = nullptr );
~QskMaterialSkinFactory() override; ~QskMaterialSkinFactory() override;
enum PaletteType
{
Primary,
Secondary,
Tertiary,
Error,
Neutral,
NeutralVariant,
NumPaletteTypes
};
QStringList skinNames() const override; QStringList skinNames() const override;
QskSkin* createSkin( const QString& skinName ) override; QskSkin* createSkin( const QString& skinName ) override;
private:
QskRgbPalette m_palettes[ NumPaletteTypes ];
}; };
#endif #endif