ImagingTools Core SDK
CTextTableItem.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
8// ACF includes
9#include <iser/ISerializable.h>
10#include <iser/IArchive.h>
11#include <iser/CArchiveTag.h>
12#include <icmm/CRgb.h>
13#include <iimg/CBitmap.h>
14
15// ImtCore includes
16#include <imtreport/CFont.h>
17
18
19namespace imtreport
20{
21
22
23class CTextTableItem: virtual public iser::ISerializable
24{
25public:
26 CTextTableItem(
27 const QString& text = QString(),
28 Qt::Alignment alignment = Qt::AlignLeft,
29 CFont font = CFont("Arial", 10.0),
30 const icmm::CRgb& foregroundColor = icmm::CRgb(0.0, 0.0, 0.0),
31 const icmm::CRgb& backgroundColor = icmm::CRgb(1.0, 1.0, 1.0),
32 const iimg::CBitmap& image = iimg::CBitmap());
33
34 QString GetText() const;
35 void SetText(const QString& text);
36
37 Qt::Alignment GetAlignment() const;
38 void SetAlignment(const Qt::Alignment alignment);
39
40 const CFont& GetFont() const;
41 void SetFont(const CFont& font);
42
43 icmm::CRgb GetForegroundColor() const;
44 void SetForegroundColor(const icmm::CRgb& color);
45
46 icmm::CRgb GetBackgroundColor() const;
47 void SetBackgroundColor(const icmm::CRgb& color);
48
49 const iimg::CBitmap& GetImage() const;
50 void SetImage(const iimg::CBitmap& image);
51
52 bool operator==(const CTextTableItem &object) const ;
53 bool operator!=(const CTextTableItem &object) const;
54
55 // reimplemented (iser::ISerializable)
56 virtual bool Serialize(iser::IArchive& archive) override;
57
58 // reimplemented istd::IChangeable
59 virtual int GetSupportedOperations() const override;
60 virtual bool CopyFrom(const IChangeable& object, CompatibilityMode mode = CM_WITHOUT_REFS) override;
61 virtual bool IsEqual(const IChangeable& object) const override;
62 virtual istd::IChangeableUniquePtr CloneMe(CompatibilityMode mode = CM_WITHOUT_REFS) const override;
63 virtual bool ResetData(CompatibilityMode mode = CM_WITHOUT_REFS) override;
64
65private:
66 template <typename T>
67 bool SerializeValue(iser::IArchive& archive, const QByteArray& tagId, const QByteArray& tagComment, iser::CArchiveTag::TagType tagType, T& value)
68 {
69 static iser::CArchiveTag tag(tagId, tagComment, tagType);
70
71 bool retVal = archive.BeginTag(tag);
72 retVal = retVal && archive.Process(value);
73 retVal = retVal && archive.EndTag(tag);
74
75 return retVal;
76 }
77
78private:
79 QString m_text;
80 Qt::Alignment m_alignment;
81 CFont m_font;
82 icmm::CRgb m_foregroundColor;
83 icmm::CRgb m_backgroundColor;
84 iimg::CBitmap m_image;
85};
86
87
88} // namespace imtreport
89
90