ImagingTools Core SDK
CLayerComp.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 <iprm/IEnableableParam.h>
7#include <iprm/IOptionsList.h>
8#include <iprm/ISelectionParam.h>
9#include <icomp/CComponentBase.h>
10
11// ImtCore includes
12#include <imtloggui/ILayerController.h>
13#include <imtbase/CStaticObjectCollection.h>
14
15
16namespace imtloggui
17{
18
19
20class CLayerComp:
21 public icomp::CComponentBase,
23 virtual public iprm::IOptionsList,
24 virtual public iprm::ISelectionParam,
25 virtual public imtloggui::ILayerController,
26 virtual public iprm::IEnableableParam
27{
28public:
29 typedef icomp::CComponentBase BaseClass;
30 typedef imtbase::CStaticObjectCollection BaseClass2;
31
32 I_BEGIN_COMPONENT(CLayerComp)
33 I_REGISTER_INTERFACE(imtbase::IObjectCollection);
34 I_REGISTER_INTERFACE(iprm::IOptionsList);
35 I_REGISTER_INTERFACE(iprm::ISelectionParam);
36 I_REGISTER_INTERFACE(imtloggui::ILayerController);
37 I_REGISTER_INTERFACE(iprm::IEnableableParam);
38 I_ASSIGN_MULTI_0(m_idAttrPtr, "RepresentationIds", "Representation ids", false);
39 I_ASSIGN_MULTI_0(m_nameAttrPtr, "RepresentationNames", "Representation names", false);
40 I_ASSIGN_MULTI_0(m_representationCompPtr, "Representations", "Representations", false);
41 I_ASSIGN_MULTI_0(m_representationControllerCompPtr, "RepresentationControllers", "Representation controllers", false);
42 I_END_COMPONENT
43
44 CLayerComp();
45
46 // reimplemented (iprm::IEnableableParam)
47 virtual bool IsEnabled() const override;
48 virtual bool IsEnablingAllowed() const override;
49 virtual bool SetEnabled(bool isEnabled = true) override;
50
51 // reimplemented (imtloggui::ILayerController)
52 virtual QByteArray GetActiveRepresentationId() const override;
53 virtual bool SetActiveRepresentationId(const QByteArray& representationId) override;
54
55 // reimplemented (iprm::ISelectionParam)
56 virtual const IOptionsList* GetSelectionConstraints() const override;
57 virtual int GetSelectedOptionIndex() const override;
58 virtual bool SetSelectedOptionIndex(int index) override;
59 virtual ISelectionParam* GetSubselection(int index) const override;
60
61 // reimplemented (iprm::IOptionsList)
62 virtual int GetOptionsFlags() const override;
63 virtual int GetOptionsCount() const override;
64 virtual QString GetOptionName(int index) const override;
65 virtual QString GetOptionDescription(int index) const override;
66 virtual QByteArray GetOptionId(int index) const override;
67 virtual bool IsOptionEnabled(int index) const override;
68
69protected:
70 // reimplemented (icomp::CComponentBase)
71 virtual void OnComponentCreated() override;
72
73private:
74 I_MULTIATTR(QByteArray, m_idAttrPtr);
75 I_MULTIATTR(QString, m_nameAttrPtr);
76 I_MULTIREF(istd::IChangeable, m_representationCompPtr);
77 I_MULTIREF(iprm::IEnableableParam, m_representationControllerCompPtr);
78
79 QByteArray m_activeRepresentationId;
80 bool m_isEnabled;
81};
82
83
84} // namespace imtloggui
85
86