ImagingTools Core SDK
IOrderedObjectCollection.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/TInterfacePtr.h>
7#include <iser/ISerializable.h>
8
9// ImtCore includes
10#include <imtbase/IObjectCollection.h>
11
12
13namespace imtbase
14{
15
16
22class IOrderedObjectCollection: virtual public IObjectCollection, virtual public iser::ISerializable
23{
24public:
31 virtual bool SetItemOrder(const Id& itemId, int position) = 0;
32
38 virtual int GetItemOrder(const Id& itemId) const = 0;
39
45 virtual bool SetItemsOrder(const Ids& orderedIds) = 0;
46
52 virtual Ids GetOrderedItemIds() const = 0;
53
58 virtual bool ResetItemOrder() = 0;
59};
60
61
62typedef istd::TUniqueInterfacePtr<IOrderedObjectCollection> IOrderedObjectCollectionUniquePtr;
63typedef istd::TSharedInterfacePtr<IOrderedObjectCollection> IOrderedObjectCollectionSharedPtr;
64
65
66} // namespace imtbase
virtual bool SetItemsOrder(const Ids &orderedIds)=0
virtual Ids GetOrderedItemIds() const =0
virtual int GetItemOrder(const Id &itemId) const =0
virtual bool SetItemOrder(const Id &itemId, int position)=0