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 )
: 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;

View File

@ -7,6 +7,7 @@
#define QSK_MATERIAL_SKIN_FACTORY_H
#include "QskMaterialGlobal.h"
#include <QskRgbPalette.h>
#include <QskSkinFactory.h>
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