ImagingTools Core SDK
CItem.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/THierarchicalBase.h>
7#include <istd/TSmartPtr.h>
8
9// ImtCore includes
10#include <imtlicgui/IItem.h>
11
12
13namespace imtlicgui
14{
15
16
17class CItem: public istd::THierarchicalBase<IItemTree>
18{
19public:
20 CItem();
21 void SetItemChangeHandler(IItemChangeHandler* itemChangeHandlerPtr);
22
23 // reimplemented (IItem)
24 virtual QByteArray GetId() const override;
25 virtual void SetId(const QByteArray& id) override;
26 virtual QString GetName() const override;
27 virtual void SetName(const QString& name) override;
28 virtual Status GetStatus() const override;
29 virtual void GetStatus(Status status) override;
30 virtual bool IsActivationEnabled() const override;
31 virtual void SetActivationEnabled(bool isActivationEnabled) override;
32 virtual bool IsActivated() const override;
33 virtual void SetActivated(bool isActivated) override;
34 virtual bool IsEnabled() const override;
35 virtual void SetEnabled(bool isEnabled) override;
36 virtual void AddChild(ItemTreePtr childItemPtr) override;
37 virtual IItemChangeHandler* FindItemChangeHandler() const override;
38
39 // reimplemented (IItemTree)
40 virtual int GetChildsCount() const override;
41 virtual IItemTree* GetChild(int index) const override;
42
43 // reimplemented (istd::IChangeable)
44 virtual int GetSupportedOperations() const override;
45 virtual bool CopyFrom(const istd::IChangeable& object, CompatibilityMode mode = CM_WITHOUT_REFS) override;
46 virtual bool IsEqual(const istd::IChangeable& object) const override;
47 virtual istd::IChangeableUniquePtr CloneMe(CompatibilityMode mode = CM_WITHOUT_REFS) const override;
48 virtual bool ResetData(CompatibilityMode mode = CM_WITHOUT_REFS) override;
49
50private:
51 QByteArray m_id;
52 QString m_name;
53 Status m_status;
54 bool m_isActivationEnabled;
55 bool m_isActivated;
56 bool m_isEnabled;
57
58 QList<ItemTreePtr> m_childs;
59 IItemChangeHandler* m_itemChangeHandlerPtr;
60};
61
62
63} // namespace imtlicgui
64
65