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) More...
 
void rebuild ()
 Traverses the class inheritance hierarchy bottom-to-top, gathering all properties available to a type. More...
 
void collectPropsRecur (PROPERTY_LIST &aResult, PROPERTY_SET &aReplaced, PROPERTY_DISPLAY_ORDER &aDisplayOrder, PROPERTY_SET &aMasked) const
 

Public Attributes

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

Detailed Description

Returns metadata for a specific type.

Definition at line 259 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 261 of file property_mgr.h.

References m_groupDisplayOrder, and m_groups.

Member Function Documentation

◆ collectPropsRecur()

void PROPERTY_MANAGER::CLASS_DESC::collectPropsRecur ( PROPERTY_LIST aResult,
PROPERTY_SET aReplaced,
PROPERTY_DISPLAY_ORDER aDisplayOrder,
PROPERTY_SET aMasked 
) const

Definition at line 338 of file property_mgr.cpp.

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 296 of file property_mgr.cpp.

References collectPropsRecur(), group, m_allProperties, m_bases, 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 290 of file property_mgr.h.

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

◆ m_availabilityOverrides

PROPERTY_FUNCTOR_MAP PROPERTY_MANAGER::CLASS_DESC::m_availabilityOverrides

Overrides for base class property writeable status.

Definition at line 284 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 272 of file property_mgr.h.

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

◆ m_displayOrder

PROPERTY_DISPLAY_ORDER PROPERTY_MANAGER::CLASS_DESC::m_displayOrder

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

Definition at line 293 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 296 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 302 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 269 of file property_mgr.h.

◆ m_maskedBaseProperties

PROPERTY_SET PROPERTY_MANAGER::CLASS_DESC::m_maskedBaseProperties

Overrides for base class property availabilities.

Definition at line 281 of file property_mgr.h.

Referenced by 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 299 of file property_mgr.h.

Referenced by PROPERTY_MANAGER::AddProperty().

◆ 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 275 of file property_mgr.h.

Referenced by PROPERTY_MANAGER::AddProperty().

◆ m_replaced

PROPERTY_SET PROPERTY_MANAGER::CLASS_DESC::m_replaced

Recreates the list of properties.

Definition at line 305 of file property_mgr.h.

Referenced by 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 278 of file property_mgr.h.

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

◆ m_writeabilityOverrides

PROPERTY_FUNCTOR_MAP PROPERTY_MANAGER::CLASS_DESC::m_writeabilityOverrides

All properties (both unique to the type and inherited)

Definition at line 287 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: