ImagingTools Core SDK
CDesignTokenStyleUtils.h
1// SPDX-License-Identifier: LGPL-2.1-or-later OR GPL-2.0-or-later OR GPL-3.0-or-later OR LicenseRef-ImtCore-Commercial
2#pragma once
3
4
5// Qt includes
6#include <QtCore/QtCore>
7#include <QtGui/QFont>
8
9
10// ImtCore includes
11#include <imtbase/CJsonHelper.h>
12#include <imtstyle/IColorPaletteProvider.h>
13
14
15namespace imtbase
16{
17 class ICollectionInfo;
18 class CCollectionInfo;
19}
20
21
22namespace imtdesign
23{
24
25
26class CDesignTokenStyleUtils: imtbase::CJsonHelper
27{
28public:
29 static QByteArrayList GetVariables(
30 const QByteArray& data,
31 const QChar& variableBeginSymbol,
32 const QChar& variableBeginSymbol2,
33 const QChar& variableEndSymbol);
34 static bool SetVariables(QByteArray& data,
35 const QChar& variableBeginSymbol,
36 const QChar& variableBeginSymbol2,
37 const QChar& variableEndSymbol,
38 const QMap<QByteArray, QByteArray>& variables);
39 static bool SetVariables(QByteArray& data,
40 const QChar& variableBeginSymbol,
41 const QChar& variableBeginSymbol2,
42 const QChar& variableEndSymbol,
43 const QVariantMap& variables);
47 static bool SetVariablesFromDualVariable(QByteArray& data,
48 const QChar& variableBeginSymbol,
49 const QChar& variableBeginSymbol2,
50 const QChar& variableEndSymbol,
51 const QVariantMap& variables);
52
53 static bool GetColorRoleGroup(const QString& name, QPalette::ColorGroup& group, QPalette::ColorRole& role);
54 static QString GetColorName(QPalette::ColorGroup group, QPalette::ColorRole role);
55 static QPalette GetPaletteFromMultiEntry(const QJsonValue& styleEntry);
56 static QPalette GetPaletteFromEntry(const QJsonValue& paletteEntry);
57 static imtstyle::IColorPaletteProvider::GradientColors GetGradientColorsFromEntry(const QJsonValue& gradientColorsEntry);
58 static bool CreateColorFromGrb(const QString& rgbString, QColor& color);
59 static bool GetFontHintingPreference(const QString& name, QFont::HintingPreference& hintingPreference);
60 static bool GetFontCapitalization(const QString& name, QFont::Capitalization& capitalization);
61 static bool GetFontStyle(const QString& name, QFont::Style& style);
62 static bool GetFontStyleStrategy(const QString& name, QFont::StyleStrategy& styleStrategy);
63 static bool GetFontStyleStrategy(const QStringList& name, QFont::StyleStrategy& styleStrategy);
64 static bool GetFontStyleHint(const QString& name, QFont::StyleHint& styleHint);
65 static bool GetFontSpacingType(const QString& name, QFont::SpacingType& spacingType);
66 static bool GetFontsFromEntry(
67 const QJsonValue& paletteEntry,
68 QMap<QByteArray, QFont>& fonts,
69 imtbase::CCollectionInfo* fontsCollectionInfos = nullptr);
70 static bool CreateCssFont(QByteArray&output, const QFont& font);
71
72public:
73 constexpr static const char* s_offNormalColorParamName = "OffNormal";
74 constexpr static const char* s_offDisabledColorParamName = "OffDisabled";
75 constexpr static const char* s_offActiveColorParamName = "OffActive";
76 constexpr static const char* s_offSelectedColorParamName = "OffSelected";
77 constexpr static const char* s_onNormalColorParamName = "OnNormal";
78 constexpr static const char* s_onDisabledColorParamName = "OnDisabled";
79 constexpr static const char* s_onActiveColorParamName = "OnActive";
80 constexpr static const char* s_onSelectedColorParamName = "OnSelected";
81
82 static const QMap<QString, QPalette::ColorGroup> s_colorGroupNamesMap;
83 static const QMap<QString, QPalette::ColorRole> s_colorRolesNamesMap;
84 static const QMap<QString, QFont::HintingPreference> s_fontHintingPreferenceNamesMap;
85 static const QMap<QString, QFont::Capitalization> s_fontCapitalizationNamesMap;
86 static const QMap<QString, QFont::Style> s_fontStyleNamesMap;
87 static const QMap<QString, QFont::StyleStrategy> s_fontStyleStrategyNamesMap;
88 static const QMap<QString, QFont::StyleHint> s_fontStyleHintNamesMap;
89 static const QMap<QString, QFont::SpacingType> s_fontSpacingTypeNamesMap;
90
91private:
92 static bool SetVariable_(
93 QByteArray& data,
94 const QChar& variableBeginSymbol,
95 const QChar& variableBeginSymbol2,
96 const QChar& variableEndSymbol,
97 const QMap<QByteArray, QByteArray>& variables);
98 static bool SetVariablesFromDualVariable_(
99 QByteArray& data,
100 const QChar& variableBeginSymbol,
101 const QChar& variableBeginSymbol2,
102 const QChar& variableEndSymbol,
103 const QVariantMap& variables);
104 static bool FindColorEnrty(const QByteArray& name, const QVariantMap& variantMap, QVariant& output, const QString& appendix = QString());
105};
106
107
108} // namespace imtdesign
109