OpenWalnut
1.5.0dev
|
Abstract base class for all properties. More...
#include <WPropertyBase.h>
Public Types | |
typedef std::shared_ptr< WPropertyBase > | SPtr |
Convenience typedef for a std::shared_ptr< WPropertyBase > More... | |
typedef std::shared_ptr< const WPropertyBase > | ConstSPtr |
Convenience typedef for a std::shared_ptr< const WPropertyBase > More... | |
typedef boost::function< void(std::shared_ptr< WPropertyBase >)> | PropertyChangeNotifierType |
Signal signature emitted during set operations. More... | |
Public Member Functions | |
WPropertyBase (std::string name, std::string description) | |
Create an empty named property. More... | |
WPropertyBase (const WPropertyBase &from) | |
Copy constructor. More... | |
virtual | ~WPropertyBase () |
Destructor. More... | |
virtual std::shared_ptr< WPropertyBase > | clone ()=0 |
This method clones a property and returns the clone. More... | |
std::string | getName () const |
Gets the name of the class. More... | |
std::string | getDescription () const |
Gets the description of the property. More... | |
bool | isHidden () const |
Determines whether the property is hidden or not. More... | |
void | setHidden (bool hidden=true) |
Sets the property hidden. More... | |
virtual PROPERTY_TYPE | getType () const |
Gets the real WPropertyVariable type of this instance. More... | |
virtual PROPERTY_PURPOSE | getPurpose () const |
Gets the purpose of a property. More... | |
virtual void | setPurpose (PROPERTY_PURPOSE purpose) |
Sets the purpose of the property. More... | |
virtual bool | setAsString (std::string value)=0 |
This methods allows properties to be set by a string value. More... | |
virtual std::string | getAsString ()=0 |
Returns the current value as a string. More... | |
template<typename T > | |
bool | set (const T &value) |
Shortcut to set a property with a given value. More... | |
virtual std::shared_ptr< WCondition > | getUpdateCondition () const |
This method returns a condition which gets fired whenever the property changes somehow. More... | |
virtual bool | set (std::shared_ptr< WPropertyBase > value, bool recommendedOnly=false)=0 |
Sets the value from the specified property to this one. More... | |
WPropInt | toPropInt () |
Helper converts this instance to its native type. More... | |
WPropDouble | toPropDouble () |
Helper converts this instance to its native type. More... | |
WPropBool | toPropBool () |
Helper converts this instance to its native type. More... | |
WPropString | toPropString () |
Helper converts this instance to its native type. More... | |
WPropFilename | toPropFilename () |
Helper converts this instance to its native type. More... | |
WPropSelection | toPropSelection () |
Helper converts this instance to its native type. More... | |
WPropColor | toPropColor () |
Helper converts this instance to its native type. More... | |
WPropPosition | toPropPosition () |
Helper converts this instance to its native type. More... | |
WPropTrigger | toPropTrigger () |
Helper converts this instance to its native type. More... | |
WPropMatrix4X4 | toPropMatrix4X4 () |
Helper converts this instance to its native type. More... | |
WPropTransferFunction | toPropTransferFunction () |
Helper converts this instance to its native type. More... | |
WPropGroup | toPropGroup () |
Helper converts this instance to its native type. More... | |
WPropInterval | toPropInterval () |
Helper converts this instance to its native type. More... | |
std::shared_ptr< WPropertyGroupBase > | toPropGroupBase () |
Convert the property to a WPropertyGroupBase. More... | |
template<typename T > | |
std::shared_ptr< WPropertyVariable< T > > | toPropertyVariable () |
Helper converts this instance to an arbitrary type. More... | |
Protected Types | |
typedef boost::signals2::signal< void(std::shared_ptr< WPropertyBase >)> | PropertyChangeSignalType |
Signal used for firing change signals. More... | |
Protected Member Functions | |
virtual void | updateType () |
Calculates the type of the property. More... | |
Protected Attributes | |
std::string | m_name |
Name of the property. More... | |
std::string | m_description |
Description of the property. More... | |
bool | m_hidden |
Flag denoting whether the property is hidden or not. More... | |
PROPERTY_TYPE | m_type |
Type of the PropertyVariable instance. More... | |
PROPERTY_PURPOSE | m_purpose |
The purpose of this property. More... | |
PropertyChangeSignalType | signal_PropertyChange |
Signal getting fired whenever the property changes. More... | |
std::shared_ptr< WConditionSet > | m_updateCondition |
Condition notified whenever something changes. More... | |
Abstract base class for all properties.
Simply provides name and type information.
Definition at line 47 of file WPropertyBase.h.
typedef std::shared_ptr< const WPropertyBase > WPropertyBase::ConstSPtr |
Convenience typedef for a std::shared_ptr< const WPropertyBase >
Definition at line 58 of file WPropertyBase.h.
typedef boost::function<void ( std::shared_ptr< WPropertyBase > )> WPropertyBase::PropertyChangeNotifierType |
Signal signature emitted during set operations.
Definition at line 318 of file WPropertyBase.h.
|
protected |
Signal used for firing change signals.
Definition at line 354 of file WPropertyBase.h.
typedef std::shared_ptr< WPropertyBase > WPropertyBase::SPtr |
Convenience typedef for a std::shared_ptr< WPropertyBase >
Definition at line 53 of file WPropertyBase.h.
WPropertyBase::WPropertyBase | ( | std::string | name, |
std::string | description | ||
) |
Create an empty named property.
name | the name of the property |
description | the description of the property |
Definition at line 38 of file WPropertyBase.cpp.
References m_name.
|
explicit |
Copy constructor.
Creates a deep copy of this property. As boost::signals2 and condition variables are non-copyable, new instances get created. The subscriptions to a signal are LOST as well as all listeners to a condition.
from | the instance to copy. |
Definition at line 55 of file WPropertyBase.cpp.
|
virtual |
Destructor.
Definition at line 67 of file WPropertyBase.cpp.
|
pure virtual |
This method clones a property and returns the clone.
It does a deep copy and, in contrast to a copy constructor, creates property with the correct type without explicitly requiring the user to specify it. It creates a NEW change condition and change signal. This means, alls subscribed signal handlers are NOT copied.
Implemented in WPropertyVariable< T >, WPropertyStruct< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >, WPropertyList< T >, and WPropertyGroup.
|
pure virtual |
Returns the current value as a string.
This is useful for debugging or project files. It is not implemented as << operator, since the << should also print min/max constraints and so on. This simply is the value.
Implemented in WPropertyVariable< T >, WPropertyStruct< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >, WPropertyList< T >, and WPropertyGroup.
std::string WPropertyBase::getDescription | ( | ) | const |
Gets the description of the property.
Definition at line 77 of file WPropertyBase.cpp.
References m_description.
std::string WPropertyBase::getName | ( | ) | const |
Gets the name of the class.
Definition at line 72 of file WPropertyBase.cpp.
References m_name.
Referenced by WPropertyGroupBase::addArbitraryProperty().
|
virtual |
Gets the purpose of a property.
See PROPERTY_PURPOSE for more details. For short: it helps the GUI and others to understand what a module (or whomever created this property) intents with this property. Typically this value is PV_PURPOSE_PARAMETER, meaning that it is used to tune the behaviour of a module.
Definition at line 87 of file WPropertyBase.cpp.
References m_purpose.
Referenced by WPropertyGroupBase::addArbitraryProperty().
|
virtual |
Gets the real WPropertyVariable type of this instance.
Reimplemented in WPropertyStruct< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >, WPropertyList< T >, and WPropertyGroup.
Definition at line 82 of file WPropertyBase.cpp.
References m_type.
|
virtual |
This method returns a condition which gets fired whenever the property changes somehow.
It is fired when:
Definition at line 181 of file WPropertyBase.cpp.
References m_updateCondition.
bool WPropertyBase::isHidden | ( | ) | const |
Determines whether the property is hidden or not.
Definition at line 102 of file WPropertyBase.cpp.
References m_hidden.
bool WPropertyBase::set | ( | const T & | value | ) |
Shortcut to set a property with a given value.
This basically is a shortcut to setAsString with the value being cast to string.
T | type of the input value |
value | the value to set |
Definition at line 377 of file WPropertyBase.h.
References setAsString(), and string_utils::toString().
|
pure virtual |
Sets the value from the specified property to this one.
This is especially useful to copy a value without explicitly casting/knowing the dynamic type of the property.
value | the new value. |
recommendedOnly | if true, property types which support recommended values apply the given value as recommendation. |
Implemented in WPropertyVariable< T >, WPropertyStruct< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >, and WPropertyGroup.
|
pure virtual |
This methods allows properties to be set by a string value.
This is especially useful when a property is only available as string and the real type of the property is unknown. This is a shortcut for casting the property and then setting the lexically casted value.
value | the new value to set. |
Implemented in WPropertyVariable< T >, WPropertyStruct< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >, WPropertyList< T >, and WPropertyGroup.
Referenced by set().
void WPropertyBase::setHidden | ( | bool | hidden = true | ) |
Sets the property hidden.
This flag is especially used by the GUI.
hidden | true if it should be hidden. |
Definition at line 107 of file WPropertyBase.cpp.
References m_hidden, and m_updateCondition.
|
virtual |
Sets the purpose of the property.
See getPurpose for more details. You generally should avoid setting this value after initialization.
purpose | the purpose to set. |
Definition at line 92 of file WPropertyBase.cpp.
References m_purpose.
WPropBool WPropertyBase::toPropBool | ( | ) |
Helper converts this instance to its native type.
Definition at line 126 of file WPropertyBase.cpp.
WPropColor WPropertyBase::toPropColor | ( | ) |
Helper converts this instance to its native type.
Definition at line 146 of file WPropertyBase.cpp.
WPropDouble WPropertyBase::toPropDouble | ( | ) |
Helper converts this instance to its native type.
Definition at line 121 of file WPropertyBase.cpp.
std::shared_ptr< WPropertyVariable< T > > WPropertyBase::toPropertyVariable |
Helper converts this instance to an arbitrary type.
Definition at line 371 of file WPropertyBase.h.
WPropFilename WPropertyBase::toPropFilename | ( | ) |
Helper converts this instance to its native type.
Definition at line 136 of file WPropertyBase.cpp.
WPropGroup WPropertyBase::toPropGroup | ( | ) |
Helper converts this instance to its native type.
Definition at line 156 of file WPropertyBase.cpp.
WPropertyGroupBase::SPtr WPropertyBase::toPropGroupBase | ( | ) |
Convert the property to a WPropertyGroupBase.
This can be done with property structs and groups-
Definition at line 161 of file WPropertyBase.cpp.
Referenced by WPropertyGroupBase::findProperty().
WPropInt WPropertyBase::toPropInt | ( | ) |
Helper converts this instance to its native type.
Definition at line 116 of file WPropertyBase.cpp.
WPropInterval WPropertyBase::toPropInterval | ( | ) |
Helper converts this instance to its native type.
Definition at line 186 of file WPropertyBase.cpp.
WPropMatrix4X4 WPropertyBase::toPropMatrix4X4 | ( | ) |
Helper converts this instance to its native type.
Definition at line 166 of file WPropertyBase.cpp.
WPropPosition WPropertyBase::toPropPosition | ( | ) |
Helper converts this instance to its native type.
Definition at line 151 of file WPropertyBase.cpp.
WPropSelection WPropertyBase::toPropSelection | ( | ) |
Helper converts this instance to its native type.
Definition at line 141 of file WPropertyBase.cpp.
WPropString WPropertyBase::toPropString | ( | ) |
Helper converts this instance to its native type.
Definition at line 131 of file WPropertyBase.cpp.
WPropTransferFunction WPropertyBase::toPropTransferFunction | ( | ) |
Helper converts this instance to its native type.
Definition at line 176 of file WPropertyBase.cpp.
WPropTrigger WPropertyBase::toPropTrigger | ( | ) |
Helper converts this instance to its native type.
Definition at line 171 of file WPropertyBase.cpp.
|
protectedvirtual |
Calculates the type of the property.
This has to be done by the implementing class.
Reimplemented in WPropertyVariable< T >.
Definition at line 97 of file WPropertyBase.cpp.
References m_type.
|
protected |
Description of the property.
Definition at line 329 of file WPropertyBase.h.
Referenced by getDescription().
|
protected |
Flag denoting whether the property is hidden or not.
Definition at line 334 of file WPropertyBase.h.
Referenced by isHidden(), and setHidden().
|
protected |
Name of the property.
Definition at line 324 of file WPropertyBase.h.
Referenced by getName(), and WPropertyBase().
|
protected |
The purpose of this property.
PropertyBase always initializes it with PV_PURPOSE_PARAMETER.
Definition at line 344 of file WPropertyBase.h.
Referenced by getPurpose(), and setPurpose().
|
protected |
Type of the PropertyVariable instance.
Definition at line 339 of file WPropertyBase.h.
Referenced by getType(), and updateType().
|
protected |
Condition notified whenever something changes.
See getUpdateCondition for more details.
Definition at line 365 of file WPropertyBase.h.
Referenced by WPropertyGroupBase::addArbitraryProperty(), getUpdateCondition(), WPropertyGroup::removeProperty(), setHidden(), WPropertyGroupBase::WPropertyGroupBase(), and WPropertyVariable< T >::WPropertyVariable().
|
protected |
Signal getting fired whenever the property changes.
Definition at line 359 of file WPropertyBase.h.
Referenced by WPropertyVariable< T >::WPropertyVariable().