![]() |
Plasma Engine
2.0
|
[internal] An implementation of plTypedEnumProperty that uses custom getter / setter functions to access an enum property. More...
#include <EnumProperty.h>
Public Types | |
using | RealType = typename plTypeTraits<Type>::NonConstReferenceType |
using | GetterFunc = Type (Class::*)() const |
using | SetterFunc = void (Class::*)(Type value) |
Public Member Functions | |
plEnumAccessorProperty (const char *szPropertyName, GetterFunc getter, SetterFunc setter) | |
Constructor. | |
virtual void * | GetPropertyPointer (const void *pInstance) const override |
Returns a pointer to the property data or nullptr. If a valid pointer is returned, that pointer and the information from GetSpecificType() can be used to step deeper into the type (if required). | |
virtual plInt64 | GetValue (const void *pInstance) const override |
Returns the value of the property. Pass the instance pointer to the surrounding class along. | |
virtual void | SetValue (void *pInstance, plInt64 value) const override |
Modifies the value of the property. Pass the instance pointer to the surrounding class along. | |
![]() | |
plTypedEnumProperty (const char *szPropertyName) | |
Passes the property name through to plAbstractEnumerationProperty. | |
virtual const plRTTI * | GetSpecificType () const override |
Returns the actual type of the property. You can then test whether it derives from plEnumBase or plBitflagsBase to determine whether we are dealing with an enum or bitflags property. | |
![]() | |
plAbstractEnumerationProperty (const char *szPropertyName) | |
Passes the property name through to plAbstractMemberProperty. | |
virtual void | GetValuePtr (const void *pInstance, void *pObject) const override |
Writes the value of this property in pInstance to pObject. pObject needs to point to an instance of this property's type. | |
virtual void | SetValuePtr (void *pInstance, const void *pObject) const override |
Sets the value of pObject to the property in pInstance. pObject needs to point to an instance of this property's type. | |
![]() | |
plAbstractMemberProperty (const char *szPropertyName) | |
Passes the property name through to plAbstractProperty. | |
virtual plPropertyCategory::Enum | GetCategory () const override |
Returns plPropertyCategory::Member. | |
![]() | |
plAbstractProperty (const char *szPropertyName) | |
The constructor must get the name of the property. The string must be a compile-time constant. | |
const char * | GetPropertyName () const |
Returns the name of the property. | |
const plBitflags< plPropertyFlags > & | GetFlags () const |
Returns the flags of the property. | |
plAbstractProperty * | AddFlags (plBitflags< plPropertyFlags > flags) |
Adds flags to the property. Returns itself to allow to be called during initialization. | |
plAbstractProperty * | AddAttributes (plPropertyAttribute *pAttrib1, plPropertyAttribute *pAttrib2=nullptr, plPropertyAttribute *pAttrib3=nullptr, plPropertyAttribute *pAttrib4=nullptr, plPropertyAttribute *pAttrib5=nullptr, plPropertyAttribute *pAttrib6=nullptr) |
Adds attributes to the property. Returns itself to allow to be called during initialization. Allocate an attribute using standard 'new'. | |
plArrayPtr< const plPropertyAttribute *const > | GetAttributes () const |
Returns the array of property attributes. | |
template<typename Type > | |
const Type * | GetAttributeByType () const |
Returns the first attribute that derives from the given type, or nullptr if nothing is found. | |
Additional Inherited Members | |
![]() | |
plBitflags< plPropertyFlags > | m_Flags |
const char * | m_szPropertyName |
plHybridArray< const plPropertyAttribute *, 2, plStaticsAllocatorWrapper > | m_Attributes |
[internal] An implementation of plTypedEnumProperty that uses custom getter / setter functions to access an enum property.
|
inlineoverridevirtual |
Returns a pointer to the property data or nullptr. If a valid pointer is returned, that pointer and the information from GetSpecificType() can be used to step deeper into the type (if required).
You need to pass the pointer to an object on which you are operating. This function is mostly of interest when the property itself is a compound type (a struct or class). If it is a simple type (int, float, etc.) it doesn't make much sense to retrieve the pointer.
For example GetSpecificType() might return that a property is of type plVec3. In that case one might either stop and just use the code to handle plVec3 types, or one might continue and enumerate all sub-properties (x, y and z) as well.
Implements plAbstractMemberProperty.
|
inlineoverridevirtual |
Returns the value of the property. Pass the instance pointer to the surrounding class along.
Implements plAbstractEnumerationProperty.
|
inlineoverridevirtual |
Modifies the value of the property. Pass the instance pointer to the surrounding class along.
Implements plAbstractEnumerationProperty.