ImagingTools Core SDK
IItem.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/IChangeable.h>
7#include <istd/TIHierarchical.h>
8
9
10class QByteArray;
11class QString;
12
13
14namespace imtlicgui
15{
16 class IItemChangeHandler;
17}
18
19
20namespace imtlicgui
21{
22
23
24class IItem: virtual public istd::IChangeable
25{
26public:
27 enum Status
28 {
29 S_VALID = 0,
30 S_INVALID
31 };
32
33 virtual QByteArray GetId() const = 0;
34 virtual void SetId(const QByteArray& id) = 0;
35 virtual QString GetName() const = 0;
36 virtual void SetName(const QString& name) = 0;
37 virtual Status GetStatus() const = 0;
38 virtual void GetStatus(Status status) = 0;
39 virtual bool IsActivationEnabled() const = 0;
40 virtual void SetActivationEnabled(bool isActivationEnabled) = 0;
41 virtual bool IsActivated() const = 0;
42 virtual void SetActivated(bool isActivated) = 0;
43 virtual bool IsEnabled() const = 0;
44 virtual void SetEnabled(bool isEnabled) = 0;
45
46 virtual void AddChild(istd::TSmartPtr<istd::TIHierarchical<IItem>> childItemPtr) = 0;
47 virtual IItemChangeHandler* FindItemChangeHandler() const = 0;
48};
49
50
51typedef istd::TIHierarchical<IItem> IItemTree;
52typedef istd::TSmartPtr<IItemTree> ItemTreePtr;
53
54
55} // namespace imtlicgui
56
57