Fix text justification in Altium schematic importer.
This commit is contained in:
parent
20bb82a011
commit
546b2e3b91
|
@ -1353,7 +1353,7 @@ void SCH_IO_ALTIUM::ParsePin( const std::map<wxString, wxString>& aProperties,
|
||||||
|
|
||||||
|
|
||||||
void SetTextPositioning( EDA_TEXT* text, ASCH_LABEL_JUSTIFICATION justification,
|
void SetTextPositioning( EDA_TEXT* text, ASCH_LABEL_JUSTIFICATION justification,
|
||||||
ASCH_RECORD_ORIENTATION orientation, bool for_lib_item = false )
|
ASCH_RECORD_ORIENTATION orientation )
|
||||||
{
|
{
|
||||||
int vjustify, hjustify;
|
int vjustify, hjustify;
|
||||||
EDA_ANGLE angle = ANGLE_HORIZONTAL;
|
EDA_ANGLE angle = ANGLE_HORIZONTAL;
|
||||||
|
@ -1407,31 +1407,19 @@ void SetTextPositioning( EDA_TEXT* text, ASCH_LABEL_JUSTIFICATION justification,
|
||||||
switch( orientation )
|
switch( orientation )
|
||||||
{
|
{
|
||||||
case ASCH_RECORD_ORIENTATION::RIGHTWARDS:
|
case ASCH_RECORD_ORIENTATION::RIGHTWARDS:
|
||||||
if( for_lib_item )
|
|
||||||
vjustify *= -1;
|
|
||||||
|
|
||||||
angle = ANGLE_HORIZONTAL;
|
angle = ANGLE_HORIZONTAL;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ASCH_RECORD_ORIENTATION::LEFTWARDS:
|
case ASCH_RECORD_ORIENTATION::LEFTWARDS:
|
||||||
if( !for_lib_item )
|
|
||||||
vjustify *= -1;
|
|
||||||
|
|
||||||
hjustify *= -1;
|
hjustify *= -1;
|
||||||
angle = ANGLE_HORIZONTAL;
|
angle = ANGLE_HORIZONTAL;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ASCH_RECORD_ORIENTATION::UPWARDS:
|
case ASCH_RECORD_ORIENTATION::UPWARDS:
|
||||||
if( for_lib_item )
|
|
||||||
vjustify *= -1;
|
|
||||||
|
|
||||||
angle = ANGLE_VERTICAL;
|
angle = ANGLE_VERTICAL;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ASCH_RECORD_ORIENTATION::DOWNWARDS:
|
case ASCH_RECORD_ORIENTATION::DOWNWARDS:
|
||||||
if( !for_lib_item )
|
|
||||||
vjustify *= -1;
|
|
||||||
|
|
||||||
hjustify *= -1;
|
hjustify *= -1;
|
||||||
angle = ANGLE_VERTICAL;
|
angle = ANGLE_VERTICAL;
|
||||||
break;
|
break;
|
||||||
|
@ -1536,7 +1524,7 @@ void SCH_IO_ALTIUM::ParseLabel( const std::map<wxString, wxString>& aProperties,
|
||||||
|
|
||||||
textItem->SetPosition( pos );
|
textItem->SetPosition( pos );
|
||||||
textItem->SetUnit( std::max( 0, elem.ownerpartid ) );
|
textItem->SetUnit( std::max( 0, elem.ownerpartid ) );
|
||||||
SetTextPositioning( textItem, elem.justification, elem.orientation, true );
|
SetTextPositioning( textItem, elem.justification, elem.orientation );
|
||||||
|
|
||||||
size_t fontId = elem.fontId;
|
size_t fontId = elem.fontId;
|
||||||
|
|
||||||
|
@ -3343,7 +3331,7 @@ void SCH_IO_ALTIUM::ParsePowerPort( const std::map<wxString, wxString>& aPropert
|
||||||
case ASCH_RECORD_ORIENTATION::RIGHTWARDS:
|
case ASCH_RECORD_ORIENTATION::RIGHTWARDS:
|
||||||
symbol->SetOrientation( SYMBOL_ORIENTATION_T::SYM_ORIENT_90 );
|
symbol->SetOrientation( SYMBOL_ORIENTATION_T::SYM_ORIENT_90 );
|
||||||
valueField->SetTextAngle( ANGLE_VERTICAL );
|
valueField->SetTextAngle( ANGLE_VERTICAL );
|
||||||
valueField->SetHorizJustify( GR_TEXT_H_ALIGN_LEFT );
|
valueField->SetHorizJustify( GR_TEXT_H_ALIGN_RIGHT );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ASCH_RECORD_ORIENTATION::UPWARDS:
|
case ASCH_RECORD_ORIENTATION::UPWARDS:
|
||||||
|
@ -3355,7 +3343,7 @@ void SCH_IO_ALTIUM::ParsePowerPort( const std::map<wxString, wxString>& aPropert
|
||||||
case ASCH_RECORD_ORIENTATION::LEFTWARDS:
|
case ASCH_RECORD_ORIENTATION::LEFTWARDS:
|
||||||
symbol->SetOrientation( SYMBOL_ORIENTATION_T::SYM_ORIENT_270 );
|
symbol->SetOrientation( SYMBOL_ORIENTATION_T::SYM_ORIENT_270 );
|
||||||
valueField->SetTextAngle( ANGLE_VERTICAL );
|
valueField->SetTextAngle( ANGLE_VERTICAL );
|
||||||
valueField->SetHorizJustify( GR_TEXT_H_ALIGN_LEFT );
|
valueField->SetHorizJustify( GR_TEXT_H_ALIGN_RIGHT );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ASCH_RECORD_ORIENTATION::DOWNWARDS:
|
case ASCH_RECORD_ORIENTATION::DOWNWARDS:
|
||||||
|
@ -3866,7 +3854,7 @@ void SCH_IO_ALTIUM::ParseDesignator( const std::map<wxString, wxString>& aProper
|
||||||
|
|
||||||
SCH_FIELD* field = symbol->GetField( REFERENCE_FIELD );
|
SCH_FIELD* field = symbol->GetField( REFERENCE_FIELD );
|
||||||
field->SetPosition( elem.location + m_sheetOffset );
|
field->SetPosition( elem.location + m_sheetOffset );
|
||||||
SetTextPositioning( field, elem.justification, elem.orientation, true );
|
SetTextPositioning( field, elem.justification, elem.orientation );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -4008,7 +3996,7 @@ void SCH_IO_ALTIUM::ParseParameter( const std::map<wxString, wxString>& aPropert
|
||||||
field->SetText( kicadText );
|
field->SetText( kicadText );
|
||||||
field->SetPosition( elem.location + m_sheetOffset );
|
field->SetPosition( elem.location + m_sheetOffset );
|
||||||
field->SetVisible( !elem.isHidden );
|
field->SetVisible( !elem.isHidden );
|
||||||
SetTextPositioning( field, elem.justification, elem.orientation, true );
|
SetTextPositioning( field, elem.justification, elem.orientation );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4081,7 +4069,7 @@ void SCH_IO_ALTIUM::ParseLibParameter( const std::map<wxString, wxString>& aProp
|
||||||
field->SetText( kicadText );
|
field->SetText( kicadText );
|
||||||
|
|
||||||
field->SetTextPos( elem.location );
|
field->SetTextPos( elem.location );
|
||||||
SetTextPositioning( field, elem.justification, elem.orientation, true );
|
SetTextPositioning( field, elem.justification, elem.orientation );
|
||||||
field->SetVisible( !elem.isHidden );
|
field->SetVisible( !elem.isHidden );
|
||||||
|
|
||||||
if( elem.fontId > 0 && elem.fontId <= static_cast<int>( aFontSizes.size() ) )
|
if( elem.fontId > 0 && elem.fontId <= static_cast<int>( aFontSizes.size() ) )
|
||||||
|
|
Loading…
Reference in New Issue