ImagingTools Core SDK
CFont.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// ACF includes
6#include <iser/ISerializable.h>
7
8
9namespace imtreport
10{
11
12
13class CFont: virtual public iser::ISerializable
14{
15public:
16 enum FontFlags
17 {
18 FF_NORMAL = 0x0,
19 FF_BOLD = 0x1,
20 FF_ITALIC = 0x2,
21 FF_UNDERLINE = 0x4
22 };
23
24 I_DECLARE_FLAGS(FontFlags, FF_NORMAL, FF_BOLD, FF_ITALIC, FF_UNDERLINE);
25
26 CFont();
27 CFont(const QString& name, double size, int fontFlags = FontFlags::FF_NORMAL);
28
29 QString GetName() const;
30 void SetName(const QString& name);
31
32 double GetSize() const;
33 void SetSize(double size);
34
35 int GetFontFlags() const;
36 void SetFontFlags(int fontFlags);
37
38 // reimplemented (iser::ISerializable)
39 virtual bool Serialize(iser::IArchive& archive) override;
40
41 // reimplemented istd::IChangeable
42 virtual int GetSupportedOperations() const override;
43 virtual bool CopyFrom(const IChangeable& object, CompatibilityMode mode = CM_WITHOUT_REFS) override;
44 virtual bool IsEqual(const IChangeable& object) const override;
45 virtual istd::IChangeableUniquePtr CloneMe(CompatibilityMode mode = CM_WITHOUT_REFS) const override;
46 virtual bool ResetData(CompatibilityMode mode = CM_WITHOUT_REFS) override;
47
48private:
49 QString m_name;
50 double m_size;
51 int m_fontFlags;
52};
53
54
55} // namespace imtreport
56
57