9#include <icomp/CComponentBase.h>
10#include <ilog/TLoggerCompWrap.h>
11#include <istd/TSmartPtr.h>
14#include <imtbase/CCollectionInfo.h>
15#include <imtbase/CJsonHelper.h>
16#include <imtstyle/IColorPaletteProvider.h>
17#include <imtstyle/IFontProvider.h>
18#include <imtdesign/IDesignTokenFileParser.h>
25class CDesignTokenBasedResourceProviderComp:
26 public ilog::TLoggerCompWrap<icomp::CComponentBase>,
27 private imtbase::CJsonHelper,
28 virtual public IColorPaletteProvider,
29 virtual public IFontProvider
31 Q_DECLARE_TR_FUNCTIONS(CDesignTokenBasedResourceProviderComp)
33 typedef ilog::TLoggerCompWrap<icomp::CComponentBase> BaseClass;
35 I_BEGIN_COMPONENT(CDesignTokenBasedResourceProviderComp);
36 I_REGISTER_INTERFACE(IDesignSchemaInfoProvider);
37 I_REGISTER_INTERFACE(IColorPaletteProvider);
38 I_REGISTER_INTERFACE(IFontProvider);
39 I_ASSIGN_MULTI_0(m_resourceFileNameAttrPtr,
"ResourceFileNames",
"Path to the resource file containing the theme",
true);
40 I_ASSIGN_MULTI_0(m_designShemaIdAttrPtr,
"DesignSchemaIds",
"Design schema IDs",
false);
41 I_ASSIGN_MULTI_0(m_designShemaNamesAttrPtr,
"DesignSchemaNames",
"Design schema names",
false);
42 I_ASSIGN_MULTI_0(m_paletteModeAttrPtr,
"PaletteModes",
"Palette modes",
false);
43 I_ASSIGN(m_designTokenFileParserCompPtr,
"DesignTokenFileParser",
"DesignToken File Parser",
false,
"DesignTokenFileParser");
47 virtual bool GetColorPalette(
const QByteArray& designSchemaId, ColorSchema& palette)
const override;
51 virtual bool GetFont(
const QByteArray& designSchemaId,
const QByteArray& fontId, QFont& font)
const override;
58 virtual void OnComponentCreated()
override;
62 void CreateDefaultPalettes();
63 bool StringToColor(
const QString& colorString, QColor& color)
const;
66 I_MULTIATTR(QByteArray, m_resourceFileNameAttrPtr);
67 I_MULTIATTR(QByteArray, m_designShemaIdAttrPtr);
68 I_MULTITEXTATTR(m_designShemaNamesAttrPtr);
69 I_MULTIATTR(QByteArray, m_paletteModeAttrPtr);
70 I_REF(imtdesign::IDesignTokenFileParser, m_designTokenFileParserCompPtr);
76 QMap<QByteArray, ColorSchema> m_paletteMap;
77 QMap<QByteArray, istd::TSmartPtr<imtbase::ICollectionInfo>> m_fontsCollectionInfos;
78 QMap<QByteArray, QMap<QByteArray, QFont>> m_fonts;