qskinny/designsystems/fluent2/QskFluent2Theme.h

231 lines
4.2 KiB
C
Raw Normal View History

2023-07-02 12:18:47 +02:00
/******************************************************************************
2024-01-17 14:31:45 +01:00
* QSkinny - Copyright (C) The authors
2023-07-02 12:18:47 +02:00
* SPDX-License-Identifier: BSD-3-Clause
*****************************************************************************/
#ifndef QSK_FLUENT2_THEME_H
#define QSK_FLUENT2_THEME_H
#include "QskFluent2Global.h"
#include <QskSkin.h>
#include <QskShadowMetrics.h>
#include <qcolor.h>
#include <array>
class QSK_FLUENT2_EXPORT QskFluent2Theme
{
public:
2023-07-03 17:50:57 +02:00
struct BaseColors
2023-07-02 12:18:47 +02:00
{
2023-07-03 17:50:57 +02:00
QRgb primary;
QRgb secondary;
QRgb tertiary;
2023-07-02 12:18:47 +02:00
};
2023-07-03 17:50:57 +02:00
struct AccentColors
{
QRgb primary;
QRgb secondary;
QRgb tertiary;
QRgb quaternary;
};
QskFluent2Theme( QskSkin::ColorScheme, const BaseColors& baseColors,
const AccentColors& accentColors );
2023-07-02 12:18:47 +02:00
typedef std::array< QRgb, 2 > BorderGradient;
struct FillColor
{
struct
{
QRgb primary;
QRgb secondary;
QRgb tertiary;
QRgb disabled;
} text;
struct
{
QRgb primary;
QRgb secondary;
QRgb tertiary;
QRgb disabled;
} accentText;
struct
{
QRgb primary;
QRgb secondary;
QRgb tertiary;
QRgb disabled;
QRgb selectedText;
} textOnAccent;
struct
{
QRgb defaultColor;
QRgb secondary;
QRgb tertiary;
QRgb inputActive;
QRgb disabled;
} control;
struct
{
QRgb defaultColor;
QRgb disabled;
} controlStrong;
struct
{
QRgb secondary;
QRgb tertiary;
QRgb disabled;
} subtle;
struct
{
QRgb defaultColor;
} controlSolid;
struct
{
QRgb secondary;
QRgb tertiary;
QRgb quaternary;
QRgb disabled;
} controlAlt;
struct
{
QRgb defaultColor;
QRgb secondary;
QRgb tertiary;
QRgb disabled;
QRgb selectedTextBackground;
} accent;
2023-07-20 10:41:49 +02:00
struct
{
QRgb background;
} acrylic;
2023-07-02 12:18:47 +02:00
};
struct Elevation
{
struct
{
BorderGradient border;
} control;
struct
{
BorderGradient border;
} circle;
struct
{
BorderGradient border;
BorderGradient borderFocused;
} textControl;
struct
{
BorderGradient border;
} accentControl;
};
struct StrokeColor
{
struct
{
QRgb defaultColor;
QRgb secondary;
QRgb onAccentDefault;
QRgb onAccentSecondary;
QRgb onAccentTertiary;
QRgb onAccentDisabled;
} control;
struct
{
QRgb defaultColor;
QRgb disabled;
} controlStrong;
struct
{
QRgb defaultColor;
QRgb defaultSolid;
} card;
struct
{
QRgb defaultColor;
} divider;
struct
{
QRgb defaultColor;
QRgb flyout;
} surface;
struct
{
QRgb outer;
QRgb inner;
} focus;
};
struct Background
{
struct
{
QRgb defaultColor;
} overlay;
struct
{
QRgb alt;
} layer;
struct
{
QRgb defaultColor;
} flyout;
struct
{
QRgb base;
QRgb secondary;
QRgb tertiary;
QRgb quaternary;
} solid;
};
struct
{
FillColor fillColor;
Elevation elevation;
StrokeColor strokeColor;
Background background;
} palette;
struct ShadowSettings
{
QskShadowMetrics metrics;
QRgb color;
};
struct
{
ShadowSettings flyout;
ShadowSettings dialog;
} shadow;
};
#endif