KiCad PCB EDA Suite
Loading...
Searching...
No Matches
PROPERTY_MANAGER::CLASS_DESC Struct Reference

Returns metadata for a specific type. More...

Public Member Functions

 CLASS_DESC (TYPE_ID aId)
 Unique type identifier (obtained using TYPE_HASH)
 
void rebuild ()
 Traverses the class inheritance hierarchy bottom-to-top, gathering all properties available to a type.
 
void collectPropsRecur (std::vector< PROPERTY_BASE * > &aResult, std::set< std::pair< size_t, wxString > > &aReplaced, std::map< PROPERTY_BASE *, int > &aDisplayOrder, std::set< std::pair< size_t, wxString > > &aMasked) const
 

Public Attributes

const TYPE_ID m_id
 Types after which this type inherits.
 
std::vector< std::reference_wrapper< CLASS_DESC > > m_bases
 Properties unique to this type (i.e. not inherited)
 
std::map< wxString, std::unique_ptr< PROPERTY_BASE > > m_ownProperties
 Type converters available for this type.
 
std::map< TYPE_ID, std::unique_ptr< TYPE_CAST_BASE > > m_typeCasts
 Properties from bases that should be masked (hidden) on this subclass.
 
std::set< std::pair< size_t, wxString > > m_maskedBaseProperties
 Overrides for base class property availabilities.
 
std::map< std::pair< size_t, wxString >, std::function< bool(INSPECTABLE *)> > m_availabilityOverrides
 Overrides for base class property writeable status.
 
std::map< std::pair< size_t, wxString >, std::function< bool(INSPECTABLE *)> > m_writeabilityOverrides
 All properties (both unique to the type and inherited)
 
std::vector< PROPERTY_BASE * > m_allProperties
 Compiled display order for all properties.
 
std::map< PROPERTY_BASE *, int > m_displayOrder
 List of property groups provided by this class in display order.
 
std::vector< wxString > m_groupDisplayOrder
 Non-owning list of classes's direct properties in display order.
 
std::vector< PROPERTY_BASE * > m_ownDisplayOrder
 The property groups provided by this class.
 
std::set< wxString > m_groups
 Replaced properties (TYPE_ID / name)
 
std::set< std::pair< size_t, wxString > > m_replaced
 Recreates the list of properties.
 

Detailed Description

Returns metadata for a specific type.

Definition at line 274 of file property_mgr.h.

Constructor & Destructor Documentation

◆ CLASS_DESC()

PROPERTY_MANAGER::CLASS_DESC::CLASS_DESC ( TYPE_ID aId)
inline

Unique type identifier (obtained using TYPE_HASH)

Definition at line 276 of file property_mgr.h.

References m_groupDisplayOrder, m_groups, and m_id.

Referenced by rebuild().

Member Function Documentation

◆ collectPropsRecur()

void PROPERTY_MANAGER::CLASS_DESC::collectPropsRecur ( std::vector< PROPERTY_BASE * > & aResult,
std::set< std::pair< size_t, wxString > > & aReplaced,
std::map< PROPERTY_BASE *, int > & aDisplayOrder,
std::set< std::pair< size_t, wxString > > & aMasked ) const

Definition at line 330 of file property_mgr.cpp.

References m_bases, m_maskedBaseProperties, m_ownDisplayOrder, m_ownProperties, and m_replaced.

Referenced by rebuild().

◆ rebuild()

void PROPERTY_MANAGER::CLASS_DESC::rebuild ( )

Traverses the class inheritance hierarchy bottom-to-top, gathering all properties available to a type.

Definition at line 287 of file property_mgr.cpp.

References CLASS_DESC(), collectPropsRecur(), group, m_allProperties, m_displayOrder, and m_groupDisplayOrder.

Member Data Documentation

◆ m_allProperties

std::vector<PROPERTY_BASE*> PROPERTY_MANAGER::CLASS_DESC::m_allProperties

Compiled display order for all properties.

Definition at line 305 of file property_mgr.h.

Referenced by PROPERTY_MANAGER::GetProperty(), and rebuild().

◆ m_availabilityOverrides

std::map<std::pair<size_t, wxString>, std::function<bool( INSPECTABLE* )> > PROPERTY_MANAGER::CLASS_DESC::m_availabilityOverrides

Overrides for base class property writeable status.

Definition at line 299 of file property_mgr.h.

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

◆ m_bases

std::vector<std::reference_wrapper<CLASS_DESC> > PROPERTY_MANAGER::CLASS_DESC::m_bases

Properties unique to this type (i.e. not inherited)

Definition at line 287 of file property_mgr.h.

Referenced by collectPropsRecur(), PROPERTY_MANAGER::InheritsAfter(), and PROPERTY_MANAGER::PropertyChanged().

◆ m_displayOrder

std::map<PROPERTY_BASE*, int> PROPERTY_MANAGER::CLASS_DESC::m_displayOrder

List of property groups provided by this class in display order.

Definition at line 308 of file property_mgr.h.

Referenced by rebuild().

◆ m_groupDisplayOrder

std::vector<wxString> PROPERTY_MANAGER::CLASS_DESC::m_groupDisplayOrder

Non-owning list of classes's direct properties in display order.

Definition at line 311 of file property_mgr.h.

Referenced by PROPERTY_MANAGER::AddProperty(), CLASS_DESC(), and rebuild().

◆ m_groups

std::set<wxString> PROPERTY_MANAGER::CLASS_DESC::m_groups

Replaced properties (TYPE_ID / name)

Definition at line 317 of file property_mgr.h.

Referenced by PROPERTY_MANAGER::AddProperty(), and CLASS_DESC().

◆ m_id

const TYPE_ID PROPERTY_MANAGER::CLASS_DESC::m_id

Types after which this type inherits.

Definition at line 284 of file property_mgr.h.

Referenced by CLASS_DESC(), and PROPERTY_MANAGER::PropertyChanged().

◆ m_maskedBaseProperties

std::set<std::pair<size_t, wxString> > PROPERTY_MANAGER::CLASS_DESC::m_maskedBaseProperties

Overrides for base class property availabilities.

Definition at line 296 of file property_mgr.h.

Referenced by collectPropsRecur(), and PROPERTY_MANAGER::Mask().

◆ m_ownDisplayOrder

std::vector<PROPERTY_BASE*> PROPERTY_MANAGER::CLASS_DESC::m_ownDisplayOrder

The property groups provided by this class.

Definition at line 314 of file property_mgr.h.

Referenced by PROPERTY_MANAGER::AddProperty(), and collectPropsRecur().

◆ m_ownProperties

std::map<wxString, std::unique_ptr<PROPERTY_BASE> > PROPERTY_MANAGER::CLASS_DESC::m_ownProperties

Type converters available for this type.

Definition at line 290 of file property_mgr.h.

Referenced by PROPERTY_MANAGER::AddProperty(), and collectPropsRecur().

◆ m_replaced

std::set<std::pair<size_t, wxString> > PROPERTY_MANAGER::CLASS_DESC::m_replaced

Recreates the list of properties.

Definition at line 320 of file property_mgr.h.

Referenced by collectPropsRecur(), and PROPERTY_MANAGER::ReplaceProperty().

◆ m_typeCasts

std::map<TYPE_ID, std::unique_ptr<TYPE_CAST_BASE> > PROPERTY_MANAGER::CLASS_DESC::m_typeCasts

Properties from bases that should be masked (hidden) on this subclass.

Definition at line 293 of file property_mgr.h.

Referenced by PROPERTY_MANAGER::AddTypeCast(), and PROPERTY_MANAGER::InheritsAfter().

◆ m_writeabilityOverrides

std::map<std::pair<size_t, wxString>, std::function<bool( INSPECTABLE* )> > PROPERTY_MANAGER::CLASS_DESC::m_writeabilityOverrides

All properties (both unique to the type and inherited)

Definition at line 302 of file property_mgr.h.

Referenced by PROPERTY_MANAGER::IsWriteableFor(), and PROPERTY_MANAGER::OverrideWriteability().


The documentation for this struct was generated from the following files: