xmake.repo/packages/n/noesis/latest/Include/NsGui/ObservableCollection.inl
2024-12-22 19:15:02 +08:00

68 lines
2.2 KiB
C++

////////////////////////////////////////////////////////////////////////////////////////////////////
// NoesisGUI - http://www.noesisengine.com
// Copyright (c) 2013 Noesis Technologies S.L. All Rights Reserved.
////////////////////////////////////////////////////////////////////////////////////////////////////
namespace Noesis
{
////////////////////////////////////////////////////////////////////////////////////////////////////
template<class T>
T* ObservableCollection<T>::Get(uint32_t index) const
{
return (T*)BaseCollection::GetComponent(index).GetPtr();
}
////////////////////////////////////////////////////////////////////////////////////////////////////
template<class T>
void ObservableCollection<T>::Set(uint32_t index, T* item)
{
BaseCollection::Set(index, item);
}
////////////////////////////////////////////////////////////////////////////////////////////////////
template<class T>
int ObservableCollection<T>::Add(T* item)
{
return BaseCollection::Add(item);
}
////////////////////////////////////////////////////////////////////////////////////////////////////
template<class T>
void ObservableCollection<T>::Insert(uint32_t index, T* item)
{
BaseCollection::Insert(index, item);
}
////////////////////////////////////////////////////////////////////////////////////////////////////
template<class T>
bool ObservableCollection<T>::Contains(const T* item) const
{
return BaseCollection::IndexOfComponent(item) >= 0;
}
////////////////////////////////////////////////////////////////////////////////////////////////////
template<class T>
int ObservableCollection<T>::IndexOf(const T* item) const
{
return BaseCollection::IndexOfComponent(item);
}
////////////////////////////////////////////////////////////////////////////////////////////////////
template<class T>
bool ObservableCollection<T>::Remove(const T* item)
{
return BaseCollection::Remove(item);
}
////////////////////////////////////////////////////////////////////////////////////////////////////
template<class T>
const TypeClass* ObservableCollection<T>::GetItemType() const
{
static_assert(IsDerived<T, BaseComponent>::Result, "T must inherit from BaseComponent");
return TypeOf<T>();
}
}