6#include <QtWidgets/QMenu>
7#include <QtWidgets/QSplitter>
8#include <QtCore/QTimer>
9#if QT_VERSION >= 0x050000 && QT_VERSION < 0x060000
10#include <QtWidgets/QAction>
12#include <QtGui/QAction>
16#include <iqtgui/TDesignerGuiObserverCompBase.h>
17#include <ibase/ICommandsProvider.h>
18#include <iprm/COptionsManager.h>
19#include <iqtgui/CHierarchicalCommand.h>
20#include <imod/IModel.h>
21#include <idoc/IUndoManager.h>
22#include <iser/ISerializable.h>
25#include <imtgui/ILayout.h>
26#include <imtgui/ILayout.h>
27#include <imtgui/CHierarchicalLayoutWidget.h>
28#include <GeneratedFiles/imtgui/ui_CLayoutManagerGuiComp.h>
39 public iqtgui::TDesignerGuiObserverCompBase<Ui::CLayoutManagerGuiComp, imtgui::ILayout>,
40 public virtual ibase::ICommandsProvider
45 typedef iqtgui::TDesignerGuiObserverCompBase<Ui::CLayoutManagerGuiComp, imtgui::ILayout> BaseClass;
46 typedef QList<int> SizeList;
49 I_REGISTER_INTERFACE(ibase::ICommandsProvider);
50 I_REGISTER_INTERFACE(iser::ISerializable);
51 I_REGISTER_SUBELEMENT(GuiViewOptionsList);
52 I_REGISTER_SUBELEMENT_INTERFACE(GuiViewOptionsList, iprm::IOptionsList, ExtractGuiViewOptionList);
53 I_ASSIGN(m_commandsProviderCompPtr,
"UndoManagerCommands",
"Undo manager commands providing commands functionality",
false,
"UndoManagerCommandsProvider");
54 I_ASSIGN(m_isFixedLayoutAttrPtr,
"DefaultFixedLayout",
"Fixed layout",
true,
true);
55 I_ASSIGN(m_isBorderEnabledAttrPtr,
"DefaultBorderEnabled",
"Border enabled",
true,
true);
56 I_ASSIGN(m_colorBorderAttrPtr,
"DefaultBorderColor",
"Border color",
true,
"#808080");
57 I_ASSIGN(m_isEditEnabledAttrPtr,
"DefaultEditEnabled",
"Edit enabled",
true,
true);
58 I_ASSIGN_MULTI_0(m_guiViewIdMultiAttrPtr,
"ViewIds",
"View ids to be used in layout creation",
true);
59 I_ASSIGN_MULTI_0(m_guiViewMultiFactCompPtr,
"ViewFactories",
"View factories to create gui in layout",
true);
60 I_ASSIGN_MULTI_0(m_guiViewNameMultiAttrPtr,
"ViewNames",
"View names will be shown to user in layout widget",
true);
66 virtual const ibase::IHierarchicalCommand* GetCommands()
const override;
69 QLayout* CreateCustomLayoutWidget(ILayout* layout);
72 virtual void UpdateGui(
const istd::IChangeable::ChangeSet& changeSet)
override;
75 virtual void OnGuiCreated()
override;
76 virtual void OnGuiDestroyed()
override;
77 virtual void OnGuiRetranslate()
override;
78 virtual void OnGuiDesignChanged()
override;
81 void OnSplitterMoved(
int pos,
int index);
82 void OnSplitterMoveFinished();
83 void OnStartEndEditCommand();
87 void OnChangeTitle(
const QByteArray&
id,
const QString& title);
88 void OnChangeAlignTitle(
const QByteArray&
id,
const ILayout::AlignType& align);
89 void OnChangeIcon(
const QByteArray&
id);
90 void OnRemoveIcon(
const QByteArray&
id);
91 void OnSplitLayout(
const QByteArray&
id, ILayout::LayoutType type,
int width,
int height);
92 void OnDeleteWidget(
const QByteArray&
id);
93 void OnAddWidget(
const QByteArray&
id,
int index);
94 void OnAddWidgetByViewId(
const QByteArray&
id,
const QByteArray& viewId);
95 void OnChangeSizes(
const QByteArray&
id,
const SizeList& sizeList);
96 void OnChangeProperties(
const QByteArray&
id);
100 template <
class InterfaceType>
103 return &component.m_guiViewOptionsManager;
107 void SetAllProperties(ILayout* layout,
const ILayout::LayoutProperties& properties,
const CLayoutSettingsDialog& settingsDialog);
108 void RemoveAllGuiComponents();
111 I_REF(ibase::ICommandsProvider, m_commandsProviderCompPtr);
112 I_ATTR(
bool, m_isFixedLayoutAttrPtr);
113 I_ATTR(
bool, m_isShowBoxAttrPtr);
114 I_ATTR(
bool, m_isBorderEnabledAttrPtr);
115 I_ATTR(
bool, m_isEditEnabledAttrPtr);
116 I_ATTR(QByteArray, m_colorBorderAttrPtr);
117 I_MULTIATTR(QByteArray, m_guiViewIdMultiAttrPtr);
118 I_MULTIFACT(iqtgui::IGuiObject, m_guiViewMultiFactCompPtr);
119 I_MULTIATTR(QString, m_guiViewNameMultiAttrPtr);
124 iqtgui::CHierarchicalCommand m_rootCommands;
125 iqtgui::CHierarchicalCommand m_commands;
126 iqtgui::CHierarchicalCommand m_startEndEditModeCommand;
127 iqtgui::CHierarchicalCommand m_clearCommand;
128 iqtgui::CHierarchicalCommand m_loadCommand;
129 iqtgui::CHierarchicalCommand m_saveCommand;
131 iqtgui::CHierarchicalCommand* m_undoCommands;
133 QTimer m_splitterTimer;
134 QByteArray m_activeId;
135 QMap<QSplitter*, QByteArray> m_splitterMap;
137 iprm::COptionsManager m_guiViewOptionsManager;
139 typedef iqtgui::IGuiObjectSharedPtr GuiObjectPtr;
140 typedef QVector<GuiObjectPtr> GuiObjects;
142 GuiObjects m_guiObjects;