Account for changes to mimic 6.0 text positioning in bounding boxes.
This is only a partial fix as knockout text is still busted....
This commit is contained in:
parent
6b0bff2f4f
commit
dacf0b2b96
|
@ -566,11 +566,18 @@ BOX2I EDA_TEXT::GetTextBox( int aLine, bool aInvertY ) const
|
||||||
VECTOR2I textsize = VECTOR2I( extents.x, extents.y );
|
VECTOR2I textsize = VECTOR2I( extents.x, extents.y );
|
||||||
VECTOR2I pos = drawPos;
|
VECTOR2I pos = drawPos;
|
||||||
|
|
||||||
|
if( font->IsStroke() )
|
||||||
|
{
|
||||||
|
int fudgeFactor = extents.y * 0.17;
|
||||||
|
textsize.y += fudgeFactor;
|
||||||
|
pos.y += fudgeFactor / 2;
|
||||||
|
}
|
||||||
|
|
||||||
if( IsMultilineAllowed() && aLine > 0 && aLine < (int) strings.GetCount() )
|
if( IsMultilineAllowed() && aLine > 0 && aLine < (int) strings.GetCount() )
|
||||||
pos.y -= KiROUND( aLine * font->GetInterline( fontSize.y ) );
|
pos.y -= KiROUND( aLine * font->GetInterline( fontSize.y ) );
|
||||||
|
|
||||||
if( text.Contains( wxT( "~{" ) ) )
|
if( text.Contains( wxT( "~{" ) ) )
|
||||||
overbarOffset = extents.y / 14;
|
overbarOffset = extents.y / 6;
|
||||||
|
|
||||||
if( aInvertY )
|
if( aInvertY )
|
||||||
pos.y = -pos.y;
|
pos.y = -pos.y;
|
||||||
|
@ -578,7 +585,7 @@ BOX2I EDA_TEXT::GetTextBox( int aLine, bool aInvertY ) const
|
||||||
bbox.SetOrigin( pos );
|
bbox.SetOrigin( pos );
|
||||||
|
|
||||||
// for multiline texts and aLine < 0, merge all rectangles (aLine == -1 signals all lines)
|
// for multiline texts and aLine < 0, merge all rectangles (aLine == -1 signals all lines)
|
||||||
if( IsMultilineAllowed() && aLine < 0 && strings.GetCount() )
|
if( IsMultilineAllowed() && aLine < 0 && strings.GetCount() > 1 )
|
||||||
{
|
{
|
||||||
for( unsigned ii = 1; ii < strings.GetCount(); ii++ )
|
for( unsigned ii = 1; ii < strings.GetCount(); ii++ )
|
||||||
{
|
{
|
||||||
|
@ -592,6 +599,8 @@ BOX2I EDA_TEXT::GetTextBox( int aLine, bool aInvertY ) const
|
||||||
textsize.y += KiROUND( ( strings.GetCount() - 1 ) * font->GetInterline( fontSize.y ) );
|
textsize.y += KiROUND( ( strings.GetCount() - 1 ) * font->GetInterline( fontSize.y ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
textsize.y += overbarOffset;
|
||||||
|
|
||||||
bbox.SetSize( textsize );
|
bbox.SetSize( textsize );
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -623,11 +632,11 @@ BOX2I EDA_TEXT::GetTextBox( int aLine, bool aInvertY ) const
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case GR_TEXT_V_ALIGN_CENTER:
|
case GR_TEXT_V_ALIGN_CENTER:
|
||||||
bbox.SetY( bbox.GetY() - ( bbox.GetHeight() + overbarOffset ) / 2 );
|
bbox.SetY( bbox.GetY() - bbox.GetHeight() / 2 );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case GR_TEXT_V_ALIGN_BOTTOM:
|
case GR_TEXT_V_ALIGN_BOTTOM:
|
||||||
bbox.SetY( bbox.GetY() - ( bbox.GetHeight() + overbarOffset ) );
|
bbox.SetY( bbox.GetY() - bbox.GetHeight() );
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue