void SetTextParameters( XNODE* aNode, TTEXTVALUE* aTextValue, wxString aDefaultMeasurementUnit, wxString aActualConversion ) { XNODE* tNode; wxString str; tNode = FindNode( aNode, wxT( "pt" ) ); if( tNode ) SetPosition( tNode->GetNodeContent(), aDefaultMeasurementUnit, &aTextValue->textPositionX, &aTextValue->textPositionY, aActualConversion ); tNode = FindNode( aNode, wxT( "rotation" ) ); if( tNode ) { str = tNode->GetNodeContent(); str.Trim( false ); aTextValue->textRotation = StrToInt1Units( str ); } str = FindNodeGetContent( aNode, wxT( "isVisible" ) ); if( str == wxT( "True" ) ) aTextValue->textIsVisible = 1; else if( str == wxT( "False" ) ) aTextValue->textIsVisible = 0; str = FindNodeGetContent( aNode, wxT( "justify" ) ); aTextValue->justify = GetJustifyIdentificator( str ); str = FindNodeGetContent( aNode, wxT( "isFlipped" ) ); if( str == wxT( "True" ) ) aTextValue->mirror = 1; tNode = FindNode( aNode, wxT( "textStyleRef" ) ); if( tNode ) SetFontProperty( tNode, aTextValue, aDefaultMeasurementUnit, aActualConversion ); }
void PCB_TEXT::Parse( XNODE* aNode, int aLayer, wxString aDefaultMeasurementUnit, wxString aActualConversion ) { XNODE* lNode; wxString str; m_PCadLayer = aLayer; m_KiCadLayer = GetKiCadLayer(); m_positionX = 0; m_positionY = 0; m_name.mirror = 0; // Normal, not mirrored lNode = FindNode( aNode, wxT( "pt" ) ); if( lNode ) SetPosition( lNode->GetNodeContent(), aDefaultMeasurementUnit, &m_positionX, &m_positionY, aActualConversion ); lNode = FindNode( aNode, wxT( "rotation" ) ); if( lNode ) { str = lNode->GetNodeContent(); str.Trim( false ); m_rotation = StrToInt1Units( str ); } aNode->GetAttribute( wxT( "Name" ), &m_name.text ); m_name.text.Replace( "\r", "" ); str = FindNodeGetContent( aNode, wxT( "justify" ) ); m_name.justify = GetJustifyIdentificator( str ); str = FindNodeGetContent( aNode, wxT( "isFlipped" ) ); if( str == wxT( "True" ) ) m_name.mirror = 1; lNode = FindNode( aNode, wxT( "textStyleRef" ) ); if( lNode ) SetFontProperty( lNode, &m_name, aDefaultMeasurementUnit, aActualConversion ); }
void PCB_POLYGON::FormPolygon( XNODE* aNode, VERTICES_ARRAY* aPolygon, const wxString& aDefaultMeasurementUnit, const wxString& aActualConversion ) { XNODE* lNode; double x, y; lNode = FindNode( aNode, wxT( "pt" ) ); while( lNode ) { if( lNode->GetName() == wxT( "pt" ) ) { SetDoublePrecisionPosition( lNode->GetNodeContent(), aDefaultMeasurementUnit, &x, &y, aActualConversion ); aPolygon->Add( new wxRealPoint( x, y ) ); } lNode = lNode->GetNext(); } }