Fix justification of vertically aligned multi-line text.

This commit is contained in:
Baranovskiy Konstantin 2013-11-16 20:31:07 -05:00 committed by Wayne Stambaugh
parent 4c8bff9f71
commit 94db11a8f6
1 changed files with 12 additions and 3 deletions

View File

@ -40,7 +40,7 @@
// because the text position is sometimes critical.
// Currently, this change is broken for rotated or mirrored texts,
// so keep this line commented until there are fixes
//#define FIX_MULTILINE_VERT_JUSTIF
#define FIX_MULTILINE_VERT_JUSTIF
// Conversion to application internal units defined at build time.
#if defined( PCBNEW )
@ -267,9 +267,13 @@ void EDA_TEXT::Draw( EDA_RECT* aClipBox, wxDC* aDC, const wxPoint& aOffset,
{
if( m_MultilineAllowed )
{
wxPoint pos = m_Pos;
wxArrayString* list = wxStringSplit( m_Text, '\n' );
wxPoint offset;
wxPoint pos = m_Pos; // Position of first line of the
// multiline text according to
// the center of the multiline text block
wxPoint offset; // Offset to next line.
offset.y = GetInterline();
@ -290,7 +294,12 @@ void EDA_TEXT::Draw( EDA_RECT* aClipBox, wxDC* aDC, const wxPoint& aOffset,
break;
}
}
// Rotate the position of the first line
// around the center of the multiline text block
RotatePoint( &pos, m_Pos, m_Orient );
#endif
// Rotate the offset lines to increase happened in the right direction
RotatePoint( &offset, m_Orient );
for( unsigned i = 0; i<list->Count(); i++ )