![]() |
ezEngine Release 26.3
|
Implementation of ezTypedMemberProperty that uses custom getter/setter functions to access a property. More...
#include <MemberProperty.h>

Public Types | |
| using | RealType = typename ezTypeTraits< Type >::NonConstReferenceType |
| using | GetterFunc = Type(Class::*)() const |
| using | SetterFunc = void(Class::*)(Type value) |
Public Member Functions | |
| ezAccessorProperty (const char *szPropertyName, GetterFunc getter, SetterFunc setter) | |
| Constructor. | |
| virtual void * | GetPropertyPointer (const void *pInstance) const override |
| Always returns nullptr; once a property is modified through accessors, there is no point in giving more direct access to others. | |
| virtual RealType | 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, RealType value) const override |
| Modifies the value of the property. Pass the instance pointer to the surrounding class along. | |
Public Member Functions inherited from ezTypedMemberProperty< ezTypeTraits< Type >::NonConstReferenceType > | |
| ezTypedMemberProperty (const char *szPropertyName) | |
| Passes the property name through to ezAbstractMemberProperty. | |
| virtual const ezRTTI * | GetSpecificType () const override |
| Returns the actual type of the property. You can then compare that with known types, eg. compare it to ezGetStaticRTTI<int>() to see whether this is an int property. | |
| virtual void | SetValue (void *pInstance, ezTypeTraits< Type >::NonConstReferenceType value) const=0 |
| Modifies the value of the property. Pass the instance pointer to the surrounding class along. | |
| 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. | |
Public Member Functions inherited from ezAbstractMemberProperty | |
| ezAbstractMemberProperty (const char *szPropertyName) | |
| Passes the property name through to ezAbstractProperty. | |
| virtual ezPropertyCategory::Enum | GetCategory () const override |
| Returns ezPropertyCategory::Member. | |
Public Member Functions inherited from ezAbstractProperty | |
| ezAbstractProperty (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 ezBitflags< ezPropertyFlags > & | GetFlags () const |
| Returns the flags of the property. | |
| ezAbstractProperty * | AddFlags (ezBitflags< ezPropertyFlags > flags) |
| Adds flags to the property. Returns itself to allow to be called during initialization. | |
| ezAbstractProperty * | AddAttributes (ezPropertyAttribute *pAttrib1, ezPropertyAttribute *pAttrib2=nullptr, ezPropertyAttribute *pAttrib3=nullptr, ezPropertyAttribute *pAttrib4=nullptr, ezPropertyAttribute *pAttrib5=nullptr, ezPropertyAttribute *pAttrib6=nullptr) |
| Adds attributes to the property. Returns itself to allow to be called during initialization. Allocate an attribute using standard 'new'. | |
| ezArrayPtr< const ezPropertyAttribute *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 | |
Protected Attributes inherited from ezAbstractProperty | |
| ezBitflags< ezPropertyFlags > | m_Flags |
| const char * | m_szPropertyName |
| ezHybridArray< const ezPropertyAttribute *, 2, ezStaticsAllocatorWrapper > | m_Attributes |
Implementation of ezTypedMemberProperty that uses custom getter/setter functions to access a property.
This property type is used when you want to expose computed or transformed values as properties, or when you need to perform validation, logging, or side effects during property access. The actual data may be stored differently than how it's exposed through the property interface.
Use this when:
|
inlineoverridevirtual |
Always returns nullptr; once a property is modified through accessors, there is no point in giving more direct access to others.
Implements ezAbstractMemberProperty.
|
inlineoverridevirtual |
Returns the value of the property. Pass the instance pointer to the surrounding class along.
Implements ezTypedMemberProperty< ezTypeTraits< Type >::NonConstReferenceType >.
|
inlineoverridevirtual |
Modifies the value of the property. Pass the instance pointer to the surrounding class along.