More encapsulation work.

* Complete encapsulation of the MODULE class.
* Complete encapsulation of the EDA_TEXT class.
* Encapsulate most of the ZONE_CONTAINER class.
* Add pcbcommon library as a dependency for reSWIGging the scripting
  support.  This should cover most dependency cases.
This commit is contained in:
Wayne Stambaugh 2013-03-18 15:36:07 -04:00
parent da9e6b1679
commit 7d0ec1a138
95 changed files with 846 additions and 896 deletions

View File

@ -245,14 +245,14 @@ void EDA_3D_CANVAS::Draw3D_Zone( ZONE_CONTAINER* aZone )
SetGLColor( color );
glNormal3f( 0.0, 0.0, Get3DLayer_Z_Orientation( layer ) );
if( aZone->m_FillMode == 0 )
if( aZone->GetFillMode() == 0 )
{
// solid polygons only are used to fill areas
if( aZone->GetFilledPolysList().size() > 3 )
{
Draw3D_SolidHorizontalPolyPolygons( aZone->GetFilledPolysList(),
g_Parm_3D_Visu.GetLayerZcoordBIU( layer ),
thickness, g_Parm_3D_Visu.m_BiuTo3Dunits );
g_Parm_3D_Visu.GetLayerZcoordBIU( layer ),
thickness, g_Parm_3D_Visu.m_BiuTo3Dunits );
}
}
else
@ -261,7 +261,7 @@ void EDA_3D_CANVAS::Draw3D_Zone( ZONE_CONTAINER* aZone )
for( unsigned iseg = 0; iseg < aZone->m_FillSegmList.size(); iseg++ )
Draw3D_SolidSegment( aZone->m_FillSegmList[iseg].m_Start,
aZone->m_FillSegmList[iseg].m_End,
aZone->m_ZoneMinThickness, thickness, zpos,
aZone->GetMinThickness(), thickness, zpos,
g_Parm_3D_Visu.m_BiuTo3Dunits );
}
@ -271,7 +271,7 @@ void EDA_3D_CANVAS::Draw3D_Zone( ZONE_CONTAINER* aZone )
if( polysList.size() == 0 )
return;
if( aZone->m_ZoneMinThickness <= 1 )
if( aZone->GetMinThickness() <= 1 )
return;
int imax = polysList.size() - 1;
@ -288,7 +288,7 @@ void EDA_3D_CANVAS::Draw3D_Zone( ZONE_CONTAINER* aZone )
wxPoint start( begincorner->x, begincorner->y );
wxPoint end( endcorner->x, endcorner->y );
Draw3D_SolidSegment( start, end,
aZone->m_ZoneMinThickness, thickness, zpos,
aZone->GetMinThickness(), thickness, zpos,
g_Parm_3D_Visu.m_BiuTo3Dunits );
}
@ -301,7 +301,7 @@ void EDA_3D_CANVAS::Draw3D_Zone( ZONE_CONTAINER* aZone )
wxPoint start( endcorner->x, endcorner->y );
wxPoint end( firstcorner->x, firstcorner->y );
Draw3D_SolidSegment( start, end,
aZone->m_ZoneMinThickness, thickness, zpos,
aZone->GetMinThickness(), thickness, zpos,
g_Parm_3D_Visu.m_BiuTo3Dunits );
}
@ -625,15 +625,15 @@ void EDA_3D_CANVAS::Draw3D_DrawText( TEXTE_PCB* text )
s_Text3DZPos = g_Parm_3D_Visu.GetLayerZcoordBIU( layer );
s_Text3DWidth = text->GetThickness();
glNormal3f( 0.0, 0.0, Get3DLayer_Z_Orientation( layer ) );
wxSize size = text->m_Size;
wxSize size = text->GetSize();
s_thickness = g_Parm_3D_Visu.GetLayerObjectThicknessBIU( layer );
if( text->m_Mirror )
if( text->IsMirrored() )
NEGATE( size.x );
if( text->m_MultilineAllowed )
if( text->IsMultilineAllowed() )
{
wxPoint pos = text->m_Pos;
wxPoint pos = text->GetTextPosition();
wxArrayString* list = wxStringSplit( text->GetText(), '\n' );
wxPoint offset;
@ -646,8 +646,8 @@ void EDA_3D_CANVAS::Draw3D_DrawText( TEXTE_PCB* text )
wxString txt = list->Item( i );
DrawGraphicText( NULL, NULL, pos, (EDA_COLOR_T) color,
txt, text->GetOrientation(), size,
text->m_HJustify, text->m_VJustify,
text->GetThickness(), text->m_Italic,
text->GetHorizJustify(), text->GetVertJustify(),
text->GetThickness(), text->IsItalic(),
true, Draw3dTextSegm );
pos += offset;
}
@ -656,10 +656,10 @@ void EDA_3D_CANVAS::Draw3D_DrawText( TEXTE_PCB* text )
}
else
{
DrawGraphicText( NULL, NULL, text->m_Pos, (EDA_COLOR_T) color,
DrawGraphicText( NULL, NULL, text->GetTextPosition(), (EDA_COLOR_T) color,
text->GetText(), text->GetOrientation(), size,
text->m_HJustify, text->m_VJustify,
text->GetThickness(), text->m_Italic,
text->GetHorizJustify(), text->GetVertJustify(),
text->GetThickness(), text->IsItalic(),
true,
Draw3dTextSegm );
}

View File

@ -47,7 +47,7 @@
EDA_TEXT::EDA_TEXT( const wxString& text )
{
m_Size.x = m_Size.y = MILS_TO_IU( DEFAULT_SIZE_TEXT ); // Width and height of font.
m_Size.x = m_Size.y = Mils2iu( DEFAULT_SIZE_TEXT ); // Width and height of font.
m_Orient = 0; // Rotation angle in 0.1 degrees.
m_Attributs = 0;
m_Mirror = false; // display mirror if true
@ -325,8 +325,8 @@ wxString EDA_TEXT::GetTextStyleName()
bool EDA_TEXT::IsDefaultFormatting() const
{
return ( ( m_Size.x == DEFAULT_SIZE_TEXT )
&& ( m_Size.y == DEFAULT_SIZE_TEXT )
return ( ( m_Size.x == Mils2iu( DEFAULT_SIZE_TEXT ) )
&& ( m_Size.y == Mils2iu( DEFAULT_SIZE_TEXT ) )
&& ( m_Attributs == 0 )
&& ( m_Mirror == false )
&& ( m_HJustify == GR_TEXT_HJUSTIFY_CENTER )
@ -345,14 +345,15 @@ void EDA_TEXT::Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aControl
{
aFormatter->Print( aNestLevel+1, "(effects" );
if( ( m_Size.x != DEFAULT_SIZE_TEXT ) || ( m_Size.y != DEFAULT_SIZE_TEXT ) || m_Bold
|| m_Italic )
if( ( m_Size.x != Mils2iu( DEFAULT_SIZE_TEXT ) )
|| ( m_Size.y != Mils2iu( DEFAULT_SIZE_TEXT ) ) || m_Bold || m_Italic )
{
aFormatter->Print( 0, " (font" );
// Add font support here at some point in the future.
if( ( m_Size.x != DEFAULT_SIZE_TEXT ) || ( m_Size.y != DEFAULT_SIZE_TEXT ) )
if( ( m_Size.x != Mils2iu( DEFAULT_SIZE_TEXT ) )
|| ( m_Size.y != Mils2iu( DEFAULT_SIZE_TEXT ) ) )
aFormatter->Print( 0, " (size %s %s)", FMT_IU( m_Size.GetHeight() ).c_str(),
FMT_IU( m_Size.GetWidth() ).c_str() );

View File

@ -118,14 +118,14 @@ bool SCH_EDIT_FRAME::ProcessCmpToFootprintLinkFile( wxString& aFullFilename,
// So we *do not* stop the search here
SCH_COMPONENT* component = referencesList[ii].GetComponent();
SCH_FIELD * fpfield = component->GetField( FOOTPRINT );
fpfield->m_Text = footprint;
fpfield->SetText( footprint );
if( aForceFieldsVisibleAttribute )
{
if( aFieldsVisibleAttributeState )
component->GetField( FOOTPRINT )->m_Attributs &= ~TEXT_NO_VISIBLE;
component->GetField( FOOTPRINT )->SetVisible( false );
else
component->GetField( FOOTPRINT )->m_Attributs |= TEXT_NO_VISIBLE;
component->GetField( FOOTPRINT )->SetVisible( true );
}
}
}

View File

@ -248,7 +248,7 @@ order = Alphab. ) count = %d\n\n"
msg.Printf( wxT( "> %-28.28s %s %s\n" ),
GetChars( label->GetText() ),
GetChars( labeltype ),
GetChars( returnURLItemLocation( sheetpath, label->m_Pos ) ) );
GetChars( returnURLItemLocation( sheetpath, label->GetPosition() ) ) );
fputs( TO_UTF8( msg ), m_outFile );
break;
@ -262,7 +262,7 @@ order = Alphab. ) count = %d\n\n"
GetChars( labeltype ),
GetChars( returnURLItemLocation( m_labelList[ii].GetSheetPath().
PathHumanReadable(),
pinsheet->m_Pos ) ) );
pinsheet->GetPosition() ) ) );
fputs( TO_UTF8( msg ), m_outFile );
break;
@ -294,7 +294,7 @@ const wxString BOM_LISTER::returnFieldsString( SCH_COMPONENT* aComponent )
continue;
if( aComponent->GetFieldCount() > ii )
text = aComponent->GetField( ii )->m_Text;
text = aComponent->GetField( ii )->GetText();
else
text = wxEmptyString;
@ -388,11 +388,11 @@ bool BOM_LISTER::PrintComponentsListByReferenceHumanReadable( FILE* aFile )
}
fprintf( m_outFile, "| %-10s %-12s", CmpName.c_str(),
TO_UTF8( comp->GetField( VALUE )->m_Text ) );
TO_UTF8( comp->GetField( VALUE )->GetText() ) );
if( addDatasheet )
fprintf( m_outFile, "%-20s",
TO_UTF8( comp->GetField( DATASHEET )->m_Text ) );
TO_UTF8( comp->GetField( DATASHEET )->GetText() ) );
if( m_includeSubComponents )
{
@ -531,19 +531,19 @@ bool BOM_LISTER::PrintComponentsListByReferenceCsvForm( FILE* aFile )
{
// Store value and datasheet (will be printed later)
strCur.Empty();
strCur << (wxChar)m_separatorSymbol << comp->GetField( VALUE )->m_Text;
strCur << (wxChar)m_separatorSymbol << comp->GetField( VALUE )->GetText();
if( addDatasheet )
strCur << (wxChar)m_separatorSymbol << comp->GetField( DATASHEET )->m_Text;
strCur << (wxChar)m_separatorSymbol << comp->GetField( DATASHEET )->GetText();
}
else
{
// Print the current component reference, value and datasheet
msg = cmpName;
msg << (wxChar)m_separatorSymbol << comp->GetField( VALUE )->m_Text;
msg << (wxChar)m_separatorSymbol << comp->GetField( VALUE )->GetText();
if( addDatasheet )
msg << (wxChar)m_separatorSymbol << comp->GetField( DATASHEET )->m_Text;
msg << (wxChar)m_separatorSymbol << comp->GetField( DATASHEET )->GetText();
fprintf( m_outFile, "%s", TO_UTF8( msg ) );
}
@ -698,7 +698,7 @@ int BOM_LISTER::PrintComponentsListByValue( FILE* aFile )
cmpName += TO_UTF8( LIB_COMPONENT::ReturnSubReference( m_cmplist[ii].GetUnit() ) );
fprintf( m_outFile, "| %-12s %-10s",
TO_UTF8( drawLibItem->GetField( VALUE )->m_Text ),
TO_UTF8( drawLibItem->GetField( VALUE )->GetText() ),
cmpName.c_str() );
// print the sheet path and location

View File

@ -176,7 +176,7 @@ LIB_COMPONENT::LIB_COMPONENT( const wxString& aName, CMP_LIBRARY* aLibrary ) :
// Add the MANDATORY_FIELDS in RAM only. These are assumed to be present
// when the field editors are invoked.
LIB_FIELD* value = new LIB_FIELD( this, VALUE );
value->m_Text = aName;
value->SetText( aName );
drawings.push_back( value );
drawings.push_back( new LIB_FIELD( this, REFERENCE ) );
@ -266,7 +266,7 @@ wxString LIB_COMPONENT::ReturnSubReference( int aUnit )
void LIB_COMPONENT::SetName( const wxString& aName )
{
m_name = aName;
GetValueField().m_Text = aName;
GetValueField().SetText( aName );
m_aliases[0]->SetName( aName );
}
@ -535,25 +535,25 @@ bool LIB_COMPONENT::Save( OUTPUTFORMATTER& aFormatter )
LIB_FIELD& value = GetValueField();
// First line: it s a comment (component name for readers)
aFormatter.Print( 0, "#\n# %s\n#\n", TO_UTF8( value.m_Text ) );
aFormatter.Print( 0, "#\n# %s\n#\n", TO_UTF8( value.GetText() ) );
// Save data
aFormatter.Print( 0, "DEF" );
if( value.IsVisible() )
{
aFormatter.Print( 0, " %s", TO_UTF8( value.m_Text ) );
aFormatter.Print( 0, " %s", TO_UTF8( value.GetText() ) );
}
else
{
aFormatter.Print( 0, " ~%s", TO_UTF8( value.m_Text ) );
aFormatter.Print( 0, " ~%s", TO_UTF8( value.GetText() ) );
}
LIB_FIELD& reference = GetReferenceField();
if( !reference.m_Text.IsEmpty() )
if( !reference.GetText().IsEmpty() )
{
aFormatter.Print( 0, " %s", TO_UTF8( reference.m_Text ) );
aFormatter.Print( 0, " %s", TO_UTF8( reference.GetText() ) );
}
else
{
@ -593,7 +593,7 @@ bool LIB_COMPONENT::Save( OUTPUTFORMATTER& aFormatter )
// There is no need to save empty fields, i.e. no reason to preserve field
// names now that fields names come in dynamically through the template
// fieldnames.
if( !fields[i].m_Text.IsEmpty() )
if( !fields[i].GetText().IsEmpty() )
{
fields[i].SetId( fieldId++ );
@ -724,13 +724,15 @@ bool LIB_COMPONENT::Load( LINE_READER& aLineReader, wxString& aErrorMsg )
if( componentName[0] != '~' )
{
m_name = value.m_Text = FROM_UTF8( componentName );
m_name = value.m_Text = m_name.MakeUpper();
m_name = FROM_UTF8( componentName );
m_name = m_name.MakeUpper();
value.SetText( m_name );
}
else
{
m_name = value.m_Text = FROM_UTF8( &componentName[1] );
value.m_Attributs |= TEXT_NO_VISIBLE;
m_name = FROM_UTF8( &componentName[1] );
value.SetText( m_name );
value.SetVisible( false );
}
// Add the root alias to the alias list.
@ -740,12 +742,12 @@ bool LIB_COMPONENT::Load( LINE_READER& aLineReader, wxString& aErrorMsg )
if( strcmp( prefix, "~" ) == 0 )
{
reference.m_Text.Empty();
reference.m_Attributs |= TEXT_NO_VISIBLE;
reference.Empty();
reference.SetVisible( false );
}
else
{
reference.m_Text = FROM_UTF8( prefix );
reference.SetText( FROM_UTF8( prefix ) );
}
// Copy optional infos
@ -927,7 +929,7 @@ bool LIB_COMPONENT::LoadField( LINE_READER& aLineReader, wxString& aErrorMsg )
*fixedField = *field;
if( field->GetId() == VALUE )
m_name = field->m_Text;
m_name = field->GetText();
SAFE_DELETE( field );
}

View File

@ -329,15 +329,12 @@ bool SCH_REFERENCE_LIST::sortByReferenceOnly( const SCH_REFERENCE& item1,
const SCH_REFERENCE& item2 )
{
int ii;
const wxString* Text1, * Text2;
ii = RefDesStringCompare( item1.GetRef(), item2.GetRef() );
if( ii == 0 )
{
Text1 = &( item1.m_RootCmp->GetField( VALUE )->m_Text );
Text2 = &( item2.m_RootCmp->GetField( VALUE )->m_Text );
ii = Text1->CmpNoCase( *Text2 );
ii = item1.m_RootCmp->GetField( VALUE )->GetText().CmpNoCase( item2.m_RootCmp->GetField( VALUE )->GetText() );
}
if( ii == 0 )
@ -803,21 +800,21 @@ int SCH_REFERENCE_LIST::CheckAnnotation( wxArrayString* aMessageList )
GetChars( componentFlatList[ii].GetRef() ),
componentFlatList[ii].m_NumRef,
componentFlatList[ii].m_Unit,
GetChars( *componentFlatList[ii].m_Value ),
GetChars( componentFlatList[ii].m_Value-GetText() ),
GetChars( componentFlatList[next].GetRef() ),
componentFlatList[next].m_NumRef,
componentFlatList[next].m_Unit,
componentFlatList[next].m_Value->GetData() );
componentFlatList[next].m_Value->GetText().GetData() );
#else
msg.Printf( _( "Different values for %s%d%c (%s) and %s%d%c (%s)" ),
GetChars( componentFlatList[ii].GetRef() ),
componentFlatList[ii].m_NumRef,
componentFlatList[ii].m_Unit + 'A' - 1,
GetChars( *componentFlatList[ii].m_Value ),
GetChars( componentFlatList[ii].m_Value->GetText() ),
GetChars( componentFlatList[next].GetRef() ),
componentFlatList[next].m_NumRef,
componentFlatList[next].m_Unit + 'A' - 1,
GetChars( *componentFlatList[next].m_Value ) );
GetChars( componentFlatList[next].m_Value->GetText() ) );
#endif
if( aMessageList )
@ -884,7 +881,7 @@ SCH_REFERENCE::SCH_REFERENCE( SCH_COMPONENT* aComponent, LIB_COMPONENT* aLibComp
if( aComponent->GetField( VALUE )->GetText().IsEmpty() )
aComponent->GetField( VALUE )->SetText( wxT( "~" ) );
m_Value = &aComponent->GetField( VALUE )->m_Text;
m_Value = aComponent->GetField( VALUE );
}

View File

@ -110,7 +110,7 @@ SCH_ITEM* SCH_EDIT_FRAME::LocateAndShowItem( const wxPoint& aPosition, const KIC
if( LibItem )
items.push_back( MSG_PANEL_ITEM( LibItem->GetRef( m_CurrentSheet ),
LibItem->GetField( VALUE )->m_Text, DARKCYAN ) );
LibItem->GetField( VALUE )->GetText(), DARKCYAN ) );
SetMsgPanel( items );

View File

@ -132,14 +132,14 @@ void SCH_EDIT_FRAME::SendMessageToPCBNEW( EDA_ITEM* objectToSync, SCH_COMPONENT*
if( LibItem == NULL )
break;
sprintf( Line, "$PART: %s", TO_UTF8( LibItem->GetField( REFERENCE )->m_Text ) );
sprintf( Line, "$PART: %s", TO_UTF8( LibItem->GetField( REFERENCE )->GetText() ) );
SendCommand( MSG_TO_PCB, Line );
}
break;
case SCH_COMPONENT_T:
LibItem = (SCH_COMPONENT*) objectToSync;
sprintf( Line, "$PART: %s", TO_UTF8( LibItem->GetField( REFERENCE )->m_Text ) );
sprintf( Line, "$PART: %s", TO_UTF8( LibItem->GetField( REFERENCE )->GetText() ) );
SendCommand( MSG_TO_PCB, Line );
break;
@ -154,11 +154,11 @@ void SCH_EDIT_FRAME::SendMessageToPCBNEW( EDA_ITEM* objectToSync, SCH_COMPONENT*
wxString pinnum;
Pin->ReturnPinStringNum( pinnum );
sprintf( Line, "$PIN: %s $PART: %s", TO_UTF8( pinnum ),
TO_UTF8( LibItem->GetField( REFERENCE )->m_Text ) );
TO_UTF8( LibItem->GetField( REFERENCE )->GetText() ) );
}
else
{
sprintf( Line, "$PART: %s", TO_UTF8( LibItem->GetField( REFERENCE )->m_Text ) );
sprintf( Line, "$PART: %s", TO_UTF8( LibItem->GetField( REFERENCE )->GetText() ) );
}
SendCommand( MSG_TO_PCB, Line );

View File

@ -216,7 +216,7 @@ void DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::OnOKButtonClick( wxCommandEvent& event
if( !copyPanelToSelectedField() )
return;
if( ! SCH_COMPONENT::IsReferenceStringValid( m_FieldsBuf[REFERENCE].m_Text ) )
if( ! SCH_COMPONENT::IsReferenceStringValid( m_FieldsBuf[REFERENCE].GetText() ) )
{
DisplayError( NULL, _( "Illegal reference. A reference must start with a letter" ) );
return;
@ -233,7 +233,7 @@ void DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::OnOKButtonClick( wxCommandEvent& event
// change all field positions from relative to absolute
for( unsigned i = 0; i<m_FieldsBuf.size(); ++i )
{
m_FieldsBuf[i].m_Pos += m_Cmp->m_Pos;
m_FieldsBuf[i].SetPosition( m_FieldsBuf[i].GetPosition() + m_Cmp->m_Pos );
}
// Delete any fields with no name before we copy all of m_FieldsBuf back into the component.
@ -274,7 +274,7 @@ Do you wish to remove this and all remaining undefined fields?" ),
LIB_COMPONENT* entry = CMP_LIBRARY::FindLibraryComponent( m_Cmp->m_ChipName );
if( entry && entry->IsPower() )
m_FieldsBuf[VALUE].m_Text = m_Cmp->m_ChipName;
m_FieldsBuf[VALUE].SetText( m_Cmp->m_ChipName );
// copy all the fields back, and change the length of m_Fields.
m_Cmp->SetFields( m_FieldsBuf );
@ -282,7 +282,7 @@ Do you wish to remove this and all remaining undefined fields?" ),
// Reference has a specific initialization, depending on the current active sheet
// because for a given component, in a complex hierarchy, there are more than one
// reference.
m_Cmp->SetRef( &m_Parent->GetCurrentSheet(), m_FieldsBuf[REFERENCE].m_Text );
m_Cmp->SetRef( &m_Parent->GetCurrentSheet(), m_FieldsBuf[REFERENCE].GetText() );
m_Parent->OnModify();
m_Parent->GetScreen()->TestDanglingEnds();
@ -303,7 +303,7 @@ void DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::addFieldButtonHandler( wxCommandEvent&
SCH_FIELD blank( wxPoint(), fieldNdx, m_Cmp );
blank.m_Orient = m_FieldsBuf[REFERENCE].m_Orient;
blank.SetOrientation( m_FieldsBuf[REFERENCE].GetOrientation() );
m_FieldsBuf.push_back( blank );
m_FieldsBuf[fieldNdx].SetName( TEMPLATE_FIELDNAME::GetDefaultFieldName( fieldNdx ) );
@ -364,7 +364,7 @@ void DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::moveUpButtonHandler( wxCommandEvent& ev
SCH_FIELD tmp = m_FieldsBuf[fieldNdx - 1];
D( printf( "tmp.m_Text=\"%s\" tmp.m_Name=\"%s\"\n",
TO_UTF8( tmp.m_Text ), TO_UTF8( tmp.GetName( false ) ) ); )
TO_UTF8( tmp.GetText() ), TO_UTF8( tmp.GetName( false ) ) ); )
m_FieldsBuf[fieldNdx - 1] = m_FieldsBuf[fieldNdx];
setRowItem( fieldNdx - 1, m_FieldsBuf[fieldNdx] );
@ -458,7 +458,7 @@ void DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::InitBuffers( SCH_COMPONENT* aComponent
m_FieldsBuf.push_back( aComponent->m_Fields[i] );
// make the editable field position relative to the component
m_FieldsBuf[i].m_Pos -= m_Cmp->m_Pos;
m_FieldsBuf[i].SetPosition( m_FieldsBuf[i].GetPosition() - m_Cmp->m_Pos );
}
// Add template fieldnames:
@ -480,18 +480,18 @@ void DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::InitBuffers( SCH_COMPONENT* aComponent
if( !schField )
{
if( !it->m_Visible )
fld.m_Attributs |= TEXT_NO_VISIBLE;
fld.SetVisible( false );
else
fld.m_Attributs &= ~TEXT_NO_VISIBLE;
fld.SetVisible( true );
fld.m_Text = it->m_Value; // empty? ok too.
fld.SetText( it->m_Value ); // empty? ok too.
}
else
{
fld = *schField;
// make the editable field position relative to the component
fld.m_Pos -= m_Cmp->m_Pos;
fld.SetPosition( fld.GetPosition() - m_Cmp->m_Pos );
}
m_FieldsBuf.push_back( fld );
@ -510,7 +510,7 @@ void DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::InitBuffers( SCH_COMPONENT* aComponent
m_FieldsBuf.push_back( *cmp );
// make the editable field position relative to the component
m_FieldsBuf[newNdx].m_Pos -= m_Cmp->m_Pos;
m_FieldsBuf[newNdx].SetPosition( m_FieldsBuf[newNdx].GetPosition() - m_Cmp->m_Pos );
}
}
@ -523,7 +523,7 @@ void DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::InitBuffers( SCH_COMPONENT* aComponent
}
#endif
m_FieldsBuf[REFERENCE].m_Text = m_Cmp->GetRef( &m_Parent->GetCurrentSheet() );
m_FieldsBuf[REFERENCE].SetText( m_Cmp->GetRef( &m_Parent->GetCurrentSheet() ) );
for( unsigned i = 0; i<m_FieldsBuf.size(); ++i )
{
@ -590,31 +590,31 @@ void DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::copySelectedFieldToPanel()
SCH_FIELD& field = m_FieldsBuf[fieldNdx];
showCheckBox->SetValue( !(field.m_Attributs & TEXT_NO_VISIBLE) );
showCheckBox->SetValue( field.IsVisible() );
rotateCheckBox->SetValue( field.m_Orient == TEXT_ORIENT_VERT );
rotateCheckBox->SetValue( field.GetOrientation() == TEXT_ORIENT_VERT );
int style = 0;
if( field.m_Italic )
if( field.IsItalic() )
style = 1;
if( field.m_Bold )
if( field.IsBold() )
style |= 2;
m_StyleRadioBox->SetSelection( style );
// Select the right text justification
if( field.m_HJustify == GR_TEXT_HJUSTIFY_LEFT )
if( field.GetHorizJustify() == GR_TEXT_HJUSTIFY_LEFT )
m_FieldHJustifyCtrl->SetSelection(0);
else if( field.m_HJustify == GR_TEXT_HJUSTIFY_RIGHT )
else if( field.GetHorizJustify() == GR_TEXT_HJUSTIFY_RIGHT )
m_FieldHJustifyCtrl->SetSelection(2);
else
m_FieldHJustifyCtrl->SetSelection(1);
if( field.m_VJustify == GR_TEXT_VJUSTIFY_BOTTOM )
if( field.GetVertJustify() == GR_TEXT_VJUSTIFY_BOTTOM )
m_FieldVJustifyCtrl->SetSelection(0);
else if( field.m_VJustify == GR_TEXT_VJUSTIFY_TOP )
else if( field.GetVertJustify() == GR_TEXT_VJUSTIFY_TOP )
m_FieldVJustifyCtrl->SetSelection(2);
else
m_FieldVJustifyCtrl->SetSelection(1);
@ -633,7 +633,7 @@ void DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::copySelectedFieldToPanel()
// may only delete user defined fields
deleteFieldButton->Enable( fieldNdx >= MANDATORY_FIELDS );
fieldValueTextCtrl->SetValue( field.m_Text );
fieldValueTextCtrl->SetValue( field.GetText() );
// For power symbols, the value is NOR editable, because value and pin
// name must be same and can be edited only in library editor
@ -642,23 +642,23 @@ void DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::copySelectedFieldToPanel()
else
fieldValueTextCtrl->Enable( true );
textSizeTextCtrl->SetValue( EDA_GRAPHIC_TEXT_CTRL::FormatSize( g_UserUnit, field.m_Size.x ) );
textSizeTextCtrl->SetValue( EDA_GRAPHIC_TEXT_CTRL::FormatSize( g_UserUnit, field.GetSize().x ) );
wxPoint coord = field.m_Pos;
wxPoint coord = field.GetPosition();
wxPoint zero = -m_Cmp->m_Pos; // relative zero
// If the field value is empty and the position is at relative zero, we
// set the initial position as a small offset from the ref field, and
// orient it the same as the ref field. That is likely to put it at least
// close to the desired position.
if( coord == zero && field.m_Text.IsEmpty() )
if( coord == zero && field.GetText().IsEmpty() )
{
rotateCheckBox->SetValue( m_FieldsBuf[REFERENCE].m_Orient == TEXT_ORIENT_VERT );
rotateCheckBox->SetValue( m_FieldsBuf[REFERENCE].GetOrientation() == TEXT_ORIENT_VERT );
coord.x = m_FieldsBuf[REFERENCE].m_Pos.x
coord.x = m_FieldsBuf[REFERENCE].GetPosition().x
+ ( fieldNdx - MANDATORY_FIELDS + 1 ) * 100;
coord.y = m_FieldsBuf[REFERENCE].m_Pos.y
coord.y = m_FieldsBuf[REFERENCE].GetPosition().y
+ ( fieldNdx - MANDATORY_FIELDS + 1 ) * 100;
// coord can compute negative if field is < MANDATORY_FIELDS, e.g. FOOTPRINT.
@ -683,17 +683,14 @@ bool DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::copyPanelToSelectedField()
SCH_FIELD& field = m_FieldsBuf[fieldNdx];
if( showCheckBox->GetValue() )
field.m_Attributs &= ~TEXT_NO_VISIBLE;
else
field.m_Attributs |= TEXT_NO_VISIBLE;
field.SetVisible( showCheckBox->GetValue() );
if( rotateCheckBox->GetValue() )
field.m_Orient = TEXT_ORIENT_VERT;
field.SetOrientation( TEXT_ORIENT_VERT );
else
field.m_Orient = TEXT_ORIENT_HORIZ;
field.SetOrientation( TEXT_ORIENT_HORIZ );
rotateCheckBox->SetValue( field.m_Orient == TEXT_ORIENT_VERT );
rotateCheckBox->SetValue( field.GetOrientation() == TEXT_ORIENT_VERT );
// Copy the text justification
EDA_TEXT_HJUSTIFY_T hjustify[3] = {
@ -706,8 +703,8 @@ bool DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::copyPanelToSelectedField()
GR_TEXT_VJUSTIFY_TOP
};
field.m_HJustify = hjustify[m_FieldHJustifyCtrl->GetSelection()];
field.m_VJustify = vjustify[m_FieldVJustifyCtrl->GetSelection()];
field.SetHorizJustify( hjustify[m_FieldHJustifyCtrl->GetSelection()] );
field.SetVertJustify( vjustify[m_FieldVJustifyCtrl->GetSelection()] );
field.SetName( fieldNameTextCtrl->GetValue() );
@ -717,27 +714,21 @@ bool DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::copyPanelToSelectedField()
* When void, usually netlists are broken
*/
if( !fieldValueTextCtrl->GetValue().IsEmpty() || fieldNdx > VALUE )
field.m_Text = fieldValueTextCtrl->GetValue();
field.SetText( fieldValueTextCtrl->GetValue() );
setRowItem( fieldNdx, field ); // update fieldListCtrl
field.m_Size.x = EDA_GRAPHIC_TEXT_CTRL::ParseSize( textSizeTextCtrl->GetValue(), g_UserUnit );
field.m_Size.y = field.m_Size.x;
int tmp = EDA_GRAPHIC_TEXT_CTRL::ParseSize( textSizeTextCtrl->GetValue(), g_UserUnit );
field.SetSize( wxSize( tmp, tmp ) );
int style = m_StyleRadioBox->GetSelection();
if( (style & 1 ) != 0 )
field.m_Italic = true;
else
field.m_Italic = false;
field.SetItalic( (style & 1 ) != 0 );
field.SetBold( (style & 2 ) != 0 );
if( (style & 2 ) != 0 )
field.m_Bold = true;
else
field.m_Bold = false;
field.m_Pos.x = ReturnValueFromString( g_UserUnit, posXTextCtrl->GetValue() );
field.m_Pos.y = ReturnValueFromString( g_UserUnit, posYTextCtrl->GetValue() );
wxPoint pos;
pos.x = ReturnValueFromString( g_UserUnit, posXTextCtrl->GetValue() );
pos.y = ReturnValueFromString( g_UserUnit, posYTextCtrl->GetValue() );
field.SetPosition( pos );
return true;
}
@ -853,11 +844,11 @@ void DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::SetInitCmp( wxCommandEvent& event )
// Perhaps the FOOTPRINT field should also be considered,
// but for most of components it is not set in library
LIB_FIELD& refField = entry->GetReferenceField();
m_Cmp->GetField( REFERENCE )->m_Pos = refField.m_Pos + m_Cmp->m_Pos;
m_Cmp->GetField( REFERENCE )->SetPosition( refField.GetPosition() + m_Cmp->m_Pos );
m_Cmp->GetField( REFERENCE )->ImportValues( refField );
LIB_FIELD& valField = entry->GetValueField();
m_Cmp->GetField( VALUE )->m_Pos = valField.m_Pos + m_Cmp->m_Pos;
m_Cmp->GetField( VALUE )->SetPosition( valField.GetPosition() + m_Cmp->m_Pos );
m_Cmp->GetField( VALUE )->ImportValues( valField );
m_Cmp->SetOrientation( CMP_NORMAL );

View File

@ -99,7 +99,7 @@ void DIALOG_LABEL_EDITOR::InitDialog()
wxString msg;
bool multiLine = false;
if( m_CurrentText->m_MultilineAllowed )
if( m_CurrentText->IsMultilineAllowed() )
{
m_textLabel = m_textLabelMultiLine;
m_textLabelSingleLine->Show(false);
@ -111,7 +111,7 @@ void DIALOG_LABEL_EDITOR::InitDialog()
m_textLabelMultiLine->Show(false);
}
m_textLabel->SetValue( m_CurrentText->m_Text );
m_textLabel->SetValue( m_CurrentText->GetText() );
m_textLabel->SetFocus();
switch( m_CurrentText->Type() )
@ -146,19 +146,19 @@ void DIALOG_LABEL_EDITOR::InitDialog()
if ( !multiLine )
{
max_len =m_CurrentText->m_Text.Length();
max_len =m_CurrentText->GetText().Length();
}
else
{
// calculate the length of the biggest line
// we cannot use the length of the entire text that has no meaning
int curr_len = MINTEXTWIDTH;
int imax = m_CurrentText->m_Text.Len();
int imax = m_CurrentText->GetText().Length();
for( int count = 0; count < imax; count++ )
{
if( m_CurrentText->m_Text[count] == '\n' ||
m_CurrentText->m_Text[count] == '\r' ) // new line
if( m_CurrentText->GetText()[count] == '\n' ||
m_CurrentText->GetText()[count] == '\r' ) // new line
{
curr_len = 0;
}
@ -185,10 +185,10 @@ void DIALOG_LABEL_EDITOR::InitDialog()
int style = 0;
if( m_CurrentText->m_Italic )
if( m_CurrentText->IsItalic() )
style = 1;
if( m_CurrentText->m_Bold )
if( m_CurrentText->IsBold() )
style += 2;
m_TextStyle->SetSelection( style );
@ -197,7 +197,7 @@ void DIALOG_LABEL_EDITOR::InitDialog()
msg = _( "H" ) + units + _( " x W" ) + units;
m_staticSizeUnits->SetLabel( msg );
msg = ReturnStringFromValue( g_UserUnit, m_CurrentText->m_Size.x );
msg = ReturnStringFromValue( g_UserUnit, m_CurrentText->GetSize().x );
m_TextSize->SetValue( msg );
if( m_CurrentText->Type() != SCH_GLOBAL_LABEL_T
@ -257,7 +257,7 @@ void DIALOG_LABEL_EDITOR::TextPropertiesAccept( wxCommandEvent& aEvent )
text = m_textLabel->GetValue();
if( !text.IsEmpty() )
m_CurrentText->m_Text = text;
m_CurrentText->SetText( text );
else if( !m_CurrentText->IsNew() )
{
DisplayError( this, _( "Empty Text!" ) );
@ -267,34 +267,31 @@ void DIALOG_LABEL_EDITOR::TextPropertiesAccept( wxCommandEvent& aEvent )
m_CurrentText->SetOrientation( m_TextOrient->GetSelection() );
text = m_TextSize->GetValue();
value = ReturnValueFromString( g_UserUnit, text );
m_CurrentText->m_Size.x = m_CurrentText->m_Size.y = value;
m_CurrentText->SetSize( wxSize( value, value ) );
if( m_TextShape )
m_CurrentText->SetShape( m_TextShape->GetSelection() );
int style = m_TextStyle->GetSelection();
if( ( style & 1 ) )
m_CurrentText->m_Italic = 1;
else
m_CurrentText->m_Italic = 0;
m_CurrentText->SetItalic( ( style & 1 ) );
if( ( style & 2 ) )
{
m_CurrentText->m_Bold = true;
m_CurrentText->m_Thickness = GetPenSizeForBold( m_CurrentText->m_Size.x );
m_CurrentText->SetBold( true );
m_CurrentText->SetThickness( GetPenSizeForBold( m_CurrentText->GetSize().x ) );
}
else
{
m_CurrentText->m_Bold = false;
m_CurrentText->m_Thickness = 0;
m_CurrentText->SetBold( false );
m_CurrentText->SetThickness( 0 );
}
m_Parent->OnModify();
/* Make the text size as new default size if it is a new text */
if( m_CurrentText->IsNew() )
m_Parent->SetDefaultLabelSize( m_CurrentText->m_Size.x );
m_Parent->SetDefaultLabelSize( m_CurrentText->GetSize().x );
m_Parent->GetCanvas()->RefreshDrawingRect( m_CurrentText->GetBoundingBox() );
m_Parent->GetCanvas()->MoveCursorToCrossHair();

View File

@ -222,7 +222,7 @@ void DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::OnOKButtonClick( wxCommandEvent& event
return;
// test if reference prefix is acceptable
if( ! SCH_COMPONENT::IsReferenceStringValid( m_FieldsBuf[REFERENCE].m_Text ) )
if( ! SCH_COMPONENT::IsReferenceStringValid( m_FieldsBuf[REFERENCE].GetText() ) )
{
DisplayError( NULL, _( "Illegal reference prefix. A reference must start by a letter" ) );
return;
@ -235,7 +235,7 @@ void DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::OnOKButtonClick( wxCommandEvent& event
*/
/* If a new name entered in the VALUE field, that it not an existing alias name
* or root alias of the component */
wxString newvalue = m_FieldsBuf[VALUE].m_Text;
wxString newvalue = m_FieldsBuf[VALUE].GetText();
if( m_LibEntry->HasAlias( newvalue ) && !m_LibEntry->GetAlias( newvalue )->IsRoot() )
{
@ -255,7 +255,7 @@ An alias %s already exists!\nCannot update this component" ),
// back into the component
for( unsigned i = MANDATORY_FIELDS; i < m_FieldsBuf.size(); )
{
if( m_FieldsBuf[i].GetName().IsEmpty() || m_FieldsBuf[i].m_Text.IsEmpty() )
if( m_FieldsBuf[i].GetName().IsEmpty() || m_FieldsBuf[i].GetText().IsEmpty() )
{
m_FieldsBuf.erase( m_FieldsBuf.begin() + i );
continue;
@ -269,7 +269,7 @@ An alias %s already exists!\nCannot update this component" ),
{
printf( "save[%d].name:'%s' value:'%s'\n", i,
TO_UTF8( m_FieldsBuf[i].GetName() ),
TO_UTF8( m_FieldsBuf[i].m_Text ) );
TO_UTF8( m_FieldsBuf[i].GetText() ) );
}
#endif
@ -277,7 +277,7 @@ An alias %s already exists!\nCannot update this component" ),
m_LibEntry->SetFields( m_FieldsBuf );
// We need to keep the name and the value the same at the moment!
SetName( m_LibEntry->GetValueField().m_Text );
SetName( m_LibEntry->GetValueField().GetText() );
m_Parent->OnModify();
@ -329,7 +329,7 @@ void DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::deleteFieldButtonHandler( wxCommandEven
m_skipCopyFromPanel = true;
if( m_FieldsBuf[fieldNdx].m_Text.IsEmpty() )
if( m_FieldsBuf[fieldNdx].GetText().IsEmpty() )
{
m_FieldsBuf.erase( m_FieldsBuf.begin() + fieldNdx );
fieldListCtrl->DeleteItem( fieldNdx );
@ -339,7 +339,7 @@ void DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::deleteFieldButtonHandler( wxCommandEven
}
else
{
m_FieldsBuf[fieldNdx].m_Text.Empty();
m_FieldsBuf[fieldNdx].Empty();
copySelectedFieldToPanel();
}
@ -512,12 +512,12 @@ void DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::InitBuffers()
D( printf( "add template:%s\n", TO_UTF8( it->m_Name ) ); )
fld.SetName( it->m_Name );
fld.m_Text = it->m_Value; // empty? ok too.
fld.SetText( it->m_Value ); // empty? ok too.
if( !it->m_Visible )
fld.m_Attributs |= TEXT_NO_VISIBLE;
fld.SetVisible( false );
else
fld.m_Attributs &= ~TEXT_NO_VISIBLE;
fld.SetVisible( true );;
}
else
{
@ -580,7 +580,7 @@ void DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::setRowItem( int aFieldNdx, const LIB_FI
}
fieldListCtrl->SetItem( aFieldNdx, COLUMN_FIELD_NAME, aField.GetName() );
fieldListCtrl->SetItem( aFieldNdx, COLUMN_TEXT, aField.m_Text );
fieldListCtrl->SetItem( aFieldNdx, COLUMN_TEXT, aField.GetText() );
// recompute the column widths here, after setting texts
fieldListCtrl->SetColumnWidth( COLUMN_FIELD_NAME, wxLIST_AUTOSIZE );
@ -599,30 +599,31 @@ void DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::copySelectedFieldToPanel()
LIB_FIELD& field = m_FieldsBuf[fieldNdx];
showCheckBox->SetValue( !(field.m_Attributs & TEXT_NO_VISIBLE) );
showCheckBox->SetValue( field.IsVisible() );
rotateCheckBox->SetValue( field.m_Orient == TEXT_ORIENT_VERT );
rotateCheckBox->SetValue( field.GetOrientation() == TEXT_ORIENT_VERT );
int style = 0;
if( field.m_Italic )
if( field.IsItalic() )
style = 1;
if( field.m_Bold )
if( field.IsBold() )
style |= 2;
m_StyleRadioBox->SetSelection( style );
// Select the right text justification
if( field.m_HJustify == GR_TEXT_HJUSTIFY_LEFT )
if( field.GetHorizJustify() == GR_TEXT_HJUSTIFY_LEFT )
m_FieldHJustifyCtrl->SetSelection(0);
else if( field.m_HJustify == GR_TEXT_HJUSTIFY_RIGHT )
else if( field.GetHorizJustify() == GR_TEXT_HJUSTIFY_RIGHT )
m_FieldHJustifyCtrl->SetSelection(2);
else
m_FieldHJustifyCtrl->SetSelection(1);
if( field.m_VJustify == GR_TEXT_VJUSTIFY_BOTTOM )
if( field.GetVertJustify() == GR_TEXT_VJUSTIFY_BOTTOM )
m_FieldVJustifyCtrl->SetSelection(0);
else if( field.m_VJustify == GR_TEXT_VJUSTIFY_TOP )
else if( field.GetVertJustify() == GR_TEXT_VJUSTIFY_TOP )
m_FieldVJustifyCtrl->SetSelection(2);
else
m_FieldVJustifyCtrl->SetSelection(1);
@ -656,23 +657,23 @@ void DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::copySelectedFieldToPanel()
// if fieldNdx == REFERENCE, VALUE, then disable delete button
deleteFieldButton->Enable( fieldNdx >= MANDATORY_FIELDS );
fieldValueTextCtrl->SetValue( field.m_Text );
fieldValueTextCtrl->SetValue( field.GetText() );
textSizeTextCtrl->SetValue( EDA_GRAPHIC_TEXT_CTRL::FormatSize( g_UserUnit, field.m_Size.x ) );
textSizeTextCtrl->SetValue( EDA_GRAPHIC_TEXT_CTRL::FormatSize( g_UserUnit, field.GetSize().x ) );
wxPoint coord = field.m_Pos;
wxPoint coord = field.GetPosition();
wxPoint zero;
// If the field value is empty and the position is at relative zero, we set the
// initial position as a small offset from the ref field, and orient
// it the same as the ref field. That is likely to put it at least
// close to the desired position.
if( coord == zero && field.m_Text.IsEmpty() )
if( coord == zero && field.GetText().IsEmpty() )
{
rotateCheckBox->SetValue( m_FieldsBuf[REFERENCE].m_Orient == TEXT_ORIENT_VERT );
rotateCheckBox->SetValue( m_FieldsBuf[REFERENCE].GetOrientation() == TEXT_ORIENT_VERT );
coord.x = m_FieldsBuf[REFERENCE].m_Pos.x + (fieldNdx - MANDATORY_FIELDS + 1) * 100;
coord.y = m_FieldsBuf[REFERENCE].m_Pos.y + (fieldNdx - MANDATORY_FIELDS + 1) * 100;
coord.x = m_FieldsBuf[REFERENCE].GetPosition().x + (fieldNdx - MANDATORY_FIELDS + 1) * 100;
coord.y = m_FieldsBuf[REFERENCE].GetPosition().y + (fieldNdx - MANDATORY_FIELDS + 1) * 100;
// coord can compute negative if field is < MANDATORY_FIELDS, e.g. FOOTPRINT.
// That is ok, we basically don't want all the new empty fields on
@ -702,14 +703,14 @@ bool DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::copyPanelToSelectedField()
LIB_FIELD& field = m_FieldsBuf[fieldNdx];
if( showCheckBox->GetValue() )
field.m_Attributs &= ~TEXT_NO_VISIBLE;
field.SetVisible( true );
else
field.m_Attributs |= TEXT_NO_VISIBLE;
field.SetVisible( false );
if( rotateCheckBox->GetValue() )
field.m_Orient = TEXT_ORIENT_VERT;
field.SetOrientation( TEXT_ORIENT_VERT );
else
field.m_Orient = TEXT_ORIENT_HORIZ;
field.SetOrientation( TEXT_ORIENT_HORIZ );
// Copy the text justification
static const EDA_TEXT_HJUSTIFY_T hjustify[3] = {
@ -722,14 +723,14 @@ bool DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::copyPanelToSelectedField()
GR_TEXT_VJUSTIFY_TOP
};
field.m_HJustify = hjustify[m_FieldHJustifyCtrl->GetSelection()];
field.m_VJustify = vjustify[m_FieldVJustifyCtrl->GetSelection()];
field.SetHorizJustify( hjustify[m_FieldHJustifyCtrl->GetSelection()] );
field.SetVertJustify( vjustify[m_FieldVJustifyCtrl->GetSelection()] );
// Blank/empty field texts for REFERENCE and VALUE are not allowed.
// (Value is the name of the component in lib!)
// Change them only if user provided a non blank value
if( !fieldValueTextCtrl->GetValue().IsEmpty() || fieldNdx > VALUE )
field.m_Text = fieldValueTextCtrl->GetValue();
field.SetText( fieldValueTextCtrl->GetValue() );
// FieldNameTextCtrl has a tricked value in it for VALUE index, do not copy it back.
// It has the "Chip Name" appended.
@ -744,27 +745,23 @@ bool DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::copyPanelToSelectedField()
setRowItem( fieldNdx, field ); // update fieldListCtrl
field.m_Size.x = EDA_GRAPHIC_TEXT_CTRL::ParseSize( textSizeTextCtrl->GetValue(), g_UserUnit );
int tmp = EDA_GRAPHIC_TEXT_CTRL::ParseSize( textSizeTextCtrl->GetValue(), g_UserUnit );
field.m_Size.y = field.m_Size.x;
field.SetSize( wxSize( tmp, tmp ) );
int style = m_StyleRadioBox->GetSelection();
if( (style & 1 ) != 0 )
field.m_Italic = true;
else
field.m_Italic = false;
if( (style & 2 ) != 0 )
field.m_Bold = true;
else
field.m_Bold = false;
field.SetItalic( (style & 1 ) != 0 );
field.SetBold( (style & 2 ) != 0 );
field.m_Pos.x = ReturnValueFromString( g_UserUnit, posXTextCtrl->GetValue() );
field.m_Pos.y = ReturnValueFromString( g_UserUnit, posYTextCtrl->GetValue() );
wxPoint pos( ReturnValueFromString( g_UserUnit, posXTextCtrl->GetValue() ),
ReturnValueFromString( g_UserUnit, posYTextCtrl->GetValue() ) );
// Note: the Y axis for components in lib is from bottom to top
// and the screen axis is top to bottom: we must change the y coord sign for editing
NEGATE( field.m_Pos.y );
NEGATE( pos.y );
field.SetPosition( pos );
return true;
}

View File

@ -101,21 +101,21 @@ void DIALOG_EDIT_ONE_FIELD::initDlg_base()
void DIALOG_LIB_EDIT_ONE_FIELD::initDlg()
{
m_textsize = m_field->m_Size.x;
m_TextValue->SetValue( m_field->m_Text );
m_textsize = m_field->GetSize().x;
m_TextValue->SetValue( m_field->GetText() );
m_textorient = m_field->GetOrientation();
m_text_invisible = m_field->IsVisible() ? false : true;
m_textshape = 0;
if( m_field->m_Italic )
if( m_field->IsItalic() )
m_textshape = 1;
if( m_field->m_Bold )
if( m_field->IsBold() )
m_textshape |= 2;
m_textHjustify = m_field->m_HJustify;
m_textVjustify = m_field->m_VJustify;
m_textHjustify = m_field->GetHorizJustify();
m_textVjustify = m_field->GetVertJustify();
initDlg_base();
}
@ -171,44 +171,31 @@ void DIALOG_LIB_EDIT_ONE_FIELD::TransfertDataToField()
m_field->SetText( GetTextField() );
m_field->m_Size.x = m_field->m_Size.y = m_textsize;
m_field->m_Orient = m_textorient;
if( m_Invisible->GetValue() )
m_field->m_Attributs |= TEXT_NO_VISIBLE;
else
m_field->m_Attributs &= ~TEXT_NO_VISIBLE;
if( ( m_TextShapeOpt->GetSelection() & 1 ) != 0 )
m_field->m_Italic = true;
else
m_field->m_Italic = false;
if( ( m_TextShapeOpt->GetSelection() & 2 ) != 0 )
m_field->m_Bold = true;
else
m_field->m_Bold = false;
m_field->m_HJustify = m_textHjustify;
m_field->m_VJustify = m_textVjustify;
m_field->SetSize( wxSize( m_textsize, m_textsize ) );
m_field->SetOrientation( m_textorient );
m_field->SetVisible( !m_Invisible->GetValue() );
m_field->SetItalic( ( m_TextShapeOpt->GetSelection() & 1 ) != 0 );
m_field->SetBold( ( m_TextShapeOpt->GetSelection() & 2 ) != 0 );
m_field->SetHorizJustify( m_textHjustify );
m_field->SetVertJustify( m_textVjustify );
}
void DIALOG_SCH_EDIT_ONE_FIELD::initDlg()
{
m_textsize = m_field->m_Size.x;
m_TextValue->SetValue( m_field->m_Text );
m_textsize = m_field->GetSize().x;
m_TextValue->SetValue( m_field->GetText() );
m_textorient = m_field->GetOrientation();
m_text_invisible = m_field->IsVisible() ? false : true;
m_textshape = 0;
if( m_field->m_Italic )
if( m_field->IsItalic() )
m_textshape = 1;
if( m_field->m_Bold )
if( m_field->IsBold() )
m_textshape |= 2;
m_textHjustify = m_field->m_HJustify;
m_textVjustify = m_field->m_VJustify;
m_textHjustify = m_field->GetHorizJustify();
m_textVjustify = m_field->GetVertJustify();
initDlg_base();
}
@ -228,24 +215,12 @@ void DIALOG_SCH_EDIT_ONE_FIELD::TransfertDataToField()
m_field->SetText( GetTextField() );
m_field->m_Size.x = m_field->m_Size.y = m_textsize;
m_field->m_Orient = m_textorient;
m_field->SetSize( wxSize( m_textsize, m_textsize ) );
m_field->SetOrientation( m_textorient );
m_field->SetVisible( !m_Invisible->GetValue() );
if( m_Invisible->GetValue() )
m_field->m_Attributs |= TEXT_NO_VISIBLE;
else
m_field->m_Attributs &= ~TEXT_NO_VISIBLE;
if( ( m_TextShapeOpt->GetSelection() & 1 ) != 0 )
m_field->m_Italic = true;
else
m_field->m_Italic = false;
if( ( m_TextShapeOpt->GetSelection() & 2 ) != 0 )
m_field->m_Bold = true;
else
m_field->m_Bold = false;
m_field->m_HJustify = m_textHjustify;
m_field->m_VJustify = m_textVjustify;
m_field->SetItalic( ( m_TextShapeOpt->GetSelection() & 1 ) != 0 );
m_field->SetBold( ( m_TextShapeOpt->GetSelection() & 2 ) != 0 );
m_field->SetHorizJustify( m_textHjustify );
m_field->SetVertJustify( m_textVjustify );
}

View File

@ -64,26 +64,26 @@ void DIALOG_LIB_EDIT_TEXT::initDlg( )
if ( m_graphicText )
{
msg = ReturnStringFromValue( g_UserUnit, m_graphicText->m_Size.x );
msg = ReturnStringFromValue( g_UserUnit, m_graphicText->GetSize().x );
m_TextSize->SetValue( msg );
m_TextValue->SetValue( m_graphicText->m_Text );
m_TextValue->SetValue( m_graphicText->GetText() );
if ( m_graphicText->GetUnit() == 0 )
m_CommonUnit->SetValue( true );
if ( m_graphicText->GetConvert() == 0 )
m_CommonConvert->SetValue( true );
if ( m_graphicText->m_Orient == TEXT_ORIENT_VERT )
if ( m_graphicText->GetOrientation() == TEXT_ORIENT_VERT )
m_Orient->SetValue( true );
int shape = 0;
if ( m_graphicText->m_Italic )
if ( m_graphicText->IsItalic() )
shape = 1;
if ( m_graphicText->m_Bold )
if ( m_graphicText->IsBold() )
shape |= 2;
m_TextShapeOpt->SetSelection( shape );
switch ( m_graphicText->m_HJustify )
switch ( m_graphicText->GetHorizJustify() )
{
case GR_TEXT_HJUSTIFY_LEFT:
m_TextHJustificationOpt->SetSelection( 0 );
@ -99,7 +99,7 @@ void DIALOG_LIB_EDIT_TEXT::initDlg( )
}
switch ( m_graphicText->m_VJustify )
switch ( m_graphicText->GetVertJustify() )
{
case GR_TEXT_VJUSTIFY_BOTTOM:
m_TextVJustificationOpt->SetSelection( 0 );
@ -159,8 +159,8 @@ void DIALOG_LIB_EDIT_TEXT::OnOkClick( wxCommandEvent& event )
else
m_graphicText->SetText( wxT( "[null]" ) );
m_graphicText->m_Size.x = m_graphicText->m_Size.y = m_parent->m_textSize;
m_graphicText->m_Orient = m_parent->m_textOrientation;
m_graphicText->SetSize( wxSize( m_parent->m_textSize, m_parent->m_textSize ) );
m_graphicText->SetOrientation( m_parent->m_textOrientation );
if( m_parent->m_drawSpecificUnit )
m_graphicText->SetUnit( m_parent->GetUnit() );
@ -172,43 +172,36 @@ void DIALOG_LIB_EDIT_TEXT::OnOkClick( wxCommandEvent& event )
else
m_graphicText->SetConvert( 0 );
if( ( m_TextShapeOpt->GetSelection() & 1 ) != 0 )
m_graphicText->m_Italic = true;
else
m_graphicText->m_Italic = false;
if( ( m_TextShapeOpt->GetSelection() & 2 ) != 0 )
m_graphicText->m_Bold = true;
else
m_graphicText->m_Bold = false;
m_graphicText->SetItalic( ( m_TextShapeOpt->GetSelection() & 1 ) != 0 );
m_graphicText->SetBold( ( m_TextShapeOpt->GetSelection() & 2 ) != 0 );
switch( m_TextHJustificationOpt->GetSelection() )
{
case 0:
m_graphicText->m_HJustify = GR_TEXT_HJUSTIFY_LEFT;
m_graphicText->SetHorizJustify( GR_TEXT_HJUSTIFY_LEFT );
break;
case 1:
m_graphicText->m_HJustify = GR_TEXT_HJUSTIFY_CENTER;
m_graphicText->SetHorizJustify( GR_TEXT_HJUSTIFY_CENTER );
break;
case 2:
m_graphicText->m_HJustify = GR_TEXT_HJUSTIFY_RIGHT;
m_graphicText->SetHorizJustify( GR_TEXT_HJUSTIFY_RIGHT );
break;
}
switch( m_TextVJustificationOpt->GetSelection() )
{
case 0:
m_graphicText->m_VJustify = GR_TEXT_VJUSTIFY_BOTTOM;
m_graphicText->SetVertJustify( GR_TEXT_VJUSTIFY_BOTTOM );
break;
case 1:
m_graphicText->m_VJustify = GR_TEXT_VJUSTIFY_CENTER;
m_graphicText->SetVertJustify( GR_TEXT_VJUSTIFY_CENTER );
break;
case 2:
m_graphicText->m_VJustify = GR_TEXT_VJUSTIFY_TOP;
m_graphicText->SetVertJustify( GR_TEXT_VJUSTIFY_TOP );
break;
}
}

View File

@ -93,7 +93,7 @@ static void moveBitmap( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aPosit
}
// Draw the bitmap at it's new position.
image->SetPosition( screen->GetCrossHairPosition() );
image->Move( screen->GetCrossHairPosition() );
image->Draw( aPanel, aDC, wxPoint( 0, 0 ), GR_DEFAULT_DRAWMODE );
}

View File

@ -75,7 +75,7 @@ create a new power component with the new value." ), GetChars( entry->GetName()
// Don't use GetText() here. If the field is the reference designator and it's parent
// component has multiple parts, we don't want the part suffix added to the field.
wxString newtext = aField->m_Text;
wxString newtext = aField->GetText();
m_canvas->SetIgnoreMouseEvents( true );
wxString title;
@ -155,10 +155,10 @@ void SCH_EDIT_FRAME::RotateField( SCH_FIELD* aField, wxDC* aDC )
aField->Draw( m_canvas, aDC, wxPoint( 0, 0 ), g_XorMode );
if( aField->m_Orient == TEXT_ORIENT_HORIZ )
aField->m_Orient = TEXT_ORIENT_VERT;
if( aField->GetOrientation() == TEXT_ORIENT_HORIZ )
aField->SetOrientation( TEXT_ORIENT_VERT );
else
aField->m_Orient = TEXT_ORIENT_HORIZ;
aField->SetOrientation( TEXT_ORIENT_HORIZ );
aField->Draw( m_canvas, aDC, wxPoint( 0, 0 ), g_XorMode );

View File

@ -99,23 +99,23 @@ SCH_TEXT* SCH_EDIT_FRAME::CreateNewText( wxDC* aDC, int aType )
return NULL;
}
textItem->m_Bold = lastTextBold;
textItem->m_Italic = lastTextItalic;
textItem->SetBold( lastTextBold );
textItem->SetItalic( lastTextItalic );
textItem->SetOrientation( lastTextOrientation );
textItem->m_Size.x = textItem->m_Size.y = GetDefaultLabelSize();
textItem->SetSize( wxSize( GetDefaultLabelSize(), GetDefaultLabelSize() ) );
textItem->SetFlags( IS_NEW | IS_MOVED );
textItem->Draw( m_canvas, aDC, wxPoint( 0, 0 ), g_XorMode );
EditSchematicText( textItem );
if( textItem->m_Text.IsEmpty() )
if( textItem->GetText().IsEmpty() )
{
SAFE_DELETE( textItem );
return NULL;
}
lastTextBold = textItem->m_Bold;
lastTextItalic = textItem->m_Italic;
lastTextBold = textItem->IsBold();
lastTextItalic = textItem->IsItalic();
lastTextOrientation = textItem->GetOrientation();
if( (aType == SCH_GLOBAL_LABEL_T) || (aType == SCH_HIERARCHICAL_LABEL_T) )
@ -180,19 +180,19 @@ void SCH_EDIT_FRAME::OnConvertTextType( wxCommandEvent& aEvent )
switch( type )
{
case SCH_LABEL_T:
newtext = new SCH_LABEL( text->m_Pos, text->m_Text );
newtext = new SCH_LABEL( text->GetPosition(), text->GetText() );
break;
case SCH_GLOBAL_LABEL_T:
newtext = new SCH_GLOBALLABEL( text->m_Pos, text->m_Text );
newtext = new SCH_GLOBALLABEL( text->GetPosition(), text->GetText() );
break;
case SCH_HIERARCHICAL_LABEL_T:
newtext = new SCH_HIERLABEL( text->m_Pos, text->m_Text );
newtext = new SCH_HIERLABEL( text->GetPosition(), text->GetText() );
break;
case SCH_TEXT_T:
newtext = new SCH_TEXT( text->m_Pos, text->m_Text );
newtext = new SCH_TEXT( text->GetPosition(), text->GetText() );
break;
default:
@ -208,10 +208,10 @@ void SCH_EDIT_FRAME::OnConvertTextType( wxCommandEvent& aEvent )
newtext->SetFlags( text->GetFlags() );
newtext->SetShape( text->GetShape() );
newtext->SetOrientation( text->GetOrientation() );
newtext->m_Size = text->m_Size;
newtext->m_Thickness = text->m_Thickness;
newtext->m_Italic = text->m_Italic;
newtext->m_Bold = text->m_Bold;
newtext->SetSize( text->GetSize() );
newtext->SetThickness( text->GetThickness() );
newtext->SetItalic( text->IsItalic() );
newtext->SetBold( text->IsBold() );
/* Save the new text in undo list if the old text was not itself a "new created text"
* In this case, the old text is already in undo list as a deleted item.

View File

@ -174,7 +174,7 @@ SCH_ITEM* SCH_EDIT_FRAME::FindComponentAndItem( const wxString& aReference,
case FIND_VALUE: // find value
pos = pSch->GetPosition();
if( aSearchText.CmpNoCase( pSch->GetField( VALUE )->m_Text ) != 0 )
if( aSearchText.CmpNoCase( pSch->GetField( VALUE )->GetText() ) != 0 )
break;
notFound = false;

View File

@ -257,7 +257,7 @@ SCH_COMPONENT* SCH_EDIT_FRAME::Load_Component( wxDC* aDC,
component->SetLibName( Name );
// Set the component value that can differ from component name in lib, for aliases
component->GetField( VALUE )->m_Text = Name;
component->GetField( VALUE )->SetText( Name );
MSG_PANEL_ITEMS items;
component->SetCurrentSheetPath( &GetCurrentSheet() );

View File

@ -257,12 +257,12 @@ void LIB_EDIT_FRAME::RedrawComponent( wxDC* aDC, wxPoint aOffset )
// although it is stored without ? and part id.
// So temporary change the reference by a schematic like reference
LIB_FIELD* Field = m_component->GetField( REFERENCE );
wxString fieldText = Field->m_Text;
wxString fieldText = Field->GetText();
wxString fieldfullText = Field->GetFullText( m_unit );
Field->m_Text = fieldfullText;
Field->SetText( fieldfullText );
m_component->Draw( m_canvas, aDC, aOffset, m_unit,
m_convert, GR_DEFAULT_DRAWMODE );
Field->m_Text = fieldText;
Field->SetText( fieldText );
}
}
@ -623,7 +623,7 @@ lost!\n\nClear the current component from the screen?" ) ) )
}
LIB_COMPONENT* component = new LIB_COMPONENT( name );
component->GetReferenceField().m_Text = dlg.GetReference();
component->GetReferenceField().SetText( dlg.GetReference() );
component->SetPartCount( dlg.GetPartCount() );
// Initialize component->m_TextInside member:

View File

@ -71,7 +71,7 @@ void LIB_EDIT_FRAME::EditField( LIB_FIELD* aField )
* the old one. Rename the component and remove any conflicting aliases to prevent name
* errors when updating the library.
*/
if( (aField->GetId() == VALUE) && ( text != aField->m_Text ) )
if( (aField->GetId() == VALUE) && ( text != aField->GetText() ) )
{
wxString msg;

View File

@ -777,10 +777,10 @@ XNODE* NETLIST_EXPORT_TOOL::makeGenericLibParts()
for( unsigned i=0; i<fieldList.size(); ++i )
{
if( !fieldList[i].m_Text.IsEmpty() )
if( !fieldList[i].GetText().IsEmpty() )
{
XNODE* xfield;
xfields->AddChild( xfield = node( sField, fieldList[i].m_Text ) );
xfields->AddChild( xfield = node( sField, fieldList[i].GetText() ) );
xfield->AddAttribute( sName, fieldList[i].GetName(false) );
}
}
@ -1000,13 +1000,13 @@ XNODE* NETLIST_EXPORT_TOOL::makeGenericComponents()
xcomps->AddChild( xcomp = node( sComponent ) );
xcomp->AddAttribute( sRef, comp->GetRef( path ) );
xcomp->AddChild( node( sValue, comp->GetField( VALUE )->m_Text ) );
xcomp->AddChild( node( sValue, comp->GetField( VALUE )->GetText() ) );
if( !comp->GetField( FOOTPRINT )->IsVoid() )
xcomp->AddChild( node( sFootprint, comp->GetField( FOOTPRINT )->m_Text ) );
xcomp->AddChild( node( sFootprint, comp->GetField( FOOTPRINT )->GetText() ) );
if( !comp->GetField( DATASHEET )->IsVoid() )
xcomp->AddChild( node( sDatasheet, comp->GetField( DATASHEET )->m_Text ) );
xcomp->AddChild( node( sDatasheet, comp->GetField( DATASHEET )->GetText() ) );
// Export all user defined fields within the component,
// which start at field index MANDATORY_FIELDS. Only output the <fields>
@ -1024,7 +1024,7 @@ XNODE* NETLIST_EXPORT_TOOL::makeGenericComponents()
if( !f->IsVoid() )
{
XNODE* xfield;
xfields->AddChild( xfield = node( sField, f->m_Text ) );
xfields->AddChild( xfield = node( sField, f->GetText() ) );
xfield->AddAttribute( sName, f->GetName() );
}
}
@ -1229,7 +1229,7 @@ bool NETLIST_EXPORT_TOOL::WriteNetListPspice( FILE* f, bool use_netnames, bool a
SCH_TEXT* drawText = (SCH_TEXT*) item;
text = drawText->m_Text;
text = drawText->GetText();
if( text.IsEmpty() )
continue;
@ -1247,14 +1247,15 @@ bool NETLIST_EXPORT_TOOL::WriteNetListPspice( FILE* f, bool use_netnames, bool a
{
// Put the Y position as an ascii string, for sort by vertical
// position, using usual sort string by alphabetic value
int ypos = drawText->m_Pos.y;
int ypos = drawText->GetPosition().y;
for( int ii = 0; ii < BUFYPOS_LEN; ii++ )
{
bufnum[BUFYPOS_LEN - 1 - ii] = (ypos & 63) + ' ';
ypos >>= 6;
}
text = drawText->m_Text.AfterFirst( ' ' );
text = drawText->GetText().AfterFirst( ' ' );
// First BUFYPOS_LEN char are the Y position.
msg.Printf( wxT( "%s %s" ), bufnum, text.GetData() );
@ -1305,7 +1306,7 @@ bool NETLIST_EXPORT_TOOL::WriteNetListPspice( FILE* f, bool use_netnames, bool a
SCH_FIELD* netlistEnabledField = comp->FindField( wxT( "Spice_Netlist_Enabled" ) );
if( netlistEnabledField )
{
wxString netlistEnabled = netlistEnabledField->m_Text;
wxString netlistEnabled = netlistEnabledField->GetText();
if( netlistEnabled.IsEmpty() )
break;
@ -1319,7 +1320,7 @@ bool NETLIST_EXPORT_TOOL::WriteNetListPspice( FILE* f, bool use_netnames, bool a
if( spiceSeqField )
{
// Get String containing the Sequence of Nodes:
wxString nodeSeqIndexLineStr = spiceSeqField->m_Text;
wxString nodeSeqIndexLineStr = spiceSeqField->GetText();
// Verify Field Exists and is not empty:
if( nodeSeqIndexLineStr.IsEmpty() )
@ -1416,7 +1417,7 @@ bool NETLIST_EXPORT_TOOL::WriteNetListPspice( FILE* f, bool use_netnames, bool a
}
// Get Component Value Name:
wxString CompValue = comp->GetField( VALUE )->m_Text;
wxString CompValue = comp->GetField( VALUE )->GetText();
// Check if Override Model Name is Provided:
SCH_FIELD* spiceModelField = comp->FindField( wxT( "spice_model" ) );
@ -1424,7 +1425,7 @@ bool NETLIST_EXPORT_TOOL::WriteNetListPspice( FILE* f, bool use_netnames, bool a
if( spiceModelField )
{
// Get Model Name String:
wxString ModelNameStr = spiceModelField->m_Text;
wxString ModelNameStr = spiceModelField->GetText();
// Verify Field Exists and is not empty:
if( !ModelNameStr.IsEmpty() )
@ -1527,7 +1528,7 @@ bool NETLIST_EXPORT_TOOL::WriteNetListPCBNEW( FILE* f, bool with_pcbnew )
if( !comp->GetField( FOOTPRINT )->IsVoid() )
{
footprint = comp->GetField( FOOTPRINT )->m_Text;
footprint = comp->GetField( FOOTPRINT )->GetText();
footprint.Replace( wxT( " " ), wxT( "_" ) );
}
else
@ -1541,7 +1542,7 @@ bool NETLIST_EXPORT_TOOL::WriteNetListPCBNEW( FILE* f, bool with_pcbnew )
ret |= fprintf( f, " %s", TO_UTF8( field ) );
field = comp->GetField( VALUE )->m_Text;
field = comp->GetField( VALUE )->GetText();
field.Replace( wxT( " " ), wxT( "_" ) );
ret |= fprintf( f, " %s", TO_UTF8( field ) );
@ -1901,7 +1902,7 @@ bool NETLIST_EXPORT_TOOL::WriteNetListCADSTAR( FILE* f )
ret |= fprintf( f, "%s ", TO_UTF8( StartCmpDesc ) );
ret |= fprintf( f, "%s", TO_UTF8( msg ) );
msg = Component->GetField( VALUE )->m_Text;
msg = Component->GetField( VALUE )->GetText();
msg.Replace( wxT( " " ), wxT( "_" ) );
ret |= fprintf( f, " \"%s\"", TO_UTF8( msg ) );
ret |= fprintf( f, "\n" );

View File

@ -74,7 +74,7 @@ private:
bool m_IsNew; ///< True if not yet annotated.
int m_SheetNum; ///< The sheet number for the reference.
time_t m_TimeStamp; ///< The time stamp for the reference.
wxString* m_Value; ///< The component value of the refernce. It is the
EDA_TEXT* m_Value; ///< The component value of the refernce. It is the
///< same for all instances.
int m_NumRef; ///< The numeric part of the reference designator.
int m_Flag;
@ -148,7 +148,7 @@ public:
int CompareValue( const SCH_REFERENCE& item ) const
{
return m_Value->CmpNoCase( *item.m_Value );
return m_Value->GetText().CmpNoCase( item.m_Value->GetText() );
}
int CompareRef( const SCH_REFERENCE& item ) const

View File

@ -351,7 +351,7 @@ void AddMenusForComponent( wxMenu* PopMenu, SCH_COMPONENT* Component )
if( !Component->GetFlags() )
{
msg = _( "Move Component" );
msg << wxT( " " ) << Component->GetField( REFERENCE )->m_Text;
msg << wxT( " " ) << Component->GetField( REFERENCE )->GetText();
msg = AddHotkeyName( msg, s_Schematic_Hokeys_Descr, HK_MOVE_COMPONENT_OR_ITEM );
AddMenuItem( PopMenu, ID_SCH_MOVE_ITEM, msg, KiBitmap( move_xpm ) );
msg = AddHotkeyName( _( "Drag Component" ), s_Schematic_Hokeys_Descr, HK_DRAG );
@ -600,7 +600,7 @@ void AddMenusForText( wxMenu* PopMenu, SCH_TEXT* Text )
/* add menu change type text (to label, glabel, text),
* but only if this is a single line text
*/
if( Text->m_Text.Find( wxT( "\n" ) ) == wxNOT_FOUND )
if( Text->GetText().Find( wxT( "\n" ) ) == wxNOT_FOUND )
{
AddMenuItem( menu_change_type, ID_POPUP_SCH_CHANGE_TYPE_TEXT_TO_LABEL,
_( "Change to Label" ), KiBitmap( label2text_xpm ) );

View File

@ -243,7 +243,7 @@ another pin. Continue?" ) );
m_canvas->SetMouseCapture( NULL, NULL );
OnModify();
CurrentPin->SetPosition( newpos );
CurrentPin->Move( newpos );
if( CurrentPin->IsNew() )
{
@ -264,7 +264,7 @@ another pin. Continue?" ) );
if( Pin->GetFlags() == 0 )
continue;
Pin->SetPosition( CurrentPin->GetPosition() );
Pin->Move( CurrentPin->GetPosition() );
Pin->ClearFlags();
}
@ -344,13 +344,13 @@ static void DrawMovePin( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aPosi
// Erase pin in old position
if( aErase )
{
CurrentPin->SetPosition( PinPreviousPos );
CurrentPin->Move( PinPreviousPos );
CurrentPin->Draw( aPanel, aDC, wxPoint( 0, 0 ), UNSPECIFIED_COLOR, g_XorMode,
&showPinText, DefaultTransform );
}
// Redraw pin in new position
CurrentPin->SetPosition( aPanel->GetScreen()->GetCrossHairPosition( true ) );
CurrentPin->Move( aPanel->GetScreen()->GetCrossHairPosition( true ) );
CurrentPin->Draw( aPanel, aDC, wxPoint( 0, 0 ), UNSPECIFIED_COLOR, g_XorMode,
&showPinText, DefaultTransform );
@ -359,7 +359,7 @@ static void DrawMovePin( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aPosi
/* Keep the original position for existing pin (for Undo command)
* and the current position for a new pin */
if( !CurrentPin->IsNew() )
CurrentPin->SetPosition( pinpos );
CurrentPin->Move( pinpos );
}
@ -388,7 +388,7 @@ void LIB_EDIT_FRAME::CreatePin( wxDC* DC )
if( SynchronizePins() )
pin->SetFlags( IS_LINKED );
pin->SetPosition( GetScreen()->GetCrossHairPosition( true ) );
pin->Move( GetScreen()->GetCrossHairPosition( true ) );
pin->SetLength( LastPinLength );
pin->SetOrientation( LastPinOrient );
pin->SetType( LastPinType );
@ -541,7 +541,7 @@ void LIB_EDIT_FRAME::RepeatPinItem( wxDC* DC, LIB_PIN* SourcePin )
Pin = (LIB_PIN*) SourcePin->Clone();
Pin->ClearFlags();
Pin->SetFlags( IS_NEW );
Pin->SetPosition( Pin->GetPosition() + wxPoint( g_RepeatStep.x, -g_RepeatStep.y ) );
Pin->Move( Pin->GetPosition() + wxPoint( g_RepeatStep.x, -g_RepeatStep.y ) );
wxString nextName = Pin->GetName();
IncrementLabelMember( nextName );
Pin->SetName( nextName );

View File

@ -107,8 +107,8 @@ void CreateDummyCmp()
LIB_TEXT* Text = new LIB_TEXT( DummyCmp );
Text->m_Size.x = Text->m_Size.y = 150;
Text->m_Text = wxT( "??" );
Text->SetSize( wxSize( 150, 150 ) );
Text->SetText( wxString( wxT( "??" ) ) );
DummyCmp->AddDrawItem( Square );
DummyCmp->AddDrawItem( Text );
@ -157,14 +157,14 @@ SCH_COMPONENT::SCH_COMPONENT( LIB_COMPONENT& libComponent, SCH_SHEET_PATH* sheet
schField = AddField( fld );
}
schField->m_Pos = m_Pos + it->m_Pos;
schField->SetPosition( m_Pos + it->GetPosition() );
schField->ImportValues( *it );
schField->m_Text = it->m_Text;
schField->SetText( it->GetText() );
}
wxString msg = libComponent.GetReferenceField().m_Text;
wxString msg = libComponent.GetReferenceField().GetText();
if( msg.IsEmpty() )
msg = wxT( "U" );
@ -178,7 +178,7 @@ SCH_COMPONENT::SCH_COMPONENT( LIB_COMPONENT& libComponent, SCH_SHEET_PATH* sheet
/* Use the schematic component name instead of the library value field
* name.
*/
GetField( VALUE )->m_Text = m_ChipName;
GetField( VALUE )->SetText( m_ChipName );
}
@ -420,10 +420,10 @@ const wxString SCH_COMPONENT::GetRef( const SCH_SHEET_PATH* sheet )
// this will happen if we load a version 1 schematic file.
// it will also mean that multiple instances of the same sheet by default
// all have the same component references, but perhaps this is best.
if( !GetField( REFERENCE )->m_Text.IsEmpty() )
if( !GetField( REFERENCE )->GetText().IsEmpty() )
{
SetRef( sheet, GetField( REFERENCE )->m_Text );
return GetField( REFERENCE )->m_Text;
SetRef( sheet, GetField( REFERENCE )->GetText() );
return GetField( REFERENCE )->GetText();
}
return m_prefix;
@ -489,17 +489,15 @@ void SCH_COMPONENT::SetRef( const SCH_SHEET_PATH* sheet, const wxString& ref )
SCH_FIELD* rf = GetField( REFERENCE );
if( rf->m_Text.IsEmpty()
|| ( abs( rf->m_Pos.x - m_Pos.x ) +
abs( rf->m_Pos.y - m_Pos.y ) > 10000 ) )
if( rf->GetText().IsEmpty()
|| ( abs( rf->GetPosition().x - m_Pos.x ) +
abs( rf->GetPosition().y - m_Pos.y ) > 10000 ) )
{
// move it to a reasonable position
rf->m_Pos = m_Pos;
rf->m_Pos.x += 50; // a slight offset
rf->m_Pos.y += 50;
rf->SetPosition( m_Pos + wxPoint( 50, 50 ) );
}
rf->m_Text = ref; // for drawing.
rf->SetText( ref ); // for drawing.
// Reinit the m_prefix member if needed
wxString prefix = ref;
@ -750,7 +748,7 @@ void SCH_COMPONENT::ClearAnnotation( SCH_SHEET_PATH* aSheetPath )
// When a clear annotation is made, the calling function must call a
// UpdateAllScreenReferences for the active sheet.
// But this call cannot made here.
m_Fields[REFERENCE].m_Text = defRef; //for drawing.
m_Fields[REFERENCE].SetText( defRef ); //for drawing.
SetModified();
}
@ -943,7 +941,7 @@ void SCH_COMPONENT::Show( int nestLevel, std::ostream& os ) const
// skip the reference, it's been output already.
for( int i = 1; i < GetFieldCount(); ++i )
{
wxString value = GetField( i )->m_Text;
wxString value = GetField( i )->GetText();
if( !value.IsEmpty() )
{
@ -978,10 +976,10 @@ bool SCH_COMPONENT::Save( FILE* f ) const
}
else
{
if( GetField( REFERENCE )->m_Text.IsEmpty() )
if( GetField( REFERENCE )->GetText().IsEmpty() )
name1 = toUTFTildaText( m_prefix );
else
name1 = toUTFTildaText( GetField( REFERENCE )->m_Text );
name1 = toUTFTildaText( GetField( REFERENCE )->GetText() );
}
if( !m_ChipName.IsEmpty() )
@ -1121,14 +1119,14 @@ bool SCH_COMPONENT::Load( LINE_READER& aLine, wxString& aErrorMsg )
m_ChipName = FROM_UTF8( name1 );
if( !newfmt )
GetField( VALUE )->m_Text = FROM_UTF8( name1 );
GetField( VALUE )->SetText( FROM_UTF8( name1 ) );
}
else
{
m_ChipName.Empty();
GetField( VALUE )->m_Text.Empty();
GetField( VALUE )->m_Orient = TEXT_ORIENT_HORIZ;
GetField( VALUE )->m_Attributs = TEXT_NO_VISIBLE;
GetField( VALUE )->Empty();
GetField( VALUE )->SetOrientation( TEXT_ORIENT_HORIZ );
GetField( VALUE )->SetVisible( false );
}
if( strcmp( name2, NULL_STRING ) != 0 )
@ -1172,11 +1170,11 @@ bool SCH_COMPONENT::Load( LINE_READER& aLine, wxString& aErrorMsg )
}
if( !newfmt )
GetField( REFERENCE )->m_Text = FROM_UTF8( name2 );
GetField( REFERENCE )->SetText( FROM_UTF8( name2 ) );
}
else
{
GetField( REFERENCE )->m_Attributs = TEXT_NO_VISIBLE;
GetField( REFERENCE )->SetVisible( false );
}
/* Parse component description
@ -1205,10 +1203,10 @@ bool SCH_COMPONENT::Load( LINE_READER& aLine, wxString& aErrorMsg )
// Set fields position to a default position (that is the
// component position. For existing fields, the real position
// will be set later
for( int i = 0; i<GetFieldCount(); ++i )
for( int i = 0; i<GetFieldCount(); i++ )
{
if( GetField( i )->m_Text.IsEmpty() )
GetField( i )->m_Pos = m_Pos;
if( GetField( i )->GetText().IsEmpty() )
GetField( i )->SetPosition( m_Pos );
}
}
else if( line[0] == 'A' && line[1] == 'R' )
@ -1244,7 +1242,7 @@ bool SCH_COMPONENT::Load( LINE_READER& aLine, wxString& aErrorMsg )
multi = 1;
AddHierarchicalReference( path, ref, multi );
GetField( REFERENCE )->m_Text = ref;
GetField( REFERENCE )->SetText( ref );
}
else if( line[0] == 'F' )
{
@ -1306,14 +1304,11 @@ bool SCH_COMPONENT::Load( LINE_READER& aLine, wxString& aErrorMsg )
GetField( fieldNdx )->SetName( fieldName );
}
GetField( fieldNdx )->m_Text = fieldText;
GetField( fieldNdx )->SetText( fieldText );
memset( char3, 0, sizeof(char3) );
int x, y, w, attr;
if( ( ii = sscanf( ptcar, "%s %d %d %d %X %s %s", char1,
&GetField( fieldNdx )->m_Pos.x,
&GetField( fieldNdx )->m_Pos.y,
&GetField( fieldNdx )->m_Size.x,
&GetField( fieldNdx )->m_Attributs,
if( ( ii = sscanf( ptcar, "%s %d %d %d %X %s %s", char1, &x, &y, &w, &attr,
char2, char3 ) ) < 4 )
{
aErrorMsg.Printf( wxT( "Component Field error line %d, aborted" ),
@ -1321,14 +1316,17 @@ bool SCH_COMPONENT::Load( LINE_READER& aLine, wxString& aErrorMsg )
continue;
}
if( (GetField( fieldNdx )->m_Size.x == 0 ) || (ii == 4) )
GetField( fieldNdx )->m_Size.x = DEFAULT_SIZE_TEXT;
GetField( fieldNdx )->SetTextPosition( wxPoint( x, y ) );
GetField( fieldNdx )->SetAttributes( attr );
GetField( fieldNdx )->m_Orient = TEXT_ORIENT_HORIZ;
GetField( fieldNdx )->m_Size.y = GetField( fieldNdx )->m_Size.x;
if( (w == 0 ) || (ii == 4) )
w = DEFAULT_SIZE_TEXT;
GetField( fieldNdx )->SetSize( wxSize( w, w ) );
GetField( fieldNdx )->SetOrientation( TEXT_ORIENT_HORIZ );
if( char1[0] == 'V' )
GetField( fieldNdx )->m_Orient = TEXT_ORIENT_VERT;
GetField( fieldNdx )->SetOrientation( TEXT_ORIENT_VERT );
if( ii >= 7 )
{
@ -1342,23 +1340,15 @@ bool SCH_COMPONENT::Load( LINE_READER& aLine, wxString& aErrorMsg )
else if( char3[0] == 'T' )
vjustify = GR_TEXT_VJUSTIFY_TOP;
if( char3[1] == 'I' )
GetField( fieldNdx )->m_Italic = true;
else
GetField( fieldNdx )->m_Italic = false;
if( char3[2] == 'B' )
GetField( fieldNdx )->m_Bold = true;
else
GetField( fieldNdx )->m_Bold = false;
GetField( fieldNdx )->m_HJustify = hjustify;
GetField( fieldNdx )->m_VJustify = vjustify;
GetField( fieldNdx )->SetItalic( char3[1] == 'I' );
GetField( fieldNdx )->SetBold( char3[2] == 'B' );
GetField( fieldNdx )->SetHorizJustify( hjustify );
GetField( fieldNdx )->SetVertJustify( vjustify );
}
if( fieldNdx == REFERENCE )
if( GetField( fieldNdx )->m_Text[0] == '#' )
GetField( fieldNdx )->m_Attributs |= TEXT_NO_VISIBLE;
if( GetField( fieldNdx )->GetText()[0] == '#' )
GetField( fieldNdx )->SetVisible( false );
}
else
{
@ -1485,7 +1475,7 @@ void SCH_COMPONENT::GetMsgPanelInfo( MSG_PANEL_ITEMS& aList )
else
msg = _( "Name" );
aList.push_back( MSG_PANEL_ITEM( msg, GetField( VALUE )->m_Text, DARKCYAN ) );
aList.push_back( MSG_PANEL_ITEM( msg, GetField( VALUE )->GetText(), DARKCYAN ) );
// Display component reference in library and library
aList.push_back( MSG_PANEL_ITEM( _( "Component" ), m_ChipName, BROWN ) );
@ -1497,7 +1487,7 @@ void SCH_COMPONENT::GetMsgPanelInfo( MSG_PANEL_ITEMS& aList )
// Display the current associated footprin, if exists.
if( ! GetField( FOOTPRINT )->IsVoid() )
msg = GetField( FOOTPRINT )->m_Text;
msg = GetField( FOOTPRINT )->GetText();
else
msg = _("<Unknown>");
aList.push_back( MSG_PANEL_ITEM( _( "Footprint" ), msg, DARKRED ) );
@ -1520,9 +1510,10 @@ void SCH_COMPONENT::MirrorY( int aYaxis_position )
for( int ii = 0; ii < GetFieldCount(); ii++ )
{
/* move the fields to the new position because the component itself
* has moved */
GetField( ii )->m_Pos.x -= dx;
// Move the fields to the new position because the component itself has moved.
wxPoint pos = GetField( ii )->GetPosition();
pos.x -= dx;
GetField( ii )->SetPosition( pos );
}
}
@ -1539,9 +1530,10 @@ void SCH_COMPONENT::MirrorX( int aXaxis_position )
for( int ii = 0; ii < GetFieldCount(); ii++ )
{
/* move the fields to the new position because the component itself
* has moved */
GetField( ii )->m_Pos.y -= dy;
// Move the fields to the new position because the component itself has moved.
wxPoint pos = GetField( ii )->GetPosition();
pos.y -= dy;
GetField( ii )->SetPosition( pos );
}
}
@ -1557,10 +1549,11 @@ void SCH_COMPONENT::Rotate( wxPoint aPosition )
for( int ii = 0; ii < GetFieldCount(); ii++ )
{
/* move the fields to the new position because the component itself
* has moved */
GetField( ii )->m_Pos.x -= prev.x - m_Pos.x;
GetField( ii )->m_Pos.y -= prev.y - m_Pos.y;
// Move the fields to the new position because the component itself has moved.
wxPoint pos = GetField( ii )->GetPosition();
pos.x -= prev.x - m_Pos.x;
pos.y -= prev.y - m_Pos.y;
GetField( ii )->SetPosition( pos );
}
}

View File

@ -224,15 +224,15 @@ void SCH_FIELD::Draw( EDA_DRAW_PANEL* panel, wxDC* DC,
void SCH_FIELD::ImportValues( const LIB_FIELD& aSource )
{
m_Orient = aSource.m_Orient;
m_Size = aSource.m_Size;
m_HJustify = aSource.m_HJustify;
m_VJustify = aSource.m_VJustify;
m_Italic = aSource.m_Italic;
m_Bold = aSource.m_Bold;
m_Thickness = aSource.m_Thickness;
m_Attributs = aSource.m_Attributs;
m_Mirror = aSource.m_Mirror;
m_Orient = aSource.GetOrientation();
m_Size = aSource.GetSize();
m_HJustify = aSource.GetHorizJustify();
m_VJustify = aSource.GetVertJustify();
m_Italic = aSource.IsItalic();
m_Bold = aSource.IsBold();
m_Thickness = aSource.GetThickness();
m_Attributs = aSource.GetAttributes();
m_Mirror = aSource.IsMirrored();
}

View File

@ -375,7 +375,7 @@ bool SCH_SCREEN::IsTerminalPoint( const wxPoint& aPosition, int aLayer )
label = GetSheetLabel( aPosition );
if( label && IsBusLabel( label->m_Text ) && label->IsConnected( aPosition ) )
if( label && IsBusLabel( label->GetText() ) && label->IsConnected( aPosition ) )
return true;
text = GetLabel( aPosition );
@ -413,7 +413,7 @@ bool SCH_SCREEN::IsTerminalPoint( const wxPoint& aPosition, int aLayer )
label = GetSheetLabel( aPosition );
if( label && label->IsConnected( aPosition ) && !IsBusLabel( label->m_Text ) )
if( label && label->IsConnected( aPosition ) && !IsBusLabel( label->GetText() ) )
return true;
break;
@ -1083,25 +1083,21 @@ bool SCH_SCREEN::SetComponentFootprint( SCH_SHEET_PATH* aSheetPath, const wxStri
* it is probably not yet initialized
*/
SCH_FIELD * fpfield = component->GetField( FOOTPRINT );
if( fpfield->m_Text.IsEmpty()
&& ( fpfield->m_Pos == component->GetPosition() ) )
if( fpfield->GetText().IsEmpty()
&& ( fpfield->GetPosition() == component->GetPosition() ) )
{
fpfield->m_Orient = component->GetField( VALUE )->m_Orient;
fpfield->m_Pos = component->GetField( VALUE )->m_Pos;
fpfield->m_Size = component->GetField( VALUE )->m_Size;
fpfield->SetOrientation( component->GetField( VALUE )->GetOrientation() );
fpfield->SetPosition( component->GetField( VALUE )->GetPosition() );
fpfield->SetSize( component->GetField( VALUE )->GetSize() );
if( fpfield->m_Orient == 0 )
fpfield->m_Pos.y += 100;
if( fpfield->GetOrientation() == 0 )
fpfield->Offset( wxPoint( 0, 100 ) );
else
fpfield->m_Pos.x += 100;
fpfield->Offset( wxPoint( 100, 0 ) );
}
fpfield->m_Text = aFootPrint;
if( aSetVisible )
fpfield->m_Attributs &= ~TEXT_NO_VISIBLE;
else
fpfield->m_Attributs |= TEXT_NO_VISIBLE;
fpfield->SetText( aFootPrint );
fpfield->SetVisible( aSetVisible );
found = true;
}

View File

@ -368,7 +368,7 @@ void SCH_SHEET::RemovePin( SCH_SHEET_PIN* aSheetPin )
}
wxLogDebug( wxT( "Fix me: attempt to remove label %s which is not in sheet %s." ),
GetChars( aSheetPin->m_Text ), GetChars( m_name ) );
GetChars( aSheetPin->GetText() ), GetChars( m_name ) );
}
@ -376,7 +376,7 @@ bool SCH_SHEET::HasPin( const wxString& aName )
{
BOOST_FOREACH( SCH_SHEET_PIN pin, m_pins )
{
if( pin.m_Text.CmpNoCase( aName ) == 0 )
if( pin.GetText().CmpNoCase( aName ) == 0 )
return true;
}
@ -410,7 +410,7 @@ bool SCH_SHEET::HasUndefinedPins()
HLabel = (SCH_HIERLABEL*) DrawStruct;
if( pin.m_Text.CmpNoCase( HLabel->m_Text ) == 0 )
if( pin.GetText().CmpNoCase( HLabel->GetText() ) == 0 )
break; // Found!
HLabel = NULL;
@ -443,7 +443,7 @@ int SCH_SHEET::GetMinWidth() const
for( size_t j = 0; j < m_pins.size(); j++ )
{
if( (i == j) || (m_pins[i].m_Pos.y != m_pins[j].m_Pos.y) )
if( (i == j) || (m_pins[i].GetPosition().y != m_pins[j].GetPosition().y) )
continue;
if( width < rect.GetWidth() + m_pins[j].GetBoundingBox().GetWidth() )
@ -464,7 +464,7 @@ int SCH_SHEET::GetMinHeight() const
for( size_t i = 0; i < m_pins.size(); i++ )
{
int pinY = m_pins[i].m_Pos.y - m_pos.y;
int pinY = m_pins[i].GetPosition().y - m_pos.y;
if( pinY > height )
height = pinY;
@ -494,7 +494,7 @@ void SCH_SHEET::CleanupSheet()
HLabel = (SCH_HIERLABEL*) DrawStruct;
if( i->m_Text.CmpNoCase( HLabel->m_Text ) == 0 )
if( i->GetText().CmpNoCase( HLabel->GetText() ) == 0 )
break; // Found!
HLabel = NULL;
@ -673,7 +673,7 @@ int SCH_SHEET::ComponentCount()
{
SCH_COMPONENT* Cmp = (SCH_COMPONENT*) bs;
if( Cmp->GetField( VALUE )->m_Text.GetChar( 0 ) != '#' )
if( Cmp->GetField( VALUE )->GetText().GetChar( 0 ) != '#' )
n++;
}
@ -896,7 +896,7 @@ void SCH_SHEET::Resize( const wxSize& aSize )
/* Move the sheet labels according to the new sheet size. */
BOOST_FOREACH( SCH_SHEET_PIN& label, m_pins )
{
label.ConstrainOnEdge( label.m_Pos );
label.ConstrainOnEdge( label.GetPosition() );
}
}
@ -1003,7 +1003,7 @@ bool SCH_SHEET::IsSelectStateChanged( const wxRect& aRect )
void SCH_SHEET::GetConnectionPoints( vector< wxPoint >& aPoints ) const
{
for( size_t i = 0; i < GetPins().size(); i++ )
aPoints.push_back( GetPins()[i].m_Pos );
aPoints.push_back( GetPins()[i].GetPosition() );
}
@ -1087,11 +1087,11 @@ void SCH_SHEET::GetNetListItem( vector<NETLIST_OBJECT*>& aNetListItems,
item->m_Link = this;
item->m_Type = NET_SHEETLABEL;
item->m_ElectricalType = m_pins[i].GetShape();
item->m_Label = m_pins[i].m_Text;
item->m_Start = item->m_End = m_pins[i].m_Pos;
item->m_Label = m_pins[i].GetText();
item->m_Start = item->m_End = m_pins[i].GetPosition();
aNetListItems.push_back( item );
if( IsBusLabel( m_pins[i].m_Text ) )
if( IsBusLabel( m_pins[i].GetText() ) )
item->ConvertBusToNetListItems( aNetListItems );
}
}

View File

@ -233,7 +233,7 @@ void SCH_SHEET_PATH::UpdateAllScreenReferences()
if( t->Type() == SCH_COMPONENT_T )
{
SCH_COMPONENT* component = (SCH_COMPONENT*) t;
component->GetField( REFERENCE )->m_Text = component->GetRef( this );
component->GetField( REFERENCE )->SetText( component->GetRef( this ) );
component->SetUnit( component->GetUnitSelection( this ) );
}

View File

@ -56,10 +56,10 @@ int SCH_EDIT_FRAME::EditSheetPin( SCH_SHEET_PIN* aSheetPin, wxDC* aDC )
DIALOG_SCH_EDIT_SHEET_PIN dlg( this );
dlg.SetLabelName( aSheetPin->m_Text );
dlg.SetTextHeight( ReturnStringFromValue( g_UserUnit, aSheetPin->m_Size.y ) );
dlg.SetLabelName( aSheetPin->GetText() );
dlg.SetTextHeight( ReturnStringFromValue( g_UserUnit, aSheetPin->GetSize().y ) );
dlg.SetTextHeightUnits( GetUnitsLabel( g_UserUnit ) );
dlg.SetTextWidth( ReturnStringFromValue( g_UserUnit, aSheetPin->m_Size.x ) );
dlg.SetTextWidth( ReturnStringFromValue( g_UserUnit, aSheetPin->GetSize().x ) );
dlg.SetTextWidthUnits( GetUnitsLabel( g_UserUnit ) );
dlg.SetConnectionType( aSheetPin->GetShape() );
@ -84,9 +84,9 @@ int SCH_EDIT_FRAME::EditSheetPin( SCH_SHEET_PIN* aSheetPin, wxDC* aDC )
GetScreen()->SetCurItem( NULL );
}
aSheetPin->m_Text = dlg.GetLabelName();
aSheetPin->m_Size.y = ReturnValueFromString( g_UserUnit, dlg.GetTextHeight() );
aSheetPin->m_Size.x = ReturnValueFromString( g_UserUnit, dlg.GetTextWidth() );
aSheetPin->SetText( dlg.GetLabelName() );
aSheetPin->SetSize( wxSize( ReturnValueFromString( g_UserUnit, dlg.GetTextHeight() ),
ReturnValueFromString( g_UserUnit, dlg.GetTextWidth() ) ) );
aSheetPin->SetShape( dlg.GetConnectionType() );
if( aDC )
@ -103,19 +103,19 @@ SCH_SHEET_PIN* SCH_EDIT_FRAME::CreateSheetPin( SCH_SHEET* aSheet, wxDC* aDC )
sheetPin = new SCH_SHEET_PIN( aSheet, wxPoint( 0, 0 ), line );
sheetPin->SetFlags( IS_NEW );
sheetPin->m_Size = m_lastSheetPinTextSize;
sheetPin->SetSize( m_lastSheetPinTextSize );
sheetPin->SetShape( m_lastSheetPinType );
int response = EditSheetPin( sheetPin, NULL );
if( sheetPin->m_Text.IsEmpty() || (response == wxID_CANCEL) )
if( sheetPin->GetText().IsEmpty() || (response == wxID_CANCEL) )
{
delete sheetPin;
return NULL;
}
m_lastSheetPinType = sheetPin->GetShape();
m_lastSheetPinTextSize = sheetPin->m_Size;
m_lastSheetPinTextSize = sheetPin->GetSize();
MoveItem( (SCH_ITEM*) sheetPin, aDC );
@ -143,7 +143,7 @@ SCH_SHEET_PIN* SCH_EDIT_FRAME::ImportSheetPin( SCH_SHEET* aSheet, wxDC* aDC )
label = (SCH_HIERLABEL*) item;
/* A global label has been found: check if there a corresponding sheet label. */
if( !aSheet->HasPin( label->m_Text ) )
if( !aSheet->HasPin( label->GetText() ) )
break;
label = NULL;
@ -155,9 +155,9 @@ SCH_SHEET_PIN* SCH_EDIT_FRAME::ImportSheetPin( SCH_SHEET* aSheet, wxDC* aDC )
return NULL;
}
sheetPin = new SCH_SHEET_PIN( aSheet, wxPoint( 0, 0 ), label->m_Text );
sheetPin = new SCH_SHEET_PIN( aSheet, wxPoint( 0, 0 ), label->GetText() );
sheetPin->SetFlags( IS_NEW );
sheetPin->m_Size = m_lastSheetPinTextSize;
sheetPin->SetSize( m_lastSheetPinTextSize );
m_lastSheetPinType = label->GetShape();
sheetPin->SetShape( label->GetShape() );

View File

@ -180,8 +180,8 @@ LIB_ITEM* LIB_EDIT_FRAME::CreateGraphicItem( LIB_COMPONENT* LibEntry, wxDC* DC )
case ID_LIBEDIT_BODY_TEXT_BUTT:
{
LIB_TEXT* Text = new LIB_TEXT( LibEntry );
Text->m_Size.x = Text->m_Size.y = m_textSize;
Text->m_Orient = m_textOrientation;
Text->SetSize( wxSize( m_textSize, m_textSize ) );
Text->SetOrientation( m_textOrientation );
// Enter the graphic text info
m_canvas->SetIgnoreMouseEvents( true );
@ -189,7 +189,7 @@ LIB_ITEM* LIB_EDIT_FRAME::CreateGraphicItem( LIB_COMPONENT* LibEntry, wxDC* DC )
m_canvas->SetIgnoreMouseEvents( false );
m_canvas->MoveCursorToCrossHair();
if( Text->m_Text.IsEmpty() )
if( Text->GetText().IsEmpty() )
{
delete Text;
m_drawItem = NULL;

View File

@ -168,8 +168,8 @@ void LIB_EDIT_FRAME::SaveOneSymbol()
line << wxT( "# SYMBOL " ) << m_component->GetName() << wxT( "\n#\nDEF " )
<< m_component->GetName() << wxT( " " );
if( !m_component->GetReferenceField().m_Text.IsEmpty() )
line << m_component->GetReferenceField().m_Text << wxT( " " );
if( !m_component->GetReferenceField().GetText().IsEmpty() )
line << m_component->GetReferenceField().GetText() << wxT( " " );
else
line << wxT( "~ " );

View File

@ -72,34 +72,28 @@ enum EDA_DRAW_MODE_T {
*/
class EDA_TEXT
{
public:
wxString m_Text;
int m_Thickness; ///< pen size used to draw this text
double m_Orient; ///< Orient in 0.1 degrees
wxPoint m_Pos; ///< XY position of anchor text.
wxSize m_Size; ///< XY size of text
bool m_Mirror; ///< true if mirrored
int m_Attributs; ///< bit flags such as visible, etc.
bool m_Italic; ///< should be italic font (if available)
bool m_Bold; ///< should be bold font (if available)
EDA_TEXT_HJUSTIFY_T m_HJustify; ///< horizontal justification
EDA_TEXT_VJUSTIFY_T m_VJustify; ///< vertical justification
bool m_MultilineAllowed; /**< true to use multiline option, false
* to use only single line text
* Single line is faster in
* calculations than multiline */
protected:
wxString m_Text;
int m_Thickness; ///< pen size used to draw this text
double m_Orient; ///< Orient in 0.1 degrees
wxPoint m_Pos; ///< XY position of anchor text.
wxSize m_Size; ///< XY size of text
bool m_Mirror; ///< true if mirrored
int m_Attributs; ///< bit flags such as visible, etc.
bool m_Italic; ///< should be italic font (if available)
bool m_Bold; ///< should be bold font (if available)
EDA_TEXT_HJUSTIFY_T m_HJustify; ///< horizontal justification
EDA_TEXT_VJUSTIFY_T m_VJustify; ///< vertical justification
bool m_MultilineAllowed; /**< true to use multiline option, false
* to use only single line text
* Single line is faster in
* calculations than multiline */
public:
EDA_TEXT( const wxString& text = wxEmptyString );
EDA_TEXT( const EDA_TEXT& aText );
virtual ~EDA_TEXT();
wxString& Text() { return m_Text; }
wxString& Text() const { return *(const_cast<wxString*> (&m_Text)); }
void SetText( const wxString& aText ) { m_Text = aText; }
/**
* Function GetText
* returns the string associated with the text object.
@ -112,6 +106,8 @@ public:
*/
virtual const wxString GetText() const { return m_Text; }
virtual void SetText( const wxString& aText ) { m_Text = aText; }
/**
* Function SetThickness
* sets text thickness.
@ -124,29 +120,32 @@ public:
* returns text thickness.
* @return int - text thickness.
*/
int GetThickness() const { return m_Thickness; };
int GetThickness() const { return m_Thickness; };
void SetOrientation( double aOrientation )
{
NORMALIZE_ANGLE_POS( aOrientation );
m_Orient = aOrientation;
}
double GetOrientation() const { return m_Orient; }
double GetOrientation() const { return m_Orient; }
void SetItalic( bool isItalic ) { m_Italic = isItalic; }
bool IsItalic() const { return m_Italic; }
void SetItalic( bool isItalic ) { m_Italic = isItalic; }
bool IsItalic() const { return m_Italic; }
void SetBold( bool aBold ) { m_Bold = aBold; }
bool IsBold() const { return m_Bold; }
void SetBold( bool aBold ) { m_Bold = aBold; }
bool IsBold() const { return m_Bold; }
void SetVisible( bool aVisible )
{
( aVisible ) ? m_Attributs &= ~TEXT_NO_VISIBLE : m_Attributs |= TEXT_NO_VISIBLE;
}
bool IsVisible() const { return !( m_Attributs & TEXT_NO_VISIBLE ); }
bool IsVisible() const { return !( m_Attributs & TEXT_NO_VISIBLE ); }
void SetMirrored( bool isMirrored ) { m_Mirror = isMirrored; }
bool IsMirrored() const { return m_Mirror; }
void SetMirrored( bool isMirrored ) { m_Mirror = isMirrored; }
bool IsMirrored() const { return m_Mirror; }
void SetAttributes( int aAttributes ) { m_Attributs = aAttributes; }
int GetAttributes() const { return m_Attributs; }
bool IsDefaultFormatting() const;
@ -162,7 +161,7 @@ public:
* returns text size.
* @return wxSize - text size.
*/
const wxSize GetSize() const { return m_Size; };
const wxSize& GetSize() const { return m_Size; };
void SetWidth( int aWidth ) { m_Size.x = aWidth; }
int GetWidth() const { return m_Size.x; }
@ -171,10 +170,15 @@ public:
int GetHeight() const { return m_Size.y; }
/// named differently than the ones using multiple inheritance and including this class
void SetPosition( const wxPoint& aPoint ) { m_Pos = aPoint; }
const wxPoint GetPosition() const { return m_Pos; }
void SetTextPosition( const wxPoint& aPoint ) { m_Pos = aPoint; }
const wxPoint& GetTextPosition() const { return m_Pos; }
int GetLength() const { return m_Text.Length(); };
void SetMultilineAllowed( bool aAllow ) { m_MultilineAllowed = aAllow; }
bool IsMultilineAllowed() const { return m_MultilineAllowed; }
void Offset( const wxPoint& aOffset ) { m_Pos += aOffset; }
void Empty() { m_Text.Empty(); }
/**
* Function Draw
@ -191,30 +195,6 @@ public:
GR_DRAWMODE aDrawMode, EDA_DRAW_MODE_T aDisplay_mode = LINE,
EDA_COLOR_T aAnchor_color = UNSPECIFIED_COLOR );
private:
/**
* Function DrawOneLineOfText
* Draw a single text line.
* Used to draw each line of this EDA_TEXT, that can be multiline
* @param aPanel = the current DrawPanel
* @param aDC = the current Device Context
* @param aOffset = draw offset (usually (0,0))
* @param aColor = text color
* @param aDrawMode = GR_OR, GR_XOR.., -1 to use the current mode.
* @param aFillMode = LINE, FILLED or SKETCH
* @param aAnchor_color = anchor color ( UNSPECIFIED_COLOR = do not draw anchor ).
* @param aText = the single line of text to draw.
* @param aPos = the position of this line ).
*/
void DrawOneLineOfText( EDA_DRAW_PANEL* aPanel, wxDC* aDC,
const wxPoint& aOffset, EDA_COLOR_T aColor,
GR_DRAWMODE aDrawMode, EDA_DRAW_MODE_T aFillMode,
EDA_COLOR_T aAnchor_color, wxString& aText,
wxPoint aPos );
public:
/**
* Function TextHitTest
* Test if \a aPoint is within the bounds of this object.
@ -293,6 +273,27 @@ public:
virtual void Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aControlBits ) const
throw( IO_ERROR );
private:
/**
* Function DrawOneLineOfText
* Draw a single text line.
* Used to draw each line of this EDA_TEXT, that can be multiline
* @param aPanel = the current DrawPanel
* @param aDC = the current Device Context
* @param aOffset = draw offset (usually (0,0))
* @param aColor = text color
* @param aDrawMode = GR_OR, GR_XOR.., -1 to use the current mode.
* @param aFillMode = LINE, FILLED or SKETCH
* @param aAnchor_color = anchor color ( UNSPECIFIED_COLOR = do not draw anchor ).
* @param aText = the single line of text to draw.
* @param aPos = the position of this line ).
*/
void DrawOneLineOfText( EDA_DRAW_PANEL* aPanel, wxDC* aDC,
const wxPoint& aOffset, EDA_COLOR_T aColor,
GR_DRAWMODE aDrawMode, EDA_DRAW_MODE_T aFillMode,
EDA_COLOR_T aAnchor_color, wxString& aText,
wxPoint aPos );
};

View File

@ -289,6 +289,7 @@ if (KICAD_SCRIPTING)
set(SWIG_OPTS -python -c++ -outdir ${CMAKE_CURRENT_BINARY_DIR} ${SWIG_FLAGS} )
add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/pcbnew_wrap.cxx
DEPENDS pcbcommon
DEPENDS scripting/pcbnew.i
DEPENDS scripting/board.i
DEPENDS scripting/board_item.i

View File

@ -564,7 +564,7 @@ void PCB_EDIT_FRAME::GenModuleOnBoard( MODULE* Module )
/* Trace pads and surface safely. */
marge = trackWidth + clearance;
for( Pad = Module->m_Pads; Pad != NULL; Pad = Pad->Next() )
for( Pad = Module->Pads(); Pad != NULL; Pad = Pad->Next() )
{
::PlacePad( Pad, CELL_is_MODULE, marge, WRITE_OR_CELL );
}
@ -626,7 +626,7 @@ int PCB_EDIT_FRAME::GetOptimalModulePlacement( MODULE* aModule, wxDC* aDC )
if( aModule->GetLayer() == LAYER_N_BACK )
otherLayerMask = LAYER_FRONT;
for( Pad = aModule->m_Pads; Pad != NULL; Pad = Pad->Next() )
for( Pad = aModule->Pads(); Pad != NULL; Pad = Pad->Next() )
{
if( ( Pad->GetLayerMask() & otherLayerMask ) == 0 )
continue;

View File

@ -134,7 +134,7 @@ void PCB_EDIT_FRAME::Autoroute( wxDC* DC, int mode )
case ROUTE_MODULE:
{
D_PAD* pt_pad = (D_PAD*) Module->m_Pads;
D_PAD* pt_pad = (D_PAD*) Module->Pads();
for( ; pt_pad != NULL; pt_pad = pt_pad->Next() )
{
if( ptmp->m_PadStart == pt_pad )

View File

@ -229,7 +229,7 @@ void PlaceCells( BOARD* aPcb, int net_code, int flag )
for( MODULE* module = aPcb->m_Modules; module; module = module->Next() )
{
for( BOARD_ITEM* item = module->m_Drawings; item; item = item->Next() )
for( BOARD_ITEM* item = module->GraphicalItems(); item; item = item->Next() )
{
switch( item->Type() )
{
@ -295,7 +295,7 @@ void PlaceCells( BOARD* aPcb, int net_code, int flag )
TEXTE_PCB* PtText;
PtText = (TEXTE_PCB*) item;
if( PtText->GetLength() == 0 )
if( PtText->GetText().Length() == 0 )
break;
EDA_RECT textbox = PtText->GetTextBox( -1 );

View File

@ -320,7 +320,7 @@ static void DrawMovingBlockOutlines( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wx
if( currentModule )
{
wxPoint move_offset = -block->GetMoveVector();
BOARD_ITEM* item = currentModule->m_Drawings;
BOARD_ITEM* item = currentModule->GraphicalItems();
for( ; item != NULL; item = item->Next() )
{
@ -339,7 +339,7 @@ static void DrawMovingBlockOutlines( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wx
}
}
D_PAD* pad = currentModule->m_Pads;
D_PAD* pad = currentModule->Pads();
for( ; pad != NULL; pad = pad->Next() )
{
@ -358,7 +358,7 @@ static void DrawMovingBlockOutlines( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wx
if( currentModule )
{
BOARD_ITEM* item = currentModule->m_Drawings;
BOARD_ITEM* item = currentModule->GraphicalItems();
wxPoint move_offset = - block->GetMoveVector();
for( ; item != NULL; item = item->Next() )
@ -378,7 +378,7 @@ static void DrawMovingBlockOutlines( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wx
}
}
D_PAD* pad = currentModule->m_Pads;
D_PAD* pad = currentModule->Pads();
for( ; pad != NULL; pad = pad->Next() )
{
@ -398,7 +398,7 @@ void CopyMarkedItems( MODULE* module, wxPoint offset )
if( module == NULL )
return;
for( D_PAD* pad = module->m_Pads; pad; pad = pad->Next() )
for( D_PAD* pad = module->Pads(); pad; pad = pad->Next() )
{
if( !pad->IsSelected() )
continue;
@ -407,12 +407,12 @@ void CopyMarkedItems( MODULE* module, wxPoint offset )
D_PAD* NewPad = new D_PAD( *pad );
NewPad->SetParent( module );
NewPad->SetFlags( SELECTED );
module->m_Pads.PushFront( NewPad );
module->Pads().PushFront( NewPad );
}
BOARD_ITEM* newItem;
for( BOARD_ITEM* item = module->m_Drawings; item; item = item->Next() )
for( BOARD_ITEM* item = module->GraphicalItems(); item; item = item->Next() )
{
if( !item->IsSelected() )
continue;
@ -422,7 +422,7 @@ void CopyMarkedItems( MODULE* module, wxPoint offset )
newItem = (BOARD_ITEM*)item->Clone();
newItem->SetParent( module );
newItem->SetFlags( SELECTED );
module->m_Drawings.PushFront( newItem );
module->GraphicalItems().PushFront( newItem );
}
MoveMarkedItems( module, offset );
@ -438,7 +438,7 @@ void MoveMarkedItems( MODULE* module, wxPoint offset )
if( module == NULL )
return;
D_PAD* pad = module->m_Pads;
D_PAD* pad = module->Pads();
for( ; pad != NULL; pad = pad->Next() )
{
@ -449,7 +449,7 @@ void MoveMarkedItems( MODULE* module, wxPoint offset )
pad->SetPos0( pad->GetPos0() + offset );
}
item = module->m_Drawings;
item = module->GraphicalItems();
for( ; item != NULL; item = item->Next() )
{
@ -459,22 +459,22 @@ void MoveMarkedItems( MODULE* module, wxPoint offset )
switch( item->Type() )
{
case PCB_MODULE_TEXT_T:
{
TEXTE_MODULE* tm = (TEXTE_MODULE*) item;
tm->m_Pos += offset;
tm->SetPos0( tm->GetPos0() + offset );
}
break;
{
TEXTE_MODULE* tm = (TEXTE_MODULE*) item;
tm->Offset( offset );
tm->SetPos0( tm->GetPos0() + offset );
}
break;
case PCB_MODULE_EDGE_T:
{
EDGE_MODULE* em = (EDGE_MODULE*) item;
em->SetStart( em->GetStart() + offset );
em->SetEnd( em->GetEnd() + offset );
em->SetStart0( em->GetStart0() + offset );
em->SetEnd0( em->GetEnd0() + offset );
}
break;
{
EDGE_MODULE* em = (EDGE_MODULE*) item;
em->SetStart( em->GetStart() + offset );
em->SetEnd( em->GetEnd() + offset );
em->SetStart0( em->GetStart0() + offset );
em->SetEnd0( em->GetEnd0() + offset );
}
break;
default:
;
@ -497,7 +497,7 @@ void DeleteMarkedItems( MODULE* module )
if( module == NULL )
return;
pad = module->m_Pads;
pad = module->Pads();
for( ; pad != NULL; pad = next_pad )
{
@ -509,7 +509,7 @@ void DeleteMarkedItems( MODULE* module )
pad->DeleteStructure();
}
item = module->m_Drawings;
item = module->GraphicalItems();
for( ; item != NULL; item = next_item )
{
@ -536,7 +536,7 @@ void MirrorMarkedItems( MODULE* module, wxPoint offset, bool force_all )
if( module == NULL )
return;
for( D_PAD* pad = module->m_Pads; pad; pad = pad->Next() )
for( D_PAD* pad = module->Pads(); pad; pad = pad->Next() )
{
// Skip pads not selected, i.e. not inside the block to mirror:
if( !pad->IsSelected() && !force_all )
@ -559,7 +559,7 @@ void MirrorMarkedItems( MODULE* module, wxPoint offset, bool force_all )
pad->SetOrientation( 1800 - pad->GetOrientation() );
}
for( EDA_ITEM* item = module->m_Drawings; item; item = item->Next() )
for( EDA_ITEM* item = module->GraphicalItems(); item; item = item->Next() )
{
// Skip items not selected, i.e. not inside the block to mirror:
if( !item->IsSelected() && !force_all )
@ -588,9 +588,9 @@ void MirrorMarkedItems( MODULE* module, wxPoint offset, bool force_all )
case PCB_MODULE_TEXT_T:
{
TEXTE_MODULE* tm = (TEXTE_MODULE*) item;
tmp = tm->GetPosition();
tmp = tm->GetTextPosition();
SETMIRROR( tmp.x );
tm->SetPosition( tmp );
tm->SetTextPosition( tmp );
tmp.y = tm->GetPos0().y;
tm->SetPos0( tmp );
}
@ -616,7 +616,7 @@ void RotateMarkedItems( MODULE* module, wxPoint offset, bool force_all )
if( module == NULL )
return;
for( D_PAD* pad = module->m_Pads; pad; pad = pad->Next() )
for( D_PAD* pad = module->Pads(); pad; pad = pad->Next() )
{
if( !pad->IsSelected() && !force_all )
continue;
@ -629,7 +629,7 @@ void RotateMarkedItems( MODULE* module, wxPoint offset, bool force_all )
pad->SetOrientation( pad->GetOrientation() + 900 );
}
for( EDA_ITEM* item = module->m_Drawings; item; item = item->Next() )
for( EDA_ITEM* item = module->GraphicalItems(); item; item = item->Next() )
{
if( !item->IsSelected() && !force_all)
continue;
@ -655,10 +655,10 @@ void RotateMarkedItems( MODULE* module, wxPoint offset, bool force_all )
case PCB_MODULE_TEXT_T:
{
TEXTE_MODULE* tm = (TEXTE_MODULE*) item;
wxPoint pos = tm->GetPosition();
wxPoint pos = tm->GetTextPosition();
ROTATE( pos );
tm->SetPosition( pos );
tm->SetPos0( tm->GetPosition() );
tm->SetTextPosition( pos );
tm->SetPos0( tm->GetTextPosition() );
tm->SetOrientation( tm->GetOrientation() + 900 );
}
break;
@ -679,14 +679,14 @@ void ClearMarkItems( MODULE* module )
if( module == NULL )
return;
item = module->m_Drawings;
item = module->GraphicalItems();
for( ; item != NULL; item = item->Next() )
{
item->ClearFlags();
}
item = module->m_Pads;
item = module->Pads();
for( ; item != NULL; item = item->Next() )
{
@ -708,7 +708,7 @@ int MarkItemsInBloc( MODULE* module, EDA_RECT& Rect )
if( module == NULL )
return 0;
pad = module->m_Pads;
pad = module->Pads();
for( ; pad != NULL; pad = pad->Next() )
{
@ -722,7 +722,7 @@ int MarkItemsInBloc( MODULE* module, EDA_RECT& Rect )
}
}
item = module->m_Drawings;
item = module->GraphicalItems();
for( ; item != NULL; item = item->Next() )
{
@ -740,7 +740,7 @@ int MarkItemsInBloc( MODULE* module, EDA_RECT& Rect )
break;
case PCB_MODULE_TEXT_T:
pos = ( (TEXTE_MODULE*) item )->GetPosition();
pos = ( (TEXTE_MODULE*) item )->GetTextPosition();
if( Rect.Contains( pos ) )
{

View File

@ -37,7 +37,7 @@ void TEXTE_PCB::TransformShapeWithClearanceToPolygon( std::vector <CPolyPt>& aCo
int aCircleToSegmentsCount,
double aCorrectionFactor )
{
if( GetLength() == 0 )
if( GetText().Length() == 0 )
return;
CPolyPt corners[4]; // Buffer of polygon corners

View File

@ -64,13 +64,13 @@ DIMENSION::~DIMENSION()
void DIMENSION::SetPosition( const wxPoint& aPos )
{
m_Text.SetPosition( aPos );
m_Text.SetTextPosition( aPos );
}
const wxPoint& DIMENSION::GetPosition() const
{
return m_Text.GetPosition();
return m_Text.GetTextPosition();
}
@ -122,7 +122,7 @@ void DIMENSION::Copy( DIMENSION* source )
void DIMENSION::Move( const wxPoint& offset )
{
m_Text.m_Pos += offset;
m_Text.SetTextPosition( m_Text.GetTextPosition() + offset );
m_crossBarO += offset;
m_crossBarF += offset;
m_featureLineGO += offset;
@ -142,7 +142,9 @@ void DIMENSION::Move( const wxPoint& offset )
void DIMENSION::Rotate( const wxPoint& aRotCentre, double aAngle )
{
RotatePoint( &m_Text.m_Pos, aRotCentre, aAngle );
wxPoint tmp = m_Text.GetTextPosition();
RotatePoint( &tmp, aRotCentre, aAngle );
m_Text.SetTextPosition( tmp );
double newAngle = m_Text.GetOrientation() + aAngle;
@ -180,8 +182,12 @@ void DIMENSION::Flip( const wxPoint& aCentre )
void DIMENSION::Mirror( const wxPoint& axis_pos )
{
wxPoint newPos = m_Text.GetTextPosition();
#define INVERT( pos ) (pos) = axis_pos.y - ( (pos) - axis_pos.y )
INVERT( m_Text.m_Pos.y );
INVERT( newPos.y );
m_Text.SetTextPosition( newPos );
// invert angle
double newAngle = m_Text.GetOrientation();
@ -226,8 +232,7 @@ void DIMENSION::AdjustDimensionDetails( bool aDoNotChangeText )
m_Text.SetLayer( GetLayer() );
// calculate the size of the dimension (text + line above the text)
ii = m_Text.m_Size.y +
m_Text.GetThickness() + (m_Width * 3);
ii = m_Text.GetSize().y + m_Text.GetThickness() + (m_Width * 3);
deltax = m_featureLineDO.x - m_featureLineGO.x;
deltay = m_featureLineDO.y - m_featureLineGO.y;
@ -300,8 +305,10 @@ void DIMENSION::AdjustDimensionDetails( bool aDoNotChangeText )
m_featureLineDF.y = m_crossBarF.y + hy;
// Calculate the better text position and orientation:
m_Text.m_Pos.x = (m_crossBarF.x + m_featureLineGF.x) / 2;
m_Text.m_Pos.y = (m_crossBarF.y + m_featureLineGF.y) / 2;
wxPoint textPos;
textPos.x = (m_crossBarF.x + m_featureLineGF.x) / 2;
textPos.y = (m_crossBarF.y + m_featureLineGF.y) / 2;
m_Text.SetTextPosition( textPos );
double newAngle = -(angle * 1800 / M_PI);

View File

@ -886,8 +886,8 @@ void MODULE::SetPosition( const wxPoint& newpos )
wxPoint delta = newpos - m_Pos;
m_Pos += delta;
m_Reference->SetPosition( m_Reference->GetPosition() + delta );
m_Value->SetPosition( m_Value->GetPosition() + delta );
m_Reference->SetTextPosition( m_Reference->GetTextPosition() + delta );
m_Value->SetTextPosition( m_Value->GetTextPosition() + delta );
for( D_PAD* pad = m_Pads; pad; pad = pad->Next() )
{

View File

@ -66,16 +66,6 @@ enum MODULE_ATTR_T
class MODULE : public BOARD_ITEM
{
public:
DLIST<D_PAD> m_Pads; /* Pad list (linked list) */
DLIST<BOARD_ITEM> m_Drawings; /* Graphic items list (linked list) */
DLIST<S3D_MASTER> m_3D_Drawings; /* First item of the 3D shapes (linked list)*/
// m_ModuleStatus bits:
#define MODULE_is_LOCKED 0x01 ///< module LOCKED: no autoplace allowed
#define MODULE_is_PLACED 0x02 ///< In autoplace: module automatically placed
#define MODULE_to_PLACE 0x04 ///< In autoplace: module waiting for autoplace
public:
MODULE( BOARD* parent );
@ -111,6 +101,15 @@ public:
EDA_RECT GetBoundingBox() const;
DLIST<D_PAD>& Pads() { return m_Pads; }
const DLIST<D_PAD>& Pads() const { return m_Pads; }
DLIST<BOARD_ITEM>& GraphicalItems() { return m_Drawings; }
const DLIST<BOARD_ITEM>& GraphicalItems() const { return m_Drawings; }
DLIST<S3D_MASTER>& Models() { return m_3D_Drawings; }
const DLIST<S3D_MASTER>& Models() const { return m_3D_Drawings; }
void SetPosition( const wxPoint& aPos ); // was overload
const wxPoint& GetPosition() const { return m_Pos; } // was overload
@ -169,6 +168,12 @@ public:
*/
bool IsFlipped() const {return GetLayer() == LAYER_N_BACK; }
// m_ModuleStatus bits:
#define MODULE_is_LOCKED 0x01 ///< module LOCKED: no autoplace allowed
#define MODULE_is_PLACED 0x02 ///< In autoplace: module automatically placed
#define MODULE_to_PLACE 0x04 ///< In autoplace: module waiting for autoplace
bool IsLocked() const
{
return (m_ModuleStatus & MODULE_is_LOCKED) != 0;
@ -367,6 +372,9 @@ public:
#endif
private:
DLIST<D_PAD> m_Pads; ///< Linked list of pads.
DLIST<BOARD_ITEM> m_Drawings; ///< Linked list of graphical items.
DLIST<S3D_MASTER> m_3D_Drawings; ///< Linked list of 3D models.
double m_Orient; ///< Orientation in tenths of a degree, 900=90.0 degrees.
wxPoint m_Pos; ///< Position of module on the board in internal units.
TEXTE_MODULE* m_Reference; ///< Component reference designator value (U34, R18..)
@ -396,9 +404,8 @@ private:
int m_LocalClearance;
int m_LocalSolderMaskMargin; ///< Solder mask margin
int m_LocalSolderPasteMargin; ///< Solder paste margin absolute value
double m_LocalSolderPasteMarginRatio; ///< Solder mask margin ratio
///< value of pad size
///< value of pad size
};
#endif // MODULE_H_

View File

@ -126,7 +126,7 @@ void NETINFO_ITEM::GetMsgPanelInfo( std::vector< MSG_PANEL_ITEM >& aList )
for( ; module != 0; module = module->Next() )
{
for( pad = module->m_Pads; pad != 0; pad = pad->Next() )
for( pad = module->Pads(); pad != 0; pad = pad->Next() )
{
if( pad->GetNet() == GetNet() )
{

View File

@ -169,7 +169,7 @@ void NETINFO_LIST::buildPadsFullList()
// Clear variables used in ratsnest computation
for( MODULE* module = m_Parent->m_Modules; module; module = module->Next() )
{
for( D_PAD* pad = module->m_Pads; pad; pad = pad->Next() )
for( D_PAD* pad = module->Pads(); pad; pad = pad->Next() )
{
m_PadsFullList.push_back( pad );

View File

@ -49,16 +49,6 @@ public:
~TEXTE_PCB();
const wxPoint& GetPosition() const // was overload
{
return m_Pos; // within EDA_TEXT
}
void SetPosition( const wxPoint& aPos ) // was overload
{
m_Pos = aPos; // within EDA_TEXT
}
void Move( const wxPoint& aMoveVector )
{
m_Pos += aMoveVector;

View File

@ -330,7 +330,7 @@ void TEXTE_MODULE::DrawUmbilical( EDA_DRAW_PANEL* aPanel,
GRSetDrawMode( aDC, GR_XOR );
GRLine( aPanel->GetClipBox(), aDC,
parent->GetPosition(), GetPosition() + aOffset,
parent->GetPosition(), GetTextPosition() + aOffset,
0, UMBILICAL_COLOR);
}

View File

@ -77,16 +77,6 @@ public:
TEXTE_MODULE* Back() const { return (TEXTE_MODULE*) Pback; }
void SetPosition( const wxPoint& aPos ) // was overload
{
m_Pos = aPos; // in EDA_TEXT
}
const wxPoint& GetPosition() const // was overload
{
return m_Pos; // from EDA_TEXT
}
/// @deprecated it seems
void SetType( int aType ) { m_Type = aType; }
int GetType() const { return m_Type; }

View File

@ -1,3 +1,4 @@
/*
* This program source code file is part of KiCad, a free EDA CAD application.
*
@ -223,8 +224,8 @@ public:
}
int GetThermalReliefCopperBridge( D_PAD* aPad = NULL ) const;
void SetArcSegCount( int aArcSegCount ) { m_ArcToSegmentsCount = aArcSegCount; }
int GetArcSegCount() const { return m_ArcToSegmentsCount; }
void SetArcSegmentCount( int aArcSegCount ) { m_ArcToSegmentsCount = aArcSegCount; }
int GetArcSegmentCount() const { return m_ArcToSegmentsCount; }
bool IsFilled() const { return m_IsFilled; }
void SetIsFilled( bool isFilled ) { m_IsFilled = isFilled; }
@ -557,26 +558,9 @@ public:
// For corner moving, corner index to drag, or -1 if no selection.
int m_CornerSelection;
int m_ZoneClearance; // clearance value
int m_ZoneMinThickness; // Min thickness value in filled areas
/// How to fill areas: 0 => use filled polygons, 1 => fill with segments.
int m_FillMode;
// number of segments to convert a circle to a polygon (uses
//ARC_APPROX_SEGMENTS_COUNT_LOW_DEF or ARC_APPROX_SEGMENTS_COUNT_HIGHT_DEF)
int m_ArcToSegmentsCount;
// thickness of the gap in thermal reliefs.
int m_ThermalReliefGap;
// thickness of the copper bridge in thermal reliefs
int m_ThermalReliefCopperBridge;
int utility; // flags used in polygon calculations
// true when a zone was filled, false after deleting the filled areas
bool m_IsFilled;
/* set of segments used to fill area, when fill zone by segment is used.
* ( m_FillMode == 1 )
* in this case segments have m_ZoneMinThickness width
@ -609,11 +593,33 @@ private:
bool m_doNotAllowTracks;
ZoneConnection m_PadConnection;
int m_ZoneClearance; ///< Clearance value in internal units.
int m_ZoneMinThickness; ///< Minimum thickness value in filled areas.
/** The number of segments to convert a circle to a polygon. Valid values are
#ARC_APPROX_SEGMENTS_COUNT_LOW_DEF or #ARC_APPROX_SEGMENTS_COUNT_HIGHT_DEF. */
int m_ArcToSegmentsCount;
/** True when a zone was filled, false after deleting the filled areas. */
bool m_IsFilled;
///< Width of the gap in thermal reliefs.
int m_ThermalReliefGap;
///< Width of the copper bridge in thermal reliefs.
int m_ThermalReliefCopperBridge;
/// How to fill areas: 0 => use filled polygons, 1 => fill with segments.
int m_FillMode;
/* set of filled polygons used to draw a zone as a filled area.
* from outlines (m_Poly) but unlike m_Poly these filled polygons have no hole
* (they are all in one piece) In very simple cases m_FilledPolysList is same
* as m_Poly. In less simple cases (when m_Poly has holes) m_FilledPolysList is
* a polygon equivalent to m_Poly, without holes but with extra outline segment
* connecting "holes" with external main outline. In complex cases an outline
* described by m_Poly can have many filled areas

View File

@ -73,15 +73,15 @@ ZONE_SETTINGS::ZONE_SETTINGS()
ZONE_SETTINGS& ZONE_SETTINGS::operator << ( const ZONE_CONTAINER& aSource )
{
m_ZonePriority = aSource.GetPriority();
m_FillMode = aSource.m_FillMode;
m_ZoneClearance = aSource.m_ZoneClearance;
m_ZoneMinThickness = aSource.m_ZoneMinThickness;
m_FillMode = aSource.GetFillMode();
m_ZoneClearance = aSource.GetClearance();
m_ZoneMinThickness = aSource.GetMinThickness();
m_NetcodeSelection = aSource.GetNet();
m_CurrentZone_Layer = aSource.GetLayer();
m_Zone_HatchingStyle = aSource.GetHatchStyle();
m_ArcToSegmentsCount = aSource.m_ArcToSegmentsCount;
m_ThermalReliefGap = aSource.m_ThermalReliefGap;
m_ThermalReliefCopperBridge = aSource.m_ThermalReliefCopperBridge;
m_ArcToSegmentsCount = aSource.GetArcSegmentCount();
m_ThermalReliefGap = aSource.GetThermalReliefGap();
m_ThermalReliefCopperBridge = aSource.GetThermalReliefCopperBridge();
m_PadConnection = aSource.GetPadConnection();
m_cornerSmoothingType = aSource.GetCornerSmoothingType();
m_cornerRadius = aSource.GetCornerRadius();
@ -96,12 +96,12 @@ ZONE_SETTINGS& ZONE_SETTINGS::operator << ( const ZONE_CONTAINER& aSource )
void ZONE_SETTINGS::ExportSetting( ZONE_CONTAINER& aTarget, bool aFullExport ) const
{
aTarget.m_FillMode = m_FillMode;
aTarget.m_ZoneClearance = m_ZoneClearance;
aTarget.m_ZoneMinThickness = m_ZoneMinThickness;
aTarget.m_ArcToSegmentsCount = m_ArcToSegmentsCount;
aTarget.m_ThermalReliefGap = m_ThermalReliefGap;
aTarget.m_ThermalReliefCopperBridge = m_ThermalReliefCopperBridge;
aTarget.SetFillMode( m_FillMode );
aTarget.SetZoneClearance( m_ZoneClearance );
aTarget.SetMinThickness( m_ZoneMinThickness );
aTarget.SetArcSegmentCount( m_ArcToSegmentsCount );
aTarget.SetThermalReliefGap( m_ThermalReliefGap );
aTarget.SetThermalReliefCopperBridge( m_ThermalReliefCopperBridge );
aTarget.SetPadConnection( m_PadConnection );
aTarget.SetCornerSmoothingType( m_cornerSmoothingType );
aTarget.SetCornerRadius( m_cornerRadius );

View File

@ -245,7 +245,7 @@ void DIALOG_MODULE_BOARD_EDITOR::InitModeditProperties()
m_LastSelected3DShapeIndex = -1;
/* Init 3D shape list */
S3D_MASTER* draw3D = m_CurrentModule->m_3D_Drawings;
S3D_MASTER* draw3D = m_CurrentModule->Models();
while( draw3D )
{
@ -263,8 +263,8 @@ void DIALOG_MODULE_BOARD_EDITOR::InitModeditProperties()
m_ValueCopy = new TEXTE_MODULE( NULL );
m_ReferenceCopy->Copy( &m_CurrentModule->Reference() );
m_ValueCopy->Copy( &m_CurrentModule->Value() );
m_ReferenceCtrl->SetValue( m_ReferenceCopy->m_Text );
m_ValueCtrl->SetValue( m_ValueCopy->m_Text );
m_ReferenceCtrl->SetValue( m_ReferenceCopy->GetText() );
m_ValueCtrl->SetValue( m_ValueCopy->GetText() );
m_AttributsCtrl->SetItemToolTip( 0,
_( "Use this attribute for most non smd components" ) );
@ -603,7 +603,7 @@ void DIALOG_MODULE_BOARD_EDITOR::OnOkClick( wxCommandEvent& event )
if( ii >= 0 )
TransfertDisplayTo3DValues( ii );
S3D_MASTER* draw3D = m_CurrentModule->m_3D_Drawings;
S3D_MASTER* draw3D = m_CurrentModule->Models();
for( unsigned ii = 0; ii < m_Shapes3D_list.size(); ii++ )
{
@ -615,7 +615,7 @@ void DIALOG_MODULE_BOARD_EDITOR::OnOkClick( wxCommandEvent& event )
if( draw3D == NULL )
{
draw3D = new S3D_MASTER( draw3D );
m_CurrentModule->m_3D_Drawings.Append( draw3D );
m_CurrentModule->Models().Append( draw3D );
}
draw3D->m_Shape3DName = draw3DCopy->m_Shape3DName;
@ -632,12 +632,12 @@ void DIALOG_MODULE_BOARD_EDITOR::OnOkClick( wxCommandEvent& event )
for( ; draw3D != NULL; draw3D = nextdraw3D )
{
nextdraw3D = (S3D_MASTER*) draw3D->Next();
delete m_CurrentModule->m_3D_Drawings.Remove( draw3D );
delete m_CurrentModule->Models().Remove( draw3D );
}
// Fill shape list with one void entry, if no entry
if( m_CurrentModule->m_3D_Drawings == NULL )
m_CurrentModule->m_3D_Drawings.PushBack( new S3D_MASTER( m_CurrentModule ) );
if( m_CurrentModule->Models() == NULL )
m_CurrentModule->Models().PushBack( new S3D_MASTER( m_CurrentModule ) );
m_CurrentModule->CalculateBoundingBox();
@ -658,11 +658,11 @@ void DIALOG_MODULE_BOARD_EDITOR::OnEditReference( wxCommandEvent& event )
{
wxPoint tmp = m_Parent->GetScreen()->GetCrossHairPosition();
m_Parent->GetScreen()->SetCrossHairPosition( m_ReferenceCopy->m_Pos );
m_Parent->GetScreen()->SetCrossHairPosition( m_ReferenceCopy->GetTextPosition() );
m_ReferenceCopy->SetParent( m_CurrentModule );
m_Parent->InstallTextModOptionsFrame( m_ReferenceCopy, NULL );
m_Parent->GetScreen()->SetCrossHairPosition( tmp );
m_ReferenceCtrl->SetValue( m_ReferenceCopy->m_Text );
m_ReferenceCtrl->SetValue( m_ReferenceCopy->GetText() );
}
@ -670,9 +670,9 @@ void DIALOG_MODULE_BOARD_EDITOR::OnEditValue( wxCommandEvent& event )
{
wxPoint tmp = m_Parent->GetScreen()->GetCrossHairPosition();
m_Parent->GetScreen()->SetCrossHairPosition( m_ValueCopy->m_Pos );
m_Parent->GetScreen()->SetCrossHairPosition( m_ValueCopy->GetTextPosition() );
m_ValueCopy->SetParent( m_CurrentModule );
m_Parent->InstallTextModOptionsFrame( m_ValueCopy, NULL );
m_Parent->GetScreen()->SetCrossHairPosition( tmp );
m_ValueCtrl->SetValue( m_ValueCopy->m_Text );
m_ValueCtrl->SetValue( m_ValueCopy->GetText() );
}

View File

@ -91,7 +91,7 @@ void DIALOG_MODULE_MODULE_EDITOR::initModeditProperties()
m_lastSelected3DShapeIndex = -1;
// Init 3D shape list
S3D_MASTER* draw3D = m_currentModule->m_3D_Drawings;
S3D_MASTER* draw3D = m_currentModule->Models();
while( draw3D )
{
@ -111,9 +111,9 @@ void DIALOG_MODULE_MODULE_EDITOR::initModeditProperties()
m_valueCopy = new TEXTE_MODULE(NULL);
m_referenceCopy->Copy( &m_currentModule->Reference() );
m_valueCopy->Copy( &m_currentModule->Value() );
m_ReferenceCtrl->SetValue( m_referenceCopy->m_Text );
m_ValueCtrl->SetValue( m_valueCopy->m_Text );
m_ValueCtrl->SetValue( m_valueCopy->m_Text );
m_ReferenceCtrl->SetValue( m_referenceCopy->GetText() );
m_ValueCtrl->SetValue( m_valueCopy->GetText() );
m_ValueCtrl->SetValue( m_valueCopy->GetText() );
m_FootprintNameCtrl->SetValue( m_currentModule->GetLibRef() );
m_AttributsCtrl->SetItemToolTip( 0, _( "Use this attribute for most non smd components" ) );
@ -442,7 +442,7 @@ void DIALOG_MODULE_MODULE_EDITOR::OnOkClick( wxCommandEvent& event )
int ii = m_3D_ShapeNameListBox->GetSelection();
if ( ii >= 0 )
TransfertDisplayTo3DValues( ii );
S3D_MASTER* draw3D = m_currentModule->m_3D_Drawings;
S3D_MASTER* draw3D = m_currentModule->Models();
for( unsigned ii = 0; ii < m_shapes3D_list.size(); ii++ )
{
S3D_MASTER* draw3DCopy = m_shapes3D_list[ii];
@ -451,7 +451,7 @@ void DIALOG_MODULE_MODULE_EDITOR::OnOkClick( wxCommandEvent& event )
if( draw3D == NULL )
{
draw3D = new S3D_MASTER( draw3D );
m_currentModule->m_3D_Drawings.Append( draw3D );
m_currentModule->Models().Append( draw3D );
}
draw3D->m_Shape3DName = draw3DCopy->m_Shape3DName;
@ -467,12 +467,12 @@ void DIALOG_MODULE_MODULE_EDITOR::OnOkClick( wxCommandEvent& event )
for( ; draw3D != NULL; draw3D = nextdraw3D )
{
nextdraw3D = (S3D_MASTER*) draw3D->Next();
delete m_currentModule->m_3D_Drawings.Remove( draw3D );
delete m_currentModule->Models().Remove( draw3D );
}
// Fill shape list with one void entry, if no entry
if( m_currentModule->m_3D_Drawings == NULL )
m_currentModule->m_3D_Drawings.PushBack( new S3D_MASTER( m_currentModule ) );
if( m_currentModule->Models() == NULL )
m_currentModule->Models().PushBack( new S3D_MASTER( m_currentModule ) );
m_currentModule->CalculateBoundingBox();
@ -488,10 +488,10 @@ void DIALOG_MODULE_MODULE_EDITOR::OnEditReference(wxCommandEvent& event)
/***********************************************************************/
{
wxPoint tmp = m_parent->GetScreen()->GetCrossHairPosition();
m_parent->GetScreen()->SetCrossHairPosition( m_referenceCopy->m_Pos );
m_parent->GetScreen()->SetCrossHairPosition( m_referenceCopy->GetTextPosition() );
m_parent->InstallTextModOptionsFrame( m_referenceCopy, NULL );
m_parent->GetScreen()->SetCrossHairPosition( tmp );
m_ReferenceCtrl->SetValue(m_referenceCopy->m_Text);
m_ReferenceCtrl->SetValue( m_referenceCopy->GetText() );
}
/***********************************************************/
@ -499,9 +499,9 @@ void DIALOG_MODULE_MODULE_EDITOR::OnEditValue(wxCommandEvent& event)
/***********************************************************/
{
wxPoint tmp = m_parent->GetScreen()->GetCrossHairPosition();
m_parent->GetScreen()->SetCrossHairPosition( m_valueCopy->m_Pos );
m_parent->GetScreen()->SetCrossHairPosition( m_valueCopy->GetTextPosition() );
m_parent->InstallTextModOptionsFrame( m_valueCopy, NULL );
m_parent->GetScreen()->SetCrossHairPosition( tmp);
m_ValueCtrl->SetValue(m_valueCopy->m_Text);
m_parent->GetScreen()->SetCrossHairPosition( tmp );
m_ValueCtrl->SetValue( m_valueCopy->GetText() );
}

View File

@ -114,15 +114,15 @@ void DialogEditModuleText::initDlg( )
else if( m_currentText->GetType() != TEXT_is_REFERENCE )
m_TextDataTitle->SetLabel( wxT( "???" ) );
m_Name->SetValue( m_currentText->m_Text );
m_Name->SetValue( m_currentText->GetText() );
m_Style->SetSelection( m_currentText->m_Italic ? 1 : 0 );
m_Style->SetSelection( m_currentText->IsItalic() ? 1 : 0 );
AddUnitSymbol( *m_SizeXTitle );
PutValueInLocalUnits( *m_TxtSizeCtrlX, m_currentText->m_Size.x );
PutValueInLocalUnits( *m_TxtSizeCtrlX, m_currentText->GetSize().x );
AddUnitSymbol( *m_SizeYTitle );
PutValueInLocalUnits( *m_TxtSizeCtrlY, m_currentText->m_Size.y );
PutValueInLocalUnits( *m_TxtSizeCtrlY, m_currentText->GetSize().y );
AddUnitSymbol( *m_PosXTitle );
PutValueInLocalUnits( *m_TxtPosCtrlX, m_currentText->GetPos0().x );
@ -131,9 +131,9 @@ void DialogEditModuleText::initDlg( )
PutValueInLocalUnits( *m_TxtPosCtrlY, m_currentText->GetPos0().y );
AddUnitSymbol( *m_WidthTitle );
PutValueInLocalUnits( *m_TxtWidthCtlr, m_currentText->m_Thickness );
PutValueInLocalUnits( *m_TxtWidthCtlr, m_currentText->GetThickness() );
int text_orient = m_currentText->m_Orient;
int text_orient = m_currentText->GetOrientation();
NORMALIZE_ANGLE_90(text_orient)
if( (text_orient != 0) )
@ -156,9 +156,9 @@ void DialogEditModuleText::OnOkClick( wxCommandEvent& event )
m_currentText->Draw( m_parent->GetCanvas(), m_dc, GR_XOR,
(m_currentText->IsMoving()) ? MoveVector : wxPoint( 0, 0 ) );
}
m_currentText->m_Text = m_Name->GetValue();
m_currentText->m_Italic = m_Style->GetSelection() == 1 ? true : false;
m_currentText->SetText( m_Name->GetValue() );
m_currentText->SetItalic( m_Style->GetSelection() == 1 );
wxPoint tmp;
@ -170,16 +170,16 @@ void DialogEditModuleText::OnOkClick( wxCommandEvent& event )
m_currentText->SetPos0( tmp );
msg = m_TxtSizeCtrlX->GetValue();
m_currentText->m_Size.x = ReturnValueFromString( g_UserUnit, msg );
msg = m_TxtSizeCtrlY->GetValue();
m_currentText->m_Size.y = ReturnValueFromString( g_UserUnit, msg );
wxSize textSize( wxSize( ReturnValueFromString( g_UserUnit, m_TxtSizeCtrlX->GetValue() ),
ReturnValueFromString( g_UserUnit, m_TxtSizeCtrlY->GetValue() ) ) );
// Test for a reasonnable size:
if( m_currentText->m_Size.x< TEXTS_MIN_SIZE )
m_currentText->m_Size.x = TEXTS_MIN_SIZE;
if( m_currentText->m_Size.y< TEXTS_MIN_SIZE )
m_currentText->m_Size.y = TEXTS_MIN_SIZE;
if( textSize.x < TEXTS_MIN_SIZE )
textSize.x = TEXTS_MIN_SIZE;
if( textSize.y < TEXTS_MIN_SIZE )
textSize.y = TEXTS_MIN_SIZE;
m_currentText->SetSize( textSize ),
msg = m_TxtWidthCtlr->GetValue();
int width = ReturnValueFromString( g_UserUnit, msg );
@ -188,7 +188,7 @@ void DialogEditModuleText::OnOkClick( wxCommandEvent& event )
if( width <= 1 )
width = 1;
int maxthickness = Clamp_Text_PenSize(width, m_currentText->m_Size );
int maxthickness = Clamp_Text_PenSize(width, m_currentText->GetSize() );
if( width > maxthickness )
{
@ -202,7 +202,7 @@ void DialogEditModuleText::OnOkClick( wxCommandEvent& event )
m_currentText->SetVisible( m_Show->GetSelection() == 0 );
int text_orient = (m_Orient->GetSelection() == 0) ? 0 : 900;
m_currentText->m_Orient = text_orient;
m_currentText->SetOrientation( text_orient );
m_currentText->SetDrawCoord();

View File

@ -154,7 +154,7 @@ void DIALOG_GENDRILL::InitDisplayParams()
for( MODULE* module = m_parent->GetBoard()->m_Modules; module; module = module->Next() )
{
for( D_PAD* pad = module->m_Pads; pad != NULL; pad = pad->Next() )
for( D_PAD* pad = module->Pads(); pad != NULL; pad = pad->Next() )
{
if( pad->GetDrillShape() == PAD_CIRCLE )
{

View File

@ -186,7 +186,7 @@ void PCB_BASE_FRAME::ResetModuleTextSizes( const wxString & aFilter, bool aRef,
if( aOthers )
{
// Go through all other module text fields
for( boardItem = module->m_Drawings; boardItem; boardItem = boardItem->Next() )
for( boardItem = module->GraphicalItems(); boardItem; boardItem = boardItem->Next() )
{
if( boardItem->Type() == PCB_MODULE_TEXT_T )
{
@ -227,7 +227,7 @@ void PCB_BASE_FRAME::ResetModuleTextSizes( const wxString & aFilter, bool aRef,
if( aOthers )
{
for( boardItem = module->m_Drawings; boardItem; boardItem = boardItem->Next() )
for( boardItem = module->GraphicalItems(); boardItem; boardItem = boardItem->Next() )
{
if( boardItem->Type() == PCB_MODULE_TEXT_T )
{

View File

@ -118,13 +118,13 @@ void DIALOG_PCB_TEXT_PROPERTIES::MyInit()
AddUnitSymbol( *m_PositionYLabel );
// Fill fields with current values
*m_TextContentCtrl << m_SelectedPCBText->m_Text;
*m_TextContentCtrl << m_SelectedPCBText->GetText();
PutValueInLocalUnits( *m_SizeXCtrl, m_SelectedPCBText->m_Size.x );
PutValueInLocalUnits( *m_SizeYCtrl, m_SelectedPCBText->m_Size.y );
PutValueInLocalUnits( *m_ThicknessCtrl, m_SelectedPCBText->m_Thickness );
PutValueInLocalUnits( *m_PositionXCtrl, m_SelectedPCBText->m_Pos.x );
PutValueInLocalUnits( *m_PositionYCtrl, m_SelectedPCBText->m_Pos.y );
PutValueInLocalUnits( *m_SizeXCtrl, m_SelectedPCBText->GetSize().x );
PutValueInLocalUnits( *m_SizeYCtrl, m_SelectedPCBText->GetSize().y );
PutValueInLocalUnits( *m_ThicknessCtrl, m_SelectedPCBText->GetThickness() );
PutValueInLocalUnits( *m_PositionXCtrl, m_SelectedPCBText->GetTextPosition().x );
PutValueInLocalUnits( *m_PositionYCtrl, m_SelectedPCBText->GetTextPosition().y );
int enabledLayers = m_Parent->GetBoard()->GetEnabledLayers();
@ -145,12 +145,12 @@ void DIALOG_PCB_TEXT_PROPERTIES::MyInit()
orientationStr << m_SelectedPCBText->GetOrientation();
m_OrientationCtrl->SetValue( orientationStr );
if( m_SelectedPCBText->m_Mirror )
if( m_SelectedPCBText->IsMirrored() )
m_DisplayCtrl->SetSelection( 1 );
else
m_DisplayCtrl->SetSelection( 0 );
if( m_SelectedPCBText->m_Italic )
if( m_SelectedPCBText->IsItalic() )
m_StyleCtrl->SetSelection( 1 );
else
m_StyleCtrl->SetSelection( 0 );
@ -203,13 +203,13 @@ void DIALOG_PCB_TEXT_PROPERTIES::OnOkClick( wxCommandEvent& event )
// Set the new text content
if( !m_TextContentCtrl->GetValue().IsEmpty() )
{
m_SelectedPCBText->m_Text = m_TextContentCtrl->GetValue();
m_SelectedPCBText->SetText( m_TextContentCtrl->GetValue() );
}
// Set PCB Text position
newPosition.x = ReturnValueFromString( g_UserUnit, m_PositionXCtrl->GetValue() );
newPosition.y = ReturnValueFromString( g_UserUnit, m_PositionYCtrl->GetValue() );
m_SelectedPCBText->m_Pos = newPosition;
m_SelectedPCBText->SetTextPosition( newPosition );
// Check constraints and set PCB Text size
newSize.x = ReturnValueFromString( g_UserUnit, m_SizeXCtrl->GetValue() );
@ -227,28 +227,28 @@ void DIALOG_PCB_TEXT_PROPERTIES::OnOkClick( wxCommandEvent& event )
if( newSize.y > TEXTS_MAX_WIDTH )
newSize.y = TEXTS_MAX_WIDTH;
m_SelectedPCBText->m_Size = newSize;
m_SelectedPCBText->SetSize( newSize );
// Set the new thickness
m_SelectedPCBText->m_Thickness = ReturnValueFromString( g_UserUnit,
m_ThicknessCtrl->GetValue() );
m_SelectedPCBText->SetThickness( ReturnValueFromString( g_UserUnit,
m_ThicknessCtrl->GetValue() ) );
// Test for acceptable values for thickness and size and clamp if fails
int maxthickness = Clamp_Text_PenSize( m_SelectedPCBText->m_Thickness,
m_SelectedPCBText->m_Size );
int maxthickness = Clamp_Text_PenSize( m_SelectedPCBText->GetThickness(),
m_SelectedPCBText->GetSize() );
if( m_SelectedPCBText->m_Thickness > maxthickness )
if( m_SelectedPCBText->GetThickness() > maxthickness )
{
DisplayError( NULL,
_( "The text thickness is too large for the text size. It will be clamped" ) );
m_SelectedPCBText->m_Thickness = maxthickness;
m_SelectedPCBText->SetThickness( maxthickness );
}
// Set the layer on which the PCB text is laying
m_SelectedPCBText->SetLayer( layerList[m_LayerSelectionCtrl->GetSelection()] );
// Set whether the PCB text is mirrored (faced down from layer face perspective)
m_SelectedPCBText->m_Mirror = (m_DisplayCtrl->GetSelection() == 1) ? true : false;
m_SelectedPCBText->SetMirrored( m_DisplayCtrl->GetSelection() == 1 );
// Set the text orientation
long orientation;
@ -257,7 +257,7 @@ void DIALOG_PCB_TEXT_PROPERTIES::OnOkClick( wxCommandEvent& event )
m_SelectedPCBText->SetOrientation( orientation );
// Set whether the PCB text is slanted (it is not italics, as italics has additional curves in style)
m_SelectedPCBText->m_Italic = m_StyleCtrl->GetSelection() ? 1 : 0;
m_SelectedPCBText->SetItalic( m_StyleCtrl->GetSelection() );
// Set justification
switch( m_justifyChoice->GetSelection() )

View File

@ -127,9 +127,9 @@ DIALOG_DIMENSION_EDITOR::DIALOG_DIMENSION_EDITOR( PCB_EDIT_FRAME* aParent,
AddUnitSymbol( *m_staticTextWidth );
// Enter position value in dialog
PutValueInLocalUnits( *m_textCtrlPosX, aDimension->Text().GetPosition().x );
PutValueInLocalUnits( *m_textCtrlPosX, aDimension->Text().GetTextPosition().x );
AddUnitSymbol( *m_staticTextPosX );
PutValueInLocalUnits( *m_textCtrlPosY, aDimension->Text().GetPosition().y );
PutValueInLocalUnits( *m_textCtrlPosY, aDimension->Text().GetTextPosition().y );
AddUnitSymbol( *m_staticTextPosY );
for( int layer = FIRST_NO_COPPER_LAYER; layer<NB_LAYERS; layer++ )
@ -180,7 +180,7 @@ void DIALOG_DIMENSION_EDITOR::OnOKClick( wxCommandEvent& event )
pos.x = ReturnValueFromString( g_UserUnit, msg );
msg = m_textCtrlPosY->GetValue();
pos.y = ReturnValueFromString( g_UserUnit, msg );
CurrentDimension->Text().SetPosition( pos );
CurrentDimension->Text().SetTextPosition( pos );
// Get new line thickness value:
msg = m_TxtWidthCtrl->GetValue();
@ -380,13 +380,13 @@ void PCB_EDIT_FRAME::BeginMoveDimensionText( DIMENSION* aItem, wxDC* DC )
return;
// Store the initial position for undo/abort command
initialTextPosition = aItem->Text().GetPosition();
initialTextPosition = aItem->Text().GetTextPosition();
aItem->Draw( m_canvas, DC, GR_XOR );
aItem->SetFlags( IS_MOVED );
SetMsgPanel( aItem );
GetScreen()->SetCrossHairPosition( aItem->Text().GetPosition() );
GetScreen()->SetCrossHairPosition( aItem->Text().GetTextPosition() );
m_canvas->MoveCursorToCrossHair();
m_canvas->SetMouseCapture( MoveDimensionText, AbortMoveDimensionText );
@ -407,7 +407,7 @@ static void MoveDimensionText( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint&
if( aErase )
dimension->Draw( aPanel, aDC, GR_XOR );
dimension->Text().SetPosition( aPanel->GetScreen()->GetCrossHairPosition() );
dimension->Text().SetTextPosition( aPanel->GetScreen()->GetCrossHairPosition() );
dimension->Draw( aPanel, aDC, GR_XOR );
}
@ -428,7 +428,7 @@ void AbortMoveDimensionText( EDA_DRAW_PANEL* aPanel, wxDC* aDC )
return;
dimension->Draw( aPanel, aDC, GR_XOR );
dimension->Text().SetPosition( initialTextPosition );
dimension->Text().SetTextPosition( initialTextPosition );
dimension->ClearFlags();
dimension->Draw( aPanel, aDC, GR_OR );
}
@ -447,10 +447,10 @@ void PCB_EDIT_FRAME::PlaceDimensionText( DIMENSION* aItem, wxDC* DC )
aItem->Draw( m_canvas, DC, GR_OR );
OnModify();
wxPoint tmp = aItem->Text().GetPosition();
aItem->Text().SetPosition( initialTextPosition );
wxPoint tmp = aItem->Text().GetTextPosition();
aItem->Text().SetTextPosition( initialTextPosition );
SaveCopyInUndoList( aItem, UR_CHANGED );
aItem->Text().SetPosition( tmp );
aItem->Text().SetTextPosition( tmp );
aItem->ClearFlags();
}

View File

@ -158,7 +158,7 @@ void DRAG_LIST::BuildDragListe( MODULE* aModule )
CONNECTIONS connections( m_Brd );
std::vector<D_PAD*>&padList = connections.GetPadsList();
for( D_PAD* pad = aModule->m_Pads; pad; pad = pad->Next() )
for( D_PAD* pad = aModule->Pads(); pad; pad = pad->Next() )
padList.push_back( pad );
sort( padList.begin(), padList.end(), sortPadsByXthenYCoord );

View File

@ -1370,7 +1370,7 @@ void EAGLE_PLUGIN::loadPlain( CPTREE& aGraphics )
pcbtxt->SetLayer( layer );
pcbtxt->SetTimeStamp( timeStamp( gr->second ) );
pcbtxt->SetText( FROM_UTF8( t.text.c_str() ) );
pcbtxt->SetPosition( wxPoint( kicad_x( t.x ), kicad_y( t.y ) ) );
pcbtxt->SetTextPosition( wxPoint( kicad_x( t.x ), kicad_y( t.y ) ) );
pcbtxt->SetSize( kicad_fontz( t.size ) );
@ -1523,7 +1523,7 @@ void EAGLE_PLUGIN::loadPlain( CPTREE& aGraphics )
// Add a PAD_HOLE_NOT_PLATED pad to this module.
D_PAD* pad = new D_PAD( module );
module->m_Pads.PushBack( pad );
module->Pads().PushBack( pad );
pad->SetShape( PAD_ROUND );
pad->SetAttribute( PAD_HOLE_NOT_PLATED );
@ -1671,7 +1671,7 @@ void EAGLE_PLUGIN::loadElements( CPTREE& aElements )
m_board->Add( m, ADD_APPEND );
// update the nets within the pads of the clone
for( D_PAD* pad = m->m_Pads; pad; pad = pad->Next() )
for( D_PAD* pad = m->Pads(); pad; pad = pad->Next() )
{
std::string key = makeKey( e.name, TO_UTF8( pad->GetPadName() ) );
@ -1761,7 +1761,7 @@ void EAGLE_PLUGIN::orientModuleText( MODULE* m, const EELEMENT& e,
if( a.x && a.y ) // boost::optional
{
wxPoint pos( kicad_x( *a.x ), kicad_y( *a.y ) );
txt->SetPosition( pos );
txt->SetTextPosition( pos );
}
// Even though size and ratio are both optional, I am not seeing
@ -1916,7 +1916,7 @@ void EAGLE_PLUGIN::packageWire( MODULE* aModule, CPTREE& aTree ) const
int width = kicad( w.width );
EDGE_MODULE* dwg = new EDGE_MODULE( aModule, S_SEGMENT );
aModule->m_Drawings.PushBack( dwg );
aModule->GraphicalItems().PushBack( dwg );
dwg->SetStart0( start );
dwg->SetEnd0( end );
@ -1933,7 +1933,7 @@ void EAGLE_PLUGIN::packagePad( MODULE* aModule, CPTREE& aTree ) const
EPAD e( aTree );
D_PAD* pad = new D_PAD( aModule );
aModule->m_Pads.PushBack( pad );
aModule->Pads().PushBack( pad );
pad->SetPadName( FROM_UTF8( e.name.c_str() ) );
@ -2025,7 +2025,7 @@ void EAGLE_PLUGIN::packageText( MODULE* aModule, CPTREE& aTree ) const
else
{
txt = new TEXTE_MODULE( aModule );
aModule->m_Drawings.PushBack( txt );
aModule->GraphicalItems().PushBack( txt );
}
txt->SetTimeStamp( timeStamp( aTree ) );
@ -2033,7 +2033,7 @@ void EAGLE_PLUGIN::packageText( MODULE* aModule, CPTREE& aTree ) const
wxPoint pos( kicad_x( t.x ), kicad_y( t.y ) );
txt->SetPosition( pos );
txt->SetTextPosition( pos );
txt->SetPos0( pos - aModule->GetPosition() );
txt->SetLayer( layer );
@ -2122,7 +2122,7 @@ void EAGLE_PLUGIN::packageRectangle( MODULE* aModule, CPTREE& aTree ) const
if( IsValidNonCopperLayerIndex( layer ) ) // skip copper "package.rectangle"s
{
EDGE_MODULE* dwg = new EDGE_MODULE( aModule, S_POLYGON );
aModule->m_Drawings.PushBack( dwg );
aModule->GraphicalItems().PushBack( dwg );
dwg->SetLayer( layer );
dwg->SetWidth( 0 );
@ -2155,7 +2155,7 @@ void EAGLE_PLUGIN::packagePolygon( MODULE* aModule, CPTREE& aTree ) const
if( IsValidNonCopperLayerIndex( layer ) ) // skip copper "package.rectangle"s
{
EDGE_MODULE* dwg = new EDGE_MODULE( aModule, S_POLYGON );
aModule->m_Drawings.PushBack( dwg );
aModule->GraphicalItems().PushBack( dwg );
dwg->SetWidth( 0 ); // it's filled, no need for boundary width
@ -2202,7 +2202,7 @@ void EAGLE_PLUGIN::packageCircle( MODULE* aModule, CPTREE& aTree ) const
int layer = kicad_layer( e.layer );
EDGE_MODULE* gr = new EDGE_MODULE( aModule, S_CIRCLE );
aModule->m_Drawings.PushBack( gr );
aModule->GraphicalItems().PushBack( gr );
gr->SetWidth( kicad( e.width ) );
@ -2228,7 +2228,7 @@ void EAGLE_PLUGIN::packageHole( MODULE* aModule, CPTREE& aTree ) const
// we add a PAD_HOLE_NOT_PLATED pad to this module.
D_PAD* pad = new D_PAD( aModule );
aModule->m_Pads.PushBack( pad );
aModule->Pads().PushBack( pad );
pad->SetShape( PAD_ROUND );
pad->SetAttribute( PAD_HOLE_NOT_PLATED );
@ -2264,7 +2264,7 @@ void EAGLE_PLUGIN::packageSMD( MODULE* aModule, CPTREE& aTree ) const
}
D_PAD* pad = new D_PAD( aModule );
aModule->m_Pads.PushBack( pad );
aModule->Pads().PushBack( pad );
pad->SetPadName( FROM_UTF8( e.name.c_str() ) );
pad->SetShape( PAD_RECT );
@ -2502,7 +2502,7 @@ void EAGLE_PLUGIN::loadSignals( CPTREE& aSignals )
true );
// clearances, etc.
zone->SetArcSegCount( 32 ); // @todo: should be a constructor default?
zone->SetArcSegmentCount( 32 ); // @todo: should be a constructor default?
zone->SetMinThickness( kicad( p.width ) );
if( p.spacing )

View File

@ -167,7 +167,7 @@ void FOOTPRINT_EDIT_FRAME::Edit_Edge_Width( EDGE_MODULE* aEdge )
if( aEdge == NULL )
{
aEdge = (EDGE_MODULE*) (BOARD_ITEM*) module->m_Drawings;
aEdge = (EDGE_MODULE*) (BOARD_ITEM*) module->GraphicalItems();
for( ; aEdge != NULL; aEdge = aEdge->Next() )
{
@ -215,7 +215,7 @@ void FOOTPRINT_EDIT_FRAME::Edit_Edge_Layer( EDGE_MODULE* aEdge )
if( aEdge == NULL )
{
aEdge = (EDGE_MODULE*) (BOARD_ITEM*) module->m_Drawings;
aEdge = (EDGE_MODULE*) (BOARD_ITEM*) module->GraphicalItems();
for( ; aEdge != NULL; aEdge = aEdge->Next() )
{
@ -327,7 +327,7 @@ EDGE_MODULE* FOOTPRINT_EDIT_FRAME::Begin_Edge_Module( EDGE_MODULE* aEdge,
MoveVector.x = MoveVector.y = 0;
// Add the new item to the Drawings list head
module->m_Drawings.PushFront( aEdge );
module->GraphicalItems().PushFront( aEdge );
// Update characteristics of the segment or arc.
aEdge->SetFlags( IS_NEW );
@ -377,7 +377,7 @@ EDGE_MODULE* FOOTPRINT_EDIT_FRAME::Begin_Edge_Module( EDGE_MODULE* aEdge,
EDGE_MODULE* newedge = new EDGE_MODULE( *aEdge );
// insert _after_ aEdge, which is the same as inserting before aEdge->Next()
module->m_Drawings.Insert( newedge, aEdge->Next() );
module->GraphicalItems().Insert( newedge, aEdge->Next() );
aEdge->ClearFlags();
aEdge = newedge; // point now new item

View File

@ -111,7 +111,8 @@ void PCB_EDIT_FRAME::Place_Texte_Pcb( TEXTE_PCB* TextePcb, wxDC* DC )
if( TextePcb->IsMoving() ) // If moved only
{
SaveCopyInUndoList( TextePcb, UR_MOVED, TextePcb->m_Pos - s_TextCopy.m_Pos );
SaveCopyInUndoList( TextePcb, UR_MOVED,
TextePcb->GetTextPosition() - s_TextCopy.GetTextPosition() );
}
else
{
@ -146,7 +147,7 @@ void PCB_EDIT_FRAME::StartMoveTextePcb( TEXTE_PCB* aTextePcb, wxDC* aDC, bool aE
m_canvas->Refresh();
#endif
GetScreen()->SetCrossHairPosition( aTextePcb->GetPosition() );
GetScreen()->SetCrossHairPosition( aTextePcb->GetTextPosition() );
m_canvas->MoveCursorToCrossHair();
m_canvas->SetMouseCapture( Move_Texte_Pcb, Abort_Edit_Pcb_Text );
@ -167,7 +168,7 @@ static void Move_Texte_Pcb( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aP
if( aErase )
TextePcb->Draw( aPanel, aDC, GR_XOR );
TextePcb->SetPosition( aPanel->GetScreen()->GetCrossHairPosition() );
TextePcb->SetTextPosition( aPanel->GetScreen()->GetCrossHairPosition() );
TextePcb->Draw( aPanel, aDC, GR_XOR );
}
@ -213,7 +214,7 @@ TEXTE_PCB* PCB_EDIT_FRAME::CreateTextePcb( wxDC* aDC, TEXTE_PCB* aText )
textePcb->SetMirrored( true );
textePcb->SetSize( GetBoard()->GetDesignSettings().m_PcbTextSize );
textePcb->SetPosition( GetScreen()->GetCrossHairPosition() );
textePcb->SetTextPosition( GetScreen()->GetCrossHairPosition() );
textePcb->SetThickness( GetBoard()->GetDesignSettings().m_PcbTextWidth );
InstallTextPCBOptionsFrame( textePcb, aDC );
@ -243,15 +244,14 @@ void PCB_EDIT_FRAME::Rotate_Texte_Pcb( TEXTE_PCB* TextePcb, wxDC* DC )
/* Erase previous text. */
TextePcb->Draw( m_canvas, DC, GR_XOR );
TextePcb->m_Orient += angle;
NORMALIZE_ANGLE_POS( TextePcb->m_Orient );
TextePcb->SetOrientation( TextePcb->GetOrientation() + angle );
/* Redraw text in new position. */
TextePcb->Draw( m_canvas, DC, GR_XOR );
SetMsgPanel( TextePcb );
if( TextePcb->GetFlags() == 0 ) // i.e. not edited, or moved
SaveCopyInUndoList( TextePcb, UR_ROTATED, TextePcb->GetPosition() );
SaveCopyInUndoList( TextePcb, UR_ROTATED, TextePcb->GetTextPosition() );
else // set flag edit, to show it was a complex command
TextePcb->SetFlags( IN_EDIT );
@ -269,13 +269,13 @@ void PCB_EDIT_FRAME::FlipTextePcb( TEXTE_PCB* aTextePcb, wxDC* aDC )
aTextePcb->Draw( m_canvas, aDC, GR_XOR );
aTextePcb->Flip( aTextePcb->GetPosition() );
aTextePcb->Flip( aTextePcb->GetTextPosition() );
aTextePcb->Draw( m_canvas, aDC, GR_XOR );
SetMsgPanel( aTextePcb );
if( aTextePcb->GetFlags() == 0 ) // i.e. not edited, or moved
SaveCopyInUndoList( aTextePcb, UR_FLIPPED, aTextePcb->GetPosition() );
SaveCopyInUndoList( aTextePcb, UR_FLIPPED, aTextePcb->GetTextPosition() );
else // set flag edit, to show it was a complex command
aTextePcb->SetFlags( IN_EDIT );

View File

@ -85,13 +85,13 @@ void FOOTPRINT_EDIT_FRAME::Place_Ancre( MODULE* aModule )
RotatePoint( &moveVector, -aModule->GetOrientation() );
// Update the pad coordinates.
for( D_PAD* pad = (D_PAD*) aModule->m_Pads; pad; pad = pad->Next() )
for( D_PAD* pad = (D_PAD*) aModule->Pads(); pad; pad = pad->Next() )
{
pad->SetPos0( pad->GetPos0() + moveVector );
}
// Update the draw element coordinates.
for( EDA_ITEM* item = aModule->m_Drawings; item; item = item->Next() )
for( EDA_ITEM* item = aModule->GraphicalItems(); item; item = item->Next() )
{
switch( item->Type() )
{

View File

@ -274,7 +274,7 @@ void PCB_EDIT_FRAME::Show_1_Ratsnest( EDA_ITEM* item, wxDC* DC )
if( Module )
{
SetMsgPanel( Module );
pt_pad = Module->m_Pads;
pt_pad = Module->Pads();
for( ; pt_pad != NULL; pt_pad = (D_PAD*) pt_pad->Next() )
{

View File

@ -70,7 +70,7 @@ TEXTE_MODULE* PCB_BASE_FRAME::CreateTextModule( MODULE* Module, wxDC* DC )
/* Add the new text object to the beginning of the draw item list. */
if( Module )
Module->m_Drawings.PushFront( Text );
Module->GraphicalItems().PushFront( Text );
Text->SetFlags( IS_NEW );
@ -78,9 +78,9 @@ TEXTE_MODULE* PCB_BASE_FRAME::CreateTextModule( MODULE* Module, wxDC* DC )
GetDesignSettings().m_ModuleTextWidth = Clamp_Text_PenSize( GetDesignSettings().m_ModuleTextWidth,
std::min( GetDesignSettings().m_ModuleTextSize.x, GetDesignSettings().m_ModuleTextSize.y ), true );
Text->m_Size = GetDesignSettings().m_ModuleTextSize;
Text->m_Thickness = GetDesignSettings().m_ModuleTextWidth;
Text->m_Pos = GetScreen()->GetCrossHairPosition();
Text->SetSize( GetDesignSettings().m_ModuleTextSize );
Text->SetThickness( GetDesignSettings().m_ModuleTextWidth );
Text->SetTextPosition( GetScreen()->GetCrossHairPosition() );
Text->SetLocalCoord();
InstallTextModOptionsFrame( Text, NULL );
@ -115,10 +115,7 @@ void PCB_BASE_FRAME::RotateTextModule( TEXTE_MODULE* Text, wxDC* DC )
// we expect MoveVector to be (0,0) if there is no move in progress
Text->Draw( m_canvas, DC, GR_XOR, MoveVector );
Text->m_Orient += 900;
while( Text->m_Orient >= 1800 )
Text->m_Orient -= 1800;
Text->SetOrientation( Text->GetOrientation() + 900 );
Text->Draw( m_canvas, DC, GR_XOR, MoveVector );
SetMsgPanel( Text );
@ -176,7 +173,7 @@ static void AbortMoveTextModule( EDA_DRAW_PANEL* Panel, wxDC* DC )
// If the text was moved (the move does not change internal data)
// it could be rotated while moving. So set old value for orientation
if( Text->IsMoving() )
Text->m_Orient = TextInitialOrientation;
Text->SetOrientation( TextInitialOrientation );
/* Redraw the text */
Panel->RefreshDrawingRect( Text->GetBoundingBox() );
@ -207,8 +204,8 @@ void PCB_BASE_FRAME::StartMoveTexteModule( TEXTE_MODULE* Text, wxDC* DC )
MoveVector.x = MoveVector.y = 0;
TextInitialPosition = Text->m_Pos;
TextInitialOrientation = Text->m_Orient;
TextInitialPosition = Text->GetTextPosition();
TextInitialOrientation = Text->GetOrientation();
// Center cursor on initial position of text
GetScreen()->SetCrossHairPosition( TextInitialPosition );
@ -236,18 +233,19 @@ void PCB_BASE_FRAME::PlaceTexteModule( TEXTE_MODULE* Text, wxDC* DC )
if( Module )
{
// Prepare undo command (a rotation can be made while moving)
EXCHG( Text->m_Orient, TextInitialOrientation );
int tmp = Text->GetOrientation();
Text->SetOrientation( TextInitialOrientation );
if( IsType( PCB_FRAME_TYPE ) )
SaveCopyInUndoList( Module, UR_CHANGED );
else
SaveCopyInUndoList( Module, UR_MODEDIT );
EXCHG( Text->m_Orient, TextInitialOrientation );
Text->SetOrientation( tmp );
// Set the new position for text.
Text->m_Pos = GetScreen()->GetCrossHairPosition();
wxPoint textRelPos = Text->GetPosition() - Module->GetPosition();
Text->SetTextPosition( GetScreen()->GetCrossHairPosition() );
wxPoint textRelPos = Text->GetTextPosition() - Module->GetPosition();
RotatePoint( &textRelPos, -Module->GetOrientation() );
Text->SetPos0( textRelPos );
Text->ClearFlags();
@ -260,7 +258,7 @@ void PCB_BASE_FRAME::PlaceTexteModule( TEXTE_MODULE* Text, wxDC* DC )
}
else
{
Text->m_Pos = GetScreen()->GetCrossHairPosition();
Text->SetTextPosition( GetScreen()->GetCrossHairPosition() );
}
}

View File

@ -508,7 +508,7 @@ static void CreateShapesSection( FILE* aFile, BOARD* aPcb )
{
FootprintWriteShape( aFile, module );
for( pad = module->m_Pads; pad != NULL; pad = pad->Next() )
for( pad = module->Pads(); pad != NULL; pad = pad->Next() )
{
/* Funny thing: GenCAD requires the pad side even if you use
* padstacks (which are theorically optional but gerbtools
@ -661,7 +661,7 @@ static void CreateSignalsSection( FILE* aFile, BOARD* aPcb )
for( module = aPcb->m_Modules; module != NULL; module = module->Next() )
{
for( pad = module->m_Pads; pad != NULL; pad = pad->Next() )
for( pad = module->Pads(); pad != NULL; pad = pad->Next() )
{
wxString padname;
@ -1032,7 +1032,7 @@ static void FootprintWriteShape( FILE* aFile, MODULE* module )
// CAM350 read it right but only closed shapes
// ProntoPlace double-flip it (at least the pads are correct)
// GerberTool usually get it right...
for( PtStruct = module->m_Drawings; PtStruct != NULL; PtStruct = PtStruct->Next() )
for( PtStruct = module->GraphicalItems(); PtStruct != NULL; PtStruct = PtStruct->Next() )
{
switch( PtStruct->Type() )
{

View File

@ -666,15 +666,16 @@ static void export_vrml_pcbtext( TEXTE_PCB* text )
{
// Coupling by globals! Ewwww...
s_text_layer = text->GetLayer();
s_text_width = text->m_Thickness;
s_text_width = text->GetThickness();
wxSize size = text->m_Size;
if( text->m_Mirror )
wxSize size = text->GetSize();
if( text->IsMirrored() )
NEGATE( size.x );
if( text->m_MultilineAllowed )
if( text->IsMultilineAllowed() )
{
wxPoint pos = text->m_Pos;
wxPoint pos = text->GetTextPosition();
wxArrayString* list = wxStringSplit( text->GetText(), '\n' );
wxPoint offset;
@ -687,8 +688,8 @@ static void export_vrml_pcbtext( TEXTE_PCB* text )
wxString txt = list->Item( i );
DrawGraphicText( NULL, NULL, pos, BLACK,
txt, text->GetOrientation(), size,
text->m_HJustify, text->m_VJustify,
text->m_Thickness, text->m_Italic,
text->GetHorizJustify(), text->GetVertJustify(),
text->GetThickness(), text->IsItalic(),
true,
vrml_text_callback );
pos += offset;
@ -698,10 +699,10 @@ static void export_vrml_pcbtext( TEXTE_PCB* text )
}
else
{
DrawGraphicText( NULL, NULL, text->m_Pos, BLACK,
DrawGraphicText( NULL, NULL, text->GetTextPosition(), BLACK,
text->GetText(), text->GetOrientation(), size,
text->m_HJustify, text->m_VJustify,
text->m_Thickness, text->m_Italic,
text->GetHorizJustify(), text->GetVertJustify(),
text->GetThickness(), text->IsItalic(),
true,
vrml_text_callback );
}
@ -800,10 +801,11 @@ static void export_vrml_zones( BOARD* pcb )
ZONE_CONTAINER* zone = pcb->GetArea( i );
if( ( zone->m_FilledPolysList.size() == 0 )
||( zone->m_ZoneMinThickness <= 1 ) )
||( zone->GetMinThickness() <= 1 ) )
continue;
int width = zone->m_ZoneMinThickness;
int width = zone->GetMinThickness();
if( width > 0 )
{
int imax = zone->m_FilledPolysList.size() - 1;
@ -843,17 +845,17 @@ static void export_vrml_text_module( TEXTE_MODULE* module ) //{{{
{
if( module->IsVisible() )
{
wxSize size = module->m_Size;
wxSize size = module->GetSize();
if( module->m_Mirror )
if( module->IsMirrored() )
NEGATE( size.x ); // Text is mirrored
s_text_layer = module->GetLayer();
s_text_width = module->m_Thickness;
DrawGraphicText( NULL, NULL, module->m_Pos, BLACK,
s_text_width = module->GetThickness();
DrawGraphicText( NULL, NULL, module->GetTextPosition(), BLACK,
module->GetText(), module->GetDrawRotation(), size,
module->m_HJustify, module->m_VJustify,
module->m_Thickness, module->m_Italic,
module->GetHorizJustify(), module->GetVertJustify(),
module->GetThickness(), module->IsItalic(),
true,
vrml_text_callback );
}
@ -1036,7 +1038,7 @@ static void export_vrml_module( BOARD* aPcb, MODULE* aModule,
export_vrml_text_module( &aModule->Value() );
// Export module edges
for( EDA_ITEM* item = aModule->m_Drawings; item != NULL; item = item->Next() )
for( EDA_ITEM* item = aModule->GraphicalItems(); item != NULL; item = item->Next() )
{
switch( item->Type() )
{
@ -1054,13 +1056,13 @@ static void export_vrml_module( BOARD* aPcb, MODULE* aModule,
}
// Export pads
for( D_PAD* pad = aModule->m_Pads; pad; pad = pad->Next() )
for( D_PAD* pad = aModule->Pads(); pad; pad = pad->Next() )
export_vrml_pad( aPcb, pad );
bool isFlipped = aModule->GetLayer() == LAYER_N_BACK;
// Export the object VRML model(s)
for( S3D_MASTER* vrmlm = aModule->m_3D_Drawings; vrmlm != 0; vrmlm = vrmlm->Next() )
for( S3D_MASTER* vrmlm = aModule->Models(); vrmlm != 0; vrmlm = vrmlm->Next() )
{
wxString fname = vrmlm->m_Shape3DName;

View File

@ -318,7 +318,7 @@ static bool HasNonSMDPins( MODULE* aModule )
{
D_PAD* pad;
for( pad = aModule->m_Pads; pad; pad = pad->Next() )
for( pad = aModule->Pads(); pad; pad = pad->Next() )
{
if( pad->GetAttribute() != PAD_SMD )
return true;
@ -652,7 +652,7 @@ bool PCB_EDIT_FRAME::DoGenFootprintsReport( const wxString& aFullFilename, bool
legacy->SaveModule3D( Module );
for( pad = Module->m_Pads; pad != NULL; pad = pad->Next() )
for( pad = Module->Pads(); pad != NULL; pad = pad->Next() )
{
fprintf( rptfile, "$PAD \"%s\"\n", TO_UTF8( pad->GetPadName() ) );
sprintf( line, "position %9.6f %9.6f\n",

View File

@ -504,7 +504,7 @@ void EXCELLON_WRITER::BuildHolesList( int aFirstLayer,
for( MODULE* module = m_pcb->m_Modules; module; module = module->Next() )
{
// Read and analyse pads
for( D_PAD* pad = module->m_Pads; pad; pad = pad->Next() )
for( D_PAD* pad = module->Pads(); pad; pad = pad->Next() )
{
if( ! aGenerateNPTH_list && pad->GetAttribute() == PAD_HOLE_NOT_PLATED )
continue;

View File

@ -246,7 +246,7 @@ void PCB_BASE_FRAME::GlobalChange_PadSettings( D_PAD* aPad,
bool saveMe = false;
for( D_PAD* pad = module->m_Pads; pad; pad = pad->Next() )
for( D_PAD* pad = module->Pads(); pad; pad = pad->Next() )
{
// Filters changes prohibited.
if( aPadShapeFilter && ( pad->GetShape() != aPad->GetShape() ) )
@ -291,7 +291,7 @@ void PCB_BASE_FRAME::GlobalChange_PadSettings( D_PAD* aPad,
module->ClearFlags( DO_NOT_DRAW );
}
for( D_PAD* pad = module->m_Pads; pad; pad = pad->Next() )
for( D_PAD* pad = module->Pads(); pad; pad = pad->Next() )
{
// Filters changes prohibited.
if( aPadShapeFilter && ( pad->GetShape() != aPad->GetShape() ) )

View File

@ -397,7 +397,7 @@ MODULE* GPCB_FPL_CACHE::parseMODULE( LINE_READER* aLineReader ) throw( IO_ERROR,
parseInt( parameters[7], conv_unit ) );
}
module->Reference().SetPosition( textPos );
module->Reference().SetTextPosition( textPos );
module->Reference().SetPos0( textPos );
int orientation = parseInt( parameters[paramCnt-4] );
@ -415,7 +415,7 @@ MODULE* GPCB_FPL_CACHE::parseMODULE( LINE_READER* aLineReader ) throw( IO_ERROR,
module->Value().SetSize( module->Reference().GetSize() );
module->Value().SetThickness( module->Reference().GetThickness() );
textPos.y += tsize + thickness;
module->Value().SetPosition( textPos );
module->Value().SetTextPosition( textPos );
module->Value().SetPos0( textPos );
while( aLineReader->ReadLine() )
@ -459,7 +459,7 @@ MODULE* GPCB_FPL_CACHE::parseMODULE( LINE_READER* aLineReader ) throw( IO_ERROR,
parseInt( parameters[5], conv_unit ) ) );
drawSeg->SetWidth( parseInt( parameters[6], conv_unit ) );
drawSeg->SetDrawCoord();
module->m_Drawings.PushBack( drawSeg );
module->GraphicalItems().PushBack( drawSeg );
continue;
}
@ -477,7 +477,7 @@ MODULE* GPCB_FPL_CACHE::parseMODULE( LINE_READER* aLineReader ) throw( IO_ERROR,
EDGE_MODULE* drawSeg = new EDGE_MODULE( module.get() );
drawSeg->SetLayer( SILKSCREEN_N_FRONT );
drawSeg->SetShape( S_ARC );
module->m_Drawings.PushBack( drawSeg );
module->GraphicalItems().PushBack( drawSeg );
// for and arc: ibuf[3] = ibuf[4]. Pcbnew does not know ellipses
int radius = ( parseInt( parameters[4], conv_unit ) +

View File

@ -942,15 +942,15 @@ void PCB_IO::format( MODULE* aModule, int aNestLevel ) const
Format( (BOARD_ITEM*) &aModule->Value(), aNestLevel+1 );
// Save drawing elements.
for( BOARD_ITEM* gr = aModule->m_Drawings; gr; gr = gr->Next() )
for( BOARD_ITEM* gr = aModule->GraphicalItems(); gr; gr = gr->Next() )
Format( gr, aNestLevel+1 );
// Save pads.
for( D_PAD* pad = aModule->m_Pads; pad; pad = pad->Next() )
for( D_PAD* pad = aModule->Pads(); pad; pad = pad->Next() )
Format( pad, aNestLevel+1 );
// Save 3D info.
for( S3D_MASTER* t3D = aModule->m_3D_Drawings; t3D; t3D = t3D->Next() )
for( S3D_MASTER* t3D = aModule->Models(); t3D; t3D = t3D->Next() )
{
if( !t3D->m_Shape3DName.IsEmpty() )
{
@ -1170,7 +1170,7 @@ void PCB_IO::format( TEXTE_PCB* aText, int aNestLevel ) const
{
m_out->Print( aNestLevel, "(gr_text %s (at %s",
m_out->Quotew( aText->GetText() ).c_str(),
FMT_IU( aText->GetPosition() ).c_str() );
FMT_IU( aText->GetTextPosition() ).c_str() );
if( aText->GetOrientation() != 0.0 )
m_out->Print( 0, " %s", FMT_ANGLE( aText->GetOrientation() ).c_str() );
@ -1374,7 +1374,7 @@ void PCB_IO::format( ZONE_CONTAINER* aZone, int aNestLevel ) const
m_out->Print( 0, " (mode segment)" );
m_out->Print( 0, " (arc_segments %d) (thermal_gap %s) (thermal_bridge_width %s)",
aZone->GetArcSegCount(),
aZone->GetArcSegmentCount(),
FMT_IU( aZone->GetThermalReliefGap() ).c_str(),
FMT_IU( aZone->GetThermalReliefCopperBridge() ).c_str() );

View File

@ -955,7 +955,7 @@ MODULE* LEGACY_PLUGIN::LoadMODULE()
{
// text is a drawing
textm = new TEXTE_MODULE( module.get() );
module->m_Drawings.PushBack( textm );
module->GraphicalItems().PushBack( textm );
}
loadMODULE_TEXT( textm );
@ -1346,7 +1346,7 @@ void LEGACY_PLUGIN::loadPAD( MODULE* aModule )
pad->SetPosition( padpos + aModule->GetPosition() );
aModule->m_Pads.PushBack( pad.release() );
aModule->Pads().PushBack( pad.release() );
return; // preferred exit
}
}
@ -1490,7 +1490,7 @@ void LEGACY_PLUGIN::loadMODULE_EDGE( MODULE* aModule )
EDGE_MODULE* em = dwg.release();
aModule->m_Drawings.PushBack( em );
aModule->GraphicalItems().PushBack( em );
// this had been done at the MODULE level before, presumably because the
// EDGE_MODULE needs to be already added to a module before this function will work.
@ -1603,13 +1603,13 @@ void LEGACY_PLUGIN::loadMODULE_TEXT( TEXTE_MODULE* aText )
void LEGACY_PLUGIN::load3D( MODULE* aModule )
{
S3D_MASTER* t3D = aModule->m_3D_Drawings;
S3D_MASTER* t3D = aModule->Models();
if( !t3D->m_Shape3DName.IsEmpty() )
{
S3D_MASTER* n3D = new S3D_MASTER( aModule );
aModule->m_3D_Drawings.PushBack( n3D );
aModule->Models().PushBack( n3D );
t3D = n3D;
}
@ -1886,7 +1886,7 @@ void LEGACY_PLUGIN::loadPCB_TEXT()
pcbtxt->SetThickness( thickn );
pcbtxt->SetOrientation( angle );
pcbtxt->SetPosition( wxPoint( pos_x, pos_y ) );
pcbtxt->SetTextPosition( wxPoint( pos_x, pos_y ) );
}
else if( TESTLINE( "De" ) )
@ -2291,7 +2291,7 @@ void LEGACY_PLUGIN::loadZONE_CONTAINER()
if( arcsegcount >= 32 )
arcsegcount = 32;
zc->SetArcSegCount( arcsegcount );
zc->SetArcSegmentCount( arcsegcount );
zc->SetIsFilled( fillstate == 'S' ? true : false );
zc->SetThermalReliefGap( thermalReliefGap );
zc->SetThermalReliefCopperBridge( thermalReliefCopperBridge );
@ -3459,7 +3459,7 @@ void LEGACY_PLUGIN::SaveMODULE( const MODULE* me ) const
saveMODULE_TEXT( &me->Value() );
// save drawing elements
for( BOARD_ITEM* gr = me->m_Drawings; gr; gr = gr->Next() )
for( BOARD_ITEM* gr = me->GraphicalItems(); gr; gr = gr->Next() )
{
switch( gr->Type() )
{
@ -3474,7 +3474,7 @@ void LEGACY_PLUGIN::SaveMODULE( const MODULE* me ) const
}
}
for( D_PAD* pad = me->m_Pads; pad; pad = pad->Next() )
for( D_PAD* pad = me->Pads(); pad; pad = pad->Next() )
savePAD( pad );
SaveModule3D( me );
@ -3487,7 +3487,7 @@ void LEGACY_PLUGIN::SaveMODULE( const MODULE* me ) const
void LEGACY_PLUGIN::SaveModule3D( const MODULE* me ) const
{
for( S3D_MASTER* t3D = me->m_3D_Drawings; t3D; t3D = t3D->Next() )
for( S3D_MASTER* t3D = me->Models(); t3D; t3D = t3D->Next() )
{
if( !t3D->m_Shape3DName.IsEmpty() )
{
@ -3662,7 +3662,7 @@ void LEGACY_PLUGIN::saveZONE_CONTAINER( const ZONE_CONTAINER* me ) const
fprintf( m_fp, "ZOptions %d %d %c %s %s\n",
me->GetFillMode(),
me->GetArcSegCount(),
me->GetArcSegmentCount(),
me->IsFilled() ? 'S' : 'F',
fmtBIU( me->GetThermalReliefGap() ).c_str(),
fmtBIU( me->GetThermalReliefCopperBridge() ).c_str() );
@ -3747,7 +3747,7 @@ void LEGACY_PLUGIN::saveDIMENTION( const DIMENSION* me ) const
fprintf( m_fp, "Te \"?\"\n" );
fprintf( m_fp, "Po %s %s %s %s %d\n",
fmtBIUPoint( me->Text().GetPosition() ).c_str(),
fmtBIUPoint( me->Text().GetTextPosition() ).c_str(),
fmtBIUSize( me->Text().GetSize() ).c_str(),
fmtBIU( me->Text().GetThickness() ).c_str(),
fmtDEG( me->Text().GetOrientation() ).c_str(),
@ -3817,7 +3817,7 @@ void LEGACY_PLUGIN::savePCB_TEXT( const TEXTE_PCB* me ) const
delete list;
fprintf( m_fp, "Po %s %s %s %s\n",
fmtBIUPoint( me->GetPosition() ).c_str(),
fmtBIUPoint( me->GetTextPosition() ).c_str(),
fmtBIUSize( me->GetSize() ).c_str(),
fmtBIU( me->GetThickness() ).c_str(),
fmtDEG( me->GetOrientation() ).c_str() );

View File

@ -769,18 +769,18 @@ void FOOTPRINT_EDIT_FRAME::Transform( MODULE* module, int transform )
#define ROTATE( z ) RotatePoint( (&z), angle )
RotateMarkedItems( module, wxPoint(0,0), true );
pos = module->Reference().GetPosition();
pos = module->Reference().GetTextPosition();
ROTATE( pos );
module->Reference().SetPosition( pos );
module->Reference().SetPos0( module->Reference().GetPosition() );
module->Reference().SetTextPosition( pos );
module->Reference().SetPos0( module->Reference().GetTextPosition() );
module->Reference().m_Orient += angle;
if( module->Reference().m_Orient >= 1800 )
module->Reference().m_Orient -= 1800;
pos = module->Value().GetPosition();
pos = module->Value().GetTextPosition();
ROTATE( pos );
module->Value().SetPosition( pos );
module->Value().SetTextPosition( pos );
module->Value().SetPos0( module->Value().m_Pos );
module->Value().m_Orient += angle;

View File

@ -31,7 +31,7 @@ void FOOTPRINT_EDIT_FRAME::SaveCopyInUndoList( BOARD_ITEM* aItem,
GetScreen()->PushCommandToUndoList( lastcmd );
/* Clear current flags (which can be temporary set by a current edit command) */
for( item = CopyItem->m_Drawings; item != NULL; item = item->Next() )
for( item = CopyItem->GraphicalItems(); item != NULL; item = item->Next() )
item->ClearFlags();
/* Clear redo list, because after new save there is no redo to do */

View File

@ -510,7 +510,7 @@ void DrawModuleOutlines( EDA_DRAW_PANEL* panel, wxDC* DC, MODULE* module )
pad_fill_tmp = DisplayOpt.DisplayPadFill;
DisplayOpt.DisplayPadFill = true;
pt_pad = module->m_Pads;
pt_pad = module->Pads();
for( ; pt_pad != NULL; pt_pad = pt_pad->Next() )
pt_pad->Draw( panel, DC, GR_XOR, g_Offset_Module );

View File

@ -252,13 +252,13 @@ MODULE* PCB_EDIT_FRAME::Genere_Self( wxDC* DC )
PtSegm->SetShape( S_SEGMENT );
PtSegm->SetStart0( PtSegm->GetStart() - module->GetPosition() );
PtSegm->SetEnd0( PtSegm->GetEnd() - module->GetPosition() );
module->m_Drawings.PushBack( PtSegm );
module->GraphicalItems().PushBack( PtSegm );
}
// Place a pad on each end of coil.
pad = new D_PAD( module );
module->m_Pads.PushFront( pad );
module->Pads().PushFront( pad );
pad->SetPadName( wxT( "1" ) );
pad->SetPosition( Mself.m_End );
@ -272,7 +272,7 @@ MODULE* PCB_EDIT_FRAME::Genere_Self( wxDC* DC )
D_PAD* newpad = new D_PAD( *pad );
module->m_Pads.Insert( newpad, pad->Next() );
module->Pads().Insert( newpad, pad->Next() );
pad = newpad;
pad->SetPadName( wxT( "2" ) );
@ -281,15 +281,18 @@ MODULE* PCB_EDIT_FRAME::Genere_Self( wxDC* DC )
// Modify text positions.
SetMsgPanel( module );
module->Value().m_Pos.x = module->Reference().m_Pos.x =
( Mself.m_Start.x + Mself.m_End.x ) / 2;
module->Value().m_Pos.y = module->Reference().m_Pos.y =
( Mself.m_Start.y + Mself.m_End.y ) / 2;
module->Reference().m_Pos.y -= module->Reference().m_Size.y;
module->Value().m_Pos.y += module->Value().m_Size.y;
module->Reference().SetPos0( module->Reference().m_Pos - module->GetPosition() );
module->Value().SetPos0( module->Value().m_Pos - module->GetPosition() );
wxPoint refPos( ( Mself.m_Start.x + Mself.m_End.x ) / 2,
( Mself.m_Start.y + Mself.m_End.y ) / 2 );
wxPoint valPos = refPos;
refPos.y -= module->Reference().GetSize().y;
module->Reference().SetTextPosition( refPos );
valPos.y += module->Value().GetSize().y;
module->Value().SetTextPosition( valPos );
module->Reference().SetPos0( module->Reference().GetTextPosition() - module->GetPosition() );
module->Value().SetPos0( module->Value().GetTextPosition() - module->GetPosition() );
module->CalculateBoundingBox();
module->Draw( m_canvas, DC, GR_OR );
@ -535,21 +538,21 @@ MODULE* PCB_EDIT_FRAME::Create_MuWaveBasicShape( const wxString& name, int pad_c
#define DEFAULT_SIZE 30
module->SetTimeStamp( GetNewTimeStamp() );
module->Value().m_Size = wxSize( DEFAULT_SIZE, DEFAULT_SIZE );
module->Value().SetSize( wxSize( DEFAULT_SIZE, DEFAULT_SIZE ) );
module->Value().SetPos0( wxPoint( 0, -DEFAULT_SIZE ) );
module->Value().m_Pos.y += module->Value().GetPos0().y;
module->Value().Offset( wxPoint( 0, module->Value().GetPos0().y ) );
module->Value().m_Thickness = DEFAULT_SIZE / 4;
module->Value().SetThickness( DEFAULT_SIZE / 4 );
module->Reference().m_Size = wxSize( DEFAULT_SIZE, DEFAULT_SIZE );
module->Reference().SetSize( wxSize( DEFAULT_SIZE, DEFAULT_SIZE ) );
module->Reference().SetPos0( wxPoint( 0, DEFAULT_SIZE ) );
module->Reference().m_Pos.y += module->Reference().GetPos0().y;
module->Reference().Offset( wxPoint( 0, module->Reference().GetPos0().y ) );
module->Reference().m_Thickness = DEFAULT_SIZE / 4;
module->Reference().SetThickness( DEFAULT_SIZE / 4 );
// Create 2 pads used in gaps and stubs. The gap is between these 2 pads
// the stub is the pad 2
@ -557,7 +560,7 @@ MODULE* PCB_EDIT_FRAME::Create_MuWaveBasicShape( const wxString& name, int pad_c
{
D_PAD* pad = new D_PAD( module );
module->m_Pads.PushFront( pad );
module->Pads().PushFront( pad );
int tw = GetBoard()->GetCurrentTrackWidth();
pad->SetSize( wxSize( tw, tw ) );
@ -660,7 +663,7 @@ MODULE* PCB_EDIT_FRAME::Create_MuWaveComponent( int shape_type )
}
module = Create_MuWaveBasicShape( cmp_name, pad_count );
pad = module->m_Pads;
pad = module->Pads();
switch( shape_type )
{
@ -687,7 +690,7 @@ MODULE* PCB_EDIT_FRAME::Create_MuWaveComponent( int shape_type )
case 2: // Arc Stub created by a polygonal approach:
{
EDGE_MODULE* edge = new EDGE_MODULE( module );
module->m_Drawings.PushFront( edge );
module->GraphicalItems().PushFront( edge );
edge->SetShape( S_POLYGON );
edge->SetLayer( LAYER_N_FRONT );
@ -974,7 +977,7 @@ MODULE* PCB_EDIT_FRAME::Create_MuWavePolygonShape()
cmp_name = wxT( "POLY" );
module = Create_MuWaveBasicShape( cmp_name, pad_count );
pad1 = module->m_Pads;
pad1 = module->Pads();
pad1->SetX0( -ShapeSize.x / 2 );
pad1->SetX( pad1->GetPos0().x + pad1->GetPosition().x );
@ -985,7 +988,7 @@ MODULE* PCB_EDIT_FRAME::Create_MuWavePolygonShape()
edge = new EDGE_MODULE( module );
module->m_Drawings.PushFront( edge );
module->GraphicalItems().PushFront( edge );
edge->SetShape( S_POLYGON );
edge->SetLayer( LAYER_N_FRONT );
@ -1068,7 +1071,7 @@ void PCB_EDIT_FRAME::Edit_Gap( wxDC* DC, MODULE* aModule )
if( msg != wxT( "GAP" ) )
return;
pad = aModule->m_Pads;
pad = aModule->Pads();
if( pad == NULL )
{

View File

@ -190,7 +190,7 @@ bool NETLIST_READER::InitializeModules()
MODULE* module = FindModule( *idMod );
if( module )
{
for( D_PAD* pad = module->m_Pads; pad; pad = pad->Next() )
for( D_PAD* pad = module->Pads(); pad; pad = pad->Next() )
pad->SetNetname( wxEmptyString );
}
}
@ -199,7 +199,7 @@ bool NETLIST_READER::InitializeModules()
// Clear all footprints
for( MODULE* module = m_pcbframe->GetBoard()->m_Modules; module; module = module->Next() )
{
for( D_PAD* pad = module->m_Pads; pad; pad = pad->Next() )
for( D_PAD* pad = module->Pads(); pad; pad = pad->Next() )
pad->SetNetname( wxEmptyString );
}
#endif

View File

@ -315,7 +315,7 @@ bool NETLIST_READER::SetPadNetName( char* aText )
wxString netName = FROM_UTF8( p );
bool found = false;
for( D_PAD* pad = m_currModule->m_Pads; pad; pad = pad->Next() )
for( D_PAD* pad = m_currModule->Pads(); pad; pad = pad->Next() )
{
wxString padName = pad->GetPadName();

View File

@ -136,7 +136,7 @@ void PCB_BASE_FRAME::AddPad( MODULE* aModule, bool draw )
D_PAD* pad = new D_PAD( aModule );
// Add the new pad to end of the module pad list.
aModule->m_Pads.PushBack( pad );
aModule->Pads().PushBack( pad );
// Update the pad properties.
Import_Pad_Settings( pad, false );

View File

@ -153,7 +153,7 @@ void PCB_ARC::AddToModule( MODULE* aModule )
if( IsValidNonCopperLayerIndex( m_KiCadLayer ) )
{
EDGE_MODULE* arc = new EDGE_MODULE( aModule, S_ARC );
aModule->m_Drawings.PushBack( arc );
aModule->GraphicalItems().PushBack( arc );
arc->SetAngle( -m_angle );
arc->m_Start0 = wxPoint( m_positionX, m_positionY );

View File

@ -119,7 +119,7 @@ void PCB_LINE::AddToModule( MODULE* aModule )
if( IsValidNonCopperLayerIndex( m_KiCadLayer ) )
{
EDGE_MODULE* segment = new EDGE_MODULE( aModule, S_SEGMENT );
aModule->m_Drawings.PushBack( segment );
aModule->GraphicalItems().PushBack( segment );
segment->m_Start0 = wxPoint( m_positionX, m_positionY );
segment->m_End0 = wxPoint( m_toX, m_toY );

View File

@ -194,7 +194,7 @@ void PCB_PAD::AddToModule( MODULE* aModule, int aRotation, bool aEncapsulatedPad
int height = 0;
D_PAD* pad = new D_PAD( aModule );
aModule->m_Pads.PushBack( pad );
aModule->Pads().PushBack( pad );
if( !m_isHolePlated && m_hole )
{

View File

@ -116,7 +116,7 @@ void PCB_TEXT::AddToBoard()
pcbtxt->SetThickness( m_name.textstrokeWidth );
pcbtxt->SetOrientation( m_rotation );
pcbtxt->SetPosition( wxPoint( m_name.correctedPositionX, m_name.correctedPositionY ) );
pcbtxt->SetTextPosition( wxPoint( m_name.correctedPositionX, m_name.correctedPositionY ) );
pcbtxt->SetMirrored( m_name.mirror );
pcbtxt->SetTimeStamp( 0 );

View File

@ -1317,7 +1317,7 @@ TEXTE_PCB* PCB_PARSER::parseTEXTE_PCB() throw( IO_ERROR, PARSE_ERROR )
pt.x = parseBoardUnits( "X coordinate" );
pt.y = parseBoardUnits( "Y coordinate" );
text->SetPosition( pt );
text->SetTextPosition( pt );
// If there is no orientation defined, then it is the default value of 0 degrees.
token = NextTok();
@ -1406,7 +1406,7 @@ DIMENSION* PCB_PARSER::parseDIMENSION() throw( IO_ERROR, PARSE_ERROR )
{
TEXTE_PCB* text = parseTEXTE_PCB();
dimension->Text() = *text;
dimension->SetPosition( text->GetPosition() );
dimension->SetPosition( text->GetTextPosition() );
delete text;
break;
}
@ -1680,7 +1680,7 @@ MODULE* PCB_PARSER::parseMODULE() throw( IO_ERROR, PARSE_ERROR )
}
else
{
module->m_Drawings.PushBack( text );
module->GraphicalItems().PushBack( text );
}
break;
@ -1695,7 +1695,7 @@ MODULE* PCB_PARSER::parseMODULE() throw( IO_ERROR, PARSE_ERROR )
EDGE_MODULE* em = parseEDGE_MODULE();
em->SetParent( module.get() );
em->SetDrawCoord();
module->m_Drawings.PushBack( em );
module->GraphicalItems().PushBack( em );
break;
}
@ -2497,7 +2497,7 @@ ZONE_CONTAINER* PCB_PARSER::parseZONE_CONTAINER() throw( IO_ERROR, PARSE_ERROR )
break;
case T_arc_segments:
zone->SetArcSegCount( parseInt( "arc segment count" ) );
zone->SetArcSegmentCount( parseInt( "arc segment count" ) );
break;
case T_thermal_gap:

View File

@ -90,7 +90,7 @@ void PlotSilkScreen( BOARD *aBoard, PLOTTER* aPlotter, long aLayerMask,
{
for( MODULE* Module = aBoard->m_Modules; Module; Module = Module->Next() )
{
for( D_PAD * pad = Module->m_Pads; pad != NULL; pad = pad->Next() )
for( D_PAD * pad = Module->Pads(); pad != NULL; pad = pad->Next() )
{
// See if the pad is on this layer
int masklayer = pad->GetLayerMask();
@ -220,7 +220,7 @@ void PlotOneBoardLayer( BOARD *aBoard, PLOTTER* aPlotter, int aLayer,
else
layer_mask = GetLayerMask( SOLDERMASK_N_BACK );
// Create the mask to substract by creating a negative layer polarity
// Create the mask to subtract by creating a negative layer polarity
aPlotter->SetLayerPolarity( false );
// Disable plot pad holes
plotOpt.SetDrillMarksType( PCB_PLOT_PARAMS::NO_DRILL_SHAPE );
@ -266,7 +266,7 @@ void PlotStandardLayer( BOARD *aBoard, PLOTTER* aPlotter,
for( MODULE* module = aBoard->m_Modules; module; module = module->Next() )
{
for( BOARD_ITEM* item = module->m_Drawings; item; item = item->Next() )
for( BOARD_ITEM* item = module->GraphicalItems(); item; item = item->Next() )
{
if( ! (aLayerMask & GetLayerMask( item->GetLayer() ) ) )
continue;
@ -286,7 +286,7 @@ void PlotStandardLayer( BOARD *aBoard, PLOTTER* aPlotter,
// Plot footprint pads
for( MODULE* module = aBoard->m_Modules; module; module = module->Next() )
{
for( D_PAD* pad = module->m_Pads; pad; pad = pad->Next() )
for( D_PAD* pad = module->Pads(); pad; pad = pad->Next() )
{
if( (pad->GetLayerMask() & aLayerMask) == 0 )
continue;
@ -456,7 +456,7 @@ void PlotStandardLayer( BOARD *aBoard, PLOTTER* aPlotter,
* 3 - deflate result by (min width solder mask /2)
* 4 - oring result by all pad shapes as polygons with a size inflated by
* mask clearance only (because deflate sometimes creates shape artifacts)
* 5 - draw result as plolygons.
* 5 - draw result as polygons
*
* TODO:
* make this calculation only for shapes with clearance near than (min width solder mask)
@ -480,7 +480,7 @@ void PlotSolderMaskLayer( BOARD *aBoard, PLOTTER* aPlotter,
for( MODULE* module = aBoard->m_Modules; module; module = module->Next() )
{
for( BOARD_ITEM* item = module->m_Drawings; item; item = item->Next() )
for( BOARD_ITEM* item = module->GraphicalItems(); item; item = item->Next() )
{
if( aLayerMask != item->GetLayer() )
continue;
@ -517,7 +517,7 @@ void PlotSolderMaskLayer( BOARD *aBoard, PLOTTER* aPlotter,
// Plot pads
for( MODULE* module = aBoard->m_Modules; module; module = module->Next() )
{
for( D_PAD* pad = module->m_Pads; pad; pad = pad->Next() )
for( D_PAD* pad = module->Pads(); pad; pad = pad->Next() )
{
if( (pad->GetLayerMask() & aLayerMask) == 0 )
continue;
@ -629,19 +629,19 @@ void PlotSolderMaskLayer( BOARD *aBoard, PLOTTER* aPlotter,
areas |= areasToMerge;
// Deflate: remove the extra margin, to create the actual shapes
// Here I am using ploygon:resize, because this function creates better shapes
// Here I am using polygon:resize, because this function creates better shapes
// than deflate algo.
// Use here deflate with arc creation and 16 segments per circle to create arcs
areas = resize( areas, -inflate , true, 16 );
// Resize slighly changes shapes. So *ensure* initial shapes are kept
// Resize slightly changes shapes. So *ensure* initial shapes are kept
areas |= initialAreas;
// To avoid a lot of code, use a ZONE_CONTAINER
// to plot polygons, because they are exactly like
// filled areas in zones
ZONE_CONTAINER zone( aBoard );
zone.SetArcSegCount( 32 );
zone.SetArcSegmentCount( 32 );
zone.SetMinThickness( 0 ); // trace polygons only
zone.SetLayer ( layer );
@ -657,7 +657,7 @@ void PlotSolderMaskLayer( BOARD *aBoard, PLOTTER* aPlotter,
* paper size is the physical page size
*/
static void initializePlotter( PLOTTER *aPlotter, BOARD * aBoard,
PCB_PLOT_PARAMS *aPlotOpts )
PCB_PLOT_PARAMS *aPlotOpts )
{
PAGE_INFO pageA4( wxT( "A4" ) );
const PAGE_INFO& pageInfo = aBoard->GetPageSettings();

View File

@ -164,7 +164,7 @@ bool BRDITEMS_PLOTTER::PlotAllTextsModule( MODULE* aModule )
PlotTextModule( &aModule->Value(), GetValueColor() );
}
for( textModule = (TEXTE_MODULE*) aModule->m_Drawings.GetFirst();
for( textModule = (TEXTE_MODULE*) aModule->GraphicalItems().GetFirst();
textModule != NULL; textModule = textModule->Next() )
{
if( textModule->Type() != PCB_MODULE_TEXT_T )
@ -233,30 +233,30 @@ void BRDITEMS_PLOTTER::PlotTextModule( TEXTE_MODULE* pt_texte,
m_plotter->SetColor( aColor );
// calculate some text parameters :
size = pt_texte->m_Size;
pos = pt_texte->m_Pos;
size = pt_texte->GetSize();
pos = pt_texte->GetTextPosition();
orient = pt_texte->GetDrawRotation();
thickness = pt_texte->m_Thickness;
thickness = pt_texte->GetThickness();
if( GetMode() == LINE )
thickness = -1;
if( pt_texte->m_Mirror )
if( pt_texte->IsMirrored() )
NEGATE( size.x ); // Text is mirrored
// Non bold texts thickness is clamped at 1/6 char size by the low level draw function.
// but in Pcbnew we do not manage bold texts and thickness up to 1/4 char size
// (like bold text) and we manage the thickness.
// So we set bold flag to true
bool allow_bold = pt_texte->m_Bold || thickness;
bool allow_bold = pt_texte->IsBold() || thickness;
m_plotter->Text( pos, aColor,
pt_texte->GetText(),
orient, size,
pt_texte->m_HJustify, pt_texte->m_VJustify,
thickness, pt_texte->m_Italic, allow_bold );
pt_texte->GetHorizJustify(), pt_texte->GetVertJustify(),
thickness, pt_texte->IsItalic(), allow_bold );
}
@ -364,7 +364,7 @@ void BRDITEMS_PLOTTER::Plot_Edges_Modules()
{
for( MODULE* module = m_board->m_Modules; module; module = module->Next() )
{
for( EDGE_MODULE* edge = (EDGE_MODULE*) module->m_Drawings.GetFirst();
for( EDGE_MODULE* edge = (EDGE_MODULE*) module->GraphicalItems().GetFirst();
edge; edge = edge->Next() )
{
if( edge->Type() != PCB_MODULE_EDGE_T )
@ -478,21 +478,21 @@ void BRDITEMS_PLOTTER::PlotTextePcb( TEXTE_PCB* pt_texte )
m_plotter->SetColor( getColor( pt_texte->GetLayer() ) );
size = pt_texte->m_Size;
pos = pt_texte->m_Pos;
orient = pt_texte->m_Orient;
thickness = ( GetMode() == LINE ) ? -1 : pt_texte->m_Thickness;
size = pt_texte->GetSize();
pos = pt_texte->GetTextPosition();
orient = pt_texte->GetOrientation();
thickness = ( GetMode() == LINE ) ? -1 : pt_texte->GetThickness();
if( pt_texte->m_Mirror )
if( pt_texte->IsMirrored() )
size.x = -size.x;
// Non bold texts thickness is clamped at 1/6 char size by the low level draw function.
// but in Pcbnew we do not manage bold texts and thickness up to 1/4 char size
// (like bold text) and we manage the thickness.
// So we set bold flag to true
bool allow_bold = pt_texte->m_Bold || thickness;
bool allow_bold = pt_texte->IsBold() || thickness;
if( pt_texte->m_MultilineAllowed )
if( pt_texte->IsMultilineAllowed() )
{
wxArrayString* list = wxStringSplit( pt_texte->GetText(), '\n' );
wxPoint offset;
@ -505,8 +505,8 @@ void BRDITEMS_PLOTTER::PlotTextePcb( TEXTE_PCB* pt_texte )
{
wxString txt = list->Item( i );
m_plotter->Text( pos, UNSPECIFIED_COLOR, txt, orient, size,
pt_texte->m_HJustify, pt_texte->m_VJustify,
thickness, pt_texte->m_Italic, allow_bold );
pt_texte->GetHorizJustify(), pt_texte->GetVertJustify(),
thickness, pt_texte->IsItalic(), allow_bold );
pos += offset;
}
@ -515,8 +515,8 @@ void BRDITEMS_PLOTTER::PlotTextePcb( TEXTE_PCB* pt_texte )
else
{
m_plotter->Text( pos, UNSPECIFIED_COLOR, pt_texte->GetText(), orient, size,
pt_texte->m_HJustify, pt_texte->m_VJustify,
thickness, pt_texte->m_Italic, allow_bold );
pt_texte->GetHorizJustify(), pt_texte->GetVertJustify(),
thickness, pt_texte->IsItalic(), allow_bold );
}
}
@ -560,7 +560,7 @@ void BRDITEMS_PLOTTER::PlotFilledAreas( ZONE_CONTAINER* aZone )
if( GetMode() == FILLED )
{
// Plot the current filled area polygon
if( aZone->m_FillMode == 0 ) // We are using solid polygons
if( aZone->GetFillMode() == 0 ) // We are using solid polygons
{ // (if != 0: using segments )
m_plotter->PlotPoly( cornerList, FILLED_SHAPE );
}
@ -571,23 +571,24 @@ void BRDITEMS_PLOTTER::PlotFilledAreas( ZONE_CONTAINER* aZone )
wxPoint start = aZone->m_FillSegmList[iseg].m_Start;
wxPoint end = aZone->m_FillSegmList[iseg].m_End;
m_plotter->ThickSegment( start, end,
aZone->m_ZoneMinThickness,
GetMode() );
aZone->GetMinThickness(),
GetMode() );
}
}
// Plot the current filled area outline
if( aZone->m_ZoneMinThickness > 0 )
m_plotter->PlotPoly( cornerList, NO_FILL, aZone->m_ZoneMinThickness );
if( aZone->GetMinThickness() > 0 )
m_plotter->PlotPoly( cornerList, NO_FILL, aZone->GetMinThickness() );
}
else
{
if( aZone->m_ZoneMinThickness > 0 )
if( aZone->GetMinThickness() > 0 )
{
for( unsigned jj = 1; jj<cornerList.size(); jj++ )
m_plotter->ThickSegment( cornerList[jj -1], cornerList[jj],
( GetMode() == LINE ) ? -1 : aZone->m_ZoneMinThickness,
GetMode() );
( GetMode() == LINE ) ? -1 :
aZone->GetMinThickness(),
GetMode() );
}
m_plotter->SetCurrentLineWidth( -1 );
@ -717,7 +718,7 @@ void BRDITEMS_PLOTTER::PlotDrillMarks()
for( MODULE *Module = m_board->m_Modules; Module != NULL; Module = Module->Next() )
{
for( D_PAD *pad = Module->m_Pads; pad != NULL; pad = pad->Next() )
for( D_PAD *pad = Module->Pads(); pad != NULL; pad = pad->Next() )
{
if( pad->GetDrillSize().x == 0 )
continue;

View File

@ -354,7 +354,7 @@ static void Print_Module( EDA_DRAW_PANEL* aPanel, wxDC* aDC, MODULE* aModule,
PRINT_PARAMETERS::DrillShapeOptT aDrillShapeOpt )
{
// Print pads
for( D_PAD* pad = aModule->m_Pads; pad; pad = pad->Next() )
for( D_PAD* pad = aModule->Pads(); pad; pad = pad->Next() )
{
if( (pad->GetLayerMask() & aMasklayer ) == 0 )
continue;
@ -403,7 +403,7 @@ static void Print_Module( EDA_DRAW_PANEL* aPanel, wxDC* aDC, MODULE* aModule,
aModule->Value().Draw( aPanel, aDC, aDraw_mode );
}
for( EDA_ITEM* item = aModule->m_Drawings; item; item = item->Next() )
for( EDA_ITEM* item = aModule->GraphicalItems(); item; item = item->Next() )
{
switch( item->Type() )
{

View File

@ -534,7 +534,7 @@ void PCB_BASE_FRAME::build_ratsnest_module( MODULE* aModule )
m_Pcb->m_LocalRatsnest.clear();
// collect active pads of the module:
for( pad_ref = aModule->m_Pads; pad_ref != NULL; pad_ref = pad_ref->Next() )
for( pad_ref = aModule->Pads(); pad_ref != NULL; pad_ref = pad_ref->Next() )
{
if( pad_ref->GetNet() == 0 )
continue;

View File

@ -260,7 +260,7 @@ void BOARD::DrawHighLight( EDA_DRAW_PANEL* am_canvas, wxDC* DC, int aNetCode )
// Redraw any pads that have aNetCode
for( MODULE* module = m_Modules; module; module = module->Next() )
{
for( D_PAD* pad = module->m_Pads; pad; pad = pad->Next() )
for( D_PAD* pad = module->Pads(); pad; pad = pad->Next() )
{
if( pad->GetNet() == aNetCode )
{
@ -295,7 +295,7 @@ static void Trace_Pads_Only( EDA_DRAW_PANEL* panel, wxDC* DC, MODULE* aModule,
frame->m_DisplayPadFill = false;
// Draw pads.
for( D_PAD* pad = aModule->m_Pads; pad; pad = pad->Next() )
for( D_PAD* pad = aModule->Pads(); pad; pad = pad->Next() )
{
if( (pad->GetLayerMask() & aLayerMask) == 0 )
continue;

View File

@ -546,13 +546,13 @@ void PCB_EDIT_FRAME::Exchange_Module( MODULE* aOldModule,
aNewModule->SetPath( aOldModule->GetPath() );
/* Update pad netnames ( when possible) */
pad = aNewModule->m_Pads;
pad = aNewModule->Pads();
for( ; pad != NULL; pad = pad->Next() )
{
pad->SetNetname( wxEmptyString );
pad->SetNet( 0 );
old_pad = aOldModule->m_Pads;
old_pad = aOldModule->Pads();
for( ; old_pad != NULL; old_pad = old_pad->Next() )
{

View File

@ -205,7 +205,7 @@ void ZONE_CONTAINER::AddClearanceAreasPolygonsToPolysList( BOARD* aPcb )
D_PAD* nextpad;
for( MODULE* module = aPcb->m_Modules; module; module = module->Next() )
{
for( D_PAD* pad = module->m_Pads; pad != NULL; pad = nextpad )
for( D_PAD* pad = module->Pads(); pad != NULL; pad = nextpad )
{
nextpad = pad->Next(); // pad pointer can be modified by next code, so
// calculate the next pad here
@ -299,7 +299,7 @@ void ZONE_CONTAINER::AddClearanceAreasPolygonsToPolysList( BOARD* aPcb )
*/
for( MODULE* module = aPcb->m_Modules; module; module = module->Next() )
{
for( BOARD_ITEM* item = module->m_Drawings; item; item = item->Next() )
for( BOARD_ITEM* item = module->GraphicalItems(); item; item = item->Next() )
{
if( !item->IsOnLayer( GetLayer() ) )
continue;
@ -388,7 +388,7 @@ void ZONE_CONTAINER::AddClearanceAreasPolygonsToPolysList( BOARD* aPcb )
// Remove thermal symbols
for( MODULE* module = aPcb->m_Modules; module; module = module->Next() )
{
for( D_PAD* pad = module->m_Pads; pad != NULL; pad = pad->Next() )
for( D_PAD* pad = module->Pads(); pad != NULL; pad = pad->Next() )
{
// Rejects non-standard pads with tht-only thermal reliefs
if( GetPadConnection( pad ) == THT_THERMAL

View File

@ -61,7 +61,7 @@ void BuildUnconnectedThermalStubsPolygonList( std::vector<CPolyPt>& aCornerBuffe
corners_buffer.reserve( 4 );
wxPoint ptTest[4];
int zone_clearance = aZone->m_ZoneClearance;
int zone_clearance = aZone->GetZoneClearance();
EDA_RECT item_boundingbox;
EDA_RECT zone_boundingbox = aZone->GetBoundingBox();
@ -70,11 +70,11 @@ void BuildUnconnectedThermalStubsPolygonList( std::vector<CPolyPt>& aCornerBuffe
zone_boundingbox.Inflate( biggest_clearance );
// half size of the pen used to draw/plot zones outlines
int pen_radius = aZone->m_ZoneMinThickness / 2;
int pen_radius = aZone->GetMinThickness() / 2;
for( MODULE* module = aPcb->m_Modules; module; module = module->Next() )
{
for( D_PAD* pad = module->m_Pads; pad != NULL; pad = pad->Next() )
for( D_PAD* pad = module->Pads(); pad != NULL; pad = pad->Next() )
{
// Rejects non-standard pads with tht-only thermal reliefs
if( aZone->GetPadConnection( pad ) == THT_THERMAL
@ -94,7 +94,7 @@ void BuildUnconnectedThermalStubsPolygonList( std::vector<CPolyPt>& aCornerBuffe
// Calculate thermal bridge half width
int thermalBridgeWidth = aZone->GetThermalReliefCopperBridge( pad )
- aZone->m_ZoneMinThickness;
- aZone->GetMinThickness();
if( thermalBridgeWidth <= 0 )
continue;
@ -122,7 +122,8 @@ void BuildUnconnectedThermalStubsPolygonList( std::vector<CPolyPt>& aCornerBuffe
// inside the pad
wxPoint startpoint;
int copperThickness = aZone->GetThermalReliefCopperBridge( pad )
- aZone->m_ZoneMinThickness;
- aZone->GetMinThickness();
if( copperThickness < 0 )
copperThickness = 0;

View File

@ -89,16 +89,16 @@ bool ZONE_CONTAINER::IsSame( const ZONE_CONTAINER& aZoneToCompare )
return false;
}
if( m_ArcToSegmentsCount != aZoneToCompare.m_ArcToSegmentsCount )
if( m_ArcToSegmentsCount != aZoneToCompare.GetArcSegmentCount() )
return false;
if( m_ZoneClearance != aZoneToCompare.m_ZoneClearance )
return false;
if( m_ZoneMinThickness != aZoneToCompare.m_ZoneMinThickness )
if( m_ZoneMinThickness != aZoneToCompare.GetMinThickness() )
return false;
if( m_FillMode != aZoneToCompare.m_FillMode )
if( m_FillMode != aZoneToCompare.GetFillMode() )
return false;
if( m_PadConnection != aZoneToCompare.m_PadConnection )

View File

@ -54,7 +54,7 @@ void ZONE_CONTAINER::Test_For_Copper_Island_And_Remove_Insulated_Islands( BOARD
for( MODULE* module = aPcb->m_Modules; module; module = module->Next() )
{
for( D_PAD* pad = module->m_Pads; pad != NULL; pad = pad->Next() )
for( D_PAD* pad = module->Pads(); pad != NULL; pad = pad->Next() )
{
if( !pad->IsOnLayer( GetLayer() ) )
continue;

View File

@ -70,7 +70,7 @@ void BOARD::Test_Connections_To_Copper_Areas( int aNetcode )
// clear .m_ZoneSubnet parameter for pads
for( MODULE* module = m_Modules; module; module = module->Next() )
{
for( D_PAD* pad = module->m_Pads; pad != NULL; pad = pad->Next() )
for( D_PAD* pad = module->Pads(); pad != NULL; pad = pad->Next() )
if( (aNetcode < 0) || ( aNetcode == pad->GetNet() ) )
pad->SetZoneSubNet( 0 );
}

View File

@ -758,8 +758,8 @@ bool DRC::doEdgeZoneDrc( ZONE_CONTAINER* aArea, int aCornerIndex )
for( int ia2 = 0; ia2 < m_pcb->GetAreaCount(); ia2++ )
{
ZONE_CONTAINER* area_to_test = m_pcb->GetArea( ia2 );
int zone_clearance = std::max( area_to_test->m_ZoneClearance,
aArea->m_ZoneClearance );
int zone_clearance = std::max( area_to_test->GetZoneClearance(),
aArea->GetZoneClearance() );
// test for same layer
if( area_to_test->GetLayer() != aArea->GetLayer() )