ACF $AcfVersion:0$
CSelectableSceneExtenderComp.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
5// ACF includes
10
11
12namespace iqt2d
13{
14
15
18 public imod::TSingleModelObserverBase<iprm::ISelectionParam>,
19 virtual public iqt2d::IViewExtender
20{
21public:
24
26
27 I_BEGIN_COMPONENT(CSelectableSceneExtenderComp);
28 I_REGISTER_INTERFACE(iqt2d::IViewExtender);
29 I_REGISTER_INTERFACE(imod::IObserver);
30 I_ASSIGN_MULTI_0(m_extendersCompPtr, "SceneExtenders", "List of scene extenders", true);
31 I_END_COMPONENT;
32
33 // reimplemented (imod::IObserver)
34 virtual bool OnModelAttached(imod::IModel* modelPtr, istd::IChangeable::ChangeSet& changeMask) override;
35 virtual bool OnModelDetached(imod::IModel* modelPtr) override;
36
37 // reimplemented (iqt2d::IViewExtender)
38 virtual void AddItemsToScene(iqt2d::IViewProvider* providerPtr, int flags) override;
39 virtual void RemoveItemsFromScene(iqt2d::IViewProvider* providerPtr) override;
40
41protected:
44
45 // reimplemented (imod::CSingleModelObserverBase)
46 virtual void AfterUpdate(imod::IModel* modelPtr, const istd::IChangeable::ChangeSet& changeSet) override;
47
48private:
49 I_MULTIREF(iqt2d::IViewExtender, m_extendersCompPtr);
50
51 typedef QMap<iqt2d::IViewProvider*, int> ConnectedSceneFlags; // maps connected scene provider to connection flags
52 ConnectedSceneFlags m_connectedSceneFlags;
53
54 int m_currentSelectedIndex;
55};
56
57
58} // namespace iqt2d
59
60
Base class for component implementation.
Common interface for model objects, that supports Model/Observer design pattern.
Definition IModel.h:25
Common interface for all classes implementing the Observer functionality in the Model/Observer design...
Definition IObserver.h:156
Basic implementation for a single model observer with binding to concrete data object interface.
virtual bool OnModelDetached(imod::IModel *modelPtr) override
Callback invoked when an observable model is about to be detached from this observer.
virtual bool OnModelAttached(imod::IModel *modelPtr, istd::IChangeable::ChangeSet &changeMask) override
Callback invoked when an observable model is about to be attached to this observer.
virtual void AfterUpdate(imod::IModel *modelPtr, const istd::IChangeable::ChangeSet &changeSet) override
Callback invoked after an update of the observer's content occurs.
virtual void RemoveItemsFromScene(iqt2d::IViewProvider *providerPtr) override
Called when items should be removed from specified scene.
virtual void AddItemsToScene(iqt2d::IViewProvider *providerPtr, int flags) override
Called when items should be added to specified scene.
imod::TSingleModelObserverBase< iprm::ISelectionParam > BaseClass2
Interface for GUI objects presenting its results using extern view objects.
Interface for GUI objects managing view.
Set of change flags (its IDs).
Definition IChangeable.h:36
This package contains Qt based implementations for 2D graphic objects.