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 TranslateChoices ()
 
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)
 
virtual bool IgnoreValue () const
 
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)
 
bool IsCopyable () const
 True for a property that says how an item looks, not what or where it is.
 
PROPERTY_BASESetIsCopyable (bool aIsCopyable=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
 
bool m_copyable
 
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 484 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 487 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 490 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 503 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 549 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 255 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 520 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 227 of file property.h.

References empty().

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

◆ CoordType()

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

Definition at line 317 of file property.h.

References m_coordType.

Referenced by PGPropertyFactory().

◆ Display()

PROPERTY_DISPLAY PROPERTY_BASE::Display ( ) const
inlineinherited

Definition at line 314 of file property.h.

References m_display.

Referenced by DIALOG_FIND_BY_PROPERTIES::formatValueForExpression(), and PGPropertyFactory().

◆ get()

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

Definition at line 428 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 269 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 564 of file property.h.

References res.

◆ Group()

wxString PROPERTY_BASE::Group ( ) const
inlineinherited

◆ HasChoices()

◆ IgnoreValue()

virtual bool PROPERTY_BASE::IgnoreValue ( ) const
inlinevirtualinherited

Reimplemented in DUMMY_PROPERTY< Owner, T, Base >.

Definition at line 283 of file property.h.

◆ IsCopyable()

bool PROPERTY_BASE::IsCopyable ( ) const
inlineinherited

True for a property that says how an item looks, not what or where it is.

Opt-in. The safe answer for anything unexamined is no. Identity, position, size and connectivity stay off. Copying those between items would move or rewire them.

Definition at line 358 of file property.h.

References m_copyable.

Referenced by plan().

◆ IsHiddenFromDesignEditors()

bool PROPERTY_BASE::IsHiddenFromDesignEditors ( ) const
inlineinherited

Definition at line 345 of file property.h.

References m_hideFromDesignEditors.

◆ IsHiddenFromLibraryEditors()

bool PROPERTY_BASE::IsHiddenFromLibraryEditors ( ) const
inlineinherited

Definition at line 338 of file property.h.

References m_hideFromLibraryEditors.

◆ IsHiddenFromPropertiesManager()

bool PROPERTY_BASE::IsHiddenFromPropertiesManager ( ) const
inlineinherited

Definition at line 324 of file property.h.

References m_hideFromPropertiesManager.

Referenced by plan().

◆ IsHiddenFromRulesEditor()

bool PROPERTY_BASE::IsHiddenFromRulesEditor ( ) const
inlineinherited

Definition at line 331 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 379 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 515 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 238 of file property.h.

Referenced by BOARD_CONNECTED_ITEM_DESC::BOARD_CONNECTED_ITEM_DESC(), FOOTPRINT_DESC::FOOTPRINT_DESC(), and PCB_TUNING_PATTERN_DESC::PCB_TUNING_PATTERN_DESC().

◆ SetChoicesFunc()

◆ SetCoordType()

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

Definition at line 318 of file property.h.

References m_coordType, and PROPERTY_BASE().

◆ SetDisplay()

PROPERTY_BASE & PROPERTY_BASE::SetDisplay ( PROPERTY_DISPLAY aDisplay)
inlineinherited

Definition at line 315 of file property.h.

References m_display, and PROPERTY_BASE().

◆ SetGroup()

◆ SetIsCopyable()

◆ SetIsHiddenFromDesignEditors()

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

Definition at line 346 of file property.h.

References m_hideFromDesignEditors, and PROPERTY_BASE().

Referenced by SCH_ITEM_DESC::SCH_ITEM_DESC().

◆ SetIsHiddenFromLibraryEditors()

◆ 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 551 of file property.h.

References m_setter.

◆ SetValidator()

◆ SetWriteableFunc()

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

◆ TranslateChoices()

virtual void PROPERTY_BASE::TranslateChoices ( )
inlinevirtualinherited

Reimplemented in PROPERTY_ENUM< Owner, T, Base >.

Definition at line 233 of file property.h.

◆ 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 525 of file property.h.

References m_typeHash.

◆ Validate()

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

Definition at line 374 of file property.h.

References m_validator.

Referenced by BOOST_AUTO_TEST_CASE(), and 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 530 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 471 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 581 of file property.h.

Referenced by BaseHash(), and PROPERTY().

◆ m_choicesFunc

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

Definition at line 475 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 458 of file property.h.

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

◆ m_copyable

bool PROPERTY_BASE::m_copyable
privateinherited

Definition at line 466 of file property.h.

Referenced by IsCopyable(), PROPERTY_BASE(), and SetIsCopyable().

◆ 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 455 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 575 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 469 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 465 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 452 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 578 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 572 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 584 of file property.h.

Referenced by PROPERTY(), and TypeHash().

◆ m_validator

PROPERTY_VALIDATOR_FN PROPERTY_BASE::m_validator
privateinherited

Definition at line 477 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 473 of file property.h.

Referenced by SetWriteableFunc(), and Writeable().


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