Expose pad type in property system.

Also corrects the spelling of some enum items so they match the
menus (otherwise folks will never be able to figure out what they
are).
This commit is contained in:
Jeff Young 2020-09-24 14:39:59 +01:00
parent dba42ebed0
commit 3e366a901f
3 changed files with 33 additions and 22 deletions

View File

@ -1346,28 +1346,38 @@ static struct PAD_DESC
{
PAD_DESC()
{
ENUM_MAP<PAD_ATTR_T>::Instance()
.Map( PAD_ATTRIB_STANDARD, _( "Through-hole" ) )
.Map( PAD_ATTRIB_SMD, _( "SMD" ) )
.Map( PAD_ATTRIB_CONN, _( "Edge connector" ) )
.Map( PAD_ATTRIB_HOLE_NOT_PLATED, _( "NPTH, mechanical" ) );
ENUM_MAP<PAD_SHAPE_T>::Instance()
.Map( PAD_SHAPE_CIRCLE, _( "Circle" ) )
.Map( PAD_SHAPE_RECT, _( "Rectangle" ) )
.Map( PAD_SHAPE_OVAL, _( "Oval" ) )
.Map( PAD_SHAPE_TRAPEZOID, _( "Trapezoid" ) )
.Map( PAD_SHAPE_ROUNDRECT, _( "Rounded rectangle" ) )
.Map( PAD_SHAPE_CHAMFERED_RECT, _( "Chamfered rectangle" ) )
.Map( PAD_SHAPE_CUSTOM, _( "Custom" ) );
.Map( PAD_SHAPE_CIRCLE, _( "Circle" ) )
.Map( PAD_SHAPE_RECT, _( "Rectangle" ) )
.Map( PAD_SHAPE_OVAL, _( "Oval" ) )
.Map( PAD_SHAPE_TRAPEZOID, _( "Trapezoid" ) )
.Map( PAD_SHAPE_ROUNDRECT, _( "Rounded rectangle" ) )
.Map( PAD_SHAPE_CHAMFERED_RECT, _( "Chamfered rectangle" ) )
.Map( PAD_SHAPE_CUSTOM, _( "Custom" ) );
ENUM_MAP<PAD_PROP_T>::Instance()
.Map( PAD_PROP_NONE, _( "None" ) )
.Map( PAD_PROP_BGA, _( "BGA pad" ) )
.Map( PAD_PROP_FIDUCIAL_GLBL, _( "Fiducial, global to board" ) )
.Map( PAD_PROP_FIDUCIAL_LOCAL, _( "Fiducial, local to footprint" ) )
.Map( PAD_PROP_TESTPOINT, _( "Test point pad" ) )
.Map( PAD_PROP_HEATSINK, _( "Heatsink pad" ) )
.Map( PAD_PROP_CASTELLATED, _( "Castellated pad" ) );
.Map( PAD_PROP_NONE, _( "None" ) )
.Map( PAD_PROP_BGA, _( "BGA pad" ) )
.Map( PAD_PROP_FIDUCIAL_GLBL, _( "Fiducial, global to board" ) )
.Map( PAD_PROP_FIDUCIAL_LOCAL, _( "Fiducial, local to footprint" ) )
.Map( PAD_PROP_TESTPOINT, _( "Test point pad" ) )
.Map( PAD_PROP_HEATSINK, _( "Heatsink pad" ) )
.Map( PAD_PROP_CASTELLATED, _( "Castellated pad" ) );
PROPERTY_MANAGER& propMgr = PROPERTY_MANAGER::Instance();
REGISTER_TYPE( D_PAD );
propMgr.InheritsAfter( TYPE_HASH( D_PAD ), TYPE_HASH( BOARD_CONNECTED_ITEM ) );
auto padType = new PROPERTY_ENUM<D_PAD, PAD_ATTR_T>( _( "Pad Type" ),
&D_PAD::SetAttribute, &D_PAD::GetAttribute );
propMgr.AddProperty( padType );
auto shape = new PROPERTY_ENUM<D_PAD, PAD_SHAPE_T>( _( "Shape" ),
&D_PAD::SetShape, &D_PAD::GetShape );
propMgr.AddProperty( shape );

View File

@ -1046,8 +1046,8 @@ static struct TRACK_VIA_DESC
ENUM_MAP<VIATYPE>::Instance()
.Undefined( VIATYPE::NOT_DEFINED )
.Map( VIATYPE::THROUGH, _( "Through" ) )
.Map( VIATYPE::BLIND_BURIED, _( "Buried_via" ) )
.Map( VIATYPE::MICROVIA, _( "Micro_via" ) );
.Map( VIATYPE::BLIND_BURIED, _( "Blind/buried" ) )
.Map( VIATYPE::MICROVIA, _( "Micro" ) );
ENUM_MAP<PCB_LAYER_ID>& layerEnum = ENUM_MAP<PCB_LAYER_ID>::Instance();
@ -1085,13 +1085,13 @@ static struct TRACK_VIA_DESC
// TODO layerset for vias?
// TODO test drill, use getdrillvalue?
propMgr.ReplaceProperty( TYPE_HASH( TRACK ), _( "Width" ),
new PROPERTY<VIA, int, TRACK>( _( "Diameter" ), &VIA::SetWidth, &VIA::GetWidth,
PROPERTY_DISPLAY::DISTANCE ) );
new PROPERTY<VIA, int, TRACK>( _( "Diameter" ),
&VIA::SetWidth, &VIA::GetWidth, PROPERTY_DISPLAY::DISTANCE ) );
propMgr.AddProperty( new PROPERTY<VIA, int>( _( "Drill" ),
&VIA::SetDrill, &VIA::GetDrillValue, PROPERTY_DISPLAY::DISTANCE ) );
propMgr.ReplaceProperty( TYPE_HASH( BOARD_ITEM ), _( "Layer" ),
new PROPERTY_ENUM<VIA, PCB_LAYER_ID, BOARD_ITEM>( _( "Layer Top" ),
&VIA::SetLayer, &VIA::GetLayer ) );
new PROPERTY_ENUM<VIA, PCB_LAYER_ID, BOARD_ITEM>( _( "Layer Top" ),
&VIA::SetLayer, &VIA::GetLayer ) );
propMgr.AddProperty( new PROPERTY_ENUM<VIA, PCB_LAYER_ID>( _( "Layer Bottom" ),
&VIA::SetBottomLayer, &VIA::BottomLayer ) );
propMgr.AddProperty( new PROPERTY_ENUM<VIA, VIATYPE>( _( "Via Type" ),

View File

@ -362,7 +362,8 @@ LIBEVAL::FUNC_CALL_REF PCB_EXPR_UCODE::CreateFuncCall( const wxString& aName )
}
std::unique_ptr<LIBEVAL::VAR_REF> PCB_EXPR_UCODE::CreateVarRef( const wxString& aVar, const wxString& aField )
std::unique_ptr<LIBEVAL::VAR_REF> PCB_EXPR_UCODE::CreateVarRef( const wxString& aVar,
const wxString& aField )
{
PROPERTY_MANAGER& propMgr = PROPERTY_MANAGER::Instance();
std::unique_ptr<PCB_EXPR_VAR_REF> vref;;
@ -409,7 +410,7 @@ std::unique_ptr<LIBEVAL::VAR_REF> PCB_EXPR_UCODE::CreateVarRef( const wxString&
else if ( prop->HasChoices() )
{ // it's an enum, we treat it as string
vref->SetType( LIBEVAL::VT_STRING );
vref->SetIsEnum ( true );
vref->SetIsEnum( true );
}
else
{