Pcbnew: graphic polygon: display the points count, instead of length,

and coordinate origin.
Previously, the meaningless length (always 0) and begin and end (@0,0)
coordinates were always displayed.

From master branch.
This commit is contained in:
jean-pierre charras 2019-12-18 11:40:45 +01:00
parent 0f8747e194
commit 388d74faf4
1 changed files with 27 additions and 7 deletions

View File

@ -465,6 +465,13 @@ void DRAWSEGMENT::GetMsgPanelInfo( EDA_UNITS_T aUnits, std::vector< MSG_PANEL_IT
aList.push_back( MSG_PANEL_ITEM( shape, _( "Curve" ), RED ) );
break;
case S_POLYGON:
aList.emplace_back( shape, _( "Polygon" ), RED );
msg.Printf( "%d", GetPolyShape().Outline(0).PointCount() );
aList.emplace_back( _( "Points" ), msg, DARKGREEN );
break;
default:
{
aList.push_back( MSG_PANEL_ITEM( shape, _( "Segment" ), RED ) );
@ -480,14 +487,27 @@ void DRAWSEGMENT::GetMsgPanelInfo( EDA_UNITS_T aUnits, std::vector< MSG_PANEL_IT
}
}
wxString start = wxString::Format( "@(%s, %s)",
MessageTextFromValue( aUnits, GetStart().x ),
MessageTextFromValue( aUnits, GetStart().y ) );
wxString end = wxString::Format( "@(%s, %s)",
MessageTextFromValue( aUnits, GetEnd().x ),
MessageTextFromValue( aUnits, GetEnd().y ) );
if( m_Shape == S_POLYGON )
{
VECTOR2I point0 = GetPolyShape().Outline(0).CPoint(0);
wxString origin = wxString::Format( "@(%s, %s)",
MessageTextFromValue( aUnits, point0.x ),
MessageTextFromValue( aUnits, point0.y ) );
aList.emplace_back( _( "Origin" ), origin, DARKGREEN );
}
else
{
wxString start = wxString::Format( "@(%s, %s)",
MessageTextFromValue( aUnits, GetStart().x ),
MessageTextFromValue( aUnits, GetStart().y ) );
wxString end = wxString::Format( "@(%s, %s)",
MessageTextFromValue( aUnits, GetEnd().x ),
MessageTextFromValue( aUnits, GetEnd().y ) );
aList.emplace_back( start, end, DARKGREEN );
}
aList.push_back( MSG_PANEL_ITEM( start, end, DARKGREEN ) );
aList.push_back( MSG_PANEL_ITEM( _( "Layer" ), GetLayerName(), DARKBROWN ) );
msg = MessageTextFromValue( aUnits, m_Width, true );