ImagingTools Core SDK
CGuiElementContainerComp.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 <ilog/TLoggerCompWrap.h>
7
8// ImtCore includes
9#include <imtserverapp/IGuiElementContainer.h>
10#include <imtserverapp/IGuiElementModel.h>
11
12
13namespace imtserverapp
14{
15
16
17class CGuiElementContainerComp:
18 public icomp::CComponentBase,
19 virtual public imtserverapp::IGuiElementContainer
20{
21public:
22 typedef icomp::CComponentBase BaseClass;
23
24 I_BEGIN_COMPONENT(CGuiElementContainerComp);
25 I_REGISTER_INTERFACE(istd::IChangeable);
26 I_REGISTER_INTERFACE(imtserverapp::IGuiElementContainer);
27 I_ASSIGN_MULTI_0(m_guiElementModelsCompPtr, "GuiElementModels", "List of gui element models", false);
28 I_ASSIGN(m_slaveGuiElementContainerCompPtr, "SlaveGuiElementContainer", "Slave GUI element container", false, "");
29 I_END_COMPONENT;
30
31protected:
32 virtual QByteArrayList GetElementIds() const override;
33 virtual const imtserverapp::IGuiElementModel* GetGuiElementModel(const QByteArray& elementId) const override;
34
35protected:
36 I_MULTIREF(imtserverapp::IGuiElementModel, m_guiElementModelsCompPtr);
37 I_REF(imtserverapp::IGuiElementContainer, m_slaveGuiElementContainerCompPtr);
38};
39
40
41} // namespace imtserverapp
42
43