8#include <QtCore/QDataStream>
12#include <istd/TSmartPtr.h>
13#include <istd/TChangeDelegator.h>
16#include <imtgui/ILayout.h>
26class CLayout:
public istd::TChangeDelegator<imtgui::ILayout>
29 CLayout(CLayout* parentLayoutPtr =
nullptr);
33 virtual QByteArray GetLayoutId() const Q_DECL_OVERRIDE;
34 virtual
void SetType(const LayoutType& type) Q_DECL_OVERRIDE;
35 virtual LayoutType GetType() const Q_DECL_OVERRIDE;
36 virtual
void SetTitle(const QString& title) Q_DECL_OVERRIDE;
37 virtual QString GetTitle() const Q_DECL_OVERRIDE;
38 virtual
void SetTitleAlign(const AlignType& align) Q_DECL_OVERRIDE;
39 virtual AlignType GetTitleAlign() const Q_DECL_OVERRIDE;
40 virtual
void SetIcon(const QPixmap& icon) Q_DECL_OVERRIDE;
41 virtual QPixmap GetIcon() const Q_DECL_OVERRIDE;
42 virtual
void SetViewId(const QByteArray& viewId) Q_DECL_OVERRIDE;
43 virtual QByteArray GetViewId() const Q_DECL_OVERRIDE;
44 virtual
void SetSizes(const SizeList& sizes) Q_DECL_OVERRIDE;
45 virtual SizeList GetSizes() const Q_DECL_OVERRIDE;
46 virtual
void SetLayoutProperties(const LayoutProperties &properties) Q_DECL_OVERRIDE;
47 virtual LayoutProperties GetLayoutProperties() const Q_DECL_OVERRIDE;
48 virtual ILayout* GetParent() const Q_DECL_OVERRIDE;
49 virtual
int GetChildsCount() const Q_DECL_OVERRIDE;
50 virtual ILayout* GetChild(
int index) const Q_DECL_OVERRIDE;
51 virtual
void InsertChild(
int index, ILayout* layout) Q_DECL_OVERRIDE;
52 virtual
void AppendChild(ILayout* layout) Q_DECL_OVERRIDE;
53 virtual ILayout* TakeChild(
int index) Q_DECL_OVERRIDE;
54 virtual ILayout* TakeFirst() Q_DECL_OVERRIDE;
55 virtual ILayout* TakeLast() Q_DECL_OVERRIDE;
56 virtual
void Clear() Q_DECL_OVERRIDE;
57 virtual ILayout* FindChild(const QByteArray&
id) const Q_DECL_OVERRIDE;
58 virtual ILayout* RemoveChild(const QByteArray&
id) Q_DECL_OVERRIDE;
59 virtual
void SplitLayout(ILayout::LayoutType type,
int width,
int height) Q_DECL_OVERRIDE;
62 virtual
bool Serialize(iser::IArchive& archive) Q_DECL_OVERRIDE;
65 void CopyData(ILayout* source);
66 bool InternalSerializeItemRecursive(iser::IArchive& archive);
67 bool SerializeProperties(iser::IArchive& archive, LayoutProperties &properties);
71 LayoutType m_layoutType;
72 AlignType m_alignType;
78 QList<ILayout*> m_childs;
79 LayoutProperties m_properties;
85QDataStream &operator<<(QDataStream &dataStream, const ILayout::LayoutProperties &src);
86QDataStream &operator>>(QDataStream &dataStream, ILayout::LayoutProperties &src);
87bool operator ==(const ILayout::LayoutProperties &left, const ILayout::LayoutProperties &right);
88bool operator !=(const ILayout::LayoutProperties &left, const ILayout::LayoutProperties &right);