Pcbnew: Added display a short net name on vias and pads. Also, code cleaning
This commit is contained in:
parent
9dae370c1f
commit
6d856f60a6
|
@ -5,6 +5,14 @@ Started 2007-June-11
|
|||
Please add newer entries at the top, list the date and your name with
|
||||
email address.
|
||||
|
||||
2008-Dec-14 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
|
||||
================================================================================
|
||||
++pcbnew
|
||||
Display a short net name on vias and pads (if zoom level allows it).
|
||||
Short net names are net names without hierarchy path
|
||||
Add m_ShortNetname and change m_Netname to private in classes D_PAD and EQUIPOT
|
||||
|
||||
|
||||
2008-Dec-08 UPDATE Wayne Stambaugh <stambaughw@verizon.net>
|
||||
================================================================================
|
||||
++all
|
||||
|
|
|
@ -138,9 +138,6 @@ void WinEDA_BasicFrame::PrintMsg( const wxString& text )
|
|||
/******************************************************/
|
||||
{
|
||||
SetStatusText( text );
|
||||
#ifdef DEBUG
|
||||
printf( "%s\n", (const char*) text.mb_str() );
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -92,7 +92,7 @@ void PlotWorkSheet( int format_plot, BASE_SCREEN* screen )
|
|||
int ii, jj, xg, yg, ipas, gxpas, gypas;
|
||||
wxSize PageSize;
|
||||
wxPoint pos, ref;
|
||||
int color;
|
||||
EDA_Colors color;
|
||||
Ki_WorkSheetData* WsItem;
|
||||
int conv_unit = screen->GetInternalUnits() / 1000; /* Scale to convert dimension in 1/1000 in into internal units
|
||||
* (1/1000 inc for EESchema, 1/10000 for pcbnew */
|
||||
|
|
|
@ -21,22 +21,23 @@
|
|||
/* fonctions locales : */
|
||||
|
||||
|
||||
/****************************************************************************/
|
||||
void DrawGraphicText( WinEDA_DrawPanel* panel, wxDC* DC,
|
||||
const wxPoint& Pos, int gcolor, const wxString& Text,
|
||||
int orient, const wxSize& Size, int h_justify, int v_justify, int width )
|
||||
/*****************************************************************************/
|
||||
/****************************************************************************************************/
|
||||
void DrawGraphicText( WinEDA_DrawPanel* aPanel, wxDC* DC,
|
||||
const wxPoint& aPos, enum EDA_Colors aColor, const wxString& aText,
|
||||
int aOrient, const wxSize& aSize, int aH_justify, int aV_justify, int aWidth )
|
||||
/****************************************************************************************************/
|
||||
|
||||
/* Draw a graphic text (like module texts)
|
||||
* Text = text to draw
|
||||
* Pos = text position (according to h_justify, v_justify)
|
||||
* Size = text size (size.x or size.y can be < 0 for mirrored texts)
|
||||
* orient = angle in 0.1 degree
|
||||
* mode_color = GR_OR, GR_XOR..
|
||||
* h_justify = horizontal justification (Left, center, right)
|
||||
* v_justify = vertical justification (bottom, center, top)
|
||||
* width = line width (pen width) (default = 0)
|
||||
* if width < 0 : draw segments in sketch mode, width = abs(width)
|
||||
/** Function DrawGraphicText
|
||||
* Draw a graphic text (like module texts)
|
||||
* @param aPanel = the current DrawPanel
|
||||
* @param aPos = text position (according to aH_justify, aV_justify)
|
||||
* @param aColor (enum EDA_Colors) = text color
|
||||
* @param aText = text to draw
|
||||
* @param aOrient = angle in 0.1 degree
|
||||
* @param aSize = text size (size.x or size.y can be < 0 for mirrored texts)
|
||||
* @param aH_justify = horizontal justification (Left, center, right)
|
||||
* @param aV_justify = vertical justification (bottom, center, top)
|
||||
* @param aWidth = line aWidth (pen aWidth) (default = 0)
|
||||
*/
|
||||
{
|
||||
int ii, kk, nbchar, AsciiCode, endcar;
|
||||
|
@ -52,29 +53,29 @@ void DrawGraphicText( WinEDA_DrawPanel* panel, wxDC* DC,
|
|||
int coord[100]; // Buffer coordinate used to draw polylines (char shapes)
|
||||
bool sketch_mode = FALSE;
|
||||
|
||||
zoom = panel->GetZoom();
|
||||
zoom = aPanel->GetZoom();
|
||||
|
||||
size_h = Size.x;
|
||||
size_v = Size.y;
|
||||
size_h = aSize.x;
|
||||
size_v = aSize.y;
|
||||
|
||||
if( width < 0 )
|
||||
if( aWidth < 0 )
|
||||
{
|
||||
width = -width;
|
||||
aWidth = -aWidth;
|
||||
sketch_mode = TRUE;
|
||||
}
|
||||
kk = 0;
|
||||
ptr = 0; /* ptr = text index */
|
||||
|
||||
nbchar = Text.Len();
|
||||
nbchar = aText.Len();
|
||||
if( nbchar == 0 )
|
||||
return;
|
||||
|
||||
espacement = (10 * size_h ) / 9; // this is the pitch between chars
|
||||
ox = cX = Pos.x;
|
||||
oy = cY = Pos.y;
|
||||
ox = cX = aPos.x;
|
||||
oy = cY = aPos.y;
|
||||
|
||||
/* Do not draw the text if out of draw area! */
|
||||
if( panel )
|
||||
if( aPanel )
|
||||
{
|
||||
int xm, ym, ll, xc, yc;
|
||||
int textsize = ABS( espacement );
|
||||
|
@ -83,10 +84,10 @@ void DrawGraphicText( WinEDA_DrawPanel* panel, wxDC* DC,
|
|||
xc = GRMapX( cX );
|
||||
yc = GRMapY( cY );
|
||||
|
||||
x0 = panel->m_ClipBox.GetX() - ll;
|
||||
y0 = panel->m_ClipBox.GetY() - ll;
|
||||
xm = panel->m_ClipBox.GetRight() + ll;
|
||||
ym = panel->m_ClipBox.GetBottom() + ll;
|
||||
x0 = aPanel->m_ClipBox.GetX() - ll;
|
||||
y0 = aPanel->m_ClipBox.GetY() - ll;
|
||||
xm = aPanel->m_ClipBox.GetRight() + ll;
|
||||
ym = aPanel->m_ClipBox.GetBottom() + ll;
|
||||
|
||||
if( xc < x0 )
|
||||
return;
|
||||
|
@ -105,9 +106,9 @@ void DrawGraphicText( WinEDA_DrawPanel* panel, wxDC* DC,
|
|||
|
||||
ux0 = uy0 = 0; /* Decalage du centre du texte / coord de ref */
|
||||
|
||||
if( (orient == 0) || (orient == 1800) ) /* Horizontal Text */
|
||||
if( (aOrient == 0) || (aOrient == 1800) ) /* Horizontal Text */
|
||||
{
|
||||
switch( h_justify )
|
||||
switch( aH_justify )
|
||||
{
|
||||
case GR_TEXT_HJUSTIFY_CENTER:
|
||||
break;
|
||||
|
@ -121,7 +122,7 @@ void DrawGraphicText( WinEDA_DrawPanel* panel, wxDC* DC,
|
|||
break;
|
||||
}
|
||||
|
||||
switch( v_justify )
|
||||
switch( aV_justify )
|
||||
{
|
||||
case GR_TEXT_VJUSTIFY_CENTER:
|
||||
break;
|
||||
|
@ -137,7 +138,7 @@ void DrawGraphicText( WinEDA_DrawPanel* panel, wxDC* DC,
|
|||
}
|
||||
else /* Vertical Text */
|
||||
{
|
||||
switch( h_justify )
|
||||
switch( aH_justify )
|
||||
{
|
||||
case GR_TEXT_HJUSTIFY_CENTER:
|
||||
break;
|
||||
|
@ -151,7 +152,7 @@ void DrawGraphicText( WinEDA_DrawPanel* panel, wxDC* DC,
|
|||
break;
|
||||
}
|
||||
|
||||
switch( v_justify )
|
||||
switch( aV_justify )
|
||||
{
|
||||
case GR_TEXT_VJUSTIFY_CENTER:
|
||||
break;
|
||||
|
@ -172,10 +173,10 @@ void DrawGraphicText( WinEDA_DrawPanel* panel, wxDC* DC,
|
|||
ox = cX - dx;
|
||||
oy = cY + dy;
|
||||
|
||||
if( (Size.x / zoom) == 0 )
|
||||
if( (aSize.x / zoom) == 0 )
|
||||
return;
|
||||
|
||||
if( ABS( (Size.x / zoom) ) < 3 ) /* chars trop petits pour etre dessines */
|
||||
if( ABS( (aSize.x / zoom) ) < 3 ) /* chars trop petits pour etre dessines */
|
||||
{ /* le texte est symbolise par une barre */
|
||||
dx = (espacement * nbchar) / 2;
|
||||
dy = size_v / 2; /* Decalage du debut du texte / centre */
|
||||
|
@ -186,10 +187,10 @@ void DrawGraphicText( WinEDA_DrawPanel* panel, wxDC* DC,
|
|||
dx += cX;
|
||||
dy = cY;
|
||||
|
||||
RotatePoint( &ux0, &uy0, cX, cY, orient );
|
||||
RotatePoint( &dx, &dy, cX, cY, orient );
|
||||
RotatePoint( &ux0, &uy0, cX, cY, aOrient );
|
||||
RotatePoint( &dx, &dy, cX, cY, aOrient );
|
||||
|
||||
GRLine( &panel->m_ClipBox, DC, ux0, uy0, dx, dy, width, gcolor );
|
||||
GRLine( &aPanel->m_ClipBox, DC, ux0, uy0, dx, dy, aWidth, aColor );
|
||||
|
||||
return;
|
||||
}
|
||||
|
@ -204,15 +205,15 @@ void DrawGraphicText( WinEDA_DrawPanel* panel, wxDC* DC,
|
|||
dx += cX;
|
||||
dy = cY;
|
||||
|
||||
RotatePoint( &ux0, &uy0, cX, cY, orient );
|
||||
RotatePoint( &dx, &dy, cX, cY, orient );
|
||||
RotatePoint( &ux0, &uy0, cX, cY, aOrient );
|
||||
RotatePoint( &dx, &dy, cX, cY, aOrient );
|
||||
|
||||
DC->SetTextForeground( wxColour(
|
||||
ColorRefs[gcolor].r,
|
||||
ColorRefs[gcolor].g,
|
||||
ColorRefs[gcolor].b ) );
|
||||
ColorRefs[aColor].r,
|
||||
ColorRefs[aColor].g,
|
||||
ColorRefs[aColor].b ) );
|
||||
|
||||
DC->DrawRotatedText( Text, GRMapX( ux0 ), GRMapY( uy0 ), (double) orient / 10.0 );
|
||||
DC->DrawRotatedText( Text, GRMapX( ux0 ), GRMapY( uy0 ), (double) aOrient / 10.0 );
|
||||
return;
|
||||
#endif
|
||||
|
||||
|
@ -220,13 +221,13 @@ void DrawGraphicText( WinEDA_DrawPanel* panel, wxDC* DC,
|
|||
{
|
||||
x0 = 0; y0 = 0;
|
||||
#if defined(wxUSE_UNICODE) && defined(KICAD_CYRILLIC)
|
||||
AsciiCode = Text.GetChar(ptr) & 0x7FF;
|
||||
AsciiCode = aText.GetChar(ptr) & 0x7FF;
|
||||
if ( AsciiCode > 0x40F && AsciiCode < 0x450 ) // big small Cyr
|
||||
AsciiCode = utf8_to_ascii[AsciiCode - 0x410] & 0xFF;
|
||||
else
|
||||
AsciiCode = AsciiCode & 0xFF;
|
||||
#else
|
||||
AsciiCode = Text.GetChar( ptr ) & 255;
|
||||
AsciiCode = aText.GetChar( ptr ) & 0xFF;
|
||||
#endif
|
||||
ptcar = graphic_fonte_shape[AsciiCode]; /* ptcar pointe la description
|
||||
* du caractere a dessiner */
|
||||
|
@ -245,20 +246,20 @@ void DrawGraphicText( WinEDA_DrawPanel* panel, wxDC* DC,
|
|||
case 'U':
|
||||
if( ii && (plume == 'D' ) )
|
||||
{
|
||||
if( width <= 1 )
|
||||
GRPoly( &panel->m_ClipBox, DC, ii / 2, coord, 0, 0,
|
||||
gcolor, gcolor );
|
||||
if( aWidth <= 1 )
|
||||
GRPoly( &aPanel->m_ClipBox, DC, ii / 2, coord, 0, 0,
|
||||
aColor, aColor );
|
||||
else if( sketch_mode )
|
||||
{
|
||||
int ik, * coordptr;
|
||||
coordptr = coord;
|
||||
for( ik = 0; ik < (ii - 2); ik += 2, coordptr += 2 )
|
||||
GRCSegm( &panel->m_ClipBox, DC, *coordptr, *(coordptr + 1),
|
||||
*(coordptr + 2), *(coordptr + 3), width, gcolor );
|
||||
GRCSegm( &aPanel->m_ClipBox, DC, *coordptr, *(coordptr + 1),
|
||||
*(coordptr + 2), *(coordptr + 3), aWidth, aColor );
|
||||
}
|
||||
else
|
||||
GRPoly( &panel->m_ClipBox, DC, ii / 2, coord, 0,
|
||||
width, gcolor, gcolor );
|
||||
GRPoly( &aPanel->m_ClipBox, DC, ii / 2, coord, 0,
|
||||
aWidth, aColor, aColor );
|
||||
}
|
||||
plume = f_cod; ii = 0;
|
||||
break;
|
||||
|
@ -279,7 +280,7 @@ void DrawGraphicText( WinEDA_DrawPanel* panel, wxDC* DC,
|
|||
k2 = (k2 * size_h) / 9;
|
||||
dx = k2 + ox; dy = k1 + oy;
|
||||
|
||||
RotatePoint( &dx, &dy, cX, cY, orient );
|
||||
RotatePoint( &dx, &dy, cX, cY, aOrient );
|
||||
coord[ii++] = dx;
|
||||
coord[ii++] = dy;
|
||||
break;
|
||||
|
@ -299,13 +300,21 @@ void DrawGraphicText( WinEDA_DrawPanel* panel, wxDC* DC,
|
|||
|
||||
|
||||
/******************************************************************************************/
|
||||
void PlotGraphicText( int format_plot, const wxPoint& Pos, int gcolor,
|
||||
const wxString& Text,
|
||||
int orient, const wxSize& Size, int h_justify, int v_justify )
|
||||
void PlotGraphicText( int aFormat_plot, const wxPoint& aPos, enum EDA_Colors aColor,
|
||||
const wxString& aText,
|
||||
int aOrient, const wxSize& aSize, int aH_justify, int aV_justify )
|
||||
/******************************************************************************************/
|
||||
|
||||
/*
|
||||
* id DrawGraphicText, for plot graphic text
|
||||
/** Function PlotGraphicText
|
||||
* same as DrawGraphicText, but plot graphic text insteed of draw it
|
||||
* @param aFormat_plot = plot format (PLOT_FORMAT_POST, PLOT_FORMAT_HPGL, PLOT_FORMAT_GERBER)
|
||||
* @param aPos = text position (according to aH_justify, aV_justify)
|
||||
* @param aColor (enum EDA_Colors) = text color
|
||||
* @param aText = text to draw
|
||||
* @param aOrient = angle in 0.1 degree
|
||||
* @param aSize = text size (size.x or size.y can be < 0 for mirrored texts)
|
||||
* @param aH_justify = horizontal justification (Left, center, right)
|
||||
* @param aV_justify = vertical justification (bottom, center, top)
|
||||
*/
|
||||
{
|
||||
int kk, nbchar, end, AsciiCode;
|
||||
|
@ -319,7 +328,7 @@ void PlotGraphicText( int format_plot, const wxPoint& Pos, int gcolor,
|
|||
|
||||
void (*FctPlume)( wxPoint pos, int state );
|
||||
|
||||
switch( format_plot )
|
||||
switch( aFormat_plot )
|
||||
{
|
||||
case PLOT_FORMAT_POST:
|
||||
FctPlume = LineTo_PS;
|
||||
|
@ -334,11 +343,11 @@ void PlotGraphicText( int format_plot, const wxPoint& Pos, int gcolor,
|
|||
return;
|
||||
}
|
||||
|
||||
if( gcolor >= 0 && IsPostScript( format_plot ) )
|
||||
SetColorMapPS( gcolor );
|
||||
if( aColor >= 0 && IsPostScript( aFormat_plot ) )
|
||||
SetColorMapPS( aColor );
|
||||
|
||||
size_h = Size.x;
|
||||
size_v = Size.y;
|
||||
size_h = aSize.x;
|
||||
size_v = aSize.y;
|
||||
if( size_h == 0 )
|
||||
size_h = DEFAULT_SIZE_TEXT;
|
||||
if( size_v == 0 )
|
||||
|
@ -348,11 +357,11 @@ void PlotGraphicText( int format_plot, const wxPoint& Pos, int gcolor,
|
|||
ptr = 0; /* ptr = text index */
|
||||
|
||||
/* calcul de la position du debut des textes: ox et oy */
|
||||
nbchar = Text.Len();
|
||||
nbchar = aText.Len();
|
||||
|
||||
espacement = (10 * size_h ) / 9;
|
||||
ox = cX = Pos.x;
|
||||
oy = cY = Pos.y;
|
||||
ox = cX = aPos.x;
|
||||
oy = cY = aPos.y;
|
||||
|
||||
/* Calcul du cadrage du texte */
|
||||
dx = (espacement * nbchar) / 2;
|
||||
|
@ -360,9 +369,9 @@ void PlotGraphicText( int format_plot, const wxPoint& Pos, int gcolor,
|
|||
|
||||
ux0 = uy0 = 0; /* Decalage du centre du texte / ccord de ref */
|
||||
|
||||
if( (orient == 0) || (orient == 1800) ) /* Texte Horizontal */
|
||||
if( (aOrient == 0) || (aOrient == 1800) ) /* Texte Horizontal */
|
||||
{
|
||||
switch( h_justify )
|
||||
switch( aH_justify )
|
||||
{
|
||||
case GR_TEXT_HJUSTIFY_CENTER:
|
||||
break;
|
||||
|
@ -376,7 +385,7 @@ void PlotGraphicText( int format_plot, const wxPoint& Pos, int gcolor,
|
|||
break;
|
||||
}
|
||||
|
||||
switch( v_justify )
|
||||
switch( aV_justify )
|
||||
{
|
||||
case GR_TEXT_VJUSTIFY_CENTER:
|
||||
break;
|
||||
|
@ -392,7 +401,7 @@ void PlotGraphicText( int format_plot, const wxPoint& Pos, int gcolor,
|
|||
}
|
||||
else /* Texte Vertical */
|
||||
{
|
||||
switch( h_justify )
|
||||
switch( aH_justify )
|
||||
{
|
||||
case GR_TEXT_HJUSTIFY_CENTER:
|
||||
break;
|
||||
|
@ -406,7 +415,7 @@ void PlotGraphicText( int format_plot, const wxPoint& Pos, int gcolor,
|
|||
break;
|
||||
}
|
||||
|
||||
switch( v_justify )
|
||||
switch( aV_justify )
|
||||
{
|
||||
case GR_TEXT_VJUSTIFY_CENTER:
|
||||
break;
|
||||
|
@ -432,13 +441,13 @@ void PlotGraphicText( int format_plot, const wxPoint& Pos, int gcolor,
|
|||
while( kk++ < nbchar )
|
||||
{
|
||||
#if defined(wxUSE_UNICODE) && defined(KICAD_CYRILLIC)
|
||||
AsciiCode = Text.GetChar(ptr) & 0x7FF;
|
||||
AsciiCode = aText.GetChar(ptr) & 0x7FF;
|
||||
if ( AsciiCode > 0x40F && AsciiCode < 0x450 ) // big small Cyr
|
||||
AsciiCode = utf8_to_ascii[AsciiCode - 0x410] & 0xFF;
|
||||
else
|
||||
AsciiCode = AsciiCode & 0xFF;
|
||||
#else
|
||||
AsciiCode = Text.GetChar( ptr ) & 0xFF;
|
||||
AsciiCode = aText.GetChar( ptr ) & 0xFF;
|
||||
#endif
|
||||
ptcar = graphic_fonte_shape[AsciiCode]; /* ptcar pointe la description
|
||||
* du caractere a dessiner */
|
||||
|
@ -469,7 +478,7 @@ void PlotGraphicText( int format_plot, const wxPoint& Pos, int gcolor,
|
|||
dx = k2 + ox;
|
||||
dy = k1 + oy;
|
||||
|
||||
RotatePoint( &dx, &dy, orient );
|
||||
RotatePoint( &dx, &dy, aOrient );
|
||||
FctPlume( wxPoint( cX + dx, cY + dy ), plume );
|
||||
|
||||
x0 = k2;
|
||||
|
|
|
@ -26,7 +26,8 @@ void WinEDA_DrawFrame::TraceWorkSheet( wxDC* DC, BASE_SCREEN* screen, int line_w
|
|||
Ki_PageDescr* Sheet = screen->m_CurrentSheetDesc;
|
||||
int ii, jj, xg, yg, ipas, gxpas, gypas;
|
||||
wxPoint pos;
|
||||
int refx, refy, Color;
|
||||
int refx, refy;
|
||||
EDA_Colors Color;
|
||||
wxString Line;
|
||||
Ki_WorkSheetData* WsItem;
|
||||
int scale = m_InternalUnits / 1000;
|
||||
|
@ -240,8 +241,8 @@ void WinEDA_DrawFrame::TraceWorkSheet( wxDC* DC, BASE_SCREEN* screen, int line_w
|
|||
break;
|
||||
case WS_UPPER_SEGMENT:
|
||||
case WS_LEFT_SEGMENT:
|
||||
WS_MostUpperLine.m_Posy =
|
||||
WS_MostUpperLine.m_Endy =
|
||||
WS_MostUpperLine.m_Posy =
|
||||
WS_MostUpperLine.m_Endy =
|
||||
WS_MostLeftLine.m_Posy = STAMP_OY;
|
||||
pos.y = (refy - WsItem->m_Posy)* scale;
|
||||
case WS_SEGMENT:
|
||||
|
|
|
@ -16,7 +16,6 @@ set(CVPCB_SRCS
|
|||
dialog_display_options.cpp
|
||||
displayframe.cpp
|
||||
genequiv.cpp
|
||||
# genorcad.cpp
|
||||
init.cpp
|
||||
listboxes.cpp
|
||||
listlib.cpp
|
||||
|
@ -41,6 +40,7 @@ set(CVPCB_EXTRA_SRCS
|
|||
../pcbnew/class_mire.cpp
|
||||
../pcbnew/class_module.cpp
|
||||
../pcbnew/class_pad.cpp
|
||||
../pcbnew/class_pad_draw_functions.cpp
|
||||
../pcbnew/class_pcb_text.cpp
|
||||
../pcbnew/class_text_mod.cpp
|
||||
../pcbnew/class_track.cpp
|
||||
|
|
|
@ -46,6 +46,7 @@ OBJECTS = $(TARGET).o \
|
|||
class_board.o \
|
||||
class_module.o \
|
||||
class_pad.o \
|
||||
class_pad_draw_functions.o\
|
||||
class_text_mod.o \
|
||||
class_edge_mod.o \
|
||||
class_equipot.o \
|
||||
|
@ -104,6 +105,9 @@ class_track.o: ../pcbnew/class_track.cpp
|
|||
class_pad.o: ../pcbnew/class_pad.cpp
|
||||
$(CXX) -c $(EDACPPFLAGS) -o $@ ../pcbnew/$*.cpp
|
||||
|
||||
class_pad_draw_functions.o: ../pcbnew/class_pad_draw_functions.cpp
|
||||
$(CXX) -c $(EDACPPFLAGS) -o $@ ../pcbnew/$*.cpp
|
||||
|
||||
class_module.o: ../pcbnew/class_module.cpp
|
||||
$(CXX) -c $(EDACPPFLAGS) -o $@ ../pcbnew/$*.cpp
|
||||
|
||||
|
|
|
@ -316,7 +316,7 @@ void DrawSheetStruct::Draw( WinEDA_DrawPanel* panel, wxDC* DC,
|
|||
|
||||
Text = wxT( "Sheet: " ) + m_SheetName;
|
||||
DrawGraphicText( panel, DC,
|
||||
wxPoint( pos.x, pos.y - 8 ), txtcolor,
|
||||
wxPoint( pos.x, pos.y - 8 ), (EDA_Colors) txtcolor,
|
||||
Text, TEXT_ORIENT_HORIZ, wxSize( m_SheetNameSize, m_SheetNameSize ),
|
||||
GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_BOTTOM, LineWidth );
|
||||
|
||||
|
@ -328,7 +328,7 @@ void DrawSheetStruct::Draw( WinEDA_DrawPanel* panel, wxDC* DC,
|
|||
Text = wxT( "File: " ) + m_FileName;
|
||||
DrawGraphicText( panel, DC,
|
||||
wxPoint( pos.x, pos.y + m_Size.y + 4 ),
|
||||
txtcolor,
|
||||
(EDA_Colors) txtcolor,
|
||||
Text, TEXT_ORIENT_HORIZ, wxSize( m_FileNameSize, m_FileNameSize ),
|
||||
GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_TOP, LineWidth );
|
||||
|
||||
|
|
|
@ -72,14 +72,15 @@ void Hierarchical_PIN_Sheet_Struct::Draw( WinEDA_DrawPanel* panel, wxDC* DC, con
|
|||
/********************************************************************************************/
|
||||
/* Routine de dessin des Labels type hierarchie */
|
||||
{
|
||||
int side, txtcolor;
|
||||
int side;
|
||||
EDA_Colors txtcolor;
|
||||
int posx, tposx, posy, size2;
|
||||
wxSize size;
|
||||
int NbSegm, coord[20];
|
||||
int LineWidth = g_DrawMinimunLineWidth;
|
||||
|
||||
if( Color >= 0 )
|
||||
txtcolor = Color;
|
||||
txtcolor = (EDA_Colors)Color;
|
||||
else
|
||||
txtcolor = ReturnLayerColor( m_Layer );
|
||||
GRSetDrawMode( DC, DrawMode );
|
||||
|
|
|
@ -244,7 +244,7 @@ void LibDrawPin::DrawPinTexts( WinEDA_DrawPanel* panel,
|
|||
wxString PinText;
|
||||
int PinTextBarPos[256];
|
||||
int PinTextBarCount;
|
||||
int NameColor, NumColor;
|
||||
EDA_Colors NameColor, NumColor;
|
||||
int PinTxtLen;
|
||||
|
||||
wxSize PinNameSize( m_PinNameSize, m_PinNameSize );
|
||||
|
@ -257,8 +257,8 @@ void LibDrawPin::DrawPinTexts( WinEDA_DrawPanel* panel,
|
|||
/* Get the num and name colors */
|
||||
if( (Color < 0) && (m_Selected & IS_SELECTED) )
|
||||
Color = g_ItemSelectetColor;
|
||||
NameColor = Color == -1 ? ReturnLayerColor( LAYER_PINNAM ) : Color;
|
||||
NumColor = Color == -1 ? ReturnLayerColor( LAYER_PINNUM ) : Color;
|
||||
NameColor = (EDA_Colors) (Color == -1 ? ReturnLayerColor( LAYER_PINNAM ) : Color);
|
||||
NumColor = (EDA_Colors) (Color == -1 ? ReturnLayerColor( LAYER_PINNUM ) : Color);
|
||||
|
||||
/* Create the pin num string */
|
||||
ReturnPinStringNum( StringPinNum );
|
||||
|
@ -563,7 +563,7 @@ void LibDrawPin::PlotPinTexts( wxPoint& pin_pos,
|
|||
wxString PinText;
|
||||
int PinTextBarPos[256];
|
||||
int PinTextBarCount;
|
||||
int NameColor, NumColor;
|
||||
EDA_Colors NameColor, NumColor;
|
||||
int PinTxtLen = 0;
|
||||
wxSize PinNameSize = wxSize( m_PinNameSize, m_PinNameSize );
|
||||
wxSize PinNumSize = wxSize( m_PinNumSize, m_PinNumSize );
|
||||
|
@ -571,8 +571,8 @@ void LibDrawPin::PlotPinTexts( wxPoint& pin_pos,
|
|||
&& g_PlotPSColorOpt;
|
||||
|
||||
/* Get the num and name colors */
|
||||
NameColor = plot_color ? ReturnLayerColor( LAYER_PINNAM ) : -1;
|
||||
NumColor = plot_color ? ReturnLayerColor( LAYER_PINNUM ) : -1;
|
||||
NameColor = (EDA_Colors) (plot_color ? ReturnLayerColor( LAYER_PINNAM ) : -1);
|
||||
NumColor = (EDA_Colors) (plot_color ? ReturnLayerColor( LAYER_PINNUM ) : -1);
|
||||
|
||||
/* Create the pin num string */
|
||||
ReturnPinStringNum( StringPinNum );
|
||||
|
|
|
@ -123,11 +123,11 @@ void SCH_TEXT::Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& offset,
|
|||
/* Texts type Comment (text on layer "NOTE") have 4 directions, and the Text origin is the first letter
|
||||
*/
|
||||
{
|
||||
int color;
|
||||
EDA_Colors color;
|
||||
int width = MAX( m_Width, g_DrawMinimunLineWidth );
|
||||
|
||||
if( Color >= 0 )
|
||||
color = Color;
|
||||
color = (EDA_Colors)Color;
|
||||
else
|
||||
color = ReturnLayerColor( m_Layer );
|
||||
GRSetDrawMode( DC, DrawMode );
|
||||
|
@ -331,13 +331,14 @@ void SCH_HIERLABEL::Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& offs
|
|||
*/
|
||||
{
|
||||
int Poly[40];
|
||||
int ii, color;
|
||||
int ii;
|
||||
EDA_Colors color;
|
||||
wxPoint AnchorPos = m_Pos + offset;;
|
||||
|
||||
int width = MAX( m_Width, g_DrawMinimunLineWidth );
|
||||
|
||||
if( Color >= 0 )
|
||||
color = Color;
|
||||
color = (EDA_Colors)Color;
|
||||
else
|
||||
color = ReturnLayerColor( m_Layer );
|
||||
|
||||
|
@ -464,13 +465,15 @@ void SCH_GLOBALLABEL::Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& dr
|
|||
*/
|
||||
{
|
||||
int Poly[20];
|
||||
int offset, color, HalfSize;
|
||||
int offset;
|
||||
EDA_Colors color;
|
||||
int HalfSize;
|
||||
wxPoint AnchorPos = m_Pos + draw_offset;;
|
||||
|
||||
int width = MAX( m_Width, g_DrawMinimunLineWidth );
|
||||
|
||||
if( Color >= 0 )
|
||||
color = Color;
|
||||
color = (EDA_Colors)Color;
|
||||
else
|
||||
color = ReturnLayerColor( m_Layer );
|
||||
|
||||
|
|
|
@ -161,7 +161,7 @@ void LibDrawText::Draw( WinEDA_DrawPanel* aPanel, wxDC* aDC, const wxPoint& aOff
|
|||
* transformation matrix causes xy axes to be flipped. */
|
||||
int t1 = (aTransformMatrix[0][0] != 0) ^ (m_Horiz != 0);
|
||||
|
||||
DrawGraphicText( aPanel, aDC, pos1, color, m_Text,
|
||||
DrawGraphicText( aPanel, aDC, pos1, (EDA_Colors) color, m_Text,
|
||||
t1 ? TEXT_ORIENT_HORIZ : TEXT_ORIENT_VERT,
|
||||
m_Size,
|
||||
GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_CENTER, linewidth );
|
||||
|
@ -337,7 +337,7 @@ void LibDrawField::Draw( WinEDA_DrawPanel* aPanel, wxDC* aDC, const wxPoint& aOf
|
|||
wxString* text = aData ? (wxString*) aData : &m_Text;
|
||||
GRSetDrawMode( aDC, aDrawMode );
|
||||
DrawGraphicText( aPanel, aDC, text_pos,
|
||||
color, text->GetData(),
|
||||
(EDA_Colors) color, text->GetData(),
|
||||
m_Orient ? TEXT_ORIENT_VERT : TEXT_ORIENT_HORIZ,
|
||||
m_Size,
|
||||
m_HJustify, m_VJustify, linewidth );
|
||||
|
|
|
@ -418,12 +418,12 @@ void SeedLayers()
|
|||
}
|
||||
|
||||
|
||||
/*******************************/
|
||||
int ReturnLayerColor( int Layer )
|
||||
/*******************************/
|
||||
/***************************************/
|
||||
EDA_Colors ReturnLayerColor( int Layer )
|
||||
/****************************************/
|
||||
{
|
||||
if( g_LayerDescr.Flags == 0 )
|
||||
return g_LayerDescr.LayerColor[Layer];
|
||||
return (EDA_Colors) g_LayerDescr.LayerColor[Layer];
|
||||
else
|
||||
return g_LayerDescr.CommonColor;
|
||||
return (EDA_Colors) g_LayerDescr.CommonColor;
|
||||
}
|
||||
|
|
|
@ -249,8 +249,8 @@ void SCH_CMP_FIELD::Draw( WinEDA_DrawPanel* panel,
|
|||
* DrawMode: mode de trace
|
||||
*/
|
||||
{
|
||||
int orient, color;
|
||||
|
||||
int orient;
|
||||
EDA_Colors color;
|
||||
wxPoint pos; /* Position des textes */
|
||||
SCH_COMPONENT* DrawLibItem = (SCH_COMPONENT*) m_Parent;
|
||||
int hjustify, vjustify;
|
||||
|
@ -304,7 +304,7 @@ void SCH_CMP_FIELD::Draw( WinEDA_DrawPanel* panel,
|
|||
|
||||
if( !m_AddExtraText || (m_FieldId != REFERENCE) )
|
||||
{
|
||||
DrawGraphicText( panel, DC, pos, color, m_Text.GetData(),
|
||||
DrawGraphicText( panel, DC, pos, color, m_Text,
|
||||
orient ? TEXT_ORIENT_VERT : TEXT_ORIENT_HORIZ,
|
||||
m_Size,
|
||||
hjustify, vjustify, LineWidth );
|
||||
|
|
|
@ -131,7 +131,7 @@ static void ShowMoveField( WinEDA_DrawPanel* panel, wxDC* DC, bool erase )
|
|||
void WinEDA_LibeditFrame::PlaceField( wxDC* DC, LibDrawField* Field )
|
||||
/*******************************************************************/
|
||||
{
|
||||
int color;
|
||||
EDA_Colors color;
|
||||
|
||||
if( Field == NULL )
|
||||
return;
|
||||
|
@ -183,7 +183,7 @@ void WinEDA_LibeditFrame::EditField( wxDC* DC, LibDrawField* Field )
|
|||
{
|
||||
wxString Text;
|
||||
wxString title;
|
||||
int color;
|
||||
EDA_Colors color;
|
||||
int LineWidth = MAX( Field->m_Width, g_DrawMinimunLineWidth );
|
||||
|
||||
if( Field == NULL )
|
||||
|
@ -253,7 +253,7 @@ void WinEDA_LibeditFrame::RotateField( wxDC* DC, LibDrawField* Field )
|
|||
* sinon Modif du champ pointe par la souris
|
||||
*/
|
||||
{
|
||||
int color;
|
||||
EDA_Colors color;
|
||||
|
||||
if( Field == NULL )
|
||||
return;
|
||||
|
|
|
@ -183,7 +183,7 @@ void PlotLibPart( SCH_COMPONENT* DrawLibItem )
|
|||
LibEDA_BaseStruct* DEntry;
|
||||
EDA_LibComponentStruct* Entry;
|
||||
int TransMat[2][2], Multi, convert;
|
||||
int CharColor = -1;
|
||||
EDA_Colors CharColor = UNSPECIFIED_COLOR;
|
||||
wxPoint pos;
|
||||
bool draw_bgfill = false;
|
||||
|
||||
|
@ -377,7 +377,8 @@ static void PlotTextField( SCH_COMPONENT* DrawLibItem,
|
|||
wxPoint textpos; /* Position des textes */
|
||||
SCH_CMP_FIELD* field = DrawLibItem->GetField( FieldNumber );
|
||||
int hjustify, vjustify;
|
||||
int orient, color = -1;
|
||||
int orient;
|
||||
EDA_Colors color = UNSPECIFIED_COLOR;
|
||||
|
||||
if( (g_PlotFormat == PLOT_FORMAT_POST) && g_PlotPSColorOpt )
|
||||
color = ReturnLayerColor( field->GetLayer() );
|
||||
|
@ -454,7 +455,7 @@ static void PlotPinSymbol( const wxPoint & pos, int len, int orient, int Shape )
|
|||
*/
|
||||
{
|
||||
int MapX1, MapY1, x1, y1;
|
||||
int color;
|
||||
EDA_Colors color = UNSPECIFIED_COLOR;
|
||||
|
||||
color = ReturnLayerColor( LAYER_PIN );
|
||||
|
||||
|
@ -567,7 +568,7 @@ void PlotTextStruct( EDA_BaseStruct* Struct )
|
|||
int pX, pY, Shape = 0, Orient = 0, offset;
|
||||
wxSize Size;
|
||||
wxString Text;
|
||||
int color = -1;
|
||||
EDA_Colors color = UNSPECIFIED_COLOR;
|
||||
|
||||
switch( Struct->Type() )
|
||||
{
|
||||
|
@ -680,12 +681,13 @@ void PlotTextStruct( EDA_BaseStruct* Struct )
|
|||
}
|
||||
|
||||
|
||||
/***********************************************************/
|
||||
/***********************************************************************/
|
||||
static void PlotSheetLabelStruct( Hierarchical_PIN_Sheet_Struct* Struct )
|
||||
/***********************************************************/
|
||||
/***********************************************************************/
|
||||
/* Routine de dessin des Sheet Labels type hierarchie */
|
||||
{
|
||||
int side, txtcolor = -1;
|
||||
int side;
|
||||
EDA_Colors txtcolor = UNSPECIFIED_COLOR;
|
||||
int posx, tposx, posy, size, size2;
|
||||
int coord[16];
|
||||
|
||||
|
@ -760,7 +762,7 @@ void PlotSheetStruct( DrawSheetStruct* Struct )
|
|||
/* Routine de dessin du bloc type hierarchie */
|
||||
{
|
||||
Hierarchical_PIN_Sheet_Struct* SheetLabelStruct;
|
||||
int txtcolor = -1;
|
||||
EDA_Colors txtcolor = UNSPECIFIED_COLOR;
|
||||
wxSize size;
|
||||
wxString Text;
|
||||
wxPoint pos;
|
||||
|
|
|
@ -197,7 +197,7 @@ void RedrawOneStruct(WinEDA_DrawPanel * panel, wxDC * DC, SCH_ITEM *Struct, int
|
|||
/* EELAYER.CPP */
|
||||
/**************/
|
||||
void SeedLayers();
|
||||
int ReturnLayerColor(int Layer);
|
||||
EDA_Colors ReturnLayerColor(int Layer);
|
||||
void DisplayColorSetupFrame(WinEDA_DrawFrame * parent, const wxPoint & pos);
|
||||
|
||||
/*************/
|
||||
|
|
|
@ -21,7 +21,7 @@ void Draw_Track_Buffer( WinEDA_DrawPanel* panel, wxDC* DC, BOARD* Pcb, int draw_
|
|||
int printmasklayer )
|
||||
/***************************************************************************************************/
|
||||
|
||||
/* Function to draw the tracks (i.e Sports or lines) in gerbview
|
||||
/* Function to draw the tracks (i.e Spots or lines) in gerbview
|
||||
* Polygons are not handled here (there are in Pcb->m_Zone)
|
||||
* @param DC = device context to draw
|
||||
* @param Pcb = Board to draw (only Pcb->m_Track is used)
|
||||
|
@ -266,7 +266,7 @@ void Affiche_DCodes_Pistes( WinEDA_DrawPanel* panel, wxDC* DC, BOARD* Pcb, int d
|
|||
}
|
||||
|
||||
DrawGraphicText( panel, DC,
|
||||
pos, g_DCodesColor, Line,
|
||||
pos, (EDA_Colors) g_DCodesColor, Line,
|
||||
orient, wxSize( width, width ),
|
||||
GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_CENTER );
|
||||
}
|
||||
|
|
|
@ -9,7 +9,7 @@ COMMON_GLOBL wxString g_BuildVersion
|
|||
# include "config.h"
|
||||
(wxT(KICAD_SVN_VERSION))
|
||||
# else
|
||||
(wxT("(20081124-unstable)")) /* main program version */
|
||||
(wxT("(20081214-unstable)")) /* main program version */
|
||||
# endif
|
||||
#endif
|
||||
;
|
||||
|
@ -20,7 +20,7 @@ COMMON_GLOBL wxString g_BuildAboutVersion
|
|||
# include "config.h"
|
||||
(wxT(KICAD_ABOUT_VERSION))
|
||||
# else
|
||||
(wxT("(20081124-unstable)")) /* svn date & rev (normally overridden) */
|
||||
(wxT("(20081214-unstable)")) /* svn date & rev (normally overridden) */
|
||||
# endif
|
||||
#endif
|
||||
;
|
||||
|
|
|
@ -46,6 +46,7 @@ static inline int GetAlpha( int aColor )
|
|||
|
||||
enum EDA_Colors
|
||||
{
|
||||
UNSPECIFIED_COLOR = -1,
|
||||
BLACK = 0,
|
||||
BLUE,
|
||||
GREEN,
|
||||
|
|
|
@ -427,14 +427,37 @@ double round( double aNumber );
|
|||
/**************/
|
||||
/* DRAWTXT.CPP */
|
||||
/**************/
|
||||
void DrawGraphicText( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& pos,
|
||||
int mode_color, const wxString& Text,
|
||||
int orient, const wxSize& char_size,
|
||||
int h_justify, int v_justify, int width = 0 );
|
||||
/** Function DrawGraphicText
|
||||
* Draw a graphic text (like module texts)
|
||||
* @param aPanel = the current DrawPanel
|
||||
* @param aPos = text position (according to h_justify, v_justify)
|
||||
* @param aColor (enum EDA_Colors) = text color
|
||||
* @param aText = text to draw
|
||||
* @param aOrient = angle in 0.1 degree
|
||||
* @param aSize = text size (size.x or size.y can be < 0 for mirrored texts)
|
||||
* @param aH_justify = horizontal justification (Left, center, right)
|
||||
* @param aV_justify = vertical justification (bottom, center, top)
|
||||
* @param aWidth = line width (pen width) (default = 0)
|
||||
* if width < 0 : draw segments in sketch mode, width = abs(width)
|
||||
*/
|
||||
void DrawGraphicText( WinEDA_DrawPanel* aPanel, wxDC* aDC,
|
||||
const wxPoint& aPos, enum EDA_Colors aColor, const wxString& aText,
|
||||
int aOrient, const wxSize& aSize, int aH_justify, int aV_justify, int aWidth = 0);
|
||||
|
||||
void PlotGraphicText( int format_plot, const wxPoint& Pos, int gcolor,
|
||||
const wxString& Text,
|
||||
int orient, const wxSize& Size, int h_justify, int v_justify );
|
||||
/** Function PlotGraphicText
|
||||
* same as DrawGraphicText, but plot graphic text insteed of draw it
|
||||
* @param aFormat_plot = plot format (PLOT_FORMAT_POST, PLOT_FORMAT_HPGL, PLOT_FORMAT_GERBER)
|
||||
* @param aPos = text position (according to aH_justify, aV_justify)
|
||||
* @param aColor (enum EDA_Colors) = text color
|
||||
* @param aText = text to draw
|
||||
* @param aOrient = angle in 0.1 degree
|
||||
* @param aSize = text size (size.x or size.y can be < 0 for mirrored texts)
|
||||
* @param aH_justify = horizontal justification (Left, center, right)
|
||||
* @param aV_justify = vertical justification (bottom, center, top)
|
||||
*/
|
||||
void PlotGraphicText( int aFormat_plot, const wxPoint& aPos, enum EDA_Colors aColor,
|
||||
const wxString& aText,
|
||||
int aOrient, const wxSize& aSize, int aH_justify, int aV_justify );
|
||||
|
||||
/***************/
|
||||
/* CONFIRM.CPP */
|
||||
|
|
Binary file not shown.
|
@ -2,8 +2,8 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: kicad\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2008-12-11 17:20+0100\n"
|
||||
"PO-Revision-Date: 2008-12-11 18:52+0100\n"
|
||||
"POT-Creation-Date: 2008-12-12 22:29+0100\n"
|
||||
"PO-Revision-Date: 2008-12-12 22:31+0100\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: kicad team <jean-pierre.charras@ujf-grenoble.fr>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
|
@ -24,7 +24,7 @@ msgstr ""
|
|||
|
||||
#: pcbnew/clean.cpp:180
|
||||
msgid "Delete unconnected tracks:"
|
||||
msgstr "Suppression Pistes non connectées"
|
||||
msgstr "Suppression Pistes non connectées:"
|
||||
|
||||
#: pcbnew/clean.cpp:197
|
||||
msgid "ViaDef"
|
||||
|
@ -1618,34 +1618,26 @@ msgid "Enable Auto Delete old Track"
|
|||
msgstr "Autoriser l'effacement automatique des pistes"
|
||||
|
||||
#: pcbnew/pcbframe.cpp:457
|
||||
msgid "Do not Show Zones"
|
||||
msgstr "Ne pas montrer Zones"
|
||||
|
||||
#: pcbnew/pcbframe.cpp:457
|
||||
msgid "Show Zones"
|
||||
msgstr "Montrer Zones"
|
||||
|
||||
#: pcbnew/pcbframe.cpp:463
|
||||
msgid "Show Pads Sketch mode"
|
||||
msgstr "Afficher pastilles en contour"
|
||||
|
||||
#: pcbnew/pcbframe.cpp:464
|
||||
#: pcbnew/pcbframe.cpp:458
|
||||
msgid "Show pads filled mode"
|
||||
msgstr "Afficher pastilles en mode plein"
|
||||
|
||||
#: pcbnew/pcbframe.cpp:470
|
||||
#: pcbnew/pcbframe.cpp:464
|
||||
msgid "Show Tracks Sketch mode"
|
||||
msgstr "Afficher pistes en contour"
|
||||
|
||||
#: pcbnew/pcbframe.cpp:471
|
||||
#: pcbnew/pcbframe.cpp:465
|
||||
msgid "Show Tracks filled mode"
|
||||
msgstr "Afficher pistes en mode plein"
|
||||
|
||||
#: pcbnew/pcbframe.cpp:477
|
||||
#: pcbnew/pcbframe.cpp:471
|
||||
msgid "Normal Contrast Mode Display"
|
||||
msgstr "Mode d'affichage Contraste normal"
|
||||
|
||||
#: pcbnew/pcbframe.cpp:478
|
||||
#: pcbnew/pcbframe.cpp:472
|
||||
msgid "Hight Contrast Mode Display"
|
||||
msgstr "Mode d'affichage Haut Contraste"
|
||||
|
||||
|
@ -2457,15 +2449,27 @@ msgstr "Montrer le chevelu du module pendant déplacement"
|
|||
msgid "Enable Auto Del Track"
|
||||
msgstr "Autoriser l'effacement automatique des pistes"
|
||||
|
||||
#: pcbnew/tool_pcb.cpp:379
|
||||
#: pcbnew/tool_pcb.cpp:374
|
||||
msgid "Show filled areas in zones"
|
||||
msgstr "Afficher les surfaces remplies dans les zones"
|
||||
|
||||
#: pcbnew/tool_pcb.cpp:377
|
||||
msgid "Do not show filled areas in zones"
|
||||
msgstr "Ne pas fficher les surfaces remplies dans les zones"
|
||||
|
||||
#: pcbnew/tool_pcb.cpp:380
|
||||
msgid "Show outlines of filled areas only in zones"
|
||||
msgstr "Afficher uniquement les contours des surfaces remplies dans les zones"
|
||||
|
||||
#: pcbnew/tool_pcb.cpp:385
|
||||
msgid "Show Pads Sketch"
|
||||
msgstr "Afficher pastilles en contour"
|
||||
|
||||
#: pcbnew/tool_pcb.cpp:383
|
||||
#: pcbnew/tool_pcb.cpp:389
|
||||
msgid "Show Tracks Sketch"
|
||||
msgstr "Afficher Pistes en Contour"
|
||||
|
||||
#: pcbnew/tool_pcb.cpp:398
|
||||
#: pcbnew/tool_pcb.cpp:404
|
||||
msgid ""
|
||||
"Display/remove auxiliary vertical toolbar (tools for micro wave applications)\n"
|
||||
" This is a experimental feature (under development)"
|
||||
|
@ -2473,79 +2477,79 @@ msgstr ""
|
|||
"Affiche/supprime le toolbar vertical auxiliaire (outils pour applications micro-ondes)\n"
|
||||
"C'est un outil expérimental (en cours de développement)"
|
||||
|
||||
#: pcbnew/tool_pcb.cpp:428
|
||||
#: pcbnew/tool_pcb.cpp:434
|
||||
msgid "Net highlight"
|
||||
msgstr "Surbrillance des équipotentielles"
|
||||
|
||||
#: pcbnew/tool_pcb.cpp:433
|
||||
#: pcbnew/tool_pcb.cpp:439
|
||||
msgid "Display local ratsnest (pad or module)"
|
||||
msgstr "Afficher le chevelu local (pastilles ou modules)"
|
||||
|
||||
#: pcbnew/tool_pcb.cpp:439
|
||||
#: pcbnew/tool_pcb.cpp:445
|
||||
msgid "Add modules"
|
||||
msgstr "Addition de Modules"
|
||||
|
||||
#: pcbnew/tool_pcb.cpp:443
|
||||
#: pcbnew/tool_pcb.cpp:449
|
||||
msgid "Add tracks and vias"
|
||||
msgstr "Ajouter pistes et vias"
|
||||
|
||||
#: pcbnew/tool_pcb.cpp:447
|
||||
#: pcbnew/tool_pcb.cpp:453
|
||||
msgid "Add zones"
|
||||
msgstr "Addition de Zones"
|
||||
|
||||
#: pcbnew/tool_pcb.cpp:452
|
||||
#: pcbnew/tool_pcb.cpp:458
|
||||
msgid "Add graphic line or polygon"
|
||||
msgstr "Addition de lignes ou polygones graphiques"
|
||||
|
||||
#: pcbnew/tool_pcb.cpp:456
|
||||
#: pcbnew/tool_pcb.cpp:462
|
||||
msgid "Add graphic circle"
|
||||
msgstr "Addition de graphiques (Cercle)"
|
||||
|
||||
#: pcbnew/tool_pcb.cpp:460
|
||||
#: pcbnew/tool_pcb.cpp:466
|
||||
msgid "Add graphic arc"
|
||||
msgstr "Addition de graphiques (Arc de Cercle)"
|
||||
|
||||
#: pcbnew/tool_pcb.cpp:464
|
||||
#: pcbnew/tool_pcb.cpp:470
|
||||
msgid "Add text"
|
||||
msgstr "Ajout de Texte"
|
||||
|
||||
#: pcbnew/tool_pcb.cpp:469
|
||||
#: pcbnew/tool_pcb.cpp:475
|
||||
msgid "Add dimension"
|
||||
msgstr "Ajout des cotes"
|
||||
|
||||
#: pcbnew/tool_pcb.cpp:473
|
||||
#: pcbnew/tool_pcb.cpp:479
|
||||
msgid "Add layer alignment target"
|
||||
msgstr "Ajouter Mire de superposition"
|
||||
|
||||
#: pcbnew/tool_pcb.cpp:478
|
||||
#: pcbnew/tool_pcb.cpp:484
|
||||
msgid "Delete items"
|
||||
msgstr "Suppression d'éléments"
|
||||
|
||||
#: pcbnew/tool_pcb.cpp:483
|
||||
#: pcbnew/tool_pcb.cpp:489
|
||||
msgid "Offset adjust for drill and place files"
|
||||
msgstr "Ajuste offset pour fichier de perçage et placement"
|
||||
|
||||
#: pcbnew/tool_pcb.cpp:511
|
||||
#: pcbnew/tool_pcb.cpp:517
|
||||
msgid "Create line of specified length for microwave applications"
|
||||
msgstr "Creation de lignes de longueur spécifiée (pour applications micro-ondes)"
|
||||
|
||||
#: pcbnew/tool_pcb.cpp:517
|
||||
#: pcbnew/tool_pcb.cpp:523
|
||||
msgid "Create gap of specified length for microwave applications"
|
||||
msgstr "Creation de gaps de longueur spécifiée (pour applications micro-ondes)"
|
||||
|
||||
#: pcbnew/tool_pcb.cpp:525
|
||||
#: pcbnew/tool_pcb.cpp:531
|
||||
msgid "Create stub of specified length for microwave applications"
|
||||
msgstr "Creation de stub de longueur spécifiée (pour applications micro-ondes)"
|
||||
|
||||
#: pcbnew/tool_pcb.cpp:531
|
||||
#: pcbnew/tool_pcb.cpp:537
|
||||
msgid "Create stub (arc) of specified length for microwave applications"
|
||||
msgstr "Creation de stub (arc) de longueur spécifiée (pour applications micro-ondes)"
|
||||
|
||||
#: pcbnew/tool_pcb.cpp:538
|
||||
#: pcbnew/tool_pcb.cpp:544
|
||||
msgid "Create a polynomial shape for microwave applications"
|
||||
msgstr "Creation de formes polynomiales (pour applications micro-ondes)"
|
||||
|
||||
#: pcbnew/tool_pcb.cpp:579
|
||||
#: pcbnew/tool_pcb.cpp:585
|
||||
msgid ""
|
||||
"Auto track width: when starting on an existing track use its width\n"
|
||||
"otherwise, use current width setting"
|
||||
|
@ -2553,19 +2557,19 @@ msgstr ""
|
|||
"Largeur de piste automatique: si on démarre sur une piste existante, utiliser sa largeur\n"
|
||||
" sinon utiliser la largeur courante"
|
||||
|
||||
#: pcbnew/tool_pcb.cpp:604
|
||||
#: pcbnew/tool_pcb.cpp:610
|
||||
msgid "Auto"
|
||||
msgstr "Auto"
|
||||
|
||||
#: pcbnew/tool_pcb.cpp:608
|
||||
#: pcbnew/tool_pcb.cpp:614
|
||||
msgid "Zoom "
|
||||
msgstr "Zoom "
|
||||
|
||||
#: pcbnew/tool_pcb.cpp:643
|
||||
#: pcbnew/tool_pcb.cpp:649
|
||||
msgid "User Grid"
|
||||
msgstr "Grille perso"
|
||||
|
||||
#: pcbnew/tool_pcb.cpp:759
|
||||
#: pcbnew/tool_pcb.cpp:765
|
||||
msgid "+/- to switch"
|
||||
msgstr "+/- pour commuter"
|
||||
|
||||
|
@ -3392,7 +3396,7 @@ msgstr "Grille %.1f"
|
|||
msgid "Grid %.3f"
|
||||
msgstr "Grille %.3f"
|
||||
|
||||
#: pcbnew/dialog_copper_zones.cpp:288
|
||||
#: pcbnew/dialog_copper_zones.cpp:285
|
||||
msgid ""
|
||||
"Error :\n"
|
||||
"you must choose a copper min thickness value bigger than 0.001 inch or 0.00254 mm)"
|
||||
|
@ -3400,7 +3404,7 @@ msgstr ""
|
|||
"Erreur :\n"
|
||||
"vous devez choisir une valeur pour l'épaisseur de cuivre dans les freins thermiques plus grande que 0,001 pouce (ou 0,00254 mm)"
|
||||
|
||||
#: pcbnew/dialog_copper_zones.cpp:313
|
||||
#: pcbnew/dialog_copper_zones.cpp:308
|
||||
msgid ""
|
||||
"Error :\n"
|
||||
"you must choose a copper bridge value for thermal reliefs bigger than the min zone thickness"
|
||||
|
@ -3408,11 +3412,11 @@ msgstr ""
|
|||
"Erreur :\n"
|
||||
"vous devez choisir une valeur pour l'épaisseur de cuivre dans les freins thermiques plus grande que l'épaisseur de cuivre minimum des zones"
|
||||
|
||||
#: pcbnew/dialog_copper_zones.cpp:325
|
||||
#: pcbnew/dialog_copper_zones.cpp:320
|
||||
msgid "Error : you must choose a layer"
|
||||
msgstr "Erreur. Vous devez choisir une couche"
|
||||
|
||||
#: pcbnew/dialog_copper_zones.cpp:337
|
||||
#: pcbnew/dialog_copper_zones.cpp:332
|
||||
msgid "Error : you must choose a net name"
|
||||
msgstr "Erreur. Vous devez choisir une équipotentielle"
|
||||
|
||||
|
@ -4072,7 +4076,7 @@ msgid "Pen Number"
|
|||
msgstr "Numéro de plume"
|
||||
|
||||
#: pcbnew/dialog_gendrill.cpp:239
|
||||
#: pcbnew/dialog_general_options.cpp:376
|
||||
#: pcbnew/dialog_general_options.cpp:385
|
||||
msgid "Options:"
|
||||
msgstr "Options :"
|
||||
|
||||
|
@ -4282,96 +4286,96 @@ msgstr "Larg. piste: %s Diam Vias : %s"
|
|||
msgid "Drc error, cancelled"
|
||||
msgstr "Erreur DRC, annulation"
|
||||
|
||||
#: pcbnew/dialog_general_options.cpp:288
|
||||
#: pcbnew/dialog_general_options.cpp:297
|
||||
msgid "No Display"
|
||||
msgstr "Pas d'affichage"
|
||||
|
||||
#: pcbnew/dialog_general_options.cpp:291
|
||||
#: pcbnew/dialog_general_options.cpp:300
|
||||
msgid "Display Polar Coord"
|
||||
msgstr "Affichage coord Polaires"
|
||||
|
||||
#: pcbnew/dialog_general_options.cpp:300
|
||||
#: pcbnew/dialog_general_options.cpp:309
|
||||
msgid "millimeters"
|
||||
msgstr "millimètres"
|
||||
|
||||
#: pcbnew/dialog_general_options.cpp:302
|
||||
#: pcbnew/dialog_general_options.cpp:311
|
||||
msgid "Units"
|
||||
msgstr "Unités"
|
||||
|
||||
#: pcbnew/dialog_general_options.cpp:309
|
||||
#: pcbnew/dialog_general_options.cpp:318
|
||||
msgid "Small"
|
||||
msgstr "Petit"
|
||||
|
||||
#: pcbnew/dialog_general_options.cpp:310
|
||||
#: pcbnew/dialog_general_options.cpp:319
|
||||
msgid "Big"
|
||||
msgstr "Grand"
|
||||
|
||||
#: pcbnew/dialog_general_options.cpp:312
|
||||
#: pcbnew/dialog_general_options.cpp:321
|
||||
msgid "Cursor"
|
||||
msgstr "Curseur"
|
||||
|
||||
#: pcbnew/dialog_general_options.cpp:324
|
||||
#: pcbnew/dialog_general_options.cpp:333
|
||||
msgid "Number of Layers:"
|
||||
msgstr "Nombre de Couches:"
|
||||
|
||||
#: pcbnew/dialog_general_options.cpp:340
|
||||
#: pcbnew/dialog_general_options.cpp:349
|
||||
msgid "Max Links:"
|
||||
msgstr "Liens max:"
|
||||
|
||||
#: pcbnew/dialog_general_options.cpp:356
|
||||
#: pcbnew/dialog_general_options.cpp:365
|
||||
msgid "Auto Save (minuts):"
|
||||
msgstr "Sauveg. Auto (min)"
|
||||
|
||||
#: pcbnew/dialog_general_options.cpp:385
|
||||
#: pcbnew/dialog_general_options.cpp:394
|
||||
msgid "Drc ON"
|
||||
msgstr "Drc ACTIVE"
|
||||
|
||||
#: pcbnew/dialog_general_options.cpp:394
|
||||
#: pcbnew/dialog_general_options.cpp:403
|
||||
msgid "Show Ratsnest"
|
||||
msgstr "Montrer le chevelu général"
|
||||
|
||||
#: pcbnew/dialog_general_options.cpp:401
|
||||
#: pcbnew/dialog_general_options.cpp:410
|
||||
msgid "Show Mod Ratsnest"
|
||||
msgstr "Montrer le chevelu du module"
|
||||
|
||||
#: pcbnew/dialog_general_options.cpp:408
|
||||
#: pcbnew/dialog_general_options.cpp:417
|
||||
msgid "Tracks Auto Del"
|
||||
msgstr "Auto Supp. Pistes"
|
||||
|
||||
#: pcbnew/dialog_general_options.cpp:415
|
||||
#: pcbnew/dialog_general_options.cpp:424
|
||||
msgid "Track only 45 degrees"
|
||||
msgstr "Piste à 45° seulement"
|
||||
|
||||
#: pcbnew/dialog_general_options.cpp:422
|
||||
#: pcbnew/dialog_general_options.cpp:431
|
||||
msgid "Segments 45 Only"
|
||||
msgstr "Segments 45 seulement"
|
||||
|
||||
#: pcbnew/dialog_general_options.cpp:429
|
||||
#: pcbnew/dialog_general_options.cpp:438
|
||||
msgid "Auto PAN"
|
||||
msgstr "Auto PAN"
|
||||
|
||||
#: pcbnew/dialog_general_options.cpp:437
|
||||
#: pcbnew/dialog_general_options.cpp:446
|
||||
msgid "Double Segm Track"
|
||||
msgstr "2 segments pour piste"
|
||||
|
||||
#: pcbnew/dialog_general_options.cpp:450
|
||||
#: pcbnew/dialog_general_options.cpp:465
|
||||
#: pcbnew/dialog_general_options.cpp:459
|
||||
#: pcbnew/dialog_general_options.cpp:474
|
||||
msgid "When creating tracks"
|
||||
msgstr "En creation de pistes"
|
||||
|
||||
#: pcbnew/dialog_general_options.cpp:453
|
||||
#: pcbnew/dialog_general_options.cpp:462
|
||||
msgid "Magnetic Pads"
|
||||
msgstr " Pads magnétiques"
|
||||
|
||||
#: pcbnew/dialog_general_options.cpp:460
|
||||
#: pcbnew/dialog_general_options.cpp:469
|
||||
msgid "control the capture of the pcb cursor when the mouse cursor enters a pad area"
|
||||
msgstr "Contrôle la capture du curseur pcb quand le curseuir souris est sur un pad"
|
||||
|
||||
#: pcbnew/dialog_general_options.cpp:468
|
||||
#: pcbnew/dialog_general_options.cpp:477
|
||||
msgid "Magnetic Tracks"
|
||||
msgstr "Pistes Magnétiques"
|
||||
|
||||
#: pcbnew/dialog_general_options.cpp:475
|
||||
#: pcbnew/dialog_general_options.cpp:484
|
||||
msgid "control the capture of the pcb cursor when the mouse cursor enters a track"
|
||||
msgstr "Contrôle la capture du curseur pcb quand le curseuir souris est sur une piste"
|
||||
|
||||
|
@ -4533,60 +4537,48 @@ msgid "Others Options:"
|
|||
msgstr "Autres Options:"
|
||||
|
||||
#: pcbnew/dialog_copper_zones_base.cpp:118
|
||||
msgid "Show filled areas in sketch mode"
|
||||
msgstr "Afficher les surfaces remplies en mode contour"
|
||||
|
||||
#: pcbnew/dialog_copper_zones_base.cpp:120
|
||||
msgid ""
|
||||
"If enabled, filled areas in is this zone will be displayed as non filled polygons.\n"
|
||||
"If disabled, filled areas in is this zone will be displayed as \"solid\" areas (normal mode)."
|
||||
msgstr ""
|
||||
"Si activé, les surfaces remplies dans cette zone seront affichées comme des polygones non remplis.\n"
|
||||
"Si désactivé, les surfaces remplies dans cette zone seront affichées comme des surfaces \"solides\"."
|
||||
|
||||
#: pcbnew/dialog_copper_zones_base.cpp:124
|
||||
msgid "Zone clearance value"
|
||||
msgstr "Valeur isolation zone"
|
||||
|
||||
#: pcbnew/dialog_copper_zones_base.cpp:131
|
||||
#: pcbnew/dialog_copper_zones_base.cpp:125
|
||||
msgid "Zone min thickness value"
|
||||
msgstr "Valeur épaisseur min pour zone"
|
||||
|
||||
#: pcbnew/dialog_copper_zones_base.cpp:136
|
||||
#: pcbnew/dialog_copper_zones_base.cpp:130
|
||||
msgid "Value of minimun thickness of filled areas"
|
||||
msgstr "Valeur de l'épaisseur minimum des zones remplies"
|
||||
|
||||
#: pcbnew/dialog_copper_zones_base.cpp:156
|
||||
#: pcbnew/dialog_copper_zones_base.cpp:150
|
||||
msgid "Export Setup to others zones"
|
||||
msgstr "Exporter options vers autres zones"
|
||||
|
||||
#: pcbnew/dialog_copper_zones_base.cpp:157
|
||||
#: pcbnew/dialog_copper_zones_base.cpp:152
|
||||
msgid "Export this zone setup to all others copper zones"
|
||||
msgstr "Exporter ces options vers les autres zones de cuivre"
|
||||
|
||||
#: pcbnew/dialog_copper_zones_base.cpp:161
|
||||
#: pcbnew/dialog_copper_zones_base.cpp:156
|
||||
#: pcbnew/dialog_pad_properties_base.cpp:91
|
||||
#: pcbnew/zone_filling_deprecated_algorithm.cpp:310
|
||||
msgid "Ok"
|
||||
msgstr "Ok"
|
||||
|
||||
#: pcbnew/dialog_copper_zones_base.cpp:172
|
||||
#: pcbnew/dialog_copper_zones_base.cpp:171
|
||||
msgid "Nets Display Options:"
|
||||
msgstr "Options d'Affichage des Nets"
|
||||
|
||||
#: pcbnew/dialog_copper_zones_base.cpp:174
|
||||
#: pcbnew/dialog_copper_zones_base.cpp:173
|
||||
msgid "Alphabetic"
|
||||
msgstr "Alphabetique"
|
||||
|
||||
#: pcbnew/dialog_copper_zones_base.cpp:174
|
||||
#: pcbnew/dialog_copper_zones_base.cpp:173
|
||||
msgid "Advanced"
|
||||
msgstr "Avancé"
|
||||
|
||||
#: pcbnew/dialog_copper_zones_base.cpp:176
|
||||
#: pcbnew/dialog_copper_zones_base.cpp:175
|
||||
msgid "Net sorting:"
|
||||
msgstr "Tri des Equipotentielles:"
|
||||
|
||||
#: pcbnew/dialog_copper_zones_base.cpp:178
|
||||
#: pcbnew/dialog_copper_zones_base.cpp:177
|
||||
msgid ""
|
||||
"Nets can be sorted:\n"
|
||||
"By alphabetic order\n"
|
||||
|
@ -4596,11 +4588,11 @@ msgstr ""
|
|||
"Paur ordre alphabétique\n"
|
||||
"Par nombre de pads dans les équipotentielles (avancé)"
|
||||
|
||||
#: pcbnew/dialog_copper_zones_base.cpp:182
|
||||
#: pcbnew/dialog_copper_zones_base.cpp:181
|
||||
msgid "Filter"
|
||||
msgstr "Filtre"
|
||||
|
||||
#: pcbnew/dialog_copper_zones_base.cpp:187
|
||||
#: pcbnew/dialog_copper_zones_base.cpp:186
|
||||
msgid ""
|
||||
"Pattern in advanced mode, to filter net names in list\n"
|
||||
"Net names matching this pattern are not displayed"
|
||||
|
@ -6402,11 +6394,11 @@ msgstr "Ajout Composant"
|
|||
msgid "Add Wire"
|
||||
msgstr "Ajouter Fils"
|
||||
|
||||
#: eeschema/libarch.cpp:66
|
||||
#: eeschema/libarch.cpp:68
|
||||
msgid "Failed to create archive lib file "
|
||||
msgstr "Impossible de créer le fichier librairie archive "
|
||||
|
||||
#: eeschema/libarch.cpp:73
|
||||
#: eeschema/libarch.cpp:75
|
||||
msgid "Failed to create doc lib file "
|
||||
msgstr "Impossible de créer le fichier lib document"
|
||||
|
||||
|
@ -6511,7 +6503,7 @@ msgstr "Oriente Composant"
|
|||
msgid "Footprint "
|
||||
msgstr "Empreinte: "
|
||||
|
||||
#: eeschema/onrightclick.cpp:322
|
||||
#: eeschema/onrightclick.cpp:323
|
||||
#, c-format
|
||||
msgid "Unit %d %c"
|
||||
msgstr "Unité %d %c"
|
||||
|
@ -10426,15 +10418,15 @@ msgstr "Texte Module invisible"
|
|||
msgid "Anchors"
|
||||
msgstr "Ancres"
|
||||
|
||||
#: pcbnew/set_color.h:432
|
||||
#: pcbnew/set_color.h:423
|
||||
msgid "Show Noconnect"
|
||||
msgstr "Montrer Non Conn"
|
||||
|
||||
#: pcbnew/set_color.h:441
|
||||
#: pcbnew/set_color.h:432
|
||||
msgid "Show Modules Cmp"
|
||||
msgstr "Afficher Modules Cmp"
|
||||
|
||||
#: pcbnew/set_color.h:450
|
||||
#: pcbnew/set_color.h:441
|
||||
msgid "Show Modules Cu"
|
||||
msgstr "Afficher Modules Cu"
|
||||
|
||||
|
@ -10474,7 +10466,7 @@ msgstr "Type Err(%d): <b>%s</b><ul><li> %s: %s </li><li> %s: %s </li></ul>"
|
|||
msgid "ErrType(%d): <b>%s</b><ul><li> %s: %s </li></ul>"
|
||||
msgstr "ErrType(%d): <b>%s</b><ul><li> %s: %s </li></ul>"
|
||||
|
||||
#: pcbnew/dialog_copper_zones_base.h:101
|
||||
#: pcbnew/dialog_copper_zones_base.h:99
|
||||
msgid "Fill Zones Options"
|
||||
msgstr "Options de Remplissage de Zone"
|
||||
|
||||
|
@ -10798,6 +10790,20 @@ msgstr "Imprimer"
|
|||
msgid "Create SVG file"
|
||||
msgstr "Créer Fichier SVG"
|
||||
|
||||
#~ msgid "Do not Show Zones"
|
||||
#~ msgstr "Ne pas montrer Zones"
|
||||
#~ msgid "Show Zones"
|
||||
#~ msgstr "Montrer Zones"
|
||||
#~ msgid ""
|
||||
#~ "If enabled, filled areas in is this zone will be displayed as non filled "
|
||||
#~ "polygons.\n"
|
||||
#~ "If disabled, filled areas in is this zone will be displayed as \"solid\" "
|
||||
#~ "areas (normal mode)."
|
||||
#~ msgstr ""
|
||||
#~ "Si activé, les surfaces remplies dans cette zone seront affichées comme "
|
||||
#~ "des polygones non remplis.\n"
|
||||
#~ "Si désactivé, les surfaces remplies dans cette zone seront affichées "
|
||||
#~ "comme des surfaces \"solides\"."
|
||||
#~ msgid "grid user"
|
||||
#~ msgstr "grille user"
|
||||
|
||||
|
|
|
@ -28,6 +28,7 @@ set(PCBNEW_SRCS
|
|||
class_mire.cpp
|
||||
class_module.cpp
|
||||
class_pad.cpp
|
||||
class_pad_draw_functions.cpp
|
||||
classpcb.cpp
|
||||
class_pcb_text.cpp
|
||||
class_text_mod.cpp
|
||||
|
|
|
@ -32,7 +32,7 @@ void Affiche_Infos_Equipot( int netcode, WinEDA_BasePcbFrame* frame )
|
|||
|
||||
equipot = frame->m_Pcb->FindNet( netcode );
|
||||
if( equipot )
|
||||
Affiche_1_Parametre( frame, 1, _( "Net Name" ), equipot->m_Netname, RED );
|
||||
Affiche_1_Parametre( frame, 1, _( "Net Name" ), equipot->GetNetname(), RED );
|
||||
else
|
||||
Affiche_1_Parametre( frame, 1, _( "No Net (not connected)" ), wxEmptyString, RED );
|
||||
|
||||
|
|
|
@ -835,7 +835,7 @@ EQUIPOT* BOARD::FindNet( const wxString & aNetname ) const
|
|||
{
|
||||
for( EQUIPOT* net = m_Equipots; net; net=net->Next() )
|
||||
{
|
||||
if( net->m_Netname == aNetname )
|
||||
if( net->GetNetname() == aNetname )
|
||||
return net;
|
||||
}
|
||||
}
|
||||
|
@ -882,7 +882,7 @@ int s_SortByNames(const void * ptr1, const void * ptr2)
|
|||
{
|
||||
EQUIPOT* item1 = * (EQUIPOT**) ptr1;
|
||||
EQUIPOT* item2 = * (EQUIPOT**) ptr2;
|
||||
return item1->m_Netname.CmpNoCase(item2->m_Netname);
|
||||
return item1->GetNetname().CmpNoCase(item2->GetNetname());
|
||||
}
|
||||
|
||||
// Sort nets by decreasing pad count
|
||||
|
@ -892,7 +892,7 @@ int s_SortByNodes(const void * ptr1, const void * ptr2)
|
|||
EQUIPOT* item2 = * (EQUIPOT**) ptr2;
|
||||
if ( (item1->m_NbNodes - item2->m_NbNodes) != 0 )
|
||||
return - (item1->m_NbNodes - item2->m_NbNodes);
|
||||
return item1->m_Netname.CmpNoCase(item2->m_Netname);
|
||||
return item1->GetNetname().CmpNoCase(item2->GetNetname());
|
||||
}
|
||||
|
||||
|
||||
|
@ -912,7 +912,7 @@ int BOARD::ReturnSortedNetnamesList( wxArrayString & aNames, const int aSort_Typ
|
|||
/* count items to list and sort */
|
||||
for( net = m_Equipots; net; net=net->Next() )
|
||||
{
|
||||
if ( net->m_Netname.IsEmpty() ) continue;
|
||||
if ( net->GetNetname().IsEmpty() ) continue;
|
||||
NetCount++;
|
||||
}
|
||||
|
||||
|
@ -922,7 +922,7 @@ int BOARD::ReturnSortedNetnamesList( wxArrayString & aNames, const int aSort_Typ
|
|||
EQUIPOT* * net_ptr_list = (EQUIPOT* *) MyMalloc( NetCount * sizeof(* net_ptr_list) );
|
||||
for( ii = 0, net = m_Equipots; net; net=net->Next() )
|
||||
{
|
||||
if ( net->m_Netname.IsEmpty() ) continue;
|
||||
if ( net->GetNetname().IsEmpty() ) continue;
|
||||
net_ptr_list[ii] = net;
|
||||
ii++;
|
||||
}
|
||||
|
@ -945,7 +945,7 @@ int BOARD::ReturnSortedNetnamesList( wxArrayString & aNames, const int aSort_Typ
|
|||
for( ii = 0; ii < NetCount; ii++ )
|
||||
{
|
||||
net = net_ptr_list[ii];
|
||||
aNames.Add(net->m_Netname);
|
||||
aNames.Add(net->GetNetname());
|
||||
}
|
||||
|
||||
MyFree(net_ptr_list);
|
||||
|
|
|
@ -56,7 +56,7 @@ wxString BOARD_ITEM::MenuText( const BOARD* aPcb ) const
|
|||
switch( item->Type() )
|
||||
{
|
||||
case TYPE_EQUIPOT:
|
||||
text << _( "Net" ) << ( (EQUIPOT*) item )->m_Netname << wxT( " " ) <<
|
||||
text << _( "Net" ) << ( (EQUIPOT*) item )->GetNetname() << wxT( " " ) <<
|
||||
( (EQUIPOT*) item )->GetNet();
|
||||
break;
|
||||
|
||||
|
@ -130,7 +130,7 @@ wxString BOARD_ITEM::MenuText( const BOARD* aPcb ) const
|
|||
net = aPcb->FindNet( ((TRACK*)item)->GetNet() );
|
||||
if( net )
|
||||
{
|
||||
text << wxT( " [" ) << net->m_Netname << wxT( "]" );
|
||||
text << wxT( " [" ) << net->GetNetname() << wxT( "]" );
|
||||
}
|
||||
text << _( " on " ) << aPcb->GetLayerName( item->GetLayer() ).Trim()
|
||||
<< wxT(" ") << _("Net:") << ((TRACK*)item)->GetNet()
|
||||
|
@ -160,7 +160,7 @@ wxString BOARD_ITEM::MenuText( const BOARD* aPcb ) const
|
|||
net = aPcb->FindNet( ( (ZONE_CONTAINER*) item )->GetNet() );
|
||||
if( net )
|
||||
{
|
||||
text << wxT( " [" ) << net->m_Netname << wxT( "]" );
|
||||
text << wxT( " [" ) << net->GetNetname() << wxT( "]" );
|
||||
}
|
||||
}
|
||||
else // A netcode < 0 is an error flag (Netname not found or area not initialised)
|
||||
|
@ -182,7 +182,7 @@ wxString BOARD_ITEM::MenuText( const BOARD* aPcb ) const
|
|||
net = aPcb->FindNet( ( (SEGZONE*) item )->GetNet() );
|
||||
if( net )
|
||||
{
|
||||
text << wxT( " [" ) << net->m_Netname << wxT( "]" );
|
||||
text << wxT( " [" ) << net->GetNetname() << wxT( "]" );
|
||||
}
|
||||
text << _( " on " ) << aPcb->GetLayerName( item->GetLayer() ).Trim();
|
||||
break;
|
||||
|
@ -202,7 +202,7 @@ wxString BOARD_ITEM::MenuText( const BOARD* aPcb ) const
|
|||
net = aPcb->FindNet( via->GetNet() );
|
||||
if( net )
|
||||
{
|
||||
text << wxT( " [" ) << net->m_Netname << wxT( "]" );
|
||||
text << wxT( " [" ) << net->GetNetname() << wxT( "]" );
|
||||
}
|
||||
text << wxChar(' ') << _("Net:") << via->GetNet();
|
||||
|
||||
|
|
|
@ -26,7 +26,7 @@ EQUIPOT::EQUIPOT( BOARD_ITEM* aParent ) :
|
|||
BOARD_ITEM( aParent, TYPE_EQUIPOT )
|
||||
{
|
||||
SetNet( 0 );
|
||||
m_NbNodes = m_NbLink = m_NbNoconn = 0;
|
||||
m_NbNodes = m_NbLink = m_NbNoconn = 0;
|
||||
m_Masque_Layer = 0;
|
||||
m_Masque_Plan = 0;
|
||||
m_ForceWidth = 0;
|
||||
|
@ -44,15 +44,16 @@ EQUIPOT::~EQUIPOT()
|
|||
}
|
||||
|
||||
|
||||
|
||||
wxPoint& EQUIPOT::GetPosition()
|
||||
{
|
||||
static wxPoint dummy;
|
||||
|
||||
return dummy;
|
||||
}
|
||||
|
||||
|
||||
/*********************************************************/
|
||||
int EQUIPOT:: ReadEquipotDescr( FILE* File, int* LineNum )
|
||||
int EQUIPOT:: ReadDescr( FILE* File, int* LineNum )
|
||||
/*********************************************************/
|
||||
|
||||
/* Routine de lecture de 1 descr Equipotentielle.
|
||||
|
@ -90,31 +91,52 @@ int EQUIPOT:: ReadEquipotDescr( FILE* File, int* LineNum )
|
|||
}
|
||||
|
||||
|
||||
/**************************************/
|
||||
bool EQUIPOT::Save( FILE* aFile ) const
|
||||
/**************************************/
|
||||
{
|
||||
if( GetState( DELETED ) )
|
||||
return true;
|
||||
|
||||
bool rc = false;
|
||||
bool success = false;
|
||||
|
||||
fprintf( aFile, "$EQUIPOT\n" );
|
||||
fprintf( aFile, "Na %d \"%.16s\"\n", GetNet(), CONV_TO_UTF8( m_Netname ) );
|
||||
fprintf( aFile, "Na %d \"%s\"\n", GetNet(), CONV_TO_UTF8( m_Netname ) );
|
||||
fprintf( aFile, "St %s\n", "~" );
|
||||
|
||||
if( m_ForceWidth )
|
||||
fprintf( aFile, "Lw %d\n", m_ForceWidth );
|
||||
|
||||
if( fprintf( aFile, "$EndEQUIPOT\n" ) != sizeof("$EndEQUIPOT\n")-1 )
|
||||
if( fprintf( aFile, "$EndEQUIPOT\n" ) != sizeof("$EndEQUIPOT\n") - 1 )
|
||||
goto out;
|
||||
|
||||
rc = true;
|
||||
success = true;
|
||||
|
||||
out:
|
||||
return rc;
|
||||
return success;
|
||||
}
|
||||
|
||||
/**
|
||||
* Function SetNetname
|
||||
* @param const wxString : the new netname
|
||||
*/
|
||||
void EQUIPOT::SetNetname( const wxString & aNetname )
|
||||
{
|
||||
m_Netname = aNetname;
|
||||
m_ShortNetname = m_Netname.AfterLast( '/' );
|
||||
}
|
||||
|
||||
|
||||
/** function Draw
|
||||
* we actually could show a NET, simply show all the tracks and pads or net name on pad and vias
|
||||
*/
|
||||
void EQUIPOT::Draw( WinEDA_DrawPanel* panel, wxDC* DC, int aDrawMode, const wxPoint& offset )
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
#if defined(DEBUG)
|
||||
|
||||
/**
|
||||
* Function Show
|
||||
* is used to output the object tree, currently for debugging only.
|
||||
|
@ -126,9 +148,9 @@ void EQUIPOT::Show( int nestLevel, std::ostream& os )
|
|||
{
|
||||
// for now, make it look like XML:
|
||||
NestedSpace( nestLevel, os ) << '<' << GetClass().Lower().mb_str() <<
|
||||
" name=\"" << m_Netname.mb_str() << '"' <<
|
||||
" netcode=\"" << GetNet() << "\"/>\n";
|
||||
" name=\"" << m_Netname.mb_str() << '"' <<
|
||||
" netcode=\"" << GetNet() << "\"/>\n";
|
||||
}
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
|
|
@ -1,22 +1,21 @@
|
|||
/*************************************************************************/
|
||||
/* classe EQUIPOT: definition des elements relatifs aux equipotentielles */
|
||||
/*************************************************************************/
|
||||
|
||||
|
||||
/* Representation des descriptions des equipotentielles */
|
||||
/*************************************************/
|
||||
/* classe EQUIPOT: Class to handle info on nets */
|
||||
/*************************************************/
|
||||
|
||||
class EQUIPOT : public BOARD_ITEM
|
||||
{
|
||||
private:
|
||||
int m_NetCode; // numero de code interne du net
|
||||
int m_NetCode; // this is a number equivalent to the net name
|
||||
// Used for fast comparisons in rastnest and DRC computations.
|
||||
wxString m_Netname; // Full net name like /mysheet/mysubsheet/vout used by eeschema
|
||||
wxString m_ShortNetname; // short net name, like vout from /mysheet/mysubsheet/vout
|
||||
|
||||
|
||||
public:
|
||||
wxString m_Netname; // nom du net
|
||||
int status; // no route, hight light...
|
||||
int m_NbNodes; // nombre de pads appartenant au net
|
||||
int m_NbLink; // nombre de chevelus
|
||||
int m_NbNoconn; // nombre de chevelus actifs
|
||||
int m_NbNodes; // Pads count for this net
|
||||
int m_NbLink; // Ratsnets count for this net
|
||||
int m_NbNoconn; // Ratsnets remaining to route count
|
||||
int m_Masque_Layer; // couches interdites (bit 0 = layer 0...)
|
||||
int m_Masque_Plan; // couches mises en plan de cuivre
|
||||
int m_ForceWidth; // specific width (O = default width)
|
||||
|
@ -41,7 +40,7 @@ public:
|
|||
wxPoint& GetPosition();
|
||||
|
||||
/* Readind and writing data on files */
|
||||
int ReadEquipotDescr( FILE* File, int* LineNum );
|
||||
int ReadDescr( FILE* File, int* LineNum );
|
||||
|
||||
/**
|
||||
* Function Save
|
||||
|
@ -52,11 +51,11 @@ public:
|
|||
bool Save( FILE* aFile ) const;
|
||||
|
||||
|
||||
/** function Draw
|
||||
* @todo we actually could show a NET, simply show all the tracks and pads or net name on pad and vias
|
||||
*/
|
||||
void Draw( WinEDA_DrawPanel* panel, wxDC* DC,
|
||||
int aDrawMode, const wxPoint& offset = ZeroOffset )
|
||||
{
|
||||
// @todo we actually could show a NET, simply show all the tracks and pads
|
||||
}
|
||||
int aDrawMode, const wxPoint& offset = ZeroOffset );
|
||||
|
||||
|
||||
/**
|
||||
|
@ -66,6 +65,23 @@ public:
|
|||
int GetNet() const { return m_NetCode; }
|
||||
void SetNet( int aNetCode ) { m_NetCode = aNetCode; }
|
||||
|
||||
/**
|
||||
* Function GetNetname
|
||||
* @return const wxString * , a pointer to the full netname
|
||||
*/
|
||||
wxString GetNetname() const { return m_Netname; }
|
||||
/**
|
||||
* Function GetShortNetname
|
||||
* @return const wxString * , a pointer to the short netname
|
||||
*/
|
||||
wxString GetShortNetname() const { return m_ShortNetname; }
|
||||
|
||||
/**
|
||||
* Function SetNetname
|
||||
* @param const wxString : the new netname
|
||||
*/
|
||||
void SetNetname( const wxString & aNetname );
|
||||
|
||||
|
||||
/**
|
||||
* Function GetClass
|
||||
|
|
|
@ -3,24 +3,12 @@
|
|||
/************************************************/
|
||||
|
||||
#include "fctsys.h"
|
||||
#include "gr_basic.h"
|
||||
|
||||
#include "wxstruct.h"
|
||||
#include "common.h"
|
||||
#include "pcbnew.h"
|
||||
#include "trigo.h"
|
||||
#include "id.h" // ID_TRACK_BUTT
|
||||
|
||||
#ifdef PCBNEW
|
||||
#include "drag.h"
|
||||
#endif
|
||||
|
||||
#ifdef CVPCB
|
||||
#include "cvpcb.h"
|
||||
|
||||
#endif
|
||||
|
||||
#include "protos.h"
|
||||
|
||||
/*******************************/
|
||||
/* classe D_PAD : constructeur */
|
||||
|
@ -30,7 +18,7 @@ D_PAD::D_PAD( MODULE* parent ) : BOARD_CONNECTED_ITEM( parent, TYPE_PAD )
|
|||
{
|
||||
m_NumPadName = 0;
|
||||
m_Masque_Layer = CUIVRE_LAYER;
|
||||
m_DrillShape = PAD_CIRCLE; // Drill shape = circle
|
||||
m_DrillShape = PAD_CIRCLE; // Drill shape = circle
|
||||
|
||||
m_Size.x = m_Size.y = 500;
|
||||
|
||||
|
@ -41,9 +29,9 @@ D_PAD::D_PAD( MODULE* parent ) : BOARD_CONNECTED_ITEM( parent, TYPE_PAD )
|
|||
|
||||
m_PadShape = PAD_CIRCLE; // forme CERCLE, PAD_RECT PAD_OVAL PAD_TRAPEZOID ou libre
|
||||
m_Attribut = PAD_STANDARD; // NORMAL, PAD_SMD, PAD_CONN, Bit 7 = STACK
|
||||
m_Orient = 0; // en 1/10 degres
|
||||
m_Orient = 0; // en 1/10 degres
|
||||
|
||||
SetSubRatsnest(0);
|
||||
SetSubRatsnest( 0 );
|
||||
ComputeRayon();
|
||||
}
|
||||
|
||||
|
@ -72,8 +60,8 @@ void D_PAD::ComputeRayon()
|
|||
|
||||
case PAD_RECT:
|
||||
case PAD_TRAPEZOID:
|
||||
m_Rayon = (int) (sqrt( (double) m_Size.y * m_Size.y
|
||||
+ (double) m_Size.x * m_Size.x ) / 2);
|
||||
m_Rayon = (int) ( sqrt( (double) m_Size.y * m_Size.y
|
||||
+ (double) m_Size.x * m_Size.x ) / 2 );
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -87,10 +75,10 @@ void D_PAD::ComputeRayon()
|
|||
EDA_Rect D_PAD::GetBoundingBox()
|
||||
{
|
||||
// Calculate area:
|
||||
ComputeRayon(); // calculate the radius of the area, considered as a circle
|
||||
EDA_Rect area;
|
||||
area.SetOrigin(m_Pos);
|
||||
area.Inflate(m_Rayon, m_Rayon);
|
||||
ComputeRayon(); // calculate the radius of the area, considered as a circle
|
||||
EDA_Rect area;
|
||||
area.SetOrigin( m_Pos );
|
||||
area.Inflate( m_Rayon, m_Rayon );
|
||||
|
||||
return area;
|
||||
}
|
||||
|
@ -171,6 +159,18 @@ void D_PAD::SetPadName( const wxString& name )
|
|||
m_Padname[ii] = 0;
|
||||
}
|
||||
|
||||
/**************************************************/
|
||||
void D_PAD::SetNetname( const wxString & aNetname )
|
||||
/**************************************************/
|
||||
/**
|
||||
* Function SetNetname
|
||||
* @param const wxString : the new netname
|
||||
*/
|
||||
{
|
||||
m_Netname = aNetname;
|
||||
m_ShortNetname = m_Netname.AfterLast( '/' );
|
||||
}
|
||||
|
||||
|
||||
/********************************/
|
||||
void D_PAD::Copy( D_PAD* source )
|
||||
|
@ -184,10 +184,10 @@ void D_PAD::Copy( D_PAD* source )
|
|||
|
||||
memcpy( m_Padname, source->m_Padname, sizeof(m_Padname) ); /* nom de la pastille */
|
||||
SetNet( source->GetNet() ); /* Numero de net pour comparaisons rapides */
|
||||
m_Drill = source->m_Drill; // Diametre de percage
|
||||
m_Drill = source->m_Drill; // Diametre de percage
|
||||
m_DrillShape = source->m_DrillShape;
|
||||
m_Offset = source->m_Offset; // Offset de la forme
|
||||
m_Size = source->m_Size; // Dimension ( pour orient 0 )
|
||||
m_Size = source->m_Size; // Dimension ( pour orient 0 )
|
||||
m_DeltaSize = source->m_DeltaSize; // delta sur formes rectangle -> trapezes
|
||||
m_Pos0 = source->m_Pos0; // Coord relatives a l'ancre du pad en
|
||||
// orientation 0
|
||||
|
@ -199,416 +199,7 @@ void D_PAD::Copy( D_PAD* source )
|
|||
SetSubRatsnest( 0 );
|
||||
SetSubNet( 0 );
|
||||
m_Netname = source->m_Netname;
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************************/
|
||||
void D_PAD::Draw( WinEDA_DrawPanel* panel, wxDC* DC, int draw_mode, const wxPoint& offset )
|
||||
/*******************************************************************************************/
|
||||
|
||||
/** Draw a pad:
|
||||
* @param DC = device context
|
||||
* @param offset = draw offset
|
||||
* @param draw_mode = mode: GR_OR, GR_XOR, GR_AND...
|
||||
*/
|
||||
{
|
||||
int ii;
|
||||
int color = 0;
|
||||
int ux0, uy0,
|
||||
dx, dx0, dy, dy0,
|
||||
rotdx,
|
||||
delta_cx, delta_cy,
|
||||
xc, yc;
|
||||
int angle;
|
||||
wxPoint coord[4];
|
||||
int zoom;
|
||||
int fillpad = 0;
|
||||
wxPoint shape_pos;
|
||||
|
||||
if ( m_Flags & DO_NOT_DRAW )
|
||||
return;
|
||||
|
||||
wxASSERT( panel );
|
||||
|
||||
WinEDA_BasePcbFrame* frame = (WinEDA_BasePcbFrame*) panel->m_Parent;
|
||||
|
||||
PCB_SCREEN* screen = frame->GetScreen();
|
||||
|
||||
zoom = screen->GetZoom();
|
||||
|
||||
if( frame->m_DisplayPadFill == FILLED )
|
||||
fillpad = 1;
|
||||
|
||||
#ifdef PCBNEW
|
||||
if( m_Flags & IS_MOVED )
|
||||
fillpad = 0;
|
||||
#endif
|
||||
|
||||
if( m_Masque_Layer & CMP_LAYER )
|
||||
color = g_PadCMPColor;
|
||||
|
||||
if( m_Masque_Layer & CUIVRE_LAYER )
|
||||
color |= g_PadCUColor;
|
||||
|
||||
if( color == 0 ) /* Not on copper layer */
|
||||
{
|
||||
switch( m_Masque_Layer & ~ALL_CU_LAYERS )
|
||||
{
|
||||
case ADHESIVE_LAYER_CU:
|
||||
color = g_DesignSettings.m_LayerColor[ADHESIVE_N_CU];
|
||||
break;
|
||||
|
||||
case ADHESIVE_LAYER_CMP:
|
||||
color = g_DesignSettings.m_LayerColor[ADHESIVE_N_CMP];
|
||||
break;
|
||||
|
||||
case SOLDERPASTE_LAYER_CU:
|
||||
color = g_DesignSettings.m_LayerColor[SOLDERPASTE_N_CU];
|
||||
break;
|
||||
|
||||
case SOLDERPASTE_LAYER_CMP:
|
||||
color = g_DesignSettings.m_LayerColor[SOLDERPASTE_N_CMP];
|
||||
break;
|
||||
|
||||
case SILKSCREEN_LAYER_CU:
|
||||
color = g_DesignSettings.m_LayerColor[SILKSCREEN_N_CU];
|
||||
break;
|
||||
|
||||
case SILKSCREEN_LAYER_CMP:
|
||||
color = g_DesignSettings.m_LayerColor[SILKSCREEN_N_CMP];
|
||||
break;
|
||||
|
||||
case SOLDERMASK_LAYER_CU:
|
||||
color = g_DesignSettings.m_LayerColor[SOLDERMASK_N_CU];
|
||||
break;
|
||||
|
||||
case SOLDERMASK_LAYER_CMP:
|
||||
color = g_DesignSettings.m_LayerColor[SOLDERMASK_N_CMP];
|
||||
break;
|
||||
|
||||
case DRAW_LAYER:
|
||||
color = g_DesignSettings.m_LayerColor[DRAW_N];
|
||||
break;
|
||||
|
||||
case COMMENT_LAYER:
|
||||
color = g_DesignSettings.m_LayerColor[COMMENT_N];
|
||||
break;
|
||||
|
||||
case ECO1_LAYER:
|
||||
color = g_DesignSettings.m_LayerColor[ECO1_N];
|
||||
break;
|
||||
|
||||
case ECO2_LAYER:
|
||||
color = g_DesignSettings.m_LayerColor[ECO2_N];
|
||||
break;
|
||||
|
||||
case EDGE_LAYER:
|
||||
color = g_DesignSettings.m_LayerColor[EDGE_N];
|
||||
break;
|
||||
|
||||
default:
|
||||
color = DARKGRAY;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// if PAD_SMD pad and high contrast mode
|
||||
if( (m_Attribut==PAD_SMD || m_Attribut==PAD_CONN) && DisplayOpt.ContrastModeDisplay )
|
||||
{
|
||||
// when routing tracks
|
||||
if( frame && frame->m_ID_current_state == ID_TRACK_BUTT )
|
||||
{
|
||||
int routeTop = screen->m_Route_Layer_TOP;
|
||||
int routeBot = screen->m_Route_Layer_BOTTOM;
|
||||
|
||||
// if routing between copper and component layers,
|
||||
// or the current layer is one of said 2 external copper layers,
|
||||
// then highlight only the current layer.
|
||||
if( ((1<<routeTop) | (1<<routeBot)) == (CUIVRE_LAYER | CMP_LAYER)
|
||||
|| ((1<<screen->m_Active_Layer) & (CUIVRE_LAYER | CMP_LAYER)) )
|
||||
{
|
||||
if( !IsOnLayer( screen->m_Active_Layer ) )
|
||||
{
|
||||
color &= ~MASKCOLOR;
|
||||
color |= DARKDARKGRAY;
|
||||
}
|
||||
}
|
||||
|
||||
// else routing between an internal signal layer and some other layer.
|
||||
// grey out all PAD_SMD pads not on current or the single selected
|
||||
// external layer.
|
||||
else if( !IsOnLayer( screen->m_Active_Layer )
|
||||
&& !IsOnLayer( routeTop )
|
||||
&& !IsOnLayer( routeBot ) )
|
||||
{
|
||||
color &= ~MASKCOLOR;
|
||||
color |= DARKDARKGRAY;
|
||||
}
|
||||
}
|
||||
|
||||
// when not edting tracks, show PAD_SMD components not on active layer as greyed out
|
||||
else
|
||||
{
|
||||
if( !IsOnLayer( screen->m_Active_Layer ) )
|
||||
{
|
||||
color &= ~MASKCOLOR;
|
||||
color |= DARKDARKGRAY;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if( draw_mode & GR_SURBRILL )
|
||||
{
|
||||
if( draw_mode & GR_AND )
|
||||
color &= ~HIGHT_LIGHT_FLAG;
|
||||
else
|
||||
color |= HIGHT_LIGHT_FLAG;
|
||||
}
|
||||
|
||||
if( color & HIGHT_LIGHT_FLAG )
|
||||
color = ColorRefs[color & MASKCOLOR].m_LightColor;
|
||||
|
||||
GRSetDrawMode( DC, draw_mode ); /* mode de trace */
|
||||
|
||||
/* calcul du centre des pads en coordonnees Ecran : */
|
||||
shape_pos = ReturnShapePos();
|
||||
ux0 = shape_pos.x - offset.x;
|
||||
uy0 = shape_pos.y - offset.y;
|
||||
xc = ux0;
|
||||
yc = uy0;
|
||||
|
||||
/* le trace depend de la rotation de l'empreinte */
|
||||
|
||||
dx = dx0 = m_Size.x >> 1;
|
||||
dy = dy0 = m_Size.y >> 1; /* demi dim dx et dy */
|
||||
|
||||
angle = m_Orient;
|
||||
|
||||
bool DisplayIsol = DisplayOpt.DisplayPadIsol;
|
||||
if( ( m_Masque_Layer & ALL_CU_LAYERS ) == 0 )
|
||||
DisplayIsol = FALSE;
|
||||
|
||||
switch( m_PadShape & 0x7F )
|
||||
{
|
||||
case PAD_CIRCLE:
|
||||
if( fillpad )
|
||||
GRFilledCircle( &panel->m_ClipBox, DC, xc, yc, dx, 0, color, color );
|
||||
else
|
||||
GRCircle( &panel->m_ClipBox, DC, xc, yc, dx, 0, color );
|
||||
|
||||
if( DisplayIsol )
|
||||
{
|
||||
GRCircle( &panel->m_ClipBox,
|
||||
DC,
|
||||
xc,
|
||||
yc,
|
||||
dx + g_DesignSettings.m_TrackClearence,
|
||||
0,
|
||||
color );
|
||||
}
|
||||
break;
|
||||
|
||||
case PAD_OVAL:
|
||||
/* calcul de l'entraxe de l'ellipse */
|
||||
if( dx > dy ) /* ellipse horizontale */
|
||||
{
|
||||
delta_cx = dx - dy;
|
||||
delta_cy = 0;
|
||||
rotdx = m_Size.y;
|
||||
}
|
||||
else /* ellipse verticale */
|
||||
{
|
||||
delta_cx = 0;
|
||||
delta_cy = dy - dx;
|
||||
rotdx = m_Size.x;
|
||||
}
|
||||
RotatePoint( &delta_cx, &delta_cy, angle );
|
||||
|
||||
if( fillpad )
|
||||
{
|
||||
GRFillCSegm( &panel->m_ClipBox, DC, ux0 + delta_cx, uy0 + delta_cy,
|
||||
ux0 - delta_cx, uy0 - delta_cy,
|
||||
rotdx, color );
|
||||
}
|
||||
else
|
||||
{
|
||||
GRCSegm( &panel->m_ClipBox, DC, ux0 + delta_cx, uy0 + delta_cy,
|
||||
ux0 - delta_cx, uy0 - delta_cy,
|
||||
rotdx, color );
|
||||
}
|
||||
|
||||
/* Trace de la marge d'isolement */
|
||||
if( DisplayIsol )
|
||||
{
|
||||
rotdx = rotdx + g_DesignSettings.m_TrackClearence + g_DesignSettings.m_TrackClearence;
|
||||
|
||||
GRCSegm( &panel->m_ClipBox, DC, ux0 + delta_cx, uy0 + delta_cy,
|
||||
ux0 - delta_cx, uy0 - delta_cy,
|
||||
rotdx, color );
|
||||
}
|
||||
break;
|
||||
|
||||
case PAD_RECT:
|
||||
case PAD_TRAPEZOID:
|
||||
{
|
||||
int ddx, ddy;
|
||||
ddx = m_DeltaSize.x >> 1;
|
||||
ddy = m_DeltaSize.y >> 1; /* demi dim dx et dy */
|
||||
|
||||
coord[0].x = -dx - ddy;
|
||||
coord[0].y = +dy + ddx;
|
||||
|
||||
coord[1].x = -dx + ddy;
|
||||
coord[1].y = -dy - ddx;
|
||||
|
||||
coord[2].x = +dx - ddy;
|
||||
coord[2].y = -dy + ddx;
|
||||
|
||||
coord[3].x = +dx + ddy;
|
||||
coord[3].y = +dy - ddx;
|
||||
|
||||
for( ii = 0; ii < 4; ii++ )
|
||||
{
|
||||
RotatePoint( &coord[ii].x, &coord[ii].y, angle );
|
||||
coord[ii].x = coord[ii].x + ux0;
|
||||
coord[ii].y = coord[ii].y + uy0;
|
||||
}
|
||||
|
||||
GRClosedPoly( &panel->m_ClipBox, DC, 4, (int*) coord, fillpad, color, color );
|
||||
|
||||
if( DisplayIsol )
|
||||
{
|
||||
dx += g_DesignSettings.m_TrackClearence;
|
||||
dy += g_DesignSettings.m_TrackClearence;
|
||||
|
||||
coord[0].x = -dx - ddy;
|
||||
coord[0].y = dy + ddx;
|
||||
|
||||
coord[1].x = -dx + ddy;
|
||||
coord[1].y = -dy - ddx;
|
||||
|
||||
coord[2].x = dx - ddy;
|
||||
coord[2].y = -dy + ddx;
|
||||
|
||||
coord[3].x = dx + ddy;
|
||||
coord[3].y = dy - ddx;
|
||||
|
||||
for( ii = 0; ii < 4; ii++ )
|
||||
{
|
||||
RotatePoint( &coord[ii].x, &coord[ii].y, angle );
|
||||
coord[ii].x = coord[ii].x + ux0;
|
||||
coord[ii].y = coord[ii].y + uy0;
|
||||
}
|
||||
|
||||
GRClosedPoly( &panel->m_ClipBox, DC, 4, (int*) coord, 0, color, color );
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
/* Draw the pad hole */
|
||||
int cx0 = m_Pos.x - offset.x;
|
||||
int cy0 = m_Pos.y - offset.y;
|
||||
int hole = m_Drill.x >> 1;
|
||||
|
||||
if( fillpad && hole )
|
||||
{
|
||||
bool blackpenstate = false;
|
||||
if ( g_IsPrinting )
|
||||
{
|
||||
blackpenstate = GetGRForceBlackPenState( );
|
||||
GRForceBlackPen( false );
|
||||
color = WHITE;
|
||||
}
|
||||
else
|
||||
color = BLACK; // or DARKGRAY;
|
||||
|
||||
if( draw_mode != GR_XOR )
|
||||
GRSetDrawMode( DC, GR_COPY );
|
||||
else
|
||||
GRSetDrawMode( DC, GR_XOR );
|
||||
|
||||
switch( m_DrillShape )
|
||||
{
|
||||
case PAD_CIRCLE:
|
||||
if( (hole / zoom) > 1 ) /* draw hole if its size is enought */
|
||||
GRFilledCircle( &panel->m_ClipBox, DC, cx0, cy0, hole, 0, color, color );
|
||||
break;
|
||||
|
||||
case PAD_OVAL:
|
||||
dx = m_Drill.x >> 1;
|
||||
dy = m_Drill.y >> 1; /* demi dim dx et dy */
|
||||
|
||||
/* calcul de l'entraxe de l'ellipse */
|
||||
if( m_Drill.x > m_Drill.y ) /* ellipse horizontale */
|
||||
{
|
||||
delta_cx = dx - dy; delta_cy = 0;
|
||||
rotdx = m_Drill.y;
|
||||
}
|
||||
else /* ellipse verticale */
|
||||
{
|
||||
delta_cx = 0; delta_cy = dy - dx;
|
||||
rotdx = m_Drill.x;
|
||||
}
|
||||
RotatePoint( &delta_cx, &delta_cy, angle );
|
||||
|
||||
GRFillCSegm( &panel->m_ClipBox, DC, ux0 + delta_cx, uy0 + delta_cy,
|
||||
ux0 - delta_cx, uy0 - delta_cy,
|
||||
rotdx, color );
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if ( g_IsPrinting )
|
||||
GRForceBlackPen( blackpenstate );
|
||||
}
|
||||
|
||||
GRSetDrawMode( DC, draw_mode );
|
||||
|
||||
/* Trace du symbole "No connect" ( / ou \ ou croix en X) si necessaire : */
|
||||
if( m_Netname.IsEmpty() && DisplayOpt.DisplayPadNoConn )
|
||||
{
|
||||
dx0 = MIN( dx0, dy0 );
|
||||
int nc_color = BLUE;
|
||||
|
||||
if( m_Masque_Layer & CMP_LAYER ) /* Trace forme \ */
|
||||
GRLine( &panel->m_ClipBox, DC, cx0 - dx0, cy0 - dx0,
|
||||
cx0 + dx0, cy0 + dx0, 0, nc_color );
|
||||
|
||||
if( m_Masque_Layer & CUIVRE_LAYER ) /* Trace forme / */
|
||||
GRLine( &panel->m_ClipBox, DC, cx0 + dx0, cy0 - dx0,
|
||||
cx0 - dx0, cy0 + dx0, 0, nc_color );
|
||||
}
|
||||
|
||||
/* Draw the pad number */
|
||||
if( frame && !frame->m_DisplayPadNum )
|
||||
return;
|
||||
|
||||
dx = MIN( m_Size.x, m_Size.y ); /* dx = text size */
|
||||
if( (dx / zoom) > 12 ) /* size must be enought to draw 2 chars */
|
||||
{
|
||||
wxString buffer;
|
||||
|
||||
ReturnStringPadName( buffer );
|
||||
dy = buffer.Len();
|
||||
|
||||
/* Draw text with an angle between -90 deg and + 90 deg */
|
||||
NORMALIZE_ANGLE_90( angle );
|
||||
if( dy < 2 )
|
||||
dy = 2; /* text min size is 2 char */
|
||||
|
||||
dx = (dx * 9 ) / (dy * 13 ); /* Text size ajusted to pad size */
|
||||
|
||||
DrawGraphicText( panel, DC, wxPoint( ux0, uy0 ),
|
||||
WHITE, buffer, angle, wxSize( dx, dx ),
|
||||
GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_CENTER );
|
||||
}
|
||||
m_ShortNetname = source->m_ShortNetname;
|
||||
}
|
||||
|
||||
|
||||
|
@ -668,9 +259,9 @@ int D_PAD::ReadDescr( FILE* File, int* LineNum )
|
|||
PtLine++;
|
||||
|
||||
nn = sscanf( PtLine, " %s %d %d %d %d %d",
|
||||
BufCar, &m_Size.x, &m_Size.y,
|
||||
&m_DeltaSize.x, &m_DeltaSize.y,
|
||||
&m_Orient );
|
||||
BufCar, &m_Size.x, &m_Size.y,
|
||||
&m_DeltaSize.x, &m_DeltaSize.y,
|
||||
&m_Orient );
|
||||
|
||||
ll = 0xFF & BufCar[0];
|
||||
|
||||
|
@ -698,7 +289,7 @@ int D_PAD::ReadDescr( FILE* File, int* LineNum )
|
|||
case 'D':
|
||||
BufCar[0] = 0;
|
||||
nn = sscanf( PtLine, "%d %d %d %s %d %d", &m_Drill.x,
|
||||
&m_Offset.x, &m_Offset.y, BufCar, &dx, &dy );
|
||||
&m_Offset.x, &m_Offset.y, BufCar, &dx, &dy );
|
||||
m_Drill.y = m_Drill.x;
|
||||
m_DrillShape = PAD_CIRCLE;
|
||||
|
||||
|
@ -714,7 +305,7 @@ int D_PAD::ReadDescr( FILE* File, int* LineNum )
|
|||
|
||||
case 'A':
|
||||
nn = sscanf( PtLine, "%s %s %X", BufLine, BufCar,
|
||||
&m_Masque_Layer );
|
||||
&m_Masque_Layer );
|
||||
|
||||
/* Contenu de BufCar non encore utilise ( reserve pour evolutions
|
||||
* ulterieures */
|
||||
|
@ -735,7 +326,7 @@ int D_PAD::ReadDescr( FILE* File, int* LineNum )
|
|||
|
||||
/* Lecture du netname */
|
||||
ReadDelimitedText( BufLine, PtLine, sizeof(BufLine) );
|
||||
m_Netname = CONV_FROM_UTF8( StrPurge( BufLine ) );
|
||||
SetNetname(CONV_FROM_UTF8( StrPurge( BufLine ) ));
|
||||
break;
|
||||
|
||||
case 'P':
|
||||
|
@ -763,10 +354,10 @@ bool D_PAD::Save( FILE* aFile ) const
|
|||
if( GetState( DELETED ) )
|
||||
return true;
|
||||
|
||||
bool rc = false;
|
||||
bool rc = false;
|
||||
|
||||
// check the return values for first and last fprints() in this function
|
||||
if( fprintf( aFile, "$PAD\n" ) != sizeof("$PAD\n")-1 )
|
||||
if( fprintf( aFile, "$PAD\n" ) != sizeof("$PAD\n") - 1 )
|
||||
goto out;
|
||||
|
||||
switch( m_PadShape )
|
||||
|
@ -790,8 +381,8 @@ bool D_PAD::Save( FILE* aFile ) const
|
|||
}
|
||||
|
||||
fprintf( aFile, "Sh \"%.4s\" %c %d %d %d %d %d\n",
|
||||
m_Padname, cshape, m_Size.x, m_Size.y,
|
||||
m_DeltaSize.x, m_DeltaSize.y, m_Orient );
|
||||
m_Padname, cshape, m_Size.x, m_Size.y,
|
||||
m_DeltaSize.x, m_DeltaSize.y, m_Orient );
|
||||
|
||||
fprintf( aFile, "Dr %d %d %d", m_Drill.x, m_Offset.x, m_Offset.y );
|
||||
if( m_DrillShape == PAD_OVAL )
|
||||
|
@ -826,7 +417,7 @@ bool D_PAD::Save( FILE* aFile ) const
|
|||
|
||||
fprintf( aFile, "Po %d %d\n", m_Pos0.x, m_Pos0.y );
|
||||
|
||||
if( fprintf( aFile, "$EndPAD\n" ) != sizeof("$EndPAD\n")-1 )
|
||||
if( fprintf( aFile, "$EndPAD\n" ) != sizeof("$EndPAD\n") - 1 )
|
||||
goto out;
|
||||
|
||||
rc = true;
|
||||
|
@ -836,7 +427,6 @@ out:
|
|||
}
|
||||
|
||||
|
||||
|
||||
/******************************************************/
|
||||
void D_PAD::Display_Infos( WinEDA_DrawFrame* frame )
|
||||
/******************************************************/
|
||||
|
@ -853,7 +443,8 @@ void D_PAD::Display_Infos( WinEDA_DrawFrame* frame )
|
|||
|
||||
static const wxString Msg_Pad_Layer[9] =
|
||||
{
|
||||
wxT( "??? " ), wxT( "cmp " ), wxT( "cu " ), wxT( "cmp+cu " ), wxT( "int " ),
|
||||
wxT( "??? " ), wxT( "cmp " ), wxT( "cu " ), wxT( "cmp+cu " ), wxT(
|
||||
"int " ),
|
||||
wxT( "cmp+int " ), wxT( "cu+int " ), wxT( "all " ), wxT( "No copp" )
|
||||
};
|
||||
|
||||
|
@ -880,7 +471,7 @@ void D_PAD::Display_Infos( WinEDA_DrawFrame* frame )
|
|||
pos += 10;
|
||||
#if 1 // Used only to debug connectivity calculations
|
||||
Line.Printf( wxT( "%d-%d-%d " ), GetSubRatsnest(), GetSubNet(), m_ZoneSubnet );
|
||||
Affiche_1_Parametre( frame, pos, wxT("L-P-Z"), Line, DARKGREEN );
|
||||
Affiche_1_Parametre( frame, pos, wxT( "L-P-Z" ), Line, DARKGREEN );
|
||||
#endif
|
||||
|
||||
wxString LayerInfo;
|
||||
|
@ -962,8 +553,13 @@ void D_PAD::Display_Infos( WinEDA_DrawFrame* frame )
|
|||
|
||||
pos += 6;
|
||||
int attribut = m_Attribut & 15;
|
||||
if ( attribut > 3 ) attribut = 3;
|
||||
Affiche_1_Parametre( frame, pos, Msg_Pad_Shape[m_PadShape],Msg_Pad_Attribut[attribut], DARKGREEN );
|
||||
if( attribut > 3 )
|
||||
attribut = 3;
|
||||
Affiche_1_Parametre( frame,
|
||||
pos,
|
||||
Msg_Pad_Shape[m_PadShape],
|
||||
Msg_Pad_Attribut[attribut],
|
||||
DARKGREEN );
|
||||
|
||||
valeur_param( m_Size.x, Line );
|
||||
pos += 6;
|
||||
|
@ -992,7 +588,7 @@ void D_PAD::Display_Infos( WinEDA_DrawFrame* frame )
|
|||
int module_orient = module ? module->m_Orient : 0;
|
||||
if( module_orient )
|
||||
Line.Printf( wxT( "%3.1f(+%3.1f)" ),
|
||||
(float) (m_Orient - module_orient) / 10, (float) module_orient / 10 );
|
||||
(float) ( m_Orient - module_orient ) / 10, (float) module_orient / 10 );
|
||||
else
|
||||
Line.Printf( wxT( "%3.1f" ), (float) m_Orient / 10 );
|
||||
pos += 8;
|
||||
|
@ -1011,7 +607,7 @@ void D_PAD::Display_Infos( WinEDA_DrawFrame* frame )
|
|||
// see class_pad.h
|
||||
bool D_PAD::IsOnLayer( int aLayer ) const
|
||||
{
|
||||
return (1<<aLayer) & m_Masque_Layer;
|
||||
return (1 << aLayer) & m_Masque_Layer;
|
||||
}
|
||||
|
||||
|
||||
|
@ -1066,7 +662,7 @@ bool D_PAD::HitTest( const wxPoint& ref_pos )
|
|||
int D_PAD::Compare( const D_PAD* padref, const D_PAD* padcmp )
|
||||
/************************************************************/
|
||||
{
|
||||
int diff;
|
||||
int diff;
|
||||
|
||||
if( (diff = padref->m_PadShape - padcmp->m_PadShape) )
|
||||
return diff;
|
||||
|
@ -1099,11 +695,20 @@ static const char* ShowPadType( int aPadType )
|
|||
{
|
||||
switch( aPadType )
|
||||
{
|
||||
case PAD_CIRCLE: return "circle";
|
||||
case PAD_OVAL: return "oval";
|
||||
case PAD_RECT: return "rect";
|
||||
case PAD_TRAPEZOID: return "trap";
|
||||
default: return "??unknown??";
|
||||
case PAD_CIRCLE:
|
||||
return "circle";
|
||||
|
||||
case PAD_OVAL:
|
||||
return "oval";
|
||||
|
||||
case PAD_RECT:
|
||||
return "rect";
|
||||
|
||||
case PAD_TRAPEZOID:
|
||||
return "trap";
|
||||
|
||||
default:
|
||||
return "??unknown??";
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1112,11 +717,20 @@ static const char* ShowPadAttr( int aPadAttr )
|
|||
{
|
||||
switch( aPadAttr )
|
||||
{
|
||||
case PAD_STANDARD: return "STD";
|
||||
case PAD_SMD: return "SMD";
|
||||
case PAD_CONN: return "CONN";
|
||||
case PAD_HOLE_NOT_PLATED: return "HOLE";
|
||||
default: return "??unkown??";
|
||||
case PAD_STANDARD:
|
||||
return "STD";
|
||||
|
||||
case PAD_SMD:
|
||||
return "SMD";
|
||||
|
||||
case PAD_CONN:
|
||||
return "CONN";
|
||||
|
||||
case PAD_HOLE_NOT_PLATED:
|
||||
return "HOLE";
|
||||
|
||||
default:
|
||||
return "??unkown??";
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1138,11 +752,11 @@ void D_PAD::Show( int nestLevel, std::ostream& os )
|
|||
|
||||
// for now, make it look like XML:
|
||||
NestedSpace( nestLevel, os ) << '<' << GetClass().Lower().mb_str() <<
|
||||
" shape=\"" << ShowPadType( m_PadShape ) << '"' <<
|
||||
" attr=\"" << ShowPadAttr( m_Attribut ) << '"' <<
|
||||
" num=\"" << padname << '"' <<
|
||||
" net=\"" << m_Netname.mb_str() << '"' <<
|
||||
" netcode=\"" << GetNet() << '"' <<
|
||||
" shape=\"" << ShowPadType( m_PadShape ) << '"' <<
|
||||
" attr=\"" << ShowPadAttr( m_Attribut ) << '"' <<
|
||||
" num=\"" << padname << '"' <<
|
||||
" net=\"" << m_Netname.mb_str() << '"' <<
|
||||
" netcode=\"" << GetNet() << '"' <<
|
||||
" layerMask=\"" << layerMask << '"' << m_Pos << "/>\n";
|
||||
|
||||
// NestedSpace( nestLevel+1, os ) << m_Text.mb_str() << '\n';
|
||||
|
@ -1150,4 +764,5 @@ void D_PAD::Show( int nestLevel, std::ostream& os )
|
|||
// NestedSpace( nestLevel, os ) << "</" << GetClass().Lower().mb_str() << ">\n";
|
||||
}
|
||||
|
||||
|
||||
#endif
|
||||
|
|
|
@ -12,6 +12,8 @@ class D_PAD : public BOARD_CONNECTED_ITEM
|
|||
{
|
||||
private:
|
||||
int m_NetCode; // Net number for fast comparisons
|
||||
wxString m_Netname; // Full net name like /mysheet/mysubsheet/vout used by eeschema
|
||||
wxString m_ShortNetname; // short net name, like vout from /mysheet/mysubsheet/vout
|
||||
|
||||
|
||||
public:
|
||||
|
@ -25,8 +27,6 @@ public:
|
|||
*/
|
||||
};
|
||||
|
||||
wxString m_Netname; /* Net Name */
|
||||
|
||||
int m_Masque_Layer; // Bitwise layer :1= copper layer, 15= cmp,
|
||||
// 2..14 = internal layers
|
||||
// 16 .. 31 = technical layers
|
||||
|
@ -73,6 +73,30 @@ public:
|
|||
|
||||
D_PAD* Next() { return (D_PAD*) Pnext; }
|
||||
|
||||
|
||||
/**
|
||||
* Function GetNetname
|
||||
* @return const wxString * , a pointer to the full netname
|
||||
*/
|
||||
wxString GetNetname() const { return m_Netname; }
|
||||
/**
|
||||
* Function GetShortNetname
|
||||
* @return const wxString * , a pointer to the short netname
|
||||
*/
|
||||
wxString GetShortNetname() const { return m_ShortNetname; }
|
||||
|
||||
/**
|
||||
* Function SetNetname
|
||||
* @param const wxString : the new netname
|
||||
*/
|
||||
void SetNetname( const wxString & aNetname );
|
||||
|
||||
/**
|
||||
* Function GetShape
|
||||
* @return the shape of this pad.
|
||||
*/
|
||||
int GetShape( ) { return (m_PadShape & 0xFF); }
|
||||
|
||||
/**
|
||||
* Function GetPosition
|
||||
* returns the position of this object.
|
||||
|
|
|
@ -0,0 +1,466 @@
|
|||
/*******************************************************/
|
||||
/* class_pad_draw_function.cpp : functionsto draw pads */
|
||||
/*******************************************************/
|
||||
|
||||
#include "fctsys.h"
|
||||
#include "gr_basic.h"
|
||||
|
||||
#include "common.h"
|
||||
#include "pcbnew.h"
|
||||
#include "trigo.h"
|
||||
#include "id.h" // ID_TRACK_BUTT
|
||||
|
||||
|
||||
/*******************************************************************************************/
|
||||
void D_PAD::Draw( WinEDA_DrawPanel* panel, wxDC* DC, int draw_mode, const wxPoint& offset )
|
||||
/*******************************************************************************************/
|
||||
|
||||
/** Draw a pad:
|
||||
* @param DC = device context
|
||||
* @param offset = draw offset
|
||||
* @param draw_mode = mode: GR_OR, GR_XOR, GR_AND...
|
||||
*/
|
||||
{
|
||||
int ii;
|
||||
int color = 0;
|
||||
int ux0, uy0,
|
||||
dx, dx0, dy, dy0,
|
||||
rotdx,
|
||||
delta_cx, delta_cy,
|
||||
xc, yc;
|
||||
int angle;
|
||||
wxPoint coord[4];
|
||||
int zoom;
|
||||
int fillpad = 0;
|
||||
wxPoint shape_pos;
|
||||
|
||||
if( m_Flags & DO_NOT_DRAW )
|
||||
return;
|
||||
|
||||
wxASSERT( panel );
|
||||
|
||||
zoom = panel->GetZoom();
|
||||
|
||||
WinEDA_BasePcbFrame* frame = (WinEDA_BasePcbFrame*) panel->m_Parent;
|
||||
PCB_SCREEN* screen = frame->GetScreen();
|
||||
if( frame->m_DisplayPadFill == FILLED )
|
||||
fillpad = 1;
|
||||
|
||||
#ifdef PCBNEW
|
||||
if( m_Flags & IS_MOVED )
|
||||
fillpad = 0;
|
||||
#endif
|
||||
|
||||
if( m_Masque_Layer & CMP_LAYER )
|
||||
color = g_PadCMPColor;
|
||||
|
||||
if( m_Masque_Layer & CUIVRE_LAYER )
|
||||
color |= g_PadCUColor;
|
||||
|
||||
if( color == 0 ) /* Not on copper layer */
|
||||
{
|
||||
switch( m_Masque_Layer & ~ALL_CU_LAYERS )
|
||||
{
|
||||
case ADHESIVE_LAYER_CU:
|
||||
color = g_DesignSettings.m_LayerColor[ADHESIVE_N_CU];
|
||||
break;
|
||||
|
||||
case ADHESIVE_LAYER_CMP:
|
||||
color = g_DesignSettings.m_LayerColor[ADHESIVE_N_CMP];
|
||||
break;
|
||||
|
||||
case SOLDERPASTE_LAYER_CU:
|
||||
color = g_DesignSettings.m_LayerColor[SOLDERPASTE_N_CU];
|
||||
break;
|
||||
|
||||
case SOLDERPASTE_LAYER_CMP:
|
||||
color = g_DesignSettings.m_LayerColor[SOLDERPASTE_N_CMP];
|
||||
break;
|
||||
|
||||
case SILKSCREEN_LAYER_CU:
|
||||
color = g_DesignSettings.m_LayerColor[SILKSCREEN_N_CU];
|
||||
break;
|
||||
|
||||
case SILKSCREEN_LAYER_CMP:
|
||||
color = g_DesignSettings.m_LayerColor[SILKSCREEN_N_CMP];
|
||||
break;
|
||||
|
||||
case SOLDERMASK_LAYER_CU:
|
||||
color = g_DesignSettings.m_LayerColor[SOLDERMASK_N_CU];
|
||||
break;
|
||||
|
||||
case SOLDERMASK_LAYER_CMP:
|
||||
color = g_DesignSettings.m_LayerColor[SOLDERMASK_N_CMP];
|
||||
break;
|
||||
|
||||
case DRAW_LAYER:
|
||||
color = g_DesignSettings.m_LayerColor[DRAW_N];
|
||||
break;
|
||||
|
||||
case COMMENT_LAYER:
|
||||
color = g_DesignSettings.m_LayerColor[COMMENT_N];
|
||||
break;
|
||||
|
||||
case ECO1_LAYER:
|
||||
color = g_DesignSettings.m_LayerColor[ECO1_N];
|
||||
break;
|
||||
|
||||
case ECO2_LAYER:
|
||||
color = g_DesignSettings.m_LayerColor[ECO2_N];
|
||||
break;
|
||||
|
||||
case EDGE_LAYER:
|
||||
color = g_DesignSettings.m_LayerColor[EDGE_N];
|
||||
break;
|
||||
|
||||
default:
|
||||
color = DARKGRAY;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// if PAD_SMD pad and high contrast mode
|
||||
if( (m_Attribut==PAD_SMD || m_Attribut==PAD_CONN) && DisplayOpt.ContrastModeDisplay )
|
||||
{
|
||||
// when routing tracks
|
||||
if( frame && frame->m_ID_current_state == ID_TRACK_BUTT )
|
||||
{
|
||||
int routeTop = screen->m_Route_Layer_TOP;
|
||||
int routeBot = screen->m_Route_Layer_BOTTOM;
|
||||
|
||||
// if routing between copper and component layers,
|
||||
// or the current layer is one of said 2 external copper layers,
|
||||
// then highlight only the current layer.
|
||||
if( ( (1 << routeTop) | (1 << routeBot) ) == (CUIVRE_LAYER | CMP_LAYER)
|
||||
|| ( (1 << screen->m_Active_Layer) & (CUIVRE_LAYER | CMP_LAYER) ) )
|
||||
{
|
||||
if( !IsOnLayer( screen->m_Active_Layer ) )
|
||||
{
|
||||
color &= ~MASKCOLOR;
|
||||
color |= DARKDARKGRAY;
|
||||
}
|
||||
}
|
||||
// else routing between an internal signal layer and some other layer.
|
||||
// grey out all PAD_SMD pads not on current or the single selected
|
||||
// external layer.
|
||||
else if( !IsOnLayer( screen->m_Active_Layer )
|
||||
&& !IsOnLayer( routeTop )
|
||||
&& !IsOnLayer( routeBot ) )
|
||||
{
|
||||
color &= ~MASKCOLOR;
|
||||
color |= DARKDARKGRAY;
|
||||
}
|
||||
}
|
||||
// when not edting tracks, show PAD_SMD components not on active layer as greyed out
|
||||
else
|
||||
{
|
||||
if( !IsOnLayer( screen->m_Active_Layer ) )
|
||||
{
|
||||
color &= ~MASKCOLOR;
|
||||
color |= DARKDARKGRAY;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if( draw_mode & GR_SURBRILL )
|
||||
{
|
||||
if( draw_mode & GR_AND )
|
||||
color &= ~HIGHT_LIGHT_FLAG;
|
||||
else
|
||||
color |= HIGHT_LIGHT_FLAG;
|
||||
}
|
||||
|
||||
if( color & HIGHT_LIGHT_FLAG )
|
||||
color = ColorRefs[color & MASKCOLOR].m_LightColor;
|
||||
|
||||
GRSetDrawMode( DC, draw_mode ); /* mode de trace */
|
||||
|
||||
/* calcul du centre des pads en coordonnees Ecran : */
|
||||
shape_pos = ReturnShapePos();
|
||||
ux0 = shape_pos.x - offset.x;
|
||||
uy0 = shape_pos.y - offset.y;
|
||||
xc = ux0;
|
||||
yc = uy0;
|
||||
|
||||
/* le trace depend de la rotation de l'empreinte */
|
||||
|
||||
dx = dx0 = m_Size.x >> 1;
|
||||
dy = dy0 = m_Size.y >> 1; /* demi dim dx et dy */
|
||||
|
||||
angle = m_Orient;
|
||||
|
||||
bool DisplayIsol = DisplayOpt.DisplayPadIsol;
|
||||
if( ( m_Masque_Layer & ALL_CU_LAYERS ) == 0 )
|
||||
DisplayIsol = FALSE;
|
||||
|
||||
switch( GetShape() )
|
||||
{
|
||||
case PAD_CIRCLE:
|
||||
if( fillpad )
|
||||
GRFilledCircle( &panel->m_ClipBox, DC, xc, yc, dx, 0, color, color );
|
||||
else
|
||||
GRCircle( &panel->m_ClipBox, DC, xc, yc, dx, 0, color );
|
||||
|
||||
if( DisplayIsol )
|
||||
{
|
||||
GRCircle( &panel->m_ClipBox,
|
||||
DC,
|
||||
xc,
|
||||
yc,
|
||||
dx + g_DesignSettings.m_TrackClearence,
|
||||
0,
|
||||
color );
|
||||
}
|
||||
break;
|
||||
|
||||
case PAD_OVAL:
|
||||
/* calcul de l'entraxe de l'ellipse */
|
||||
if( dx > dy ) /* ellipse horizontale */
|
||||
{
|
||||
delta_cx = dx - dy;
|
||||
delta_cy = 0;
|
||||
rotdx = m_Size.y;
|
||||
}
|
||||
else /* ellipse verticale */
|
||||
{
|
||||
delta_cx = 0;
|
||||
delta_cy = dy - dx;
|
||||
rotdx = m_Size.x;
|
||||
}
|
||||
RotatePoint( &delta_cx, &delta_cy, angle );
|
||||
|
||||
if( fillpad )
|
||||
{
|
||||
GRFillCSegm( &panel->m_ClipBox, DC, ux0 + delta_cx, uy0 + delta_cy,
|
||||
ux0 - delta_cx, uy0 - delta_cy,
|
||||
rotdx, color );
|
||||
}
|
||||
else
|
||||
{
|
||||
GRCSegm( &panel->m_ClipBox, DC, ux0 + delta_cx, uy0 + delta_cy,
|
||||
ux0 - delta_cx, uy0 - delta_cy,
|
||||
rotdx, color );
|
||||
}
|
||||
|
||||
/* Trace de la marge d'isolement */
|
||||
if( DisplayIsol )
|
||||
{
|
||||
rotdx = rotdx + g_DesignSettings.m_TrackClearence + g_DesignSettings.m_TrackClearence;
|
||||
|
||||
GRCSegm( &panel->m_ClipBox, DC, ux0 + delta_cx, uy0 + delta_cy,
|
||||
ux0 - delta_cx, uy0 - delta_cy,
|
||||
rotdx, color );
|
||||
}
|
||||
break;
|
||||
|
||||
case PAD_RECT:
|
||||
case PAD_TRAPEZOID:
|
||||
{
|
||||
int ddx, ddy;
|
||||
ddx = m_DeltaSize.x >> 1;
|
||||
ddy = m_DeltaSize.y >> 1; /* demi dim dx et dy */
|
||||
|
||||
coord[0].x = -dx - ddy;
|
||||
coord[0].y = +dy + ddx;
|
||||
|
||||
coord[1].x = -dx + ddy;
|
||||
coord[1].y = -dy - ddx;
|
||||
|
||||
coord[2].x = +dx - ddy;
|
||||
coord[2].y = -dy + ddx;
|
||||
|
||||
coord[3].x = +dx + ddy;
|
||||
coord[3].y = +dy - ddx;
|
||||
|
||||
for( ii = 0; ii < 4; ii++ )
|
||||
{
|
||||
RotatePoint( &coord[ii].x, &coord[ii].y, angle );
|
||||
coord[ii].x = coord[ii].x + ux0;
|
||||
coord[ii].y = coord[ii].y + uy0;
|
||||
}
|
||||
|
||||
GRClosedPoly( &panel->m_ClipBox, DC, 4, (int*) coord, fillpad, color, color );
|
||||
|
||||
if( DisplayIsol )
|
||||
{
|
||||
dx += g_DesignSettings.m_TrackClearence;
|
||||
dy += g_DesignSettings.m_TrackClearence;
|
||||
|
||||
coord[0].x = -dx - ddy;
|
||||
coord[0].y = dy + ddx;
|
||||
|
||||
coord[1].x = -dx + ddy;
|
||||
coord[1].y = -dy - ddx;
|
||||
|
||||
coord[2].x = dx - ddy;
|
||||
coord[2].y = -dy + ddx;
|
||||
|
||||
coord[3].x = dx + ddy;
|
||||
coord[3].y = dy - ddx;
|
||||
|
||||
for( ii = 0; ii < 4; ii++ )
|
||||
{
|
||||
RotatePoint( &coord[ii].x, &coord[ii].y, angle );
|
||||
coord[ii].x = coord[ii].x + ux0;
|
||||
coord[ii].y = coord[ii].y + uy0;
|
||||
}
|
||||
|
||||
GRClosedPoly( &panel->m_ClipBox, DC, 4, (int*) coord, 0, color, color );
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
/* Draw the pad hole */
|
||||
int cx0 = m_Pos.x - offset.x;
|
||||
int cy0 = m_Pos.y - offset.y;
|
||||
int hole = m_Drill.x >> 1;
|
||||
|
||||
if( fillpad && hole )
|
||||
{
|
||||
bool blackpenstate = false;
|
||||
if( g_IsPrinting )
|
||||
{
|
||||
blackpenstate = GetGRForceBlackPenState();
|
||||
GRForceBlackPen( false );
|
||||
color = WHITE;
|
||||
}
|
||||
else
|
||||
color = BLACK; // or DARKGRAY;
|
||||
|
||||
if( draw_mode != GR_XOR )
|
||||
GRSetDrawMode( DC, GR_COPY );
|
||||
else
|
||||
GRSetDrawMode( DC, GR_XOR );
|
||||
|
||||
switch( m_DrillShape )
|
||||
{
|
||||
case PAD_CIRCLE:
|
||||
if( (hole / zoom) > 1 ) /* draw hole if its size is enought */
|
||||
GRFilledCircle( &panel->m_ClipBox, DC, cx0, cy0, hole, 0, color, color );
|
||||
break;
|
||||
|
||||
case PAD_OVAL:
|
||||
dx = m_Drill.x >> 1;
|
||||
dy = m_Drill.y >> 1; /* demi dim dx et dy */
|
||||
|
||||
/* calcul de l'entraxe de l'ellipse */
|
||||
if( m_Drill.x > m_Drill.y ) /* ellipse horizontale */
|
||||
{
|
||||
delta_cx = dx - dy; delta_cy = 0;
|
||||
rotdx = m_Drill.y;
|
||||
}
|
||||
else /* ellipse verticale */
|
||||
{
|
||||
delta_cx = 0; delta_cy = dy - dx;
|
||||
rotdx = m_Drill.x;
|
||||
}
|
||||
RotatePoint( &delta_cx, &delta_cy, angle );
|
||||
|
||||
GRFillCSegm( &panel->m_ClipBox, DC, ux0 + delta_cx, uy0 + delta_cy,
|
||||
ux0 - delta_cx, uy0 - delta_cy,
|
||||
rotdx, color );
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if( g_IsPrinting )
|
||||
GRForceBlackPen( blackpenstate );
|
||||
}
|
||||
|
||||
GRSetDrawMode( DC, draw_mode );
|
||||
|
||||
/* Trace du symbole "No connect" ( / ou \ ou croix en X) si necessaire : */
|
||||
if( m_Netname.IsEmpty() && DisplayOpt.DisplayPadNoConn )
|
||||
{
|
||||
dx0 = MIN( dx0, dy0 );
|
||||
int nc_color = BLUE;
|
||||
|
||||
if( m_Masque_Layer & CMP_LAYER ) /* Trace forme \ */
|
||||
GRLine( &panel->m_ClipBox, DC, cx0 - dx0, cy0 - dx0,
|
||||
cx0 + dx0, cy0 + dx0, 0, nc_color );
|
||||
|
||||
if( m_Masque_Layer & CUIVRE_LAYER ) /* Trace forme / */
|
||||
GRLine( &panel->m_ClipBox, DC, cx0 + dx0, cy0 - dx0,
|
||||
cx0 - dx0, cy0 + dx0, 0, nc_color );
|
||||
}
|
||||
|
||||
/* Draw the pad number */
|
||||
if( frame && !frame->m_DisplayPadNum )
|
||||
return;
|
||||
|
||||
wxPoint tpos0 = wxPoint( ux0, uy0 ); // Position of the centre of text
|
||||
wxPoint tpos = tpos0;
|
||||
wxSize AreaSize; // size of text area, normalized to AreaSize.y < AreaSize.x
|
||||
int len;
|
||||
if( GetShape() == PAD_CIRCLE )
|
||||
angle = 0;
|
||||
AreaSize = m_Size;
|
||||
if( m_Size.y > m_Size.x )
|
||||
{
|
||||
angle += 900;
|
||||
AreaSize.x = m_Size.y;
|
||||
AreaSize.y = m_Size.x;
|
||||
}
|
||||
|
||||
if( !m_Netname.IsEmpty() ) // if there is a netname, provides room to display this netname
|
||||
{
|
||||
AreaSize.y /= 2; // Text used only the upper area of the pad. The lower area displays the net name
|
||||
tpos.y -= AreaSize.y / 2;
|
||||
}
|
||||
|
||||
// Calculate the position of text, that is the middle point of the upper area of the pad
|
||||
RotatePoint( &tpos, wxPoint( ux0, uy0 ), angle );
|
||||
|
||||
/* Draw text with an angle between -90 deg and + 90 deg */
|
||||
int t_angle = angle;
|
||||
NORMALIZE_ANGLE_90( t_angle );
|
||||
|
||||
/* Note: in next calculations, texte size is calculated for 3 or more chars.
|
||||
Of course, pads nimbers and nets names can have less than 3 chars.
|
||||
but after some tries, i found this is gives the best look
|
||||
*/
|
||||
#define MIN_CHAR_COUNT 3
|
||||
wxString buffer;
|
||||
ReturnStringPadName( buffer );
|
||||
len = buffer.Len();
|
||||
len = MAX( len, MIN_CHAR_COUNT);
|
||||
|
||||
int tsize = min( AreaSize.y, AreaSize.x / len );
|
||||
#define CHAR_SIZE_MIN 5
|
||||
if( (tsize / zoom) >= CHAR_SIZE_MIN ) // Not drawable in size too small.
|
||||
{
|
||||
tsize = (int) (tsize * 0.8); // reserve room for marges and segments thickness
|
||||
|
||||
DrawGraphicText( panel, DC, tpos,
|
||||
WHITE, buffer, t_angle, wxSize( tsize, tsize ),
|
||||
GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_CENTER, tsize / 8 );
|
||||
}
|
||||
|
||||
// display the short netname
|
||||
len = m_ShortNetname.Len();
|
||||
if (len == 0 )
|
||||
return;
|
||||
len = MAX( len, MIN_CHAR_COUNT);
|
||||
tsize = min( AreaSize.y, AreaSize.x / len );
|
||||
|
||||
if( (tsize / zoom) >= CHAR_SIZE_MIN ) // Not drawable in size too small.
|
||||
{
|
||||
tpos = tpos0;
|
||||
tpos.y += AreaSize.y / 2;
|
||||
RotatePoint( &tpos, wxPoint( ux0, uy0 ), angle );
|
||||
|
||||
tsize = (int) (tsize * 0.8); // reserve room for marges and segments thickness
|
||||
DrawGraphicText( panel, DC, tpos,
|
||||
WHITE, m_ShortNetname, t_angle, wxSize( tsize, tsize ),
|
||||
GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_CENTER, tsize / 8 );
|
||||
}
|
||||
}
|
||||
|
|
@ -411,7 +411,7 @@ void TEXTE_MODULE::Draw( WinEDA_DrawPanel* panel, wxDC* DC, int draw_mode, const
|
|||
size.x = -size.x;
|
||||
|
||||
/* Trace du texte */
|
||||
DrawGraphicText( panel, DC, pos, color, m_Text,
|
||||
DrawGraphicText( panel, DC, pos, (enum EDA_Colors) color, m_Text,
|
||||
orient, size, GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_CENTER, width );
|
||||
}
|
||||
|
||||
|
|
|
@ -38,6 +38,7 @@ void DbgDisplayTrackInfos( TRACK* track )
|
|||
wxMessageBox( msg );
|
||||
}
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
@ -50,13 +51,12 @@ static bool ShowClearance( const TRACK* aTrack )
|
|||
{
|
||||
// maybe return true for tracks and vias, not for zone segments
|
||||
return !(aTrack->m_Flags & DRAW_ERASED)
|
||||
&& DisplayOpt.DisplayTrackIsol
|
||||
&& aTrack->GetLayer() <= LAST_COPPER_LAYER
|
||||
&& ( aTrack->Type() == TYPE_TRACK || aTrack->Type() == TYPE_VIA );
|
||||
&& DisplayOpt.DisplayTrackIsol
|
||||
&& aTrack->GetLayer() <= LAST_COPPER_LAYER
|
||||
&& ( aTrack->Type() == TYPE_TRACK || aTrack->Type() == TYPE_VIA );
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**********************************************************/
|
||||
TRACK::TRACK( BOARD_ITEM* aParent, KICAD_T idtype ) :
|
||||
BOARD_CONNECTED_ITEM( aParent, idtype )
|
||||
|
@ -138,16 +138,16 @@ TRACK* TRACK::Copy() const
|
|||
* Function GetDrillValue
|
||||
* calculate the drill value for vias (m-Drill if > 0, or default drill value for the board
|
||||
* @return real drill_value
|
||||
*/
|
||||
*/
|
||||
int TRACK::GetDrillValue() const
|
||||
{
|
||||
if ( Type() != TYPE_VIA )
|
||||
if( Type() != TYPE_VIA )
|
||||
return 0;
|
||||
|
||||
if ( m_Drill >= 0 )
|
||||
if( m_Drill >= 0 )
|
||||
return m_Drill;
|
||||
|
||||
if ( m_Shape == VIA_MICROVIA )
|
||||
if( m_Shape == VIA_MICROVIA )
|
||||
return g_DesignSettings.m_MicroViaDrill;
|
||||
|
||||
return g_DesignSettings.m_ViaDrill;
|
||||
|
@ -222,7 +222,7 @@ int TRACK::IsPointOnEnds( const wxPoint& point, int min_dist )
|
|||
EDA_Rect TRACK::GetBoundingBox()
|
||||
{
|
||||
// end of track is round, this is its radius, rounded up
|
||||
int radius = ( m_Width+1 )/2;
|
||||
int radius = ( m_Width + 1 ) / 2;
|
||||
|
||||
int ymax;
|
||||
int xmax;
|
||||
|
@ -247,7 +247,7 @@ EDA_Rect TRACK::GetBoundingBox()
|
|||
}
|
||||
else
|
||||
{
|
||||
radius = ( m_Width+1 )/2;
|
||||
radius = ( m_Width + 1 ) / 2;
|
||||
|
||||
ymax = MAX( m_Start.y, m_End.y );
|
||||
xmax = MAX( m_Start.x, m_End.x );
|
||||
|
@ -269,7 +269,7 @@ EDA_Rect TRACK::GetBoundingBox()
|
|||
xmin -= radius;
|
||||
|
||||
// return a rectangle which is [pos,dim) in nature. therefore the +1
|
||||
EDA_Rect ret( wxPoint( xmin, ymin ), wxSize( xmax-xmin+1, ymax-ymin+1 ) );
|
||||
EDA_Rect ret( wxPoint( xmin, ymin ), wxSize( xmax - xmin + 1, ymax - ymin + 1 ) );
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -416,14 +416,14 @@ TRACK* TRACK::GetBestInsertPoint( BOARD* Pcb )
|
|||
* @return the item found in the linked list (or NULL if no track)
|
||||
*/
|
||||
{
|
||||
TRACK* track;
|
||||
TRACK* track;
|
||||
|
||||
if( Type() == TYPE_ZONE )
|
||||
track = Pcb->m_Zone;
|
||||
else
|
||||
track = Pcb->m_Track;
|
||||
|
||||
for( ; track; track = track->Next() )
|
||||
for( ; track; track = track->Next() )
|
||||
{
|
||||
if( GetNet() <= track->GetNet() )
|
||||
return track;
|
||||
|
@ -509,7 +509,7 @@ TRACK* TRACK::GetEndNetCode( int NetCode )
|
|||
|
||||
bool TRACK::Save( FILE* aFile ) const
|
||||
{
|
||||
int type = 0;
|
||||
int type = 0;
|
||||
|
||||
if( Type() == TYPE_VIA )
|
||||
type = 1;
|
||||
|
@ -518,17 +518,16 @@ bool TRACK::Save( FILE* aFile ) const
|
|||
return true;
|
||||
|
||||
fprintf( aFile, "Po %d %d %d %d %d %d %d\n", m_Shape,
|
||||
m_Start.x, m_Start.y, m_End.x, m_End.y, m_Width, m_Drill );
|
||||
m_Start.x, m_Start.y, m_End.x, m_End.y, m_Width, m_Drill );
|
||||
|
||||
fprintf( aFile, "De %d %d %d %lX %X\n",
|
||||
m_Layer, type, GetNet(),
|
||||
m_TimeStamp, ReturnStatus() );
|
||||
m_Layer, type, GetNet(),
|
||||
m_TimeStamp, ReturnStatus() );
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*********************************************************************/
|
||||
void TRACK::Draw( WinEDA_DrawPanel* panel, wxDC* DC, int draw_mode, const wxPoint& notUsed )
|
||||
/*********************************************************************/
|
||||
|
@ -545,9 +544,8 @@ void TRACK::Draw( WinEDA_DrawPanel* panel, wxDC* DC, int draw_mode, const wxPoin
|
|||
if( m_Flags & DRAW_ERASED ) // draw in background color, used by classs TRACK in gerbview
|
||||
{
|
||||
color = g_DrawBgColor;
|
||||
D(printf("DRAW_ERASED in Track::Draw, g_DrawBgColor=%04X\n", g_DrawBgColor );)
|
||||
D( printf( "DRAW_ERASED in Track::Draw, g_DrawBgColor=%04X\n", g_DrawBgColor ); )
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
color = g_DesignSettings.m_LayerColor[m_Layer];
|
||||
|
@ -586,8 +584,8 @@ void TRACK::Draw( WinEDA_DrawPanel* panel, wxDC* DC, int draw_mode, const wxPoin
|
|||
|
||||
if( m_Shape == S_CIRCLE )
|
||||
{
|
||||
rayon = (int) hypot( (double) (m_End.x - m_Start.x),
|
||||
(double) (m_End.y - m_Start.y) );
|
||||
rayon = (int) hypot( (double) ( m_End.x - m_Start.x ),
|
||||
(double) ( m_End.y - m_Start.y ) );
|
||||
if( (l_piste / zoom) < L_MIN_DESSIN )
|
||||
{
|
||||
GRCircle( &panel->m_ClipBox, DC, m_Start.x, m_Start.y, rayon, color );
|
||||
|
@ -606,7 +604,7 @@ void TRACK::Draw( WinEDA_DrawPanel* panel, wxDC* DC, int draw_mode, const wxPoin
|
|||
else
|
||||
{
|
||||
GRCircle( &panel->m_ClipBox, DC, m_Start.x, m_Start.y, rayon,
|
||||
m_Width, color );
|
||||
m_Width, color );
|
||||
}
|
||||
}
|
||||
return;
|
||||
|
@ -615,27 +613,27 @@ void TRACK::Draw( WinEDA_DrawPanel* panel, wxDC* DC, int draw_mode, const wxPoin
|
|||
if( (l_piste / zoom) < L_MIN_DESSIN )
|
||||
{
|
||||
GRLine( &panel->m_ClipBox, DC, m_Start.x, m_Start.y,
|
||||
m_End.x, m_End.y, 0, color );
|
||||
m_End.x, m_End.y, 0, color );
|
||||
return;
|
||||
}
|
||||
|
||||
if( !DisplayOpt.DisplayPcbTrackFill || GetState( FORCE_SKETCH ) )
|
||||
{
|
||||
GRCSegm( &panel->m_ClipBox, DC, m_Start.x, m_Start.y,
|
||||
m_End.x, m_End.y, m_Width, color );
|
||||
m_End.x, m_End.y, m_Width, color );
|
||||
}
|
||||
else
|
||||
{
|
||||
GRFillCSegm( &panel->m_ClipBox, DC, m_Start.x, m_Start.y,
|
||||
m_End.x, m_End.y, m_Width, color );
|
||||
m_End.x, m_End.y, m_Width, color );
|
||||
}
|
||||
|
||||
// Show clearance for tracks, not for zone segments
|
||||
if( ShowClearance( this ) )
|
||||
{
|
||||
GRCSegm( &panel->m_ClipBox, DC, m_Start.x, m_Start.y,
|
||||
m_End.x, m_End.y,
|
||||
m_Width + (g_DesignSettings.m_TrackClearence * 2), color );
|
||||
m_End.x, m_End.y,
|
||||
m_Width + (g_DesignSettings.m_TrackClearence * 2), color );
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -685,97 +683,115 @@ void SEGVIA::Draw( WinEDA_DrawPanel* panel, wxDC* DC, int draw_mode, const wxPoi
|
|||
rayon = zoom;
|
||||
|
||||
GRCircle( &panel->m_ClipBox, DC, m_Start.x, m_Start.y, rayon, color );
|
||||
if( rayon > (4 * zoom) )
|
||||
if( rayon <= (4 * zoom) ) // Size too small: cannot be drawn
|
||||
return;
|
||||
|
||||
int drill_rayon = GetDrillValue() / 2;
|
||||
int inner_rayon = rayon - (2 * zoom);
|
||||
|
||||
GRCircle( &panel->m_ClipBox, DC, m_Start.x, m_Start.y,
|
||||
inner_rayon, color );
|
||||
|
||||
// Draw the via hole if the display option allows it
|
||||
if( DisplayOpt.m_DisplayViaMode != VIA_HOLE_NOT_SHOW )
|
||||
{
|
||||
int drill_rayon = GetDrillValue() / 2;
|
||||
int inner_rayon = rayon - (2 * zoom);
|
||||
|
||||
GRCircle( &panel->m_ClipBox, DC, m_Start.x, m_Start.y,
|
||||
inner_rayon, color );
|
||||
|
||||
// Draw the via hole if the display option allows it
|
||||
if( DisplayOpt.m_DisplayViaMode != VIA_HOLE_NOT_SHOW )
|
||||
if( (DisplayOpt.m_DisplayViaMode == ALL_VIA_HOLE_SHOW) // Display all drill holes requested
|
||||
|| ( (drill_rayon > 0 ) && !IsDrillDefault() ) ) // Or Display non default holes requested
|
||||
{
|
||||
if( (DisplayOpt.m_DisplayViaMode == ALL_VIA_HOLE_SHOW) || // Display all drill holes requested
|
||||
( (drill_rayon > 0 ) && ! IsDrillDefault() ) ) // Or Display non default holes requested
|
||||
if( drill_rayon < inner_rayon ) // We can show the via hole
|
||||
{
|
||||
if( drill_rayon < inner_rayon ) // We can show the via hole
|
||||
{
|
||||
GRCircle( &panel->m_ClipBox, DC, m_Start.x, m_Start.y,
|
||||
drill_rayon, color );
|
||||
}
|
||||
GRCircle( &panel->m_ClipBox, DC, m_Start.x, m_Start.y,
|
||||
drill_rayon, color );
|
||||
}
|
||||
}
|
||||
|
||||
if( DisplayOpt.DisplayTrackIsol )
|
||||
GRCircle( &panel->m_ClipBox, DC, m_Start.x, m_Start.y,
|
||||
rayon + g_DesignSettings.m_TrackClearence, color );
|
||||
|
||||
// for Micro Vias, draw a partial cross :
|
||||
// X on component layer, or + on copper layer
|
||||
// (so we can see 2 superimposed microvias ):
|
||||
if( Shape() == VIA_MICROVIA )
|
||||
{
|
||||
int ax, ay, bx, by;
|
||||
|
||||
if( IsOnLayer(COPPER_LAYER_N) )
|
||||
{
|
||||
ax = rayon; ay = 0;
|
||||
bx = drill_rayon; by = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
ax = ay = (rayon * 707) / 1000;
|
||||
bx = by = (drill_rayon * 707) / 1000;
|
||||
}
|
||||
|
||||
/* lines | or \ */
|
||||
GRLine( &panel->m_ClipBox, DC, m_Start.x - ax , m_Start.y - ay,
|
||||
m_Start.x - bx , m_Start.y - by, 0, color );
|
||||
GRLine( &panel->m_ClipBox, DC, m_Start.x + bx , m_Start.y + by,
|
||||
m_Start.x + ax , m_Start.y + ay, 0, color );
|
||||
|
||||
/* lines - or / */
|
||||
GRLine( &panel->m_ClipBox, DC, m_Start.x + ay, m_Start.y - ax ,
|
||||
m_Start.x + by, m_Start.y - bx, 0, color );
|
||||
GRLine( &panel->m_ClipBox, DC, m_Start.x - by, m_Start.y + bx ,
|
||||
m_Start.x - ay, m_Start.y + ax, 0, color );
|
||||
}
|
||||
|
||||
// for Buried Vias, draw a partial line :
|
||||
// orient depending on layer pair
|
||||
// (so we can see superimposed buried vias ):
|
||||
if( Shape() == VIA_BLIND_BURIED )
|
||||
{
|
||||
int ax = 0, ay = rayon, bx = 0, by = drill_rayon;
|
||||
int layer_top, layer_bottom;
|
||||
|
||||
((SEGVIA*)this)->ReturnLayerPair(&layer_top, &layer_bottom);
|
||||
|
||||
/* lines for the top layer */
|
||||
RotatePoint( &ax, &ay, layer_top * 3600 / g_DesignSettings.m_CopperLayerCount);
|
||||
RotatePoint( &bx, &by, layer_top * 3600 / g_DesignSettings.m_CopperLayerCount);
|
||||
GRLine( &panel->m_ClipBox, DC, m_Start.x - ax , m_Start.y - ay,
|
||||
m_Start.x - bx , m_Start.y - by, 0, color );
|
||||
|
||||
/* lines for the bottom layer */
|
||||
ax = 0; ay = rayon; bx = 0; by = drill_rayon;
|
||||
RotatePoint( &ax, &ay, layer_bottom * 3600 / g_DesignSettings.m_CopperLayerCount);
|
||||
RotatePoint( &bx, &by, layer_bottom * 3600 / g_DesignSettings.m_CopperLayerCount);
|
||||
GRLine( &panel->m_ClipBox, DC, m_Start.x - ax , m_Start.y - ay,
|
||||
m_Start.x - bx , m_Start.y - by, 0, color );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if( DisplayOpt.DisplayTrackIsol )
|
||||
GRCircle( &panel->m_ClipBox, DC, m_Start.x, m_Start.y,
|
||||
rayon + g_DesignSettings.m_TrackClearence, color );
|
||||
|
||||
// for Micro Vias, draw a partial cross :
|
||||
// X on component layer, or + on copper layer
|
||||
// (so we can see 2 superimposed microvias ):
|
||||
if( Shape() == VIA_MICROVIA )
|
||||
{
|
||||
int ax, ay, bx, by;
|
||||
|
||||
if( IsOnLayer( COPPER_LAYER_N ) )
|
||||
{
|
||||
ax = rayon; ay = 0;
|
||||
bx = drill_rayon; by = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
ax = ay = (rayon * 707) / 1000;
|
||||
bx = by = (drill_rayon * 707) / 1000;
|
||||
}
|
||||
|
||||
/* lines | or \ */
|
||||
GRLine( &panel->m_ClipBox, DC, m_Start.x - ax, m_Start.y - ay,
|
||||
m_Start.x - bx, m_Start.y - by, 0, color );
|
||||
GRLine( &panel->m_ClipBox, DC, m_Start.x + bx, m_Start.y + by,
|
||||
m_Start.x + ax, m_Start.y + ay, 0, color );
|
||||
|
||||
/* lines - or / */
|
||||
GRLine( &panel->m_ClipBox, DC, m_Start.x + ay, m_Start.y - ax,
|
||||
m_Start.x + by, m_Start.y - bx, 0, color );
|
||||
GRLine( &panel->m_ClipBox, DC, m_Start.x - by, m_Start.y + bx,
|
||||
m_Start.x - ay, m_Start.y + ax, 0, color );
|
||||
}
|
||||
|
||||
// for Buried Vias, draw a partial line :
|
||||
// orient depending on layer pair
|
||||
// (so we can see superimposed buried vias ):
|
||||
if( Shape() == VIA_BLIND_BURIED )
|
||||
{
|
||||
int ax = 0, ay = rayon, bx = 0, by = drill_rayon;
|
||||
int layer_top, layer_bottom;
|
||||
|
||||
( (SEGVIA*) this )->ReturnLayerPair( &layer_top, &layer_bottom );
|
||||
|
||||
/* lines for the top layer */
|
||||
RotatePoint( &ax, &ay, layer_top * 3600 / g_DesignSettings.m_CopperLayerCount );
|
||||
RotatePoint( &bx, &by, layer_top * 3600 / g_DesignSettings.m_CopperLayerCount );
|
||||
GRLine( &panel->m_ClipBox, DC, m_Start.x - ax, m_Start.y - ay,
|
||||
m_Start.x - bx, m_Start.y - by, 0, color );
|
||||
|
||||
/* lines for the bottom layer */
|
||||
ax = 0; ay = rayon; bx = 0; by = drill_rayon;
|
||||
RotatePoint( &ax, &ay, layer_bottom * 3600 / g_DesignSettings.m_CopperLayerCount );
|
||||
RotatePoint( &bx, &by, layer_bottom * 3600 / g_DesignSettings.m_CopperLayerCount );
|
||||
GRLine( &panel->m_ClipBox, DC, m_Start.x - ax, m_Start.y - ay,
|
||||
m_Start.x - bx, m_Start.y - by, 0, color );
|
||||
}
|
||||
|
||||
// Display the short netname:
|
||||
if( GetNet() == 0 )
|
||||
return;
|
||||
EQUIPOT* net = ((BOARD*)GetParent())->FindNet( GetNet() );
|
||||
if( net == NULL )
|
||||
return;
|
||||
|
||||
int len = net->GetShortNetname().Len();
|
||||
|
||||
// calculate a good size for the text (fixed to 9 pixels, if possible)
|
||||
int tsize = m_Width / len;
|
||||
if( ( tsize / zoom) >= 6 )
|
||||
{
|
||||
tsize = (tsize * 8) / 10; // small reduction to give a better look, inside via
|
||||
DrawGraphicText( panel, DC, m_Start,
|
||||
WHITE, net->GetShortNetname(), 0, wxSize( tsize, tsize ),
|
||||
GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_CENTER, tsize / 8 );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// see class_track.h
|
||||
void TRACK::Display_Infos( WinEDA_DrawFrame* frame )
|
||||
{
|
||||
wxString msg;
|
||||
int text_pos;
|
||||
BOARD* board = ((WinEDA_PcbFrame*)frame)->m_Pcb;
|
||||
wxString msg;
|
||||
int text_pos;
|
||||
BOARD* board = ( (WinEDA_PcbFrame*) frame )->m_Pcb;
|
||||
|
||||
#ifdef RATSNET_DEBUG
|
||||
DbgDisplayTrackInfos( this );
|
||||
|
@ -807,15 +823,15 @@ void TRACK::Display_Infos( WinEDA_DrawFrame* frame )
|
|||
|
||||
|
||||
if( Type() == TYPE_TRACK
|
||||
|| Type() == TYPE_ZONE
|
||||
|| Type() == TYPE_VIA )
|
||||
|| Type() == TYPE_ZONE
|
||||
|| Type() == TYPE_VIA )
|
||||
{
|
||||
/* Display NetName pour les segments de piste type cuivre */
|
||||
|
||||
EQUIPOT* equipot = board->FindNet( GetNet() );
|
||||
|
||||
if( equipot )
|
||||
msg = equipot->m_Netname;
|
||||
msg = equipot->GetNetname();
|
||||
else
|
||||
msg = wxT( "<noname>" );
|
||||
|
||||
|
@ -841,7 +857,7 @@ void TRACK::Display_Infos( WinEDA_DrawFrame* frame )
|
|||
#if defined(DEBUG)
|
||||
|
||||
/* Display the flags */
|
||||
msg.Printf( wxT("0x%08X"), m_Flags );
|
||||
msg.Printf( wxT( "0x%08X" ), m_Flags );
|
||||
Affiche_1_Parametre( frame, text_pos, _( "Flags" ), msg, BLUE );
|
||||
text_pos += 8;
|
||||
|
||||
|
@ -919,7 +935,7 @@ bool TRACK::HitTest( const wxPoint& ref_pos )
|
|||
if( Type() == TYPE_VIA ) /* VIA rencontree */
|
||||
{
|
||||
return (double) spot_cX * spot_cX + (double) spot_cY * spot_cY <=
|
||||
(double) radius * radius;
|
||||
(double) radius * radius;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -930,6 +946,7 @@ bool TRACK::HitTest( const wxPoint& ref_pos )
|
|||
return false;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Function HitTest (overlayed)
|
||||
* tests if the given EDA_Rect intersect this object.
|
||||
|
@ -937,7 +954,7 @@ bool TRACK::HitTest( const wxPoint& ref_pos )
|
|||
* @param refArea : the given EDA_Rect
|
||||
* @return bool - true if a hit, else false
|
||||
*/
|
||||
bool TRACK::HitTest( EDA_Rect& refArea )
|
||||
bool TRACK::HitTest( EDA_Rect& refArea )
|
||||
{
|
||||
if( refArea.Inside( m_Start ) )
|
||||
return true;
|
||||
|
@ -965,7 +982,7 @@ void TRACK::Show( int nestLevel, std::ostream& os )
|
|||
" layer=\"" << m_Layer << '"' <<
|
||||
" width=\"" << m_Width << '"' <<
|
||||
" flags=\"" << m_Flags << '"' <<
|
||||
" status=\"" << GetState(-1) << '"' <<
|
||||
" status=\"" << GetState( -1 ) << '"' <<
|
||||
|
||||
// " drill=\"" << GetDrillValue() << '"' <<
|
||||
" netcode=\"" << GetNet() << "\">" <<
|
||||
|
@ -1007,9 +1024,9 @@ void SEGVIA::Show( int nestLevel, std::ostream& os )
|
|||
break;
|
||||
}
|
||||
|
||||
int topLayer;
|
||||
int botLayer;
|
||||
BOARD* board = (BOARD*) m_Parent;
|
||||
int topLayer;
|
||||
int botLayer;
|
||||
BOARD* board = (BOARD*) m_Parent;
|
||||
|
||||
|
||||
ReturnLayerPair( &topLayer, &botLayer );
|
||||
|
@ -1019,7 +1036,7 @@ void SEGVIA::Show( int nestLevel, std::ostream& os )
|
|||
|
||||
if( board )
|
||||
os << " layers=\"" << board->GetLayerName( topLayer ).Trim().mb_str() << ","
|
||||
<< board->GetLayerName( botLayer ).Trim().mb_str() << '"';
|
||||
<< board->GetLayerName( botLayer ).Trim().mb_str() << '"';
|
||||
os <<
|
||||
" width=\"" << m_Width << '"' <<
|
||||
" drill=\"" << GetDrillValue() << '"' <<
|
||||
|
@ -1035,33 +1052,34 @@ wxString TRACK::ShowState( int stateBits )
|
|||
wxString ret;
|
||||
|
||||
if( stateBits & CHAIN )
|
||||
ret << wxT(" | CHAIN");
|
||||
ret << wxT( " | CHAIN" );
|
||||
if( stateBits & SEGM_AR )
|
||||
ret << wxT(" | SEGM_AR");
|
||||
ret << wxT( " | SEGM_AR" );
|
||||
if( stateBits & SEGM_FIXE )
|
||||
ret << wxT(" | SEGM_FIXE");
|
||||
ret << wxT( " | SEGM_FIXE" );
|
||||
if( stateBits & EDIT )
|
||||
ret << wxT(" | EDIT");
|
||||
ret << wxT( " | EDIT" );
|
||||
if( stateBits & DRAG )
|
||||
ret << wxT(" | DRAG");
|
||||
ret << wxT( " | DRAG" );
|
||||
if( stateBits & SURBRILL )
|
||||
ret << wxT(" | SURBRILL");
|
||||
ret << wxT( " | SURBRILL" );
|
||||
if( stateBits & NO_TRACE )
|
||||
ret << wxT(" | NO_TRACE");
|
||||
ret << wxT( " | NO_TRACE" );
|
||||
if( stateBits & DELETED )
|
||||
ret << wxT(" | DELETED");
|
||||
ret << wxT( " | DELETED" );
|
||||
if( stateBits & BUSY )
|
||||
ret << wxT(" | BUSY");
|
||||
if( stateBits & END_ONPAD)
|
||||
ret << wxT(" | END_ONPAD");
|
||||
if( stateBits & BEGIN_ONPAD)
|
||||
ret << wxT(" | BEGIN_ONPAD");
|
||||
if( stateBits & FLAG0)
|
||||
ret << wxT(" | FLAG0");
|
||||
ret << wxT( " | BUSY" );
|
||||
if( stateBits & END_ONPAD )
|
||||
ret << wxT( " | END_ONPAD" );
|
||||
if( stateBits & BEGIN_ONPAD )
|
||||
ret << wxT( " | BEGIN_ONPAD" );
|
||||
if( stateBits & FLAG0 )
|
||||
ret << wxT( " | FLAG0" );
|
||||
if( stateBits & FLAG1 )
|
||||
ret << wxT(" | FLAG1");
|
||||
ret << wxT( " | FLAG1" );
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
#endif
|
||||
|
|
|
@ -26,7 +26,7 @@ private:
|
|||
|
||||
|
||||
public:
|
||||
int m_Width; // 0 = line, > 0 = tracks, bus ...
|
||||
int m_Width; // Thickness of track, or via diameter
|
||||
wxPoint m_Start; // Line start point
|
||||
wxPoint m_End; // Line end point
|
||||
int m_Shape; // vias: shape and type, Track = shape..
|
||||
|
|
|
@ -71,7 +71,7 @@ void ZONE_CONTAINER::SetNet( int anet_code )
|
|||
{
|
||||
EQUIPOT* net = ( (BOARD*) m_Parent )->FindNet( anet_code );
|
||||
if( net )
|
||||
m_Netname = net->m_Netname;
|
||||
m_Netname = net->GetNetname();
|
||||
else
|
||||
m_Netname.Empty();
|
||||
}
|
||||
|
@ -875,7 +875,7 @@ void ZONE_CONTAINER::Display_Infos( WinEDA_DrawFrame* frame )
|
|||
EQUIPOT* equipot = ( (WinEDA_PcbFrame*) frame )->m_Pcb->FindNet( GetNet() );
|
||||
|
||||
if( equipot )
|
||||
msg = equipot->m_Netname;
|
||||
msg = equipot->GetNetname();
|
||||
else
|
||||
msg = wxT( "<noname>" );
|
||||
}
|
||||
|
@ -1047,7 +1047,7 @@ bool ZONE_CONTAINER::SetNetNameFromNetCode( void )
|
|||
EQUIPOT* net;
|
||||
if ( m_Parent && (net = ((BOARD*)m_Parent)->FindNet( GetNet()) ) )
|
||||
{
|
||||
m_Netname = net->m_Netname;
|
||||
m_Netname = net->GetNetname();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
@ -195,7 +195,7 @@ void dialog_copper_zone::OnInitDialog( wxInitDialogEvent& event )
|
|||
{
|
||||
for( unsigned ii = 0; ii < ListNetName.GetCount(); ii++ )
|
||||
{
|
||||
if( ListNetName[ii] == equipot->m_Netname )
|
||||
if( ListNetName[ii] == equipot->GetNetname() )
|
||||
{
|
||||
m_ListNetNameSelection->SetSelection( ii );
|
||||
m_ListNetNameSelection->EnsureVisible( ii );
|
||||
|
@ -340,7 +340,7 @@ bool dialog_copper_zone::AcceptOptions( bool aPromptForErrors, bool aUseExportab
|
|||
g_Zone_Default_Setting.m_NetcodeSelection = 0;
|
||||
for( net = m_Parent->m_Pcb->m_Equipots; net; net = net->Next() )
|
||||
{
|
||||
if( net->m_Netname == net_name )
|
||||
if( net->GetNetname() == net_name )
|
||||
{
|
||||
g_Zone_Default_Setting.m_NetcodeSelection = net->GetNet();
|
||||
break;
|
||||
|
@ -392,7 +392,7 @@ void dialog_copper_zone::OnNetSortingOptionSelected( wxCommandEvent& event )
|
|||
{
|
||||
for( unsigned ii = 0; ii < ListNetName.GetCount(); ii++ )
|
||||
{
|
||||
if( ListNetName[ii] == equipot->m_Netname )
|
||||
if( ListNetName[ii] == equipot->GetNetname() )
|
||||
{
|
||||
m_ListNetNameSelection->SetSelection( ii );
|
||||
m_ListNetNameSelection->EnsureVisible( ii );
|
||||
|
|
|
@ -84,7 +84,7 @@ DialogPadProperties::DialogPadProperties( WinEDA_BasePcbFrame* parent, D_PAD* Pa
|
|||
|
||||
if( m_CurrentPad )
|
||||
{
|
||||
Current_PadNetName = m_CurrentPad->m_Netname;
|
||||
Current_PadNetName = m_CurrentPad->GetNetname();
|
||||
g_Current_PadName = m_CurrentPad->ReturnStringPadName();
|
||||
}
|
||||
}
|
||||
|
@ -511,7 +511,7 @@ void DialogPadProperties::PadPropertiesAccept( wxCommandEvent& event )
|
|||
}
|
||||
m_CurrentPad->SetPadName( g_Current_PadName );
|
||||
|
||||
if( m_CurrentPad->m_Netname != Current_PadNetName )
|
||||
if( m_CurrentPad->GetNetname() != Current_PadNetName )
|
||||
{
|
||||
if( Current_PadNetName.IsEmpty() )
|
||||
m_CurrentPad->SetNet( 0 );
|
||||
|
@ -521,7 +521,7 @@ void DialogPadProperties::PadPropertiesAccept( wxCommandEvent& event )
|
|||
if( net )
|
||||
{
|
||||
RastnestIsChanged = true;
|
||||
m_CurrentPad->m_Netname = Current_PadNetName;
|
||||
m_CurrentPad->SetNetname( Current_PadNetName );
|
||||
m_CurrentPad->SetNet( net->GetNet() );
|
||||
}
|
||||
else
|
||||
|
|
|
@ -442,15 +442,16 @@ void CreateSignalsSection( FILE* file, BOARD* pcb )
|
|||
|
||||
for( equipot = pcb->m_Equipots; equipot != NULL; equipot = equipot->Next() )
|
||||
{
|
||||
if( equipot->m_Netname == wxEmptyString ) // dummy equipot (non connexion)
|
||||
if( equipot->GetNetname() == wxEmptyString ) // dummy equipot (non connexion)
|
||||
{
|
||||
equipot->m_Netname << wxT( "NoConnection" ) << NbNoConn++;
|
||||
wxString msg; msg << wxT( "NoConnection" ) << NbNoConn++;
|
||||
equipot->SetNetname(msg); ;
|
||||
}
|
||||
|
||||
if( equipot->GetNet() <= 0 ) // dummy equipot (non connexion)
|
||||
continue;
|
||||
|
||||
msg = wxT( "\nSIGNAL " ) + equipot->m_Netname;
|
||||
msg = wxT( "\nSIGNAL " ) + equipot->GetNetname();
|
||||
|
||||
fputs( CONV_TO_UTF8( msg ), file );
|
||||
fputs( "\n", file );
|
||||
|
@ -587,8 +588,8 @@ void CreateRoutesSection( FILE* file, BOARD* pcb )
|
|||
old_netcode = track->GetNet();
|
||||
EQUIPOT* equipot = pcb->FindNet( track->GetNet() );
|
||||
wxString netname;
|
||||
if( equipot && (equipot->m_Netname != wxEmptyString) )
|
||||
netname = equipot->m_Netname;
|
||||
if( equipot && (equipot->GetNetname() != wxEmptyString) )
|
||||
netname = equipot->GetNetname();
|
||||
else
|
||||
netname = wxT( "_noname_" );
|
||||
fprintf( file, "\nROUTE %s\n", CONV_TO_UTF8( netname ) );
|
||||
|
@ -649,7 +650,7 @@ void CreateDevicesSection( FILE* file, BOARD* pcb )
|
|||
for( pad = module->m_Pads; pad != NULL; pad = pad->Next() )
|
||||
{
|
||||
fprintf( file, "PINDESCR %.4s", pad->m_Padname );
|
||||
if( pad->m_Netname == wxEmptyString )
|
||||
if( pad->GetNetname() == wxEmptyString )
|
||||
fputs( " NoConn\n", file );
|
||||
else
|
||||
fprintf( file, " %.4s\n", pad->m_Padname );
|
||||
|
|
|
@ -808,7 +808,7 @@ int WinEDA_PcbFrame::ReadPcbFile( FILE* File, bool Append )
|
|||
{
|
||||
EQUIPOT* Equipot = new EQUIPOT( m_Pcb );
|
||||
m_Pcb->m_Equipots.PushBack( Equipot );
|
||||
Equipot->ReadEquipotDescr( File, &LineNum );
|
||||
Equipot->ReadDescr( File, &LineNum );
|
||||
continue;
|
||||
}
|
||||
|
||||
|
|
|
@ -49,6 +49,7 @@ OBJECTS= $(TARGET).o classpcb.o\
|
|||
class_mire.o\
|
||||
class_cotation.o\
|
||||
class_pad.o \
|
||||
class_pad_draw_functions.o\
|
||||
class_equipot.o \
|
||||
class_module.o \
|
||||
class_edge_mod.o \
|
||||
|
|
|
@ -206,7 +206,7 @@ void WinEDA_BasePcbFrame::AddPad( MODULE* Module, bool draw )
|
|||
|
||||
/* Mise a jour des caract de la pastille : */
|
||||
Import_Pad_Settings( Pad, false );
|
||||
Pad->m_Netname.Empty();
|
||||
Pad->SetNetname(wxEmptyString);
|
||||
|
||||
Pad->m_Pos = GetScreen()->m_Curseur;
|
||||
|
||||
|
|
|
@ -296,7 +296,7 @@ void ReadPcbNetlist( WinEDA_PcbFrame* aFrame,
|
|||
PtPad = Module->m_Pads;
|
||||
for( ; PtPad != NULL; PtPad = (D_PAD*) PtPad->Next() )
|
||||
{
|
||||
PtPad->m_Netname = wxEmptyString;
|
||||
PtPad->SetNetname( wxEmptyString );
|
||||
}
|
||||
}
|
||||
continue;
|
||||
|
@ -597,9 +597,9 @@ int SetPadNetName( wxWindow* frame, char* Text, MODULE* Module )
|
|||
{ /* trouve */
|
||||
trouve = TRUE;
|
||||
if( *TextNetName != '?' )
|
||||
pad->m_Netname = CONV_FROM_UTF8( TextNetName );
|
||||
pad->SetNetname( CONV_FROM_UTF8( TextNetName ) );
|
||||
else
|
||||
pad->m_Netname.Empty();
|
||||
pad->SetNetname( wxEmptyString);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -880,7 +880,7 @@ void WinEDA_BasePcbFrame::recalcule_pad_net_code()
|
|||
pad_courant = &m_Pcb->m_Pads[0];
|
||||
for( ; ii > 0; pad_courant++, ii-- )
|
||||
{
|
||||
if( (*pad_courant)->m_Netname.IsEmpty() ) // pad not connected
|
||||
if( (*pad_courant)->GetNetname().IsEmpty() ) // pad not connected
|
||||
{
|
||||
(*pad_courant)->SetNet( 0 );
|
||||
continue;
|
||||
|
@ -892,7 +892,7 @@ void WinEDA_BasePcbFrame::recalcule_pad_net_code()
|
|||
pad_ref = &m_Pcb->m_Pads[0];
|
||||
while( pad_ref < pad_courant )
|
||||
{
|
||||
if( (*pad_ref)->m_Netname == (*pad_courant)->m_Netname )
|
||||
if( (*pad_ref)->GetNetname() == (*pad_courant)->GetNetname() )
|
||||
break; // sont du meme met
|
||||
|
||||
pad_ref++;
|
||||
|
@ -926,7 +926,7 @@ void WinEDA_BasePcbFrame::recalcule_pad_net_code()
|
|||
// Set the net_code for this equipot and reset other values
|
||||
equipot->SetNet(ii);
|
||||
equipot->m_NbNodes = 0;
|
||||
equipot->m_Netname.Empty();
|
||||
equipot->SetNetname(wxEmptyString);
|
||||
|
||||
BufPtEquipot[ii] = equipot;
|
||||
}
|
||||
|
@ -950,9 +950,9 @@ void WinEDA_BasePcbFrame::recalcule_pad_net_code()
|
|||
equipot = BufPtEquipot[net];
|
||||
equipot->m_NbNodes++;
|
||||
|
||||
if( equipot->m_Netname.IsEmpty() )
|
||||
if( equipot->GetNetname().IsEmpty() )
|
||||
{
|
||||
equipot->m_Netname = (*pad_courant)->m_Netname;
|
||||
equipot->SetNetname((*pad_courant)->GetNetname());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -189,7 +189,7 @@ void Out_Pads( BOARD* Pcb, FILE* outfile )
|
|||
wxString Line;
|
||||
EQUIPOT* equipot = Pcb->FindNet( netcode );
|
||||
Line.Printf( wxT( "Warning: %d pad, net %s" ),
|
||||
nb_pads, equipot->m_Netname.GetData() );
|
||||
nb_pads, equipot->GetNetname().GetData() );
|
||||
DisplayError( NULL, Line, 20 );
|
||||
}
|
||||
fprintf( outfile, "r %d %d %d %d %d %d 1 1\n",
|
||||
|
|
|
@ -245,7 +245,7 @@ int WinEDA_PcbFrame::Solve( wxDC* DC, int two_sides )
|
|||
pt_equipot = m_Pcb->FindNet( current_net_code );
|
||||
if( pt_equipot )
|
||||
{
|
||||
msg.Printf( wxT( "[%8.8s]" ), pt_equipot->m_Netname.GetData() );
|
||||
msg.Printf( wxT( "[%8.8s]" ), pt_equipot->GetNetname().GetData() );
|
||||
Affiche_1_Parametre( this, 1, wxT( "Net route" ), msg, BROWN );
|
||||
msg.Printf( wxT( "%d / %d" ), Ncurrent, Ntotal );
|
||||
Affiche_1_Parametre( this, 12, wxT( "Activity" ), msg, BROWN );
|
||||
|
|
|
@ -1076,7 +1076,7 @@ void SPECCTRA_DB::FromBOARD( BOARD* aBoard ) throw( IOError )
|
|||
{
|
||||
int netcode = equipot->GetNet();
|
||||
if( netcode > 0 )
|
||||
nets[ netcode ]->net_id = CONV_TO_UTF8( equipot->m_Netname );
|
||||
nets[ netcode ]->net_id = CONV_TO_UTF8( equipot->GetNetname() );
|
||||
}
|
||||
|
||||
items.Collect( aBoard, scanMODULEs );
|
||||
|
@ -1253,7 +1253,7 @@ void SPECCTRA_DB::FromBOARD( BOARD* aBoard ) throw( IOError )
|
|||
old_netcode = netcode;
|
||||
EQUIPOT* equipot = aBoard->FindNet( netcode );
|
||||
wxASSERT( equipot );
|
||||
netname = CONV_TO_UTF8( equipot->m_Netname );
|
||||
netname = CONV_TO_UTF8( equipot->GetNetname() );
|
||||
}
|
||||
|
||||
WIRE* wire = new WIRE( wiring );
|
||||
|
@ -1315,7 +1315,7 @@ void SPECCTRA_DB::FromBOARD( BOARD* aBoard ) throw( IOError )
|
|||
EQUIPOT* equipot = aBoard->FindNet( netcode );
|
||||
wxASSERT( equipot );
|
||||
|
||||
dsnVia->net_id = CONV_TO_UTF8( equipot->m_Netname );
|
||||
dsnVia->net_id = CONV_TO_UTF8( equipot->GetNetname() );
|
||||
|
||||
dsnVia->via_type = T_protect; // @todo, this should be configurable
|
||||
}
|
||||
|
|
|
@ -45,11 +45,11 @@ void WinEDA_PcbFrame::Liste_Equipot( wxCommandEvent& event )
|
|||
{
|
||||
wxString Line;
|
||||
/* calcul adr relative du nom de la pastille reference de la piste */
|
||||
if( !WildCompareString( msg, Equipot->m_Netname, FALSE ) )
|
||||
if( !WildCompareString( msg, Equipot->GetNetname(), FALSE ) )
|
||||
continue;
|
||||
|
||||
Line.Printf( wxT( "net_code = %3.3d [%.16s] " ), Equipot->GetNet(),
|
||||
Equipot->m_Netname.GetData() );
|
||||
Equipot->GetNetname().GetData() );
|
||||
List->Append( Line );
|
||||
}
|
||||
|
||||
|
@ -65,7 +65,7 @@ void WinEDA_PcbFrame::Liste_Equipot( wxCommandEvent& event )
|
|||
for( jj = 0; Equipot != NULL; Equipot = (EQUIPOT*) Equipot->Next() )
|
||||
{
|
||||
/* calcul adr relative du nom de la pastille reference de la piste */
|
||||
if( !WildCompareString( msg, Equipot->m_Netname, FALSE ) )
|
||||
if( !WildCompareString( msg, Equipot->GetNetname(), FALSE ) )
|
||||
continue;
|
||||
|
||||
if( ii == jj )
|
||||
|
|
|
@ -190,6 +190,13 @@ void BOARD::Draw( WinEDA_DrawPanel* aPanel, wxDC* DC,
|
|||
{
|
||||
m_markers[i]->Draw( aPanel, DC, aDrawMode );
|
||||
}
|
||||
|
||||
// Draw equipots info
|
||||
for( EQUIPOT* net = m_Equipots; net; net = net->Next() )
|
||||
{
|
||||
if ( net->GetNet() != 0 ) // no net if 0
|
||||
net->Draw( aPanel, DC, aDrawMode );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -516,7 +516,7 @@ MODULE* WinEDA_BasePcbFrame::Exchange_Module( wxWindow* winaff,
|
|||
*/
|
||||
{
|
||||
wxPoint oldpos;/* memorisation temporaire pos curseur */
|
||||
D_PAD* pt_pad, * pt_old_pad;
|
||||
D_PAD* pad, * old_pad;
|
||||
|
||||
|
||||
if( (OldModule->Type() != TYPE_MODULE) || (NewModule->Type() != TYPE_MODULE) )
|
||||
|
@ -553,19 +553,19 @@ MODULE* WinEDA_BasePcbFrame::Exchange_Module( wxWindow* winaff,
|
|||
NewModule->m_Path = OldModule->m_Path;
|
||||
|
||||
/* mise a jour des netnames ( lorsque c'est possible) */
|
||||
pt_pad = NewModule->m_Pads;
|
||||
for( ; pt_pad != NULL; pt_pad = pt_pad->Next() )
|
||||
pad = NewModule->m_Pads;
|
||||
for( ; pad != NULL; pad = pad->Next() )
|
||||
{
|
||||
pt_pad->m_Netname = wxEmptyString;
|
||||
pt_pad->SetNet( 0 );
|
||||
pt_old_pad = OldModule->m_Pads;
|
||||
for( ; pt_old_pad != NULL; pt_old_pad = pt_old_pad->Next() )
|
||||
pad->SetNetname( wxEmptyString );
|
||||
pad->SetNet( 0 );
|
||||
old_pad = OldModule->m_Pads;
|
||||
for( ; old_pad != NULL; old_pad = old_pad->Next() )
|
||||
{
|
||||
if( strnicmp( pt_pad->m_Padname, pt_old_pad->m_Padname,
|
||||
sizeof(pt_pad->m_Padname) ) == 0 )
|
||||
if( strnicmp( pad->m_Padname, old_pad->m_Padname,
|
||||
sizeof(pad->m_Padname) ) == 0 )
|
||||
{
|
||||
pt_pad->m_Netname = pt_old_pad->m_Netname;
|
||||
pt_pad->SetNet( pt_old_pad->GetNet() );
|
||||
pad->SetNetname(old_pad->GetNetname() );
|
||||
pad->SetNet( old_pad->GetNet() );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -801,7 +801,7 @@ void WinEDA_PcbFrame::Edit_Zone_Params( wxDC* DC, ZONE_CONTAINER* zone_container
|
|||
g_Zone_Default_Setting.ExportSetting( *zone_container);
|
||||
EQUIPOT* net = m_Pcb->FindNet( g_Zone_Default_Setting.m_NetcodeSelection );
|
||||
if( net ) // net === NULL should not occur
|
||||
zone_container->m_Netname = net->m_Netname;
|
||||
zone_container->m_Netname = net->GetNetname();
|
||||
|
||||
|
||||
// Combine zones if possible :
|
||||
|
@ -897,7 +897,7 @@ int WinEDA_PcbFrame::Fill_Zone( wxDC* DC, ZONE_CONTAINER* zone_container, bool v
|
|||
}
|
||||
}
|
||||
else
|
||||
msg = net->m_Netname;
|
||||
msg = net->GetNetname();
|
||||
}
|
||||
else
|
||||
msg = _( "No Net" );
|
||||
|
|
Loading…
Reference in New Issue