ImagingTools Core SDK
CMultiParamsSetGuiComp.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 <istd/TPointerVector.h>
7#include <iprm/IParamsSet.h>
8#include <iprm/IEnableableParam.h>
9#include <imtgui/ILayoutFittableModelEditor.h>
10#include <iqtgui/TDesignerGuiObserverCompBase.h>
11
12// ImtCore includes
13#include <imtbase/TModelUpdateBinder.h>
14
15#include <GeneratedFiles/imtgui/ui_CMultiParamsSetGuiComp.h>
16
17
18namespace imtgui
19{
20
21
22class CMultiParamsSetGuiComp:
23 public iqtgui::TDesignerGuiObserverCompBase<
24 Ui::CMultiParamsSetGuiComp, iprm::IParamsSet>
25{
26public:
27 typedef iqtgui::TDesignerGuiObserverCompBase<
28 Ui::CMultiParamsSetGuiComp, iprm::IParamsSet> BaseClass;
29
30 I_BEGIN_COMPONENT(CMultiParamsSetGuiComp);
31 I_ASSIGN_MULTI_0(m_idsAttrPtr, "Ids", "List of parameter IDs according to observed parameter set. \n Use '*' sign to attach all model", true);
32 I_ASSIGN_MULTI_0(m_objectIdsAttrPtr, "ObjectIds", "List of IDs of created elements", true);
33 I_ASSIGN_MULTI_1(m_labelTextsAttrPtr, "Labels", "List of parameter's Descriptions \n Leave empty string to get description from model \n Use whitespace symbols to create label without text", true, "");
34 I_ASSIGN_MULTI_0(m_uiActivatorsCompPtr, "UiActivators", "Optional activators for each ui (enable/disable)", false);
35 I_ASSIGN_TO(m_uiActivatorsModelCompPtr, m_uiActivatorsCompPtr, false);
36 I_END_COMPONENT;
37
38 CMultiParamsSetGuiComp();
39
40protected:
41 virtual void UpdateUiState(const istd::IChangeable::ChangeSet& changeSet, const iprm::IEnableableParam* aUiActivatorPtr);
42
43protected:
44 virtual ILayoutFittableModelEditor* CreateEditorFromModel(const imod::IModel* modelPtr, const QString& objectName = QString()) const;
45
46 // reimplemented (imod::IModelEditor)
47 virtual void SetReadOnly(bool state) override;
48
49 // reimplemented (iqtgui::CGuiComponentBase)
50 virtual void OnGuiCreated() override;
51 virtual void OnGuiDestroyed() override;
52
53 // reimplemented (iqtgui::TGuiObserverWrap)
54 virtual void OnGuiModelAttached() override;
55 virtual bool OnModelDetached(imod::IModel* modelPtr) override;
56
57private:
58 I_MULTIATTR(QByteArray, m_idsAttrPtr);
59 I_MULTIATTR(QByteArray, m_objectIdsAttrPtr);
60 I_MULTITEXTATTR(m_labelTextsAttrPtr);
61
62 I_MULTIREF(iprm::IEnableableParam, m_uiActivatorsCompPtr);
63 I_MULTIREF(imod::IModel, m_uiActivatorsModelCompPtr);
64
65 istd::TPointerVector<ILayoutFittableModelEditor> m_modelEditors;
66
68};
69
70
71} // namespace imtgui
72
73