ACF $AcfVersion:0$
CManagerParamsSetShadowerComp.h
Go to the documentation of this file.
1// SPDX-License-Identifier: LGPL-2.1-or-later OR GPL-2.0-or-later OR GPL-3.0-or-later OR LicenseRef-ACF-Commercial
2#pragma once
3
4
6
8
9#include <iprm/IOptionsList.h>
10#include <iprm/IParamsSet.h>
12#include <iprm/IParamsManager.h>
13
14
15namespace iprm
16{
17
18
25{
26public:
28
29 I_BEGIN_COMPONENT(CManagerParamsSetShadowerComp);
30 I_ASSIGN(m_paramsManagerCompPtr, "ParamsManager", "Manager of parameter set used to realize selection", true, "ParamsManager");
31 I_ASSIGN_TO(m_paramsManagerModelCompPtr, m_paramsManagerCompPtr, true);
32 I_ASSIGN(m_selectionParamCompPtr, "SelectionParam", "Selection parameter choising some object in parameter manager", true, "SelectionParam");
33 I_ASSIGN(m_shadowParamsSetCompPtr, "ShadowParamsSet", "Shadow parameter set where current selected set will be copied", true, "ShadowParamsSet");
34 I_END_COMPONENT;
35
37
38protected:
43
50
51 // reimplemented (icomp::CComponentBase)
52 virtual void OnComponentCreated() override;
53 virtual void OnComponentDestroyed() override;
54
55 // reimplemented (imod::CSingleModelObserverBase)
56 virtual void OnUpdate(const istd::IChangeable::ChangeSet& changeSet) override;
57
58private:
63 class CurrentParamsSetObserver: public imod::CSingleModelObserverBase
64 {
65 public:
66 explicit CurrentParamsSetObserver(CManagerParamsSetShadowerComp* parentPtr);
67
68 // reimplemented (imod::CSingleModelObserverBase)
69 virtual void OnUpdate(const istd::IChangeable::ChangeSet& changeSet) override;
70
71 private:
73 };
74
75 CurrentParamsSetObserver m_currentParamsSetObserver;
76 imod::IModel* m_currentParamsModelPtr;
77
78 I_REF(IParamsManager, m_paramsManagerCompPtr);
79 I_REF(imod::IModel, m_paramsManagerModelCompPtr);
80 I_REF(ISelectionParam, m_selectionParamCompPtr);
81 I_REF(IParamsSet, m_shadowParamsSetCompPtr);
82};
83
84
85} // namespace iprm
86
87
88
89
Base class for component implementation.
Basic implementation for a single model observer.
Common interface for model objects, that supports Model/Observer design pattern.
Definition IModel.h:25
Keep parameter set with selected one synchronized.
bool CopyParamsSetToShadow()
Do copy current selected parameter set to shadow object.
void SetupCurrentParamsSetBridge()
Set the bridge to the currently selected parameter set.
virtual void OnComponentCreated() override
virtual void OnUpdate(const istd::IChangeable::ChangeSet &changeSet) override
Called on update of observed model.
virtual void OnComponentDestroyed() override
Manager of parameter sets.
Set of general parameters.
Definition IParamsSet.h:81
Interface allowing to select single option from list of options.
Set of change flags (its IDs).
Definition IChangeable.h:36
Contains interfaces and implementations of flexible parameter concept.