KiCad PCB EDA Suite
Loading...
Searching...
No Matches
PROPERTY< Owner, T, Base > Class Template Reference

#include <property.h>

Inheritance diagram for PROPERTY< Owner, T, Base >:
PROPERTY_BASE

Public Types

using BASE_TYPE = typename std::decay<T>::type
 

Public Member Functions

template<typename SetType, typename GetType>
 PROPERTY (const wxString &aName, void(Base::*aSetter)(SetType), GetType(Base::*aGetter)(), PROPERTY_DISPLAY aDisplay=PT_DEFAULT, ORIGIN_TRANSFORMS::COORD_TYPES_T aCoordType=ORIGIN_TRANSFORMS::NOT_A_COORD)
 
template<typename SetType, typename GetType>
 PROPERTY (const wxString &aName, void(Base::*aSetter)(SetType), GetType(Base::*aGetter)() const, PROPERTY_DISPLAY aDisplay=PT_DEFAULT, ORIGIN_TRANSFORMS::COORD_TYPES_T aCoordType=ORIGIN_TRANSFORMS::NOT_A_COORD)
 
size_t OwnerHash () const override
 Return type-id of the Owner class.
 
size_t BaseHash () const override
 Return type-id of the Base class.
 
size_t TypeHash () const override
 Return type-id of the property type.
 
bool Writeable (INSPECTABLE *aObject) const override
 
const wxString & Name () const
 
virtual const wxPGChoices & Choices () const
 Return a limited set of possible values (e.g.
 
virtual void SetChoices (const wxPGChoices &aChoices)
 Set the possible values for for the property.
 
virtual bool HasChoices () const
 Return true if this PROPERTY has a limited set of possible values.
 
bool Available (INSPECTABLE *aObject) const
 Return true if aObject offers this PROPERTY.
 
PROPERTY_BASESetAvailableFunc (std::function< bool(INSPECTABLE *)> aFunc)
 Set a callback function to determine whether an object provides this property.
 
wxPGChoices GetChoices (INSPECTABLE *aObject) const
 
PROPERTY_BASESetChoicesFunc (std::function< wxPGChoices(INSPECTABLE *)> aFunc)
 
PROPERTY_BASESetWriteableFunc (std::function< bool(INSPECTABLE *)> aFunc)
 
PROPERTY_DISPLAY Display () const
 
PROPERTY_BASESetDisplay (PROPERTY_DISPLAY aDisplay)
 
ORIGIN_TRANSFORMS::COORD_TYPES_T CoordType () const
 
PROPERTY_BASESetCoordType (ORIGIN_TRANSFORMS::COORD_TYPES_T aType)
 
bool IsHiddenFromPropertiesManager () const
 
PROPERTY_BASESetIsHiddenFromPropertiesManager (bool aHide=true)
 
bool IsHiddenFromRulesEditor () const
 
PROPERTY_BASESetIsHiddenFromRulesEditor (bool aHide=true)
 
bool IsHiddenFromLibraryEditors () const
 
PROPERTY_BASESetIsHiddenFromLibraryEditors (bool aIsHidden=true)
 
bool IsHiddenFromDesignEditors () const
 
PROPERTY_BASESetIsHiddenFromDesignEditors (bool aIsHidden=true)
 
wxString Group () const
 
PROPERTY_BASESetGroup (const wxString &aGroup)
 
PROPERTY_BASESetValidator (PROPERTY_VALIDATOR_FN &&aValidator)
 
VALIDATOR_RESULT Validate (const wxAny &&aValue, EDA_ITEM *aItem)
 

Static Public Member Functions

static VALIDATOR_RESULT NullValidator (const wxAny &&aValue, EDA_ITEM *aItem)
 

Protected Member Functions

 PROPERTY (const wxString &aName, SETTER_BASE< Owner, T > *s, GETTER_BASE< Owner, T > *g, PROPERTY_DISPLAY aDisplay, ORIGIN_TRANSFORMS::COORD_TYPES_T aCoordType)
 
virtual ~PROPERTY ()
 
virtual void setter (void *obj, wxAny &v) override
 
virtual wxAny getter (const void *obj) const override
 Set method.
 
template<typename T>
void set (void *aObject, T aValue)
 
template<typename T>
T get (const void *aObject) const
 

Protected Attributes

std::unique_ptr< SETTER_BASE< Owner, T > > m_setter
 Get method.
 
std::unique_ptr< GETTER_BASE< Owner, T > > m_getter
 Owner class type-id.
 
const size_t m_ownerHash
 Base class type-id.
 
const size_t m_baseHash
 Property value type-id.
 
const size_t m_typeHash
 

Private Attributes

const wxString m_name
 Permanent identifier for this property.
 
PROPERTY_DISPLAY m_display
 The display style controls how properties are edited in the properties manager GUI.
 
ORIGIN_TRANSFORMS::COORD_TYPES_T m_coordType
 The coordinate type controls how distances are mapped to the user coordinate system.
 
bool m_hideFromPropertiesManager
 
bool m_hideFromLibraryEditors
 
bool m_hideFromDesignEditors
 
bool m_hideFromRulesEditor
 
wxString m_group
 Optional group identifier.
 
std::function< bool(INSPECTABLE *)> m_availFunc
 Eval to determine if prop is available.
 
std::function< bool(INSPECTABLE *)> m_writeableFunc
 Eval to determine if prop is read-only.
 
std::function< wxPGChoices(INSPECTABLE *)> m_choicesFunc
 
PROPERTY_VALIDATOR_FN m_validator
 

Detailed Description

template<typename Owner, typename T, typename Base = Owner>
class PROPERTY< Owner, T, Base >

Definition at line 461 of file property.h.

Member Typedef Documentation

◆ BASE_TYPE

template<typename Owner, typename T, typename Base = Owner>
using PROPERTY< Owner, T, Base >::BASE_TYPE = typename std::decay<T>::type

Definition at line 464 of file property.h.

Constructor & Destructor Documentation

◆ PROPERTY() [1/3]

template<typename Owner, typename T, typename Base = Owner>
template<typename SetType, typename GetType>
PROPERTY< Owner, T, Base >::PROPERTY ( const wxString & aName,
void(Base::* aSetter )(SetType),
GetType(Base::* aGetter )(),
PROPERTY_DISPLAY aDisplay = PT_DEFAULT,
ORIGIN_TRANSFORMS::COORD_TYPES_T aCoordType = ORIGIN_TRANSFORMS::NOT_A_COORD )
inline

Definition at line 467 of file property.h.

References ORIGIN_TRANSFORMS::NOT_A_COORD, PROPERTY(), PT_DEFAULT, and T.

Referenced by PROPERTY(), and PROPERTY().

◆ PROPERTY() [2/3]

template<typename Owner, typename T, typename Base = Owner>
template<typename SetType, typename GetType>
PROPERTY< Owner, T, Base >::PROPERTY ( const wxString & aName,
void(Base::* aSetter )(SetType),
GetType(Base::* aGetter )() const,
PROPERTY_DISPLAY aDisplay = PT_DEFAULT,
ORIGIN_TRANSFORMS::COORD_TYPES_T aCoordType = ORIGIN_TRANSFORMS::NOT_A_COORD )
inline

Definition at line 480 of file property.h.

References ORIGIN_TRANSFORMS::NOT_A_COORD, PROPERTY(), PT_DEFAULT, and T.

◆ PROPERTY() [3/3]

template<typename Owner, typename T, typename Base = Owner>
PROPERTY< Owner, T, Base >::PROPERTY ( const wxString & aName,
SETTER_BASE< Owner, T > * s,
GETTER_BASE< Owner, T > * g,
PROPERTY_DISPLAY aDisplay,
ORIGIN_TRANSFORMS::COORD_TYPES_T aCoordType )
inlineprotected

◆ ~PROPERTY()

template<typename Owner, typename T, typename Base = Owner>
virtual PROPERTY< Owner, T, Base >::~PROPERTY ( )
inlineprotectedvirtual

Definition at line 526 of file property.h.

Member Function Documentation

◆ Available()

bool PROPERTY_BASE::Available ( INSPECTABLE * aObject) const
inlineinherited

Return true if aObject offers this PROPERTY.

Definition at line 251 of file property.h.

References INSPECTABLE, and m_availFunc.

Referenced by BOOST_AUTO_TEST_CASE(), and PROPERTY_MANAGER::IsAvailableFor().

◆ BaseHash()

template<typename Owner, typename T, typename Base = Owner>
size_t PROPERTY< Owner, T, Base >::BaseHash ( ) const
inlineoverridevirtual

Return type-id of the Base class.

Implements PROPERTY_BASE.

Definition at line 497 of file property.h.

References m_baseHash.

◆ Choices()

virtual const wxPGChoices & PROPERTY_BASE::Choices ( ) const
inlinevirtualinherited

Return a limited set of possible values (e.g.

enum). Check with HasChoices() if a particular PROPERTY provides such set.

Reimplemented in PROPERTY_ENUM< Owner, T, Base >.

Definition at line 225 of file property.h.

References empty().

Referenced by BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), PCB_PROPERTIES_PANEL::createPGProperty(), and PGPropertyFactory().

◆ CoordType()

ORIGIN_TRANSFORMS::COORD_TYPES_T PROPERTY_BASE::CoordType ( ) const
inlineinherited

Definition at line 308 of file property.h.

References m_coordType.

Referenced by PGPropertyFactory().

◆ Display()

PROPERTY_DISPLAY PROPERTY_BASE::Display ( ) const
inlineinherited

Definition at line 305 of file property.h.

References m_display.

Referenced by PGPropertyFactory().

◆ get()

template<typename T>
T PROPERTY_BASE::get ( const void * aObject) const
inlineprotectedinherited

Definition at line 406 of file property.h.

References getter(), and T.

Referenced by INSPECTABLE::Get(), and INSPECTABLE::Get().

◆ GetChoices()

wxPGChoices PROPERTY_BASE::GetChoices ( INSPECTABLE * aObject) const
inlineinherited

Definition at line 265 of file property.h.

References INSPECTABLE, and m_choicesFunc.

Referenced by PROPERTIES_PANEL::extractValueAndWritability(), and INSPECTABLE::Set().

◆ getter()

template<typename Owner, typename T, typename Base = Owner>
virtual wxAny PROPERTY< Owner, T, Base >::getter ( const void * obj) const
inlineoverrideprotectedvirtual

Set method.

Implements PROPERTY_BASE.

Reimplemented in PROPERTY_ENUM< Owner, T, Base >.

Definition at line 541 of file property.h.

References res.

◆ Group()

wxString PROPERTY_BASE::Group ( ) const
inlineinherited

Definition at line 343 of file property.h.

References m_group.

◆ HasChoices()

virtual bool PROPERTY_BASE::HasChoices ( ) const
inlinevirtualinherited

◆ IsHiddenFromDesignEditors()

bool PROPERTY_BASE::IsHiddenFromDesignEditors ( ) const
inlineinherited

Definition at line 336 of file property.h.

References m_hideFromDesignEditors.

◆ IsHiddenFromLibraryEditors()

bool PROPERTY_BASE::IsHiddenFromLibraryEditors ( ) const
inlineinherited

Definition at line 329 of file property.h.

References m_hideFromLibraryEditors.

◆ IsHiddenFromPropertiesManager()

bool PROPERTY_BASE::IsHiddenFromPropertiesManager ( ) const
inlineinherited

Definition at line 315 of file property.h.

References m_hideFromPropertiesManager.

◆ IsHiddenFromRulesEditor()

bool PROPERTY_BASE::IsHiddenFromRulesEditor ( ) const
inlineinherited

Definition at line 322 of file property.h.

References m_hideFromRulesEditor.

◆ Name()

◆ NullValidator()

static VALIDATOR_RESULT PROPERTY_BASE::NullValidator ( const wxAny && aValue,
EDA_ITEM * aItem )
inlinestaticinherited

Definition at line 357 of file property.h.

◆ OwnerHash()

template<typename Owner, typename T, typename Base = Owner>
size_t PROPERTY< Owner, T, Base >::OwnerHash ( ) const
inlineoverridevirtual

Return type-id of the Owner class.

Implements PROPERTY_BASE.

Definition at line 492 of file property.h.

References m_ownerHash.

◆ set()

template<typename T>
void PROPERTY_BASE::set ( void * aObject,
T aValue )
inlineprotectedinherited

◆ SetAvailableFunc()

◆ SetChoices()

virtual void PROPERTY_BASE::SetChoices ( const wxPGChoices & aChoices)
inlinevirtualinherited

Set the possible values for for the property.

Reimplemented in PROPERTY_ENUM< Owner, T, Base >.

Definition at line 234 of file property.h.

◆ SetChoicesFunc()

PROPERTY_BASE & PROPERTY_BASE::SetChoicesFunc ( std::function< wxPGChoices(INSPECTABLE *)> aFunc)
inlineinherited

◆ SetCoordType()

PROPERTY_BASE & PROPERTY_BASE::SetCoordType ( ORIGIN_TRANSFORMS::COORD_TYPES_T aType)
inlineinherited

Definition at line 309 of file property.h.

References m_coordType, and PROPERTY_BASE().

◆ SetDisplay()

PROPERTY_BASE & PROPERTY_BASE::SetDisplay ( PROPERTY_DISPLAY aDisplay)
inlineinherited

Definition at line 306 of file property.h.

References m_display, and PROPERTY_BASE().

◆ SetGroup()

PROPERTY_BASE & PROPERTY_BASE::SetGroup ( const wxString & aGroup)
inlineinherited

Definition at line 344 of file property.h.

References m_group, and PROPERTY_BASE().

Referenced by PROPERTY_MANAGER::AddProperty().

◆ SetIsHiddenFromDesignEditors()

PROPERTY_BASE & PROPERTY_BASE::SetIsHiddenFromDesignEditors ( bool aIsHidden = true)
inlineinherited

Definition at line 337 of file property.h.

References m_hideFromDesignEditors, and PROPERTY_BASE().

Referenced by SCH_ITEM_DESC::SCH_ITEM_DESC().

◆ SetIsHiddenFromLibraryEditors()

PROPERTY_BASE & PROPERTY_BASE::SetIsHiddenFromLibraryEditors ( bool aIsHidden = true)
inlineinherited

◆ SetIsHiddenFromPropertiesManager()

PROPERTY_BASE & PROPERTY_BASE::SetIsHiddenFromPropertiesManager ( bool aHide = true)
inlineinherited

◆ SetIsHiddenFromRulesEditor()

◆ setter()

template<typename Owner, typename T, typename Base = Owner>
virtual void PROPERTY< Owner, T, Base >::setter ( void * obj,
wxAny & v )
inlineoverrideprotectedvirtual

Implements PROPERTY_BASE.

Reimplemented in PROPERTY_ENUM< Owner, T, Base >.

Definition at line 528 of file property.h.

References m_setter.

◆ SetValidator()

PROPERTY_BASE & PROPERTY_BASE::SetValidator ( PROPERTY_VALIDATOR_FN && aValidator)
inlineinherited

◆ SetWriteableFunc()

PROPERTY_BASE & PROPERTY_BASE::SetWriteableFunc ( std::function< bool(INSPECTABLE *)> aFunc)
inlineinherited

◆ TypeHash()

template<typename Owner, typename T, typename Base = Owner>
size_t PROPERTY< Owner, T, Base >::TypeHash ( ) const
inlineoverridevirtual

Return type-id of the property type.

Implements PROPERTY_BASE.

Definition at line 502 of file property.h.

References m_typeHash.

◆ Validate()

VALIDATOR_RESULT PROPERTY_BASE::Validate ( const wxAny && aValue,
EDA_ITEM * aItem )
inlineinherited

Definition at line 352 of file property.h.

References m_validator.

Referenced by BOOST_AUTO_TEST_CASE().

◆ Writeable()

template<typename Owner, typename T, typename Base = Owner>
bool PROPERTY< Owner, T, Base >::Writeable ( INSPECTABLE * aObject) const
inlineoverridevirtual

Reimplemented from PROPERTY_BASE.

Definition at line 507 of file property.h.

References PROPERTY_BASE::INSPECTABLE, m_setter, and PROPERTY_BASE::Writeable().

Member Data Documentation

◆ m_availFunc

std::function<bool(INSPECTABLE*)> PROPERTY_BASE::m_availFunc
privateinherited

Eval to determine if prop is available.

Definition at line 448 of file property.h.

Referenced by Available(), PROPERTY_BASE(), and SetAvailableFunc().

◆ m_baseHash

template<typename Owner, typename T, typename Base = Owner>
const size_t PROPERTY< Owner, T, Base >::m_baseHash
protected

Property value type-id.

Definition at line 558 of file property.h.

Referenced by BaseHash(), and PROPERTY().

◆ m_choicesFunc

std::function<wxPGChoices(INSPECTABLE*)> PROPERTY_BASE::m_choicesFunc
privateinherited

Definition at line 452 of file property.h.

Referenced by GetChoices(), HasChoices(), and SetChoicesFunc().

◆ m_coordType

ORIGIN_TRANSFORMS::COORD_TYPES_T PROPERTY_BASE::m_coordType
privateinherited

The coordinate type controls how distances are mapped to the user coordinate system.

Definition at line 436 of file property.h.

Referenced by CoordType(), PROPERTY_BASE(), and SetCoordType().

◆ m_display

PROPERTY_DISPLAY PROPERTY_BASE::m_display
privateinherited

The display style controls how properties are edited in the properties manager GUI.

Definition at line 433 of file property.h.

Referenced by Display(), PROPERTY_BASE(), and SetDisplay().

◆ m_getter

template<typename Owner, typename T, typename Base = Owner>
std::unique_ptr<GETTER_BASE<Owner, T> > PROPERTY< Owner, T, Base >::m_getter
protected

Owner class type-id.

Definition at line 552 of file property.h.

Referenced by PROPERTY_ENUM< Owner, T, Base >::getter(), and PROPERTY().

◆ m_group

wxString PROPERTY_BASE::m_group
privateinherited

Optional group identifier.

Definition at line 446 of file property.h.

Referenced by Group(), and SetGroup().

◆ m_hideFromDesignEditors

bool PROPERTY_BASE::m_hideFromDesignEditors
privateinherited

◆ m_hideFromLibraryEditors

bool PROPERTY_BASE::m_hideFromLibraryEditors
privateinherited

◆ m_hideFromPropertiesManager

bool PROPERTY_BASE::m_hideFromPropertiesManager
privateinherited

◆ m_hideFromRulesEditor

bool PROPERTY_BASE::m_hideFromRulesEditor
privateinherited

Definition at line 443 of file property.h.

Referenced by IsHiddenFromRulesEditor(), PROPERTY_BASE(), and SetIsHiddenFromRulesEditor().

◆ m_name

const wxString PROPERTY_BASE::m_name
privateinherited

Permanent identifier for this property.

Property names are an API contract; changing them after release will impact the Custom DRC Rules system as well as the automatic API binding system. Never rename properties; instead deprecate them and hide them from the GUI.

Definition at line 430 of file property.h.

Referenced by Name(), and PROPERTY_BASE().

◆ m_ownerHash

template<typename Owner, typename T, typename Base = Owner>
const size_t PROPERTY< Owner, T, Base >::m_ownerHash
protected

Base class type-id.

Definition at line 555 of file property.h.

Referenced by OwnerHash(), and PROPERTY().

◆ m_setter

template<typename Owner, typename T, typename Base = Owner>
std::unique_ptr<SETTER_BASE<Owner, T> > PROPERTY< Owner, T, Base >::m_setter
protected

Get method.

Definition at line 549 of file property.h.

Referenced by PROPERTY(), setter(), PROPERTY_ENUM< Owner, T, Base >::setter(), and Writeable().

◆ m_typeHash

template<typename Owner, typename T, typename Base = Owner>
const size_t PROPERTY< Owner, T, Base >::m_typeHash
protected

Definition at line 561 of file property.h.

Referenced by PROPERTY(), and TypeHash().

◆ m_validator

PROPERTY_VALIDATOR_FN PROPERTY_BASE::m_validator
privateinherited

Definition at line 454 of file property.h.

Referenced by SetValidator(), and Validate().

◆ m_writeableFunc

std::function<bool(INSPECTABLE*)> PROPERTY_BASE::m_writeableFunc
privateinherited

Eval to determine if prop is read-only.

Definition at line 450 of file property.h.

Referenced by SetWriteableFunc(), and Writeable().


The documentation for this class was generated from the following file: