KiCad PCB EDA Suite
Loading...
Searching...
No Matches
PROPERTY_BASE Class Referenceabstract

#include <property.h>

Inheritance diagram for PROPERTY_BASE:
PROPERTY< Owner, T, Owner > DUMMY_PROPERTY< Owner, T, Base > EDA_CUSTOM_PROPERTY PCB_FOOTPRINT_FIELD_PROPERTY PROPERTY< Owner, T, Base > SCH_SHEET_FIELD_PROPERTY SCH_SYMBOL_INSTANCE_PROPERTY PROPERTY_ENUM< Owner, T, Base > SCH_SYMBOL_FIELD_PROPERTY SCH_SYMBOL_PIN_MAP_ENTRY_PROPERTY SCH_SYMBOL_PIN_MAP_FOOTPRINT_PROPERTY SCH_SYMBOL_PIN_MAP_MODE_PROPERTY SCH_SYMBOL_PIN_MAP_NAME_PROPERTY

Public Member Functions

 PROPERTY_BASE (const wxString &aName, PROPERTY_DISPLAY aDisplay=PT_DEFAULT, ORIGIN_TRANSFORMS::COORD_TYPES_T aCoordType=ORIGIN_TRANSFORMS::NOT_A_COORD)
 < Used to generate unique IDs. Must come up front so it's initialized before ctor.
 
virtual ~PROPERTY_BASE ()
 
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
 
virtual bool Writeable (INSPECTABLE *aObject) const
 
PROPERTY_BASESetWriteableFunc (std::function< bool(INSPECTABLE *)> aFunc)
 
virtual size_t OwnerHash () const =0
 Return type-id of the Owner class.
 
virtual size_t BaseHash () const =0
 Return type-id of the Base class.
 
virtual size_t TypeHash () const =0
 Return type-id of the property type.
 
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

template<typename T>
void set (void *aObject, T aValue)
 
template<typename T>
T get (const void *aObject) const
 

Private Member Functions

virtual void setter (void *aObject, wxAny &aValue)=0
 
virtual wxAny getter (const void *aObject) const =0
 

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
 

Friends

class INSPECTABLE
 

Detailed Description

Definition at line 195 of file property.h.

Constructor & Destructor Documentation

◆ PROPERTY_BASE()

◆ ~PROPERTY_BASE()

virtual PROPERTY_BASE::~PROPERTY_BASE ( )
inlinevirtual

Definition at line 217 of file property.h.

Member Function Documentation

◆ Available()

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

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()

◆ Choices()

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

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
inline

Definition at line 317 of file property.h.

References m_coordType.

Referenced by PGPropertyFactory().

◆ Display()

PROPERTY_DISPLAY PROPERTY_BASE::Display ( ) const
inline

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
inlineprotected

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
inline

Definition at line 269 of file property.h.

References INSPECTABLE, and m_choicesFunc.

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

◆ getter()

◆ Group()

wxString PROPERTY_BASE::Group ( ) const
inline

◆ HasChoices()

◆ IgnoreValue()

virtual bool PROPERTY_BASE::IgnoreValue ( ) const
inlinevirtual

Reimplemented in DUMMY_PROPERTY< Owner, T, Base >.

Definition at line 283 of file property.h.

◆ IsCopyable()

bool PROPERTY_BASE::IsCopyable ( ) const
inline

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
inline

Definition at line 345 of file property.h.

References m_hideFromDesignEditors.

◆ IsHiddenFromLibraryEditors()

bool PROPERTY_BASE::IsHiddenFromLibraryEditors ( ) const
inline

Definition at line 338 of file property.h.

References m_hideFromLibraryEditors.

◆ IsHiddenFromPropertiesManager()

bool PROPERTY_BASE::IsHiddenFromPropertiesManager ( ) const
inline

Definition at line 324 of file property.h.

References m_hideFromPropertiesManager.

Referenced by plan().

◆ IsHiddenFromRulesEditor()

bool PROPERTY_BASE::IsHiddenFromRulesEditor ( ) const
inline

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 )
inlinestatic

Definition at line 379 of file property.h.

◆ OwnerHash()

◆ set()

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

◆ SetAvailableFunc()

◆ SetChoices()

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

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)
inline

Definition at line 318 of file property.h.

References m_coordType, and PROPERTY_BASE().

◆ SetDisplay()

PROPERTY_BASE & PROPERTY_BASE::SetDisplay ( PROPERTY_DISPLAY aDisplay)
inline

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)
inline

Definition at line 346 of file property.h.

References m_hideFromDesignEditors, and PROPERTY_BASE().

Referenced by SCH_ITEM_DESC::SCH_ITEM_DESC().

◆ SetIsHiddenFromLibraryEditors()

◆ SetIsHiddenFromPropertiesManager()

◆ SetIsHiddenFromRulesEditor()

◆ setter()

◆ SetValidator()

◆ SetWriteableFunc()

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

◆ TranslateChoices()

virtual void PROPERTY_BASE::TranslateChoices ( )
inlinevirtual

Reimplemented in PROPERTY_ENUM< Owner, T, Base >.

Definition at line 233 of file property.h.

◆ TypeHash()

◆ Validate()

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

Definition at line 374 of file property.h.

References m_validator.

Referenced by BOOST_AUTO_TEST_CASE(), and BOOST_AUTO_TEST_CASE().

◆ Writeable()

Friends And Related Symbol Documentation

◆ INSPECTABLE

Member Data Documentation

◆ m_availFunc

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

Eval to determine if prop is available.

Definition at line 471 of file property.h.

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

◆ m_choicesFunc

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

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
private

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
private

Definition at line 466 of file property.h.

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

◆ m_display

PROPERTY_DISPLAY PROPERTY_BASE::m_display
private

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_group

wxString PROPERTY_BASE::m_group
private

Optional group identifier.

Definition at line 469 of file property.h.

Referenced by Group(), and SetGroup().

◆ m_hideFromDesignEditors

bool PROPERTY_BASE::m_hideFromDesignEditors
private

◆ m_hideFromLibraryEditors

bool PROPERTY_BASE::m_hideFromLibraryEditors
private

◆ m_hideFromPropertiesManager

bool PROPERTY_BASE::m_hideFromPropertiesManager
private

◆ m_hideFromRulesEditor

bool PROPERTY_BASE::m_hideFromRulesEditor
private

Definition at line 465 of file property.h.

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

◆ m_name

const wxString PROPERTY_BASE::m_name
private

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_validator

PROPERTY_VALIDATOR_FN PROPERTY_BASE::m_validator
private

Definition at line 477 of file property.h.

Referenced by SetValidator(), and Validate().

◆ m_writeableFunc

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

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: