Plasma Engine  2.0
Loading...
Searching...
No Matches
ObjectProxyAccessor.h
1#pragma once
2
3#include <ToolsFoundation/Object/ObjectAccessorBase.h>
4
6
7class PL_TOOLSFOUNDATION_DLL plObjectProxyAccessor : public plObjectAccessorBase
8{
9public:
11 virtual ~plObjectProxyAccessor();
12
15
16 virtual void StartTransaction(plStringView sDisplayString) override;
17 virtual void CancelTransaction() override;
18 virtual void FinishTransaction() override;
19 virtual void BeginTemporaryCommands(plStringView sDisplayString, bool bFireEventsWhenUndoingTempCommands = false) override;
20 virtual void CancelTemporaryCommands() override;
21 virtual void FinishTemporaryCommands() override;
22
26
27 virtual const plDocumentObject* GetObject(const plUuid& object) override;
28 virtual plStatus GetValue(
29 const plDocumentObject* pObject, const plAbstractProperty* pProp, plVariant& out_value, plVariant index = plVariant()) override;
30 virtual plStatus SetValue(
31 const plDocumentObject* pObject, const plAbstractProperty* pProp, const plVariant& newValue, plVariant index = plVariant()) override;
32 virtual plStatus InsertValue(
33 const plDocumentObject* pObject, const plAbstractProperty* pProp, const plVariant& newValue, plVariant index = plVariant()) override;
34 virtual plStatus RemoveValue(const plDocumentObject* pObject, const plAbstractProperty* pProp, plVariant index = plVariant()) override;
35 virtual plStatus MoveValue(
36 const plDocumentObject* pObject, const plAbstractProperty* pProp, const plVariant& oldIndex, const plVariant& newIndex) override;
37 virtual plStatus GetCount(const plDocumentObject* pObject, const plAbstractProperty* pProp, plInt32& out_iCount) override;
38
39 virtual plStatus AddObject(const plDocumentObject* pParent, const plAbstractProperty* pParentProp, const plVariant& index, const plRTTI* pType,
40 plUuid& inout_objectGuid) override;
41 virtual plStatus RemoveObject(const plDocumentObject* pObject) override;
42 virtual plStatus MoveObject(
43 const plDocumentObject* pObject, const plDocumentObject* pNewParent, const plAbstractProperty* pParentProp, const plVariant& index) override;
44
45 virtual plStatus GetKeys(const plDocumentObject* pObject, const plAbstractProperty* pProp, plDynamicArray<plVariant>& out_keys) override;
46 virtual plStatus GetValues(const plDocumentObject* pObject, const plAbstractProperty* pProp, plDynamicArray<plVariant>& out_values) override;
47
49
50protected:
51 plObjectAccessorBase* m_pSource = nullptr;
52};
This is the base interface for all properties in the reflection system. It provides enough informatio...
Definition AbstractProperty.h:150
Definition DocumentObjectBase.h:11
Definition DynamicArray.h:81
Definition ObjectAccessorBase.h:8
Definition ObjectProxyAccessor.h:8
This class holds information about reflected types. Each instance represents one type that is known t...
Definition RTTI.h:30
plStringView represent a read-only sub-string of a larger string, as it can store a dedicated string ...
Definition StringView.h:34
This data type is the abstraction for 128-bit Uuid (also known as GUID) instances.
Definition Uuid.h:11
plVariant is a class that can store different types of variables, which is useful in situations where...
Definition Variant.h:44
An plResult with an additional message for the reason of failure.
Definition Status.h:12