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
|
Please add newer entries at the top, list the date and your name with
|
||||||
email address.
|
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>
|
2008-Dec-08 UPDATE Wayne Stambaugh <stambaughw@verizon.net>
|
||||||
================================================================================
|
================================================================================
|
||||||
++all
|
++all
|
||||||
|
|
|
@ -138,9 +138,6 @@ void WinEDA_BasicFrame::PrintMsg( const wxString& text )
|
||||||
/******************************************************/
|
/******************************************************/
|
||||||
{
|
{
|
||||||
SetStatusText( 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;
|
int ii, jj, xg, yg, ipas, gxpas, gypas;
|
||||||
wxSize PageSize;
|
wxSize PageSize;
|
||||||
wxPoint pos, ref;
|
wxPoint pos, ref;
|
||||||
int color;
|
EDA_Colors color;
|
||||||
Ki_WorkSheetData* WsItem;
|
Ki_WorkSheetData* WsItem;
|
||||||
int conv_unit = screen->GetInternalUnits() / 1000; /* Scale to convert dimension in 1/1000 in into internal units
|
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 */
|
* (1/1000 inc for EESchema, 1/10000 for pcbnew */
|
||||||
|
|
|
@ -21,22 +21,23 @@
|
||||||
/* fonctions locales : */
|
/* fonctions locales : */
|
||||||
|
|
||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************************************/
|
||||||
void DrawGraphicText( WinEDA_DrawPanel* panel, wxDC* DC,
|
void DrawGraphicText( WinEDA_DrawPanel* aPanel, wxDC* DC,
|
||||||
const wxPoint& Pos, int gcolor, const wxString& Text,
|
const wxPoint& aPos, enum EDA_Colors aColor, const wxString& aText,
|
||||||
int orient, const wxSize& Size, int h_justify, int v_justify, int width )
|
int aOrient, const wxSize& aSize, int aH_justify, int aV_justify, int aWidth )
|
||||||
/*****************************************************************************/
|
/****************************************************************************************************/
|
||||||
|
|
||||||
/* Draw a graphic text (like module texts)
|
/** Function DrawGraphicText
|
||||||
* Text = text to draw
|
* Draw a graphic text (like module texts)
|
||||||
* Pos = text position (according to h_justify, v_justify)
|
* @param aPanel = the current DrawPanel
|
||||||
* Size = text size (size.x or size.y can be < 0 for mirrored texts)
|
* @param aPos = text position (according to aH_justify, aV_justify)
|
||||||
* orient = angle in 0.1 degree
|
* @param aColor (enum EDA_Colors) = text color
|
||||||
* mode_color = GR_OR, GR_XOR..
|
* @param aText = text to draw
|
||||||
* h_justify = horizontal justification (Left, center, right)
|
* @param aOrient = angle in 0.1 degree
|
||||||
* v_justify = vertical justification (bottom, center, top)
|
* @param aSize = text size (size.x or size.y can be < 0 for mirrored texts)
|
||||||
* width = line width (pen width) (default = 0)
|
* @param aH_justify = horizontal justification (Left, center, right)
|
||||||
* if width < 0 : draw segments in sketch mode, width = abs(width)
|
* @param aV_justify = vertical justification (bottom, center, top)
|
||||||
|
* @param aWidth = line aWidth (pen aWidth) (default = 0)
|
||||||
*/
|
*/
|
||||||
{
|
{
|
||||||
int ii, kk, nbchar, AsciiCode, endcar;
|
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)
|
int coord[100]; // Buffer coordinate used to draw polylines (char shapes)
|
||||||
bool sketch_mode = FALSE;
|
bool sketch_mode = FALSE;
|
||||||
|
|
||||||
zoom = panel->GetZoom();
|
zoom = aPanel->GetZoom();
|
||||||
|
|
||||||
size_h = Size.x;
|
size_h = aSize.x;
|
||||||
size_v = Size.y;
|
size_v = aSize.y;
|
||||||
|
|
||||||
if( width < 0 )
|
if( aWidth < 0 )
|
||||||
{
|
{
|
||||||
width = -width;
|
aWidth = -aWidth;
|
||||||
sketch_mode = TRUE;
|
sketch_mode = TRUE;
|
||||||
}
|
}
|
||||||
kk = 0;
|
kk = 0;
|
||||||
ptr = 0; /* ptr = text index */
|
ptr = 0; /* ptr = text index */
|
||||||
|
|
||||||
nbchar = Text.Len();
|
nbchar = aText.Len();
|
||||||
if( nbchar == 0 )
|
if( nbchar == 0 )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
espacement = (10 * size_h ) / 9; // this is the pitch between chars
|
espacement = (10 * size_h ) / 9; // this is the pitch between chars
|
||||||
ox = cX = Pos.x;
|
ox = cX = aPos.x;
|
||||||
oy = cY = Pos.y;
|
oy = cY = aPos.y;
|
||||||
|
|
||||||
/* Do not draw the text if out of draw area! */
|
/* Do not draw the text if out of draw area! */
|
||||||
if( panel )
|
if( aPanel )
|
||||||
{
|
{
|
||||||
int xm, ym, ll, xc, yc;
|
int xm, ym, ll, xc, yc;
|
||||||
int textsize = ABS( espacement );
|
int textsize = ABS( espacement );
|
||||||
|
@ -83,10 +84,10 @@ void DrawGraphicText( WinEDA_DrawPanel* panel, wxDC* DC,
|
||||||
xc = GRMapX( cX );
|
xc = GRMapX( cX );
|
||||||
yc = GRMapY( cY );
|
yc = GRMapY( cY );
|
||||||
|
|
||||||
x0 = panel->m_ClipBox.GetX() - ll;
|
x0 = aPanel->m_ClipBox.GetX() - ll;
|
||||||
y0 = panel->m_ClipBox.GetY() - ll;
|
y0 = aPanel->m_ClipBox.GetY() - ll;
|
||||||
xm = panel->m_ClipBox.GetRight() + ll;
|
xm = aPanel->m_ClipBox.GetRight() + ll;
|
||||||
ym = panel->m_ClipBox.GetBottom() + ll;
|
ym = aPanel->m_ClipBox.GetBottom() + ll;
|
||||||
|
|
||||||
if( xc < x0 )
|
if( xc < x0 )
|
||||||
return;
|
return;
|
||||||
|
@ -105,9 +106,9 @@ void DrawGraphicText( WinEDA_DrawPanel* panel, wxDC* DC,
|
||||||
|
|
||||||
ux0 = uy0 = 0; /* Decalage du centre du texte / coord de ref */
|
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:
|
case GR_TEXT_HJUSTIFY_CENTER:
|
||||||
break;
|
break;
|
||||||
|
@ -121,7 +122,7 @@ void DrawGraphicText( WinEDA_DrawPanel* panel, wxDC* DC,
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch( v_justify )
|
switch( aV_justify )
|
||||||
{
|
{
|
||||||
case GR_TEXT_VJUSTIFY_CENTER:
|
case GR_TEXT_VJUSTIFY_CENTER:
|
||||||
break;
|
break;
|
||||||
|
@ -137,7 +138,7 @@ void DrawGraphicText( WinEDA_DrawPanel* panel, wxDC* DC,
|
||||||
}
|
}
|
||||||
else /* Vertical Text */
|
else /* Vertical Text */
|
||||||
{
|
{
|
||||||
switch( h_justify )
|
switch( aH_justify )
|
||||||
{
|
{
|
||||||
case GR_TEXT_HJUSTIFY_CENTER:
|
case GR_TEXT_HJUSTIFY_CENTER:
|
||||||
break;
|
break;
|
||||||
|
@ -151,7 +152,7 @@ void DrawGraphicText( WinEDA_DrawPanel* panel, wxDC* DC,
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch( v_justify )
|
switch( aV_justify )
|
||||||
{
|
{
|
||||||
case GR_TEXT_VJUSTIFY_CENTER:
|
case GR_TEXT_VJUSTIFY_CENTER:
|
||||||
break;
|
break;
|
||||||
|
@ -172,10 +173,10 @@ void DrawGraphicText( WinEDA_DrawPanel* panel, wxDC* DC,
|
||||||
ox = cX - dx;
|
ox = cX - dx;
|
||||||
oy = cY + dy;
|
oy = cY + dy;
|
||||||
|
|
||||||
if( (Size.x / zoom) == 0 )
|
if( (aSize.x / zoom) == 0 )
|
||||||
return;
|
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 */
|
{ /* le texte est symbolise par une barre */
|
||||||
dx = (espacement * nbchar) / 2;
|
dx = (espacement * nbchar) / 2;
|
||||||
dy = size_v / 2; /* Decalage du debut du texte / centre */
|
dy = size_v / 2; /* Decalage du debut du texte / centre */
|
||||||
|
@ -186,10 +187,10 @@ void DrawGraphicText( WinEDA_DrawPanel* panel, wxDC* DC,
|
||||||
dx += cX;
|
dx += cX;
|
||||||
dy = cY;
|
dy = cY;
|
||||||
|
|
||||||
RotatePoint( &ux0, &uy0, cX, cY, orient );
|
RotatePoint( &ux0, &uy0, cX, cY, aOrient );
|
||||||
RotatePoint( &dx, &dy, cX, cY, orient );
|
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;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -204,15 +205,15 @@ void DrawGraphicText( WinEDA_DrawPanel* panel, wxDC* DC,
|
||||||
dx += cX;
|
dx += cX;
|
||||||
dy = cY;
|
dy = cY;
|
||||||
|
|
||||||
RotatePoint( &ux0, &uy0, cX, cY, orient );
|
RotatePoint( &ux0, &uy0, cX, cY, aOrient );
|
||||||
RotatePoint( &dx, &dy, cX, cY, orient );
|
RotatePoint( &dx, &dy, cX, cY, aOrient );
|
||||||
|
|
||||||
DC->SetTextForeground( wxColour(
|
DC->SetTextForeground( wxColour(
|
||||||
ColorRefs[gcolor].r,
|
ColorRefs[aColor].r,
|
||||||
ColorRefs[gcolor].g,
|
ColorRefs[aColor].g,
|
||||||
ColorRefs[gcolor].b ) );
|
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;
|
return;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -220,13 +221,13 @@ void DrawGraphicText( WinEDA_DrawPanel* panel, wxDC* DC,
|
||||||
{
|
{
|
||||||
x0 = 0; y0 = 0;
|
x0 = 0; y0 = 0;
|
||||||
#if defined(wxUSE_UNICODE) && defined(KICAD_CYRILLIC)
|
#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
|
if ( AsciiCode > 0x40F && AsciiCode < 0x450 ) // big small Cyr
|
||||||
AsciiCode = utf8_to_ascii[AsciiCode - 0x410] & 0xFF;
|
AsciiCode = utf8_to_ascii[AsciiCode - 0x410] & 0xFF;
|
||||||
else
|
else
|
||||||
AsciiCode = AsciiCode & 0xFF;
|
AsciiCode = AsciiCode & 0xFF;
|
||||||
#else
|
#else
|
||||||
AsciiCode = Text.GetChar( ptr ) & 255;
|
AsciiCode = aText.GetChar( ptr ) & 0xFF;
|
||||||
#endif
|
#endif
|
||||||
ptcar = graphic_fonte_shape[AsciiCode]; /* ptcar pointe la description
|
ptcar = graphic_fonte_shape[AsciiCode]; /* ptcar pointe la description
|
||||||
* du caractere a dessiner */
|
* du caractere a dessiner */
|
||||||
|
@ -245,20 +246,20 @@ void DrawGraphicText( WinEDA_DrawPanel* panel, wxDC* DC,
|
||||||
case 'U':
|
case 'U':
|
||||||
if( ii && (plume == 'D' ) )
|
if( ii && (plume == 'D' ) )
|
||||||
{
|
{
|
||||||
if( width <= 1 )
|
if( aWidth <= 1 )
|
||||||
GRPoly( &panel->m_ClipBox, DC, ii / 2, coord, 0, 0,
|
GRPoly( &aPanel->m_ClipBox, DC, ii / 2, coord, 0, 0,
|
||||||
gcolor, gcolor );
|
aColor, aColor );
|
||||||
else if( sketch_mode )
|
else if( sketch_mode )
|
||||||
{
|
{
|
||||||
int ik, * coordptr;
|
int ik, * coordptr;
|
||||||
coordptr = coord;
|
coordptr = coord;
|
||||||
for( ik = 0; ik < (ii - 2); ik += 2, coordptr += 2 )
|
for( ik = 0; ik < (ii - 2); ik += 2, coordptr += 2 )
|
||||||
GRCSegm( &panel->m_ClipBox, DC, *coordptr, *(coordptr + 1),
|
GRCSegm( &aPanel->m_ClipBox, DC, *coordptr, *(coordptr + 1),
|
||||||
*(coordptr + 2), *(coordptr + 3), width, gcolor );
|
*(coordptr + 2), *(coordptr + 3), aWidth, aColor );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
GRPoly( &panel->m_ClipBox, DC, ii / 2, coord, 0,
|
GRPoly( &aPanel->m_ClipBox, DC, ii / 2, coord, 0,
|
||||||
width, gcolor, gcolor );
|
aWidth, aColor, aColor );
|
||||||
}
|
}
|
||||||
plume = f_cod; ii = 0;
|
plume = f_cod; ii = 0;
|
||||||
break;
|
break;
|
||||||
|
@ -279,7 +280,7 @@ void DrawGraphicText( WinEDA_DrawPanel* panel, wxDC* DC,
|
||||||
k2 = (k2 * size_h) / 9;
|
k2 = (k2 * size_h) / 9;
|
||||||
dx = k2 + ox; dy = k1 + oy;
|
dx = k2 + ox; dy = k1 + oy;
|
||||||
|
|
||||||
RotatePoint( &dx, &dy, cX, cY, orient );
|
RotatePoint( &dx, &dy, cX, cY, aOrient );
|
||||||
coord[ii++] = dx;
|
coord[ii++] = dx;
|
||||||
coord[ii++] = dy;
|
coord[ii++] = dy;
|
||||||
break;
|
break;
|
||||||
|
@ -299,13 +300,21 @@ void DrawGraphicText( WinEDA_DrawPanel* panel, wxDC* DC,
|
||||||
|
|
||||||
|
|
||||||
/******************************************************************************************/
|
/******************************************************************************************/
|
||||||
void PlotGraphicText( int format_plot, const wxPoint& Pos, int gcolor,
|
void PlotGraphicText( int aFormat_plot, const wxPoint& aPos, enum EDA_Colors aColor,
|
||||||
const wxString& Text,
|
const wxString& aText,
|
||||||
int orient, const wxSize& Size, int h_justify, int v_justify )
|
int aOrient, const wxSize& aSize, int aH_justify, int aV_justify )
|
||||||
/******************************************************************************************/
|
/******************************************************************************************/
|
||||||
|
|
||||||
/*
|
/** Function PlotGraphicText
|
||||||
* id DrawGraphicText, for plot graphic text
|
* 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;
|
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 );
|
void (*FctPlume)( wxPoint pos, int state );
|
||||||
|
|
||||||
switch( format_plot )
|
switch( aFormat_plot )
|
||||||
{
|
{
|
||||||
case PLOT_FORMAT_POST:
|
case PLOT_FORMAT_POST:
|
||||||
FctPlume = LineTo_PS;
|
FctPlume = LineTo_PS;
|
||||||
|
@ -334,11 +343,11 @@ void PlotGraphicText( int format_plot, const wxPoint& Pos, int gcolor,
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( gcolor >= 0 && IsPostScript( format_plot ) )
|
if( aColor >= 0 && IsPostScript( aFormat_plot ) )
|
||||||
SetColorMapPS( gcolor );
|
SetColorMapPS( aColor );
|
||||||
|
|
||||||
size_h = Size.x;
|
size_h = aSize.x;
|
||||||
size_v = Size.y;
|
size_v = aSize.y;
|
||||||
if( size_h == 0 )
|
if( size_h == 0 )
|
||||||
size_h = DEFAULT_SIZE_TEXT;
|
size_h = DEFAULT_SIZE_TEXT;
|
||||||
if( size_v == 0 )
|
if( size_v == 0 )
|
||||||
|
@ -348,11 +357,11 @@ void PlotGraphicText( int format_plot, const wxPoint& Pos, int gcolor,
|
||||||
ptr = 0; /* ptr = text index */
|
ptr = 0; /* ptr = text index */
|
||||||
|
|
||||||
/* calcul de la position du debut des textes: ox et oy */
|
/* calcul de la position du debut des textes: ox et oy */
|
||||||
nbchar = Text.Len();
|
nbchar = aText.Len();
|
||||||
|
|
||||||
espacement = (10 * size_h ) / 9;
|
espacement = (10 * size_h ) / 9;
|
||||||
ox = cX = Pos.x;
|
ox = cX = aPos.x;
|
||||||
oy = cY = Pos.y;
|
oy = cY = aPos.y;
|
||||||
|
|
||||||
/* Calcul du cadrage du texte */
|
/* Calcul du cadrage du texte */
|
||||||
dx = (espacement * nbchar) / 2;
|
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 */
|
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:
|
case GR_TEXT_HJUSTIFY_CENTER:
|
||||||
break;
|
break;
|
||||||
|
@ -376,7 +385,7 @@ void PlotGraphicText( int format_plot, const wxPoint& Pos, int gcolor,
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch( v_justify )
|
switch( aV_justify )
|
||||||
{
|
{
|
||||||
case GR_TEXT_VJUSTIFY_CENTER:
|
case GR_TEXT_VJUSTIFY_CENTER:
|
||||||
break;
|
break;
|
||||||
|
@ -392,7 +401,7 @@ void PlotGraphicText( int format_plot, const wxPoint& Pos, int gcolor,
|
||||||
}
|
}
|
||||||
else /* Texte Vertical */
|
else /* Texte Vertical */
|
||||||
{
|
{
|
||||||
switch( h_justify )
|
switch( aH_justify )
|
||||||
{
|
{
|
||||||
case GR_TEXT_HJUSTIFY_CENTER:
|
case GR_TEXT_HJUSTIFY_CENTER:
|
||||||
break;
|
break;
|
||||||
|
@ -406,7 +415,7 @@ void PlotGraphicText( int format_plot, const wxPoint& Pos, int gcolor,
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch( v_justify )
|
switch( aV_justify )
|
||||||
{
|
{
|
||||||
case GR_TEXT_VJUSTIFY_CENTER:
|
case GR_TEXT_VJUSTIFY_CENTER:
|
||||||
break;
|
break;
|
||||||
|
@ -432,13 +441,13 @@ void PlotGraphicText( int format_plot, const wxPoint& Pos, int gcolor,
|
||||||
while( kk++ < nbchar )
|
while( kk++ < nbchar )
|
||||||
{
|
{
|
||||||
#if defined(wxUSE_UNICODE) && defined(KICAD_CYRILLIC)
|
#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
|
if ( AsciiCode > 0x40F && AsciiCode < 0x450 ) // big small Cyr
|
||||||
AsciiCode = utf8_to_ascii[AsciiCode - 0x410] & 0xFF;
|
AsciiCode = utf8_to_ascii[AsciiCode - 0x410] & 0xFF;
|
||||||
else
|
else
|
||||||
AsciiCode = AsciiCode & 0xFF;
|
AsciiCode = AsciiCode & 0xFF;
|
||||||
#else
|
#else
|
||||||
AsciiCode = Text.GetChar( ptr ) & 0xFF;
|
AsciiCode = aText.GetChar( ptr ) & 0xFF;
|
||||||
#endif
|
#endif
|
||||||
ptcar = graphic_fonte_shape[AsciiCode]; /* ptcar pointe la description
|
ptcar = graphic_fonte_shape[AsciiCode]; /* ptcar pointe la description
|
||||||
* du caractere a dessiner */
|
* du caractere a dessiner */
|
||||||
|
@ -469,7 +478,7 @@ void PlotGraphicText( int format_plot, const wxPoint& Pos, int gcolor,
|
||||||
dx = k2 + ox;
|
dx = k2 + ox;
|
||||||
dy = k1 + oy;
|
dy = k1 + oy;
|
||||||
|
|
||||||
RotatePoint( &dx, &dy, orient );
|
RotatePoint( &dx, &dy, aOrient );
|
||||||
FctPlume( wxPoint( cX + dx, cY + dy ), plume );
|
FctPlume( wxPoint( cX + dx, cY + dy ), plume );
|
||||||
|
|
||||||
x0 = k2;
|
x0 = k2;
|
||||||
|
|
|
@ -26,7 +26,8 @@ void WinEDA_DrawFrame::TraceWorkSheet( wxDC* DC, BASE_SCREEN* screen, int line_w
|
||||||
Ki_PageDescr* Sheet = screen->m_CurrentSheetDesc;
|
Ki_PageDescr* Sheet = screen->m_CurrentSheetDesc;
|
||||||
int ii, jj, xg, yg, ipas, gxpas, gypas;
|
int ii, jj, xg, yg, ipas, gxpas, gypas;
|
||||||
wxPoint pos;
|
wxPoint pos;
|
||||||
int refx, refy, Color;
|
int refx, refy;
|
||||||
|
EDA_Colors Color;
|
||||||
wxString Line;
|
wxString Line;
|
||||||
Ki_WorkSheetData* WsItem;
|
Ki_WorkSheetData* WsItem;
|
||||||
int scale = m_InternalUnits / 1000;
|
int scale = m_InternalUnits / 1000;
|
||||||
|
|
|
@ -16,7 +16,6 @@ set(CVPCB_SRCS
|
||||||
dialog_display_options.cpp
|
dialog_display_options.cpp
|
||||||
displayframe.cpp
|
displayframe.cpp
|
||||||
genequiv.cpp
|
genequiv.cpp
|
||||||
# genorcad.cpp
|
|
||||||
init.cpp
|
init.cpp
|
||||||
listboxes.cpp
|
listboxes.cpp
|
||||||
listlib.cpp
|
listlib.cpp
|
||||||
|
@ -41,6 +40,7 @@ set(CVPCB_EXTRA_SRCS
|
||||||
../pcbnew/class_mire.cpp
|
../pcbnew/class_mire.cpp
|
||||||
../pcbnew/class_module.cpp
|
../pcbnew/class_module.cpp
|
||||||
../pcbnew/class_pad.cpp
|
../pcbnew/class_pad.cpp
|
||||||
|
../pcbnew/class_pad_draw_functions.cpp
|
||||||
../pcbnew/class_pcb_text.cpp
|
../pcbnew/class_pcb_text.cpp
|
||||||
../pcbnew/class_text_mod.cpp
|
../pcbnew/class_text_mod.cpp
|
||||||
../pcbnew/class_track.cpp
|
../pcbnew/class_track.cpp
|
||||||
|
|
|
@ -46,6 +46,7 @@ OBJECTS = $(TARGET).o \
|
||||||
class_board.o \
|
class_board.o \
|
||||||
class_module.o \
|
class_module.o \
|
||||||
class_pad.o \
|
class_pad.o \
|
||||||
|
class_pad_draw_functions.o\
|
||||||
class_text_mod.o \
|
class_text_mod.o \
|
||||||
class_edge_mod.o \
|
class_edge_mod.o \
|
||||||
class_equipot.o \
|
class_equipot.o \
|
||||||
|
@ -104,6 +105,9 @@ class_track.o: ../pcbnew/class_track.cpp
|
||||||
class_pad.o: ../pcbnew/class_pad.cpp
|
class_pad.o: ../pcbnew/class_pad.cpp
|
||||||
$(CXX) -c $(EDACPPFLAGS) -o $@ ../pcbnew/$*.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
|
class_module.o: ../pcbnew/class_module.cpp
|
||||||
$(CXX) -c $(EDACPPFLAGS) -o $@ ../pcbnew/$*.cpp
|
$(CXX) -c $(EDACPPFLAGS) -o $@ ../pcbnew/$*.cpp
|
||||||
|
|
||||||
|
|
|
@ -316,7 +316,7 @@ void DrawSheetStruct::Draw( WinEDA_DrawPanel* panel, wxDC* DC,
|
||||||
|
|
||||||
Text = wxT( "Sheet: " ) + m_SheetName;
|
Text = wxT( "Sheet: " ) + m_SheetName;
|
||||||
DrawGraphicText( panel, DC,
|
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 ),
|
Text, TEXT_ORIENT_HORIZ, wxSize( m_SheetNameSize, m_SheetNameSize ),
|
||||||
GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_BOTTOM, LineWidth );
|
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;
|
Text = wxT( "File: " ) + m_FileName;
|
||||||
DrawGraphicText( panel, DC,
|
DrawGraphicText( panel, DC,
|
||||||
wxPoint( pos.x, pos.y + m_Size.y + 4 ),
|
wxPoint( pos.x, pos.y + m_Size.y + 4 ),
|
||||||
txtcolor,
|
(EDA_Colors) txtcolor,
|
||||||
Text, TEXT_ORIENT_HORIZ, wxSize( m_FileNameSize, m_FileNameSize ),
|
Text, TEXT_ORIENT_HORIZ, wxSize( m_FileNameSize, m_FileNameSize ),
|
||||||
GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_TOP, LineWidth );
|
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 */
|
/* Routine de dessin des Labels type hierarchie */
|
||||||
{
|
{
|
||||||
int side, txtcolor;
|
int side;
|
||||||
|
EDA_Colors txtcolor;
|
||||||
int posx, tposx, posy, size2;
|
int posx, tposx, posy, size2;
|
||||||
wxSize size;
|
wxSize size;
|
||||||
int NbSegm, coord[20];
|
int NbSegm, coord[20];
|
||||||
int LineWidth = g_DrawMinimunLineWidth;
|
int LineWidth = g_DrawMinimunLineWidth;
|
||||||
|
|
||||||
if( Color >= 0 )
|
if( Color >= 0 )
|
||||||
txtcolor = Color;
|
txtcolor = (EDA_Colors)Color;
|
||||||
else
|
else
|
||||||
txtcolor = ReturnLayerColor( m_Layer );
|
txtcolor = ReturnLayerColor( m_Layer );
|
||||||
GRSetDrawMode( DC, DrawMode );
|
GRSetDrawMode( DC, DrawMode );
|
||||||
|
|
|
@ -244,7 +244,7 @@ void LibDrawPin::DrawPinTexts( WinEDA_DrawPanel* panel,
|
||||||
wxString PinText;
|
wxString PinText;
|
||||||
int PinTextBarPos[256];
|
int PinTextBarPos[256];
|
||||||
int PinTextBarCount;
|
int PinTextBarCount;
|
||||||
int NameColor, NumColor;
|
EDA_Colors NameColor, NumColor;
|
||||||
int PinTxtLen;
|
int PinTxtLen;
|
||||||
|
|
||||||
wxSize PinNameSize( m_PinNameSize, m_PinNameSize );
|
wxSize PinNameSize( m_PinNameSize, m_PinNameSize );
|
||||||
|
@ -257,8 +257,8 @@ void LibDrawPin::DrawPinTexts( WinEDA_DrawPanel* panel,
|
||||||
/* Get the num and name colors */
|
/* Get the num and name colors */
|
||||||
if( (Color < 0) && (m_Selected & IS_SELECTED) )
|
if( (Color < 0) && (m_Selected & IS_SELECTED) )
|
||||||
Color = g_ItemSelectetColor;
|
Color = g_ItemSelectetColor;
|
||||||
NameColor = Color == -1 ? ReturnLayerColor( LAYER_PINNAM ) : Color;
|
NameColor = (EDA_Colors) (Color == -1 ? ReturnLayerColor( LAYER_PINNAM ) : Color);
|
||||||
NumColor = Color == -1 ? ReturnLayerColor( LAYER_PINNUM ) : Color;
|
NumColor = (EDA_Colors) (Color == -1 ? ReturnLayerColor( LAYER_PINNUM ) : Color);
|
||||||
|
|
||||||
/* Create the pin num string */
|
/* Create the pin num string */
|
||||||
ReturnPinStringNum( StringPinNum );
|
ReturnPinStringNum( StringPinNum );
|
||||||
|
@ -563,7 +563,7 @@ void LibDrawPin::PlotPinTexts( wxPoint& pin_pos,
|
||||||
wxString PinText;
|
wxString PinText;
|
||||||
int PinTextBarPos[256];
|
int PinTextBarPos[256];
|
||||||
int PinTextBarCount;
|
int PinTextBarCount;
|
||||||
int NameColor, NumColor;
|
EDA_Colors NameColor, NumColor;
|
||||||
int PinTxtLen = 0;
|
int PinTxtLen = 0;
|
||||||
wxSize PinNameSize = wxSize( m_PinNameSize, m_PinNameSize );
|
wxSize PinNameSize = wxSize( m_PinNameSize, m_PinNameSize );
|
||||||
wxSize PinNumSize = wxSize( m_PinNumSize, m_PinNumSize );
|
wxSize PinNumSize = wxSize( m_PinNumSize, m_PinNumSize );
|
||||||
|
@ -571,8 +571,8 @@ void LibDrawPin::PlotPinTexts( wxPoint& pin_pos,
|
||||||
&& g_PlotPSColorOpt;
|
&& g_PlotPSColorOpt;
|
||||||
|
|
||||||
/* Get the num and name colors */
|
/* Get the num and name colors */
|
||||||
NameColor = plot_color ? ReturnLayerColor( LAYER_PINNAM ) : -1;
|
NameColor = (EDA_Colors) (plot_color ? ReturnLayerColor( LAYER_PINNAM ) : -1);
|
||||||
NumColor = plot_color ? ReturnLayerColor( LAYER_PINNUM ) : -1;
|
NumColor = (EDA_Colors) (plot_color ? ReturnLayerColor( LAYER_PINNUM ) : -1);
|
||||||
|
|
||||||
/* Create the pin num string */
|
/* Create the pin num string */
|
||||||
ReturnPinStringNum( StringPinNum );
|
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
|
/* 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 );
|
int width = MAX( m_Width, g_DrawMinimunLineWidth );
|
||||||
|
|
||||||
if( Color >= 0 )
|
if( Color >= 0 )
|
||||||
color = Color;
|
color = (EDA_Colors)Color;
|
||||||
else
|
else
|
||||||
color = ReturnLayerColor( m_Layer );
|
color = ReturnLayerColor( m_Layer );
|
||||||
GRSetDrawMode( DC, DrawMode );
|
GRSetDrawMode( DC, DrawMode );
|
||||||
|
@ -331,13 +331,14 @@ void SCH_HIERLABEL::Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& offs
|
||||||
*/
|
*/
|
||||||
{
|
{
|
||||||
int Poly[40];
|
int Poly[40];
|
||||||
int ii, color;
|
int ii;
|
||||||
|
EDA_Colors color;
|
||||||
wxPoint AnchorPos = m_Pos + offset;;
|
wxPoint AnchorPos = m_Pos + offset;;
|
||||||
|
|
||||||
int width = MAX( m_Width, g_DrawMinimunLineWidth );
|
int width = MAX( m_Width, g_DrawMinimunLineWidth );
|
||||||
|
|
||||||
if( Color >= 0 )
|
if( Color >= 0 )
|
||||||
color = Color;
|
color = (EDA_Colors)Color;
|
||||||
else
|
else
|
||||||
color = ReturnLayerColor( m_Layer );
|
color = ReturnLayerColor( m_Layer );
|
||||||
|
|
||||||
|
@ -464,13 +465,15 @@ void SCH_GLOBALLABEL::Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& dr
|
||||||
*/
|
*/
|
||||||
{
|
{
|
||||||
int Poly[20];
|
int Poly[20];
|
||||||
int offset, color, HalfSize;
|
int offset;
|
||||||
|
EDA_Colors color;
|
||||||
|
int HalfSize;
|
||||||
wxPoint AnchorPos = m_Pos + draw_offset;;
|
wxPoint AnchorPos = m_Pos + draw_offset;;
|
||||||
|
|
||||||
int width = MAX( m_Width, g_DrawMinimunLineWidth );
|
int width = MAX( m_Width, g_DrawMinimunLineWidth );
|
||||||
|
|
||||||
if( Color >= 0 )
|
if( Color >= 0 )
|
||||||
color = Color;
|
color = (EDA_Colors)Color;
|
||||||
else
|
else
|
||||||
color = ReturnLayerColor( m_Layer );
|
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. */
|
* transformation matrix causes xy axes to be flipped. */
|
||||||
int t1 = (aTransformMatrix[0][0] != 0) ^ (m_Horiz != 0);
|
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,
|
t1 ? TEXT_ORIENT_HORIZ : TEXT_ORIENT_VERT,
|
||||||
m_Size,
|
m_Size,
|
||||||
GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_CENTER, linewidth );
|
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;
|
wxString* text = aData ? (wxString*) aData : &m_Text;
|
||||||
GRSetDrawMode( aDC, aDrawMode );
|
GRSetDrawMode( aDC, aDrawMode );
|
||||||
DrawGraphicText( aPanel, aDC, text_pos,
|
DrawGraphicText( aPanel, aDC, text_pos,
|
||||||
color, text->GetData(),
|
(EDA_Colors) color, text->GetData(),
|
||||||
m_Orient ? TEXT_ORIENT_VERT : TEXT_ORIENT_HORIZ,
|
m_Orient ? TEXT_ORIENT_VERT : TEXT_ORIENT_HORIZ,
|
||||||
m_Size,
|
m_Size,
|
||||||
m_HJustify, m_VJustify, linewidth );
|
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 )
|
if( g_LayerDescr.Flags == 0 )
|
||||||
return g_LayerDescr.LayerColor[Layer];
|
return (EDA_Colors) g_LayerDescr.LayerColor[Layer];
|
||||||
else
|
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
|
* DrawMode: mode de trace
|
||||||
*/
|
*/
|
||||||
{
|
{
|
||||||
int orient, color;
|
int orient;
|
||||||
|
EDA_Colors color;
|
||||||
wxPoint pos; /* Position des textes */
|
wxPoint pos; /* Position des textes */
|
||||||
SCH_COMPONENT* DrawLibItem = (SCH_COMPONENT*) m_Parent;
|
SCH_COMPONENT* DrawLibItem = (SCH_COMPONENT*) m_Parent;
|
||||||
int hjustify, vjustify;
|
int hjustify, vjustify;
|
||||||
|
@ -304,7 +304,7 @@ void SCH_CMP_FIELD::Draw( WinEDA_DrawPanel* panel,
|
||||||
|
|
||||||
if( !m_AddExtraText || (m_FieldId != REFERENCE) )
|
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,
|
orient ? TEXT_ORIENT_VERT : TEXT_ORIENT_HORIZ,
|
||||||
m_Size,
|
m_Size,
|
||||||
hjustify, vjustify, LineWidth );
|
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 )
|
void WinEDA_LibeditFrame::PlaceField( wxDC* DC, LibDrawField* Field )
|
||||||
/*******************************************************************/
|
/*******************************************************************/
|
||||||
{
|
{
|
||||||
int color;
|
EDA_Colors color;
|
||||||
|
|
||||||
if( Field == NULL )
|
if( Field == NULL )
|
||||||
return;
|
return;
|
||||||
|
@ -183,7 +183,7 @@ void WinEDA_LibeditFrame::EditField( wxDC* DC, LibDrawField* Field )
|
||||||
{
|
{
|
||||||
wxString Text;
|
wxString Text;
|
||||||
wxString title;
|
wxString title;
|
||||||
int color;
|
EDA_Colors color;
|
||||||
int LineWidth = MAX( Field->m_Width, g_DrawMinimunLineWidth );
|
int LineWidth = MAX( Field->m_Width, g_DrawMinimunLineWidth );
|
||||||
|
|
||||||
if( Field == NULL )
|
if( Field == NULL )
|
||||||
|
@ -253,7 +253,7 @@ void WinEDA_LibeditFrame::RotateField( wxDC* DC, LibDrawField* Field )
|
||||||
* sinon Modif du champ pointe par la souris
|
* sinon Modif du champ pointe par la souris
|
||||||
*/
|
*/
|
||||||
{
|
{
|
||||||
int color;
|
EDA_Colors color;
|
||||||
|
|
||||||
if( Field == NULL )
|
if( Field == NULL )
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -183,7 +183,7 @@ void PlotLibPart( SCH_COMPONENT* DrawLibItem )
|
||||||
LibEDA_BaseStruct* DEntry;
|
LibEDA_BaseStruct* DEntry;
|
||||||
EDA_LibComponentStruct* Entry;
|
EDA_LibComponentStruct* Entry;
|
||||||
int TransMat[2][2], Multi, convert;
|
int TransMat[2][2], Multi, convert;
|
||||||
int CharColor = -1;
|
EDA_Colors CharColor = UNSPECIFIED_COLOR;
|
||||||
wxPoint pos;
|
wxPoint pos;
|
||||||
bool draw_bgfill = false;
|
bool draw_bgfill = false;
|
||||||
|
|
||||||
|
@ -377,7 +377,8 @@ static void PlotTextField( SCH_COMPONENT* DrawLibItem,
|
||||||
wxPoint textpos; /* Position des textes */
|
wxPoint textpos; /* Position des textes */
|
||||||
SCH_CMP_FIELD* field = DrawLibItem->GetField( FieldNumber );
|
SCH_CMP_FIELD* field = DrawLibItem->GetField( FieldNumber );
|
||||||
int hjustify, vjustify;
|
int hjustify, vjustify;
|
||||||
int orient, color = -1;
|
int orient;
|
||||||
|
EDA_Colors color = UNSPECIFIED_COLOR;
|
||||||
|
|
||||||
if( (g_PlotFormat == PLOT_FORMAT_POST) && g_PlotPSColorOpt )
|
if( (g_PlotFormat == PLOT_FORMAT_POST) && g_PlotPSColorOpt )
|
||||||
color = ReturnLayerColor( field->GetLayer() );
|
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 MapX1, MapY1, x1, y1;
|
||||||
int color;
|
EDA_Colors color = UNSPECIFIED_COLOR;
|
||||||
|
|
||||||
color = ReturnLayerColor( LAYER_PIN );
|
color = ReturnLayerColor( LAYER_PIN );
|
||||||
|
|
||||||
|
@ -567,7 +568,7 @@ void PlotTextStruct( EDA_BaseStruct* Struct )
|
||||||
int pX, pY, Shape = 0, Orient = 0, offset;
|
int pX, pY, Shape = 0, Orient = 0, offset;
|
||||||
wxSize Size;
|
wxSize Size;
|
||||||
wxString Text;
|
wxString Text;
|
||||||
int color = -1;
|
EDA_Colors color = UNSPECIFIED_COLOR;
|
||||||
|
|
||||||
switch( Struct->Type() )
|
switch( Struct->Type() )
|
||||||
{
|
{
|
||||||
|
@ -680,12 +681,13 @@ void PlotTextStruct( EDA_BaseStruct* Struct )
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/***********************************************************/
|
/***********************************************************************/
|
||||||
static void PlotSheetLabelStruct( Hierarchical_PIN_Sheet_Struct* Struct )
|
static void PlotSheetLabelStruct( Hierarchical_PIN_Sheet_Struct* Struct )
|
||||||
/***********************************************************/
|
/***********************************************************************/
|
||||||
/* Routine de dessin des Sheet Labels type hierarchie */
|
/* 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 posx, tposx, posy, size, size2;
|
||||||
int coord[16];
|
int coord[16];
|
||||||
|
|
||||||
|
@ -760,7 +762,7 @@ void PlotSheetStruct( DrawSheetStruct* Struct )
|
||||||
/* Routine de dessin du bloc type hierarchie */
|
/* Routine de dessin du bloc type hierarchie */
|
||||||
{
|
{
|
||||||
Hierarchical_PIN_Sheet_Struct* SheetLabelStruct;
|
Hierarchical_PIN_Sheet_Struct* SheetLabelStruct;
|
||||||
int txtcolor = -1;
|
EDA_Colors txtcolor = UNSPECIFIED_COLOR;
|
||||||
wxSize size;
|
wxSize size;
|
||||||
wxString Text;
|
wxString Text;
|
||||||
wxPoint pos;
|
wxPoint pos;
|
||||||
|
|
|
@ -197,7 +197,7 @@ void RedrawOneStruct(WinEDA_DrawPanel * panel, wxDC * DC, SCH_ITEM *Struct, int
|
||||||
/* EELAYER.CPP */
|
/* EELAYER.CPP */
|
||||||
/**************/
|
/**************/
|
||||||
void SeedLayers();
|
void SeedLayers();
|
||||||
int ReturnLayerColor(int Layer);
|
EDA_Colors ReturnLayerColor(int Layer);
|
||||||
void DisplayColorSetupFrame(WinEDA_DrawFrame * parent, const wxPoint & pos);
|
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 )
|
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)
|
* Polygons are not handled here (there are in Pcb->m_Zone)
|
||||||
* @param DC = device context to draw
|
* @param DC = device context to draw
|
||||||
* @param Pcb = Board to draw (only Pcb->m_Track is used)
|
* @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,
|
DrawGraphicText( panel, DC,
|
||||||
pos, g_DCodesColor, Line,
|
pos, (EDA_Colors) g_DCodesColor, Line,
|
||||||
orient, wxSize( width, width ),
|
orient, wxSize( width, width ),
|
||||||
GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_CENTER );
|
GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_CENTER );
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,7 +9,7 @@ COMMON_GLOBL wxString g_BuildVersion
|
||||||
# include "config.h"
|
# include "config.h"
|
||||||
(wxT(KICAD_SVN_VERSION))
|
(wxT(KICAD_SVN_VERSION))
|
||||||
# else
|
# else
|
||||||
(wxT("(20081124-unstable)")) /* main program version */
|
(wxT("(20081214-unstable)")) /* main program version */
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
;
|
;
|
||||||
|
@ -20,7 +20,7 @@ COMMON_GLOBL wxString g_BuildAboutVersion
|
||||||
# include "config.h"
|
# include "config.h"
|
||||||
(wxT(KICAD_ABOUT_VERSION))
|
(wxT(KICAD_ABOUT_VERSION))
|
||||||
# else
|
# else
|
||||||
(wxT("(20081124-unstable)")) /* svn date & rev (normally overridden) */
|
(wxT("(20081214-unstable)")) /* svn date & rev (normally overridden) */
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
;
|
;
|
||||||
|
|
|
@ -46,6 +46,7 @@ static inline int GetAlpha( int aColor )
|
||||||
|
|
||||||
enum EDA_Colors
|
enum EDA_Colors
|
||||||
{
|
{
|
||||||
|
UNSPECIFIED_COLOR = -1,
|
||||||
BLACK = 0,
|
BLACK = 0,
|
||||||
BLUE,
|
BLUE,
|
||||||
GREEN,
|
GREEN,
|
||||||
|
|
|
@ -427,14 +427,37 @@ double round( double aNumber );
|
||||||
/**************/
|
/**************/
|
||||||
/* DRAWTXT.CPP */
|
/* DRAWTXT.CPP */
|
||||||
/**************/
|
/**************/
|
||||||
void DrawGraphicText( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& pos,
|
/** Function DrawGraphicText
|
||||||
int mode_color, const wxString& Text,
|
* Draw a graphic text (like module texts)
|
||||||
int orient, const wxSize& char_size,
|
* @param aPanel = the current DrawPanel
|
||||||
int h_justify, int v_justify, int width = 0 );
|
* @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,
|
/** Function PlotGraphicText
|
||||||
const wxString& Text,
|
* same as DrawGraphicText, but plot graphic text insteed of draw it
|
||||||
int orient, const wxSize& Size, int h_justify, int v_justify );
|
* @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 */
|
/* CONFIRM.CPP */
|
||||||
|
|
Binary file not shown.
|
@ -2,8 +2,8 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: kicad\n"
|
"Project-Id-Version: kicad\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2008-12-11 17:20+0100\n"
|
"POT-Creation-Date: 2008-12-12 22:29+0100\n"
|
||||||
"PO-Revision-Date: 2008-12-11 18:52+0100\n"
|
"PO-Revision-Date: 2008-12-12 22:31+0100\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: kicad team <jean-pierre.charras@ujf-grenoble.fr>\n"
|
"Language-Team: kicad team <jean-pierre.charras@ujf-grenoble.fr>\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
|
@ -24,7 +24,7 @@ msgstr ""
|
||||||
|
|
||||||
#: pcbnew/clean.cpp:180
|
#: pcbnew/clean.cpp:180
|
||||||
msgid "Delete unconnected tracks:"
|
msgid "Delete unconnected tracks:"
|
||||||
msgstr "Suppression Pistes non connectées"
|
msgstr "Suppression Pistes non connectées:"
|
||||||
|
|
||||||
#: pcbnew/clean.cpp:197
|
#: pcbnew/clean.cpp:197
|
||||||
msgid "ViaDef"
|
msgid "ViaDef"
|
||||||
|
@ -1618,34 +1618,26 @@ msgid "Enable Auto Delete old Track"
|
||||||
msgstr "Autoriser l'effacement automatique des pistes"
|
msgstr "Autoriser l'effacement automatique des pistes"
|
||||||
|
|
||||||
#: pcbnew/pcbframe.cpp:457
|
#: 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"
|
msgid "Show Pads Sketch mode"
|
||||||
msgstr "Afficher pastilles en contour"
|
msgstr "Afficher pastilles en contour"
|
||||||
|
|
||||||
#: pcbnew/pcbframe.cpp:464
|
#: pcbnew/pcbframe.cpp:458
|
||||||
msgid "Show pads filled mode"
|
msgid "Show pads filled mode"
|
||||||
msgstr "Afficher pastilles en mode plein"
|
msgstr "Afficher pastilles en mode plein"
|
||||||
|
|
||||||
#: pcbnew/pcbframe.cpp:470
|
#: pcbnew/pcbframe.cpp:464
|
||||||
msgid "Show Tracks Sketch mode"
|
msgid "Show Tracks Sketch mode"
|
||||||
msgstr "Afficher pistes en contour"
|
msgstr "Afficher pistes en contour"
|
||||||
|
|
||||||
#: pcbnew/pcbframe.cpp:471
|
#: pcbnew/pcbframe.cpp:465
|
||||||
msgid "Show Tracks filled mode"
|
msgid "Show Tracks filled mode"
|
||||||
msgstr "Afficher pistes en mode plein"
|
msgstr "Afficher pistes en mode plein"
|
||||||
|
|
||||||
#: pcbnew/pcbframe.cpp:477
|
#: pcbnew/pcbframe.cpp:471
|
||||||
msgid "Normal Contrast Mode Display"
|
msgid "Normal Contrast Mode Display"
|
||||||
msgstr "Mode d'affichage Contraste normal"
|
msgstr "Mode d'affichage Contraste normal"
|
||||||
|
|
||||||
#: pcbnew/pcbframe.cpp:478
|
#: pcbnew/pcbframe.cpp:472
|
||||||
msgid "Hight Contrast Mode Display"
|
msgid "Hight Contrast Mode Display"
|
||||||
msgstr "Mode d'affichage Haut Contraste"
|
msgstr "Mode d'affichage Haut Contraste"
|
||||||
|
|
||||||
|
@ -2457,15 +2449,27 @@ msgstr "Montrer le chevelu du module pendant déplacement"
|
||||||
msgid "Enable Auto Del Track"
|
msgid "Enable Auto Del Track"
|
||||||
msgstr "Autoriser l'effacement automatique des pistes"
|
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"
|
msgid "Show Pads Sketch"
|
||||||
msgstr "Afficher pastilles en contour"
|
msgstr "Afficher pastilles en contour"
|
||||||
|
|
||||||
#: pcbnew/tool_pcb.cpp:383
|
#: pcbnew/tool_pcb.cpp:389
|
||||||
msgid "Show Tracks Sketch"
|
msgid "Show Tracks Sketch"
|
||||||
msgstr "Afficher Pistes en Contour"
|
msgstr "Afficher Pistes en Contour"
|
||||||
|
|
||||||
#: pcbnew/tool_pcb.cpp:398
|
#: pcbnew/tool_pcb.cpp:404
|
||||||
msgid ""
|
msgid ""
|
||||||
"Display/remove auxiliary vertical toolbar (tools for micro wave applications)\n"
|
"Display/remove auxiliary vertical toolbar (tools for micro wave applications)\n"
|
||||||
" This is a experimental feature (under development)"
|
" This is a experimental feature (under development)"
|
||||||
|
@ -2473,79 +2477,79 @@ msgstr ""
|
||||||
"Affiche/supprime le toolbar vertical auxiliaire (outils pour applications micro-ondes)\n"
|
"Affiche/supprime le toolbar vertical auxiliaire (outils pour applications micro-ondes)\n"
|
||||||
"C'est un outil expérimental (en cours de développement)"
|
"C'est un outil expérimental (en cours de développement)"
|
||||||
|
|
||||||
#: pcbnew/tool_pcb.cpp:428
|
#: pcbnew/tool_pcb.cpp:434
|
||||||
msgid "Net highlight"
|
msgid "Net highlight"
|
||||||
msgstr "Surbrillance des équipotentielles"
|
msgstr "Surbrillance des équipotentielles"
|
||||||
|
|
||||||
#: pcbnew/tool_pcb.cpp:433
|
#: pcbnew/tool_pcb.cpp:439
|
||||||
msgid "Display local ratsnest (pad or module)"
|
msgid "Display local ratsnest (pad or module)"
|
||||||
msgstr "Afficher le chevelu local (pastilles ou modules)"
|
msgstr "Afficher le chevelu local (pastilles ou modules)"
|
||||||
|
|
||||||
#: pcbnew/tool_pcb.cpp:439
|
#: pcbnew/tool_pcb.cpp:445
|
||||||
msgid "Add modules"
|
msgid "Add modules"
|
||||||
msgstr "Addition de Modules"
|
msgstr "Addition de Modules"
|
||||||
|
|
||||||
#: pcbnew/tool_pcb.cpp:443
|
#: pcbnew/tool_pcb.cpp:449
|
||||||
msgid "Add tracks and vias"
|
msgid "Add tracks and vias"
|
||||||
msgstr "Ajouter pistes et vias"
|
msgstr "Ajouter pistes et vias"
|
||||||
|
|
||||||
#: pcbnew/tool_pcb.cpp:447
|
#: pcbnew/tool_pcb.cpp:453
|
||||||
msgid "Add zones"
|
msgid "Add zones"
|
||||||
msgstr "Addition de Zones"
|
msgstr "Addition de Zones"
|
||||||
|
|
||||||
#: pcbnew/tool_pcb.cpp:452
|
#: pcbnew/tool_pcb.cpp:458
|
||||||
msgid "Add graphic line or polygon"
|
msgid "Add graphic line or polygon"
|
||||||
msgstr "Addition de lignes ou polygones graphiques"
|
msgstr "Addition de lignes ou polygones graphiques"
|
||||||
|
|
||||||
#: pcbnew/tool_pcb.cpp:456
|
#: pcbnew/tool_pcb.cpp:462
|
||||||
msgid "Add graphic circle"
|
msgid "Add graphic circle"
|
||||||
msgstr "Addition de graphiques (Cercle)"
|
msgstr "Addition de graphiques (Cercle)"
|
||||||
|
|
||||||
#: pcbnew/tool_pcb.cpp:460
|
#: pcbnew/tool_pcb.cpp:466
|
||||||
msgid "Add graphic arc"
|
msgid "Add graphic arc"
|
||||||
msgstr "Addition de graphiques (Arc de Cercle)"
|
msgstr "Addition de graphiques (Arc de Cercle)"
|
||||||
|
|
||||||
#: pcbnew/tool_pcb.cpp:464
|
#: pcbnew/tool_pcb.cpp:470
|
||||||
msgid "Add text"
|
msgid "Add text"
|
||||||
msgstr "Ajout de Texte"
|
msgstr "Ajout de Texte"
|
||||||
|
|
||||||
#: pcbnew/tool_pcb.cpp:469
|
#: pcbnew/tool_pcb.cpp:475
|
||||||
msgid "Add dimension"
|
msgid "Add dimension"
|
||||||
msgstr "Ajout des cotes"
|
msgstr "Ajout des cotes"
|
||||||
|
|
||||||
#: pcbnew/tool_pcb.cpp:473
|
#: pcbnew/tool_pcb.cpp:479
|
||||||
msgid "Add layer alignment target"
|
msgid "Add layer alignment target"
|
||||||
msgstr "Ajouter Mire de superposition"
|
msgstr "Ajouter Mire de superposition"
|
||||||
|
|
||||||
#: pcbnew/tool_pcb.cpp:478
|
#: pcbnew/tool_pcb.cpp:484
|
||||||
msgid "Delete items"
|
msgid "Delete items"
|
||||||
msgstr "Suppression d'éléments"
|
msgstr "Suppression d'éléments"
|
||||||
|
|
||||||
#: pcbnew/tool_pcb.cpp:483
|
#: pcbnew/tool_pcb.cpp:489
|
||||||
msgid "Offset adjust for drill and place files"
|
msgid "Offset adjust for drill and place files"
|
||||||
msgstr "Ajuste offset pour fichier de perçage et placement"
|
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"
|
msgid "Create line of specified length for microwave applications"
|
||||||
msgstr "Creation de lignes de longueur spécifiée (pour applications micro-ondes)"
|
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"
|
msgid "Create gap of specified length for microwave applications"
|
||||||
msgstr "Creation de gaps de longueur spécifiée (pour applications micro-ondes)"
|
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"
|
msgid "Create stub of specified length for microwave applications"
|
||||||
msgstr "Creation de stub de longueur spécifiée (pour applications micro-ondes)"
|
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"
|
msgid "Create stub (arc) of specified length for microwave applications"
|
||||||
msgstr "Creation de stub (arc) de longueur spécifiée (pour applications micro-ondes)"
|
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"
|
msgid "Create a polynomial shape for microwave applications"
|
||||||
msgstr "Creation de formes polynomiales (pour applications micro-ondes)"
|
msgstr "Creation de formes polynomiales (pour applications micro-ondes)"
|
||||||
|
|
||||||
#: pcbnew/tool_pcb.cpp:579
|
#: pcbnew/tool_pcb.cpp:585
|
||||||
msgid ""
|
msgid ""
|
||||||
"Auto track width: when starting on an existing track use its width\n"
|
"Auto track width: when starting on an existing track use its width\n"
|
||||||
"otherwise, use current width setting"
|
"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"
|
"Largeur de piste automatique: si on démarre sur une piste existante, utiliser sa largeur\n"
|
||||||
" sinon utiliser la largeur courante"
|
" sinon utiliser la largeur courante"
|
||||||
|
|
||||||
#: pcbnew/tool_pcb.cpp:604
|
#: pcbnew/tool_pcb.cpp:610
|
||||||
msgid "Auto"
|
msgid "Auto"
|
||||||
msgstr "Auto"
|
msgstr "Auto"
|
||||||
|
|
||||||
#: pcbnew/tool_pcb.cpp:608
|
#: pcbnew/tool_pcb.cpp:614
|
||||||
msgid "Zoom "
|
msgid "Zoom "
|
||||||
msgstr "Zoom "
|
msgstr "Zoom "
|
||||||
|
|
||||||
#: pcbnew/tool_pcb.cpp:643
|
#: pcbnew/tool_pcb.cpp:649
|
||||||
msgid "User Grid"
|
msgid "User Grid"
|
||||||
msgstr "Grille perso"
|
msgstr "Grille perso"
|
||||||
|
|
||||||
#: pcbnew/tool_pcb.cpp:759
|
#: pcbnew/tool_pcb.cpp:765
|
||||||
msgid "+/- to switch"
|
msgid "+/- to switch"
|
||||||
msgstr "+/- pour commuter"
|
msgstr "+/- pour commuter"
|
||||||
|
|
||||||
|
@ -3392,7 +3396,7 @@ msgstr "Grille %.1f"
|
||||||
msgid "Grid %.3f"
|
msgid "Grid %.3f"
|
||||||
msgstr "Grille %.3f"
|
msgstr "Grille %.3f"
|
||||||
|
|
||||||
#: pcbnew/dialog_copper_zones.cpp:288
|
#: pcbnew/dialog_copper_zones.cpp:285
|
||||||
msgid ""
|
msgid ""
|
||||||
"Error :\n"
|
"Error :\n"
|
||||||
"you must choose a copper min thickness value bigger than 0.001 inch or 0.00254 mm)"
|
"you must choose a copper min thickness value bigger than 0.001 inch or 0.00254 mm)"
|
||||||
|
@ -3400,7 +3404,7 @@ msgstr ""
|
||||||
"Erreur :\n"
|
"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)"
|
"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 ""
|
msgid ""
|
||||||
"Error :\n"
|
"Error :\n"
|
||||||
"you must choose a copper bridge value for thermal reliefs bigger than the min zone thickness"
|
"you must choose a copper bridge value for thermal reliefs bigger than the min zone thickness"
|
||||||
|
@ -3408,11 +3412,11 @@ msgstr ""
|
||||||
"Erreur :\n"
|
"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"
|
"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"
|
msgid "Error : you must choose a layer"
|
||||||
msgstr "Erreur. Vous devez choisir une couche"
|
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"
|
msgid "Error : you must choose a net name"
|
||||||
msgstr "Erreur. Vous devez choisir une équipotentielle"
|
msgstr "Erreur. Vous devez choisir une équipotentielle"
|
||||||
|
|
||||||
|
@ -4072,7 +4076,7 @@ msgid "Pen Number"
|
||||||
msgstr "Numéro de plume"
|
msgstr "Numéro de plume"
|
||||||
|
|
||||||
#: pcbnew/dialog_gendrill.cpp:239
|
#: pcbnew/dialog_gendrill.cpp:239
|
||||||
#: pcbnew/dialog_general_options.cpp:376
|
#: pcbnew/dialog_general_options.cpp:385
|
||||||
msgid "Options:"
|
msgid "Options:"
|
||||||
msgstr "Options :"
|
msgstr "Options :"
|
||||||
|
|
||||||
|
@ -4282,96 +4286,96 @@ msgstr "Larg. piste: %s Diam Vias : %s"
|
||||||
msgid "Drc error, cancelled"
|
msgid "Drc error, cancelled"
|
||||||
msgstr "Erreur DRC, annulation"
|
msgstr "Erreur DRC, annulation"
|
||||||
|
|
||||||
#: pcbnew/dialog_general_options.cpp:288
|
#: pcbnew/dialog_general_options.cpp:297
|
||||||
msgid "No Display"
|
msgid "No Display"
|
||||||
msgstr "Pas d'affichage"
|
msgstr "Pas d'affichage"
|
||||||
|
|
||||||
#: pcbnew/dialog_general_options.cpp:291
|
#: pcbnew/dialog_general_options.cpp:300
|
||||||
msgid "Display Polar Coord"
|
msgid "Display Polar Coord"
|
||||||
msgstr "Affichage coord Polaires"
|
msgstr "Affichage coord Polaires"
|
||||||
|
|
||||||
#: pcbnew/dialog_general_options.cpp:300
|
#: pcbnew/dialog_general_options.cpp:309
|
||||||
msgid "millimeters"
|
msgid "millimeters"
|
||||||
msgstr "millimètres"
|
msgstr "millimètres"
|
||||||
|
|
||||||
#: pcbnew/dialog_general_options.cpp:302
|
#: pcbnew/dialog_general_options.cpp:311
|
||||||
msgid "Units"
|
msgid "Units"
|
||||||
msgstr "Unités"
|
msgstr "Unités"
|
||||||
|
|
||||||
#: pcbnew/dialog_general_options.cpp:309
|
#: pcbnew/dialog_general_options.cpp:318
|
||||||
msgid "Small"
|
msgid "Small"
|
||||||
msgstr "Petit"
|
msgstr "Petit"
|
||||||
|
|
||||||
#: pcbnew/dialog_general_options.cpp:310
|
#: pcbnew/dialog_general_options.cpp:319
|
||||||
msgid "Big"
|
msgid "Big"
|
||||||
msgstr "Grand"
|
msgstr "Grand"
|
||||||
|
|
||||||
#: pcbnew/dialog_general_options.cpp:312
|
#: pcbnew/dialog_general_options.cpp:321
|
||||||
msgid "Cursor"
|
msgid "Cursor"
|
||||||
msgstr "Curseur"
|
msgstr "Curseur"
|
||||||
|
|
||||||
#: pcbnew/dialog_general_options.cpp:324
|
#: pcbnew/dialog_general_options.cpp:333
|
||||||
msgid "Number of Layers:"
|
msgid "Number of Layers:"
|
||||||
msgstr "Nombre de Couches:"
|
msgstr "Nombre de Couches:"
|
||||||
|
|
||||||
#: pcbnew/dialog_general_options.cpp:340
|
#: pcbnew/dialog_general_options.cpp:349
|
||||||
msgid "Max Links:"
|
msgid "Max Links:"
|
||||||
msgstr "Liens max:"
|
msgstr "Liens max:"
|
||||||
|
|
||||||
#: pcbnew/dialog_general_options.cpp:356
|
#: pcbnew/dialog_general_options.cpp:365
|
||||||
msgid "Auto Save (minuts):"
|
msgid "Auto Save (minuts):"
|
||||||
msgstr "Sauveg. Auto (min)"
|
msgstr "Sauveg. Auto (min)"
|
||||||
|
|
||||||
#: pcbnew/dialog_general_options.cpp:385
|
#: pcbnew/dialog_general_options.cpp:394
|
||||||
msgid "Drc ON"
|
msgid "Drc ON"
|
||||||
msgstr "Drc ACTIVE"
|
msgstr "Drc ACTIVE"
|
||||||
|
|
||||||
#: pcbnew/dialog_general_options.cpp:394
|
#: pcbnew/dialog_general_options.cpp:403
|
||||||
msgid "Show Ratsnest"
|
msgid "Show Ratsnest"
|
||||||
msgstr "Montrer le chevelu général"
|
msgstr "Montrer le chevelu général"
|
||||||
|
|
||||||
#: pcbnew/dialog_general_options.cpp:401
|
#: pcbnew/dialog_general_options.cpp:410
|
||||||
msgid "Show Mod Ratsnest"
|
msgid "Show Mod Ratsnest"
|
||||||
msgstr "Montrer le chevelu du module"
|
msgstr "Montrer le chevelu du module"
|
||||||
|
|
||||||
#: pcbnew/dialog_general_options.cpp:408
|
#: pcbnew/dialog_general_options.cpp:417
|
||||||
msgid "Tracks Auto Del"
|
msgid "Tracks Auto Del"
|
||||||
msgstr "Auto Supp. Pistes"
|
msgstr "Auto Supp. Pistes"
|
||||||
|
|
||||||
#: pcbnew/dialog_general_options.cpp:415
|
#: pcbnew/dialog_general_options.cpp:424
|
||||||
msgid "Track only 45 degrees"
|
msgid "Track only 45 degrees"
|
||||||
msgstr "Piste à 45° seulement"
|
msgstr "Piste à 45° seulement"
|
||||||
|
|
||||||
#: pcbnew/dialog_general_options.cpp:422
|
#: pcbnew/dialog_general_options.cpp:431
|
||||||
msgid "Segments 45 Only"
|
msgid "Segments 45 Only"
|
||||||
msgstr "Segments 45 seulement"
|
msgstr "Segments 45 seulement"
|
||||||
|
|
||||||
#: pcbnew/dialog_general_options.cpp:429
|
#: pcbnew/dialog_general_options.cpp:438
|
||||||
msgid "Auto PAN"
|
msgid "Auto PAN"
|
||||||
msgstr "Auto PAN"
|
msgstr "Auto PAN"
|
||||||
|
|
||||||
#: pcbnew/dialog_general_options.cpp:437
|
#: pcbnew/dialog_general_options.cpp:446
|
||||||
msgid "Double Segm Track"
|
msgid "Double Segm Track"
|
||||||
msgstr "2 segments pour piste"
|
msgstr "2 segments pour piste"
|
||||||
|
|
||||||
#: pcbnew/dialog_general_options.cpp:450
|
#: pcbnew/dialog_general_options.cpp:459
|
||||||
#: pcbnew/dialog_general_options.cpp:465
|
#: pcbnew/dialog_general_options.cpp:474
|
||||||
msgid "When creating tracks"
|
msgid "When creating tracks"
|
||||||
msgstr "En creation de pistes"
|
msgstr "En creation de pistes"
|
||||||
|
|
||||||
#: pcbnew/dialog_general_options.cpp:453
|
#: pcbnew/dialog_general_options.cpp:462
|
||||||
msgid "Magnetic Pads"
|
msgid "Magnetic Pads"
|
||||||
msgstr " Pads magnétiques"
|
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"
|
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"
|
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"
|
msgid "Magnetic Tracks"
|
||||||
msgstr "Pistes Magnétiques"
|
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"
|
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"
|
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:"
|
msgstr "Autres Options:"
|
||||||
|
|
||||||
#: pcbnew/dialog_copper_zones_base.cpp:118
|
#: 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"
|
msgid "Zone clearance value"
|
||||||
msgstr "Valeur isolation zone"
|
msgstr "Valeur isolation zone"
|
||||||
|
|
||||||
#: pcbnew/dialog_copper_zones_base.cpp:131
|
#: pcbnew/dialog_copper_zones_base.cpp:125
|
||||||
msgid "Zone min thickness value"
|
msgid "Zone min thickness value"
|
||||||
msgstr "Valeur épaisseur min pour zone"
|
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"
|
msgid "Value of minimun thickness of filled areas"
|
||||||
msgstr "Valeur de l'épaisseur minimum des zones remplies"
|
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"
|
msgid "Export Setup to others zones"
|
||||||
msgstr "Exporter options vers autres 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"
|
msgid "Export this zone setup to all others copper zones"
|
||||||
msgstr "Exporter ces options vers les autres zones de cuivre"
|
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/dialog_pad_properties_base.cpp:91
|
||||||
#: pcbnew/zone_filling_deprecated_algorithm.cpp:310
|
#: pcbnew/zone_filling_deprecated_algorithm.cpp:310
|
||||||
msgid "Ok"
|
msgid "Ok"
|
||||||
msgstr "Ok"
|
msgstr "Ok"
|
||||||
|
|
||||||
#: pcbnew/dialog_copper_zones_base.cpp:172
|
#: pcbnew/dialog_copper_zones_base.cpp:171
|
||||||
msgid "Nets Display Options:"
|
msgid "Nets Display Options:"
|
||||||
msgstr "Options d'Affichage des Nets"
|
msgstr "Options d'Affichage des Nets"
|
||||||
|
|
||||||
#: pcbnew/dialog_copper_zones_base.cpp:174
|
#: pcbnew/dialog_copper_zones_base.cpp:173
|
||||||
msgid "Alphabetic"
|
msgid "Alphabetic"
|
||||||
msgstr "Alphabetique"
|
msgstr "Alphabetique"
|
||||||
|
|
||||||
#: pcbnew/dialog_copper_zones_base.cpp:174
|
#: pcbnew/dialog_copper_zones_base.cpp:173
|
||||||
msgid "Advanced"
|
msgid "Advanced"
|
||||||
msgstr "Avancé"
|
msgstr "Avancé"
|
||||||
|
|
||||||
#: pcbnew/dialog_copper_zones_base.cpp:176
|
#: pcbnew/dialog_copper_zones_base.cpp:175
|
||||||
msgid "Net sorting:"
|
msgid "Net sorting:"
|
||||||
msgstr "Tri des Equipotentielles:"
|
msgstr "Tri des Equipotentielles:"
|
||||||
|
|
||||||
#: pcbnew/dialog_copper_zones_base.cpp:178
|
#: pcbnew/dialog_copper_zones_base.cpp:177
|
||||||
msgid ""
|
msgid ""
|
||||||
"Nets can be sorted:\n"
|
"Nets can be sorted:\n"
|
||||||
"By alphabetic order\n"
|
"By alphabetic order\n"
|
||||||
|
@ -4596,11 +4588,11 @@ msgstr ""
|
||||||
"Paur ordre alphabétique\n"
|
"Paur ordre alphabétique\n"
|
||||||
"Par nombre de pads dans les équipotentielles (avancé)"
|
"Par nombre de pads dans les équipotentielles (avancé)"
|
||||||
|
|
||||||
#: pcbnew/dialog_copper_zones_base.cpp:182
|
#: pcbnew/dialog_copper_zones_base.cpp:181
|
||||||
msgid "Filter"
|
msgid "Filter"
|
||||||
msgstr "Filtre"
|
msgstr "Filtre"
|
||||||
|
|
||||||
#: pcbnew/dialog_copper_zones_base.cpp:187
|
#: pcbnew/dialog_copper_zones_base.cpp:186
|
||||||
msgid ""
|
msgid ""
|
||||||
"Pattern in advanced mode, to filter net names in list\n"
|
"Pattern in advanced mode, to filter net names in list\n"
|
||||||
"Net names matching this pattern are not displayed"
|
"Net names matching this pattern are not displayed"
|
||||||
|
@ -6402,11 +6394,11 @@ msgstr "Ajout Composant"
|
||||||
msgid "Add Wire"
|
msgid "Add Wire"
|
||||||
msgstr "Ajouter Fils"
|
msgstr "Ajouter Fils"
|
||||||
|
|
||||||
#: eeschema/libarch.cpp:66
|
#: eeschema/libarch.cpp:68
|
||||||
msgid "Failed to create archive lib file "
|
msgid "Failed to create archive lib file "
|
||||||
msgstr "Impossible de créer le fichier librairie archive "
|
msgstr "Impossible de créer le fichier librairie archive "
|
||||||
|
|
||||||
#: eeschema/libarch.cpp:73
|
#: eeschema/libarch.cpp:75
|
||||||
msgid "Failed to create doc lib file "
|
msgid "Failed to create doc lib file "
|
||||||
msgstr "Impossible de créer le fichier lib document"
|
msgstr "Impossible de créer le fichier lib document"
|
||||||
|
|
||||||
|
@ -6511,7 +6503,7 @@ msgstr "Oriente Composant"
|
||||||
msgid "Footprint "
|
msgid "Footprint "
|
||||||
msgstr "Empreinte: "
|
msgstr "Empreinte: "
|
||||||
|
|
||||||
#: eeschema/onrightclick.cpp:322
|
#: eeschema/onrightclick.cpp:323
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Unit %d %c"
|
msgid "Unit %d %c"
|
||||||
msgstr "Unité %d %c"
|
msgstr "Unité %d %c"
|
||||||
|
@ -10426,15 +10418,15 @@ msgstr "Texte Module invisible"
|
||||||
msgid "Anchors"
|
msgid "Anchors"
|
||||||
msgstr "Ancres"
|
msgstr "Ancres"
|
||||||
|
|
||||||
#: pcbnew/set_color.h:432
|
#: pcbnew/set_color.h:423
|
||||||
msgid "Show Noconnect"
|
msgid "Show Noconnect"
|
||||||
msgstr "Montrer Non Conn"
|
msgstr "Montrer Non Conn"
|
||||||
|
|
||||||
#: pcbnew/set_color.h:441
|
#: pcbnew/set_color.h:432
|
||||||
msgid "Show Modules Cmp"
|
msgid "Show Modules Cmp"
|
||||||
msgstr "Afficher Modules Cmp"
|
msgstr "Afficher Modules Cmp"
|
||||||
|
|
||||||
#: pcbnew/set_color.h:450
|
#: pcbnew/set_color.h:441
|
||||||
msgid "Show Modules Cu"
|
msgid "Show Modules Cu"
|
||||||
msgstr "Afficher 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>"
|
msgid "ErrType(%d): <b>%s</b><ul><li> %s: %s </li></ul>"
|
||||||
msgstr "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"
|
msgid "Fill Zones Options"
|
||||||
msgstr "Options de Remplissage de Zone"
|
msgstr "Options de Remplissage de Zone"
|
||||||
|
|
||||||
|
@ -10798,6 +10790,20 @@ msgstr "Imprimer"
|
||||||
msgid "Create SVG file"
|
msgid "Create SVG file"
|
||||||
msgstr "Créer Fichier SVG"
|
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"
|
#~ msgid "grid user"
|
||||||
#~ msgstr "grille user"
|
#~ msgstr "grille user"
|
||||||
|
|
||||||
|
|
|
@ -28,6 +28,7 @@ set(PCBNEW_SRCS
|
||||||
class_mire.cpp
|
class_mire.cpp
|
||||||
class_module.cpp
|
class_module.cpp
|
||||||
class_pad.cpp
|
class_pad.cpp
|
||||||
|
class_pad_draw_functions.cpp
|
||||||
classpcb.cpp
|
classpcb.cpp
|
||||||
class_pcb_text.cpp
|
class_pcb_text.cpp
|
||||||
class_text_mod.cpp
|
class_text_mod.cpp
|
||||||
|
|
|
@ -32,7 +32,7 @@ void Affiche_Infos_Equipot( int netcode, WinEDA_BasePcbFrame* frame )
|
||||||
|
|
||||||
equipot = frame->m_Pcb->FindNet( netcode );
|
equipot = frame->m_Pcb->FindNet( netcode );
|
||||||
if( equipot )
|
if( equipot )
|
||||||
Affiche_1_Parametre( frame, 1, _( "Net Name" ), equipot->m_Netname, RED );
|
Affiche_1_Parametre( frame, 1, _( "Net Name" ), equipot->GetNetname(), RED );
|
||||||
else
|
else
|
||||||
Affiche_1_Parametre( frame, 1, _( "No Net (not connected)" ), wxEmptyString, RED );
|
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() )
|
for( EQUIPOT* net = m_Equipots; net; net=net->Next() )
|
||||||
{
|
{
|
||||||
if( net->m_Netname == aNetname )
|
if( net->GetNetname() == aNetname )
|
||||||
return net;
|
return net;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -882,7 +882,7 @@ int s_SortByNames(const void * ptr1, const void * ptr2)
|
||||||
{
|
{
|
||||||
EQUIPOT* item1 = * (EQUIPOT**) ptr1;
|
EQUIPOT* item1 = * (EQUIPOT**) ptr1;
|
||||||
EQUIPOT* item2 = * (EQUIPOT**) ptr2;
|
EQUIPOT* item2 = * (EQUIPOT**) ptr2;
|
||||||
return item1->m_Netname.CmpNoCase(item2->m_Netname);
|
return item1->GetNetname().CmpNoCase(item2->GetNetname());
|
||||||
}
|
}
|
||||||
|
|
||||||
// Sort nets by decreasing pad count
|
// Sort nets by decreasing pad count
|
||||||
|
@ -892,7 +892,7 @@ int s_SortByNodes(const void * ptr1, const void * ptr2)
|
||||||
EQUIPOT* item2 = * (EQUIPOT**) ptr2;
|
EQUIPOT* item2 = * (EQUIPOT**) ptr2;
|
||||||
if ( (item1->m_NbNodes - item2->m_NbNodes) != 0 )
|
if ( (item1->m_NbNodes - item2->m_NbNodes) != 0 )
|
||||||
return - (item1->m_NbNodes - item2->m_NbNodes);
|
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 */
|
/* count items to list and sort */
|
||||||
for( net = m_Equipots; net; net=net->Next() )
|
for( net = m_Equipots; net; net=net->Next() )
|
||||||
{
|
{
|
||||||
if ( net->m_Netname.IsEmpty() ) continue;
|
if ( net->GetNetname().IsEmpty() ) continue;
|
||||||
NetCount++;
|
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) );
|
EQUIPOT* * net_ptr_list = (EQUIPOT* *) MyMalloc( NetCount * sizeof(* net_ptr_list) );
|
||||||
for( ii = 0, net = m_Equipots; net; net=net->Next() )
|
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;
|
net_ptr_list[ii] = net;
|
||||||
ii++;
|
ii++;
|
||||||
}
|
}
|
||||||
|
@ -945,7 +945,7 @@ int BOARD::ReturnSortedNetnamesList( wxArrayString & aNames, const int aSort_Typ
|
||||||
for( ii = 0; ii < NetCount; ii++ )
|
for( ii = 0; ii < NetCount; ii++ )
|
||||||
{
|
{
|
||||||
net = net_ptr_list[ii];
|
net = net_ptr_list[ii];
|
||||||
aNames.Add(net->m_Netname);
|
aNames.Add(net->GetNetname());
|
||||||
}
|
}
|
||||||
|
|
||||||
MyFree(net_ptr_list);
|
MyFree(net_ptr_list);
|
||||||
|
|
|
@ -56,7 +56,7 @@ wxString BOARD_ITEM::MenuText( const BOARD* aPcb ) const
|
||||||
switch( item->Type() )
|
switch( item->Type() )
|
||||||
{
|
{
|
||||||
case TYPE_EQUIPOT:
|
case TYPE_EQUIPOT:
|
||||||
text << _( "Net" ) << ( (EQUIPOT*) item )->m_Netname << wxT( " " ) <<
|
text << _( "Net" ) << ( (EQUIPOT*) item )->GetNetname() << wxT( " " ) <<
|
||||||
( (EQUIPOT*) item )->GetNet();
|
( (EQUIPOT*) item )->GetNet();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -130,7 +130,7 @@ wxString BOARD_ITEM::MenuText( const BOARD* aPcb ) const
|
||||||
net = aPcb->FindNet( ((TRACK*)item)->GetNet() );
|
net = aPcb->FindNet( ((TRACK*)item)->GetNet() );
|
||||||
if( net )
|
if( net )
|
||||||
{
|
{
|
||||||
text << wxT( " [" ) << net->m_Netname << wxT( "]" );
|
text << wxT( " [" ) << net->GetNetname() << wxT( "]" );
|
||||||
}
|
}
|
||||||
text << _( " on " ) << aPcb->GetLayerName( item->GetLayer() ).Trim()
|
text << _( " on " ) << aPcb->GetLayerName( item->GetLayer() ).Trim()
|
||||||
<< wxT(" ") << _("Net:") << ((TRACK*)item)->GetNet()
|
<< wxT(" ") << _("Net:") << ((TRACK*)item)->GetNet()
|
||||||
|
@ -160,7 +160,7 @@ wxString BOARD_ITEM::MenuText( const BOARD* aPcb ) const
|
||||||
net = aPcb->FindNet( ( (ZONE_CONTAINER*) item )->GetNet() );
|
net = aPcb->FindNet( ( (ZONE_CONTAINER*) item )->GetNet() );
|
||||||
if( net )
|
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)
|
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() );
|
net = aPcb->FindNet( ( (SEGZONE*) item )->GetNet() );
|
||||||
if( net )
|
if( net )
|
||||||
{
|
{
|
||||||
text << wxT( " [" ) << net->m_Netname << wxT( "]" );
|
text << wxT( " [" ) << net->GetNetname() << wxT( "]" );
|
||||||
}
|
}
|
||||||
text << _( " on " ) << aPcb->GetLayerName( item->GetLayer() ).Trim();
|
text << _( " on " ) << aPcb->GetLayerName( item->GetLayer() ).Trim();
|
||||||
break;
|
break;
|
||||||
|
@ -202,7 +202,7 @@ wxString BOARD_ITEM::MenuText( const BOARD* aPcb ) const
|
||||||
net = aPcb->FindNet( via->GetNet() );
|
net = aPcb->FindNet( via->GetNet() );
|
||||||
if( net )
|
if( net )
|
||||||
{
|
{
|
||||||
text << wxT( " [" ) << net->m_Netname << wxT( "]" );
|
text << wxT( " [" ) << net->GetNetname() << wxT( "]" );
|
||||||
}
|
}
|
||||||
text << wxChar(' ') << _("Net:") << via->GetNet();
|
text << wxChar(' ') << _("Net:") << via->GetNet();
|
||||||
|
|
||||||
|
|
|
@ -44,15 +44,16 @@ EQUIPOT::~EQUIPOT()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
wxPoint& EQUIPOT::GetPosition()
|
wxPoint& EQUIPOT::GetPosition()
|
||||||
{
|
{
|
||||||
static wxPoint dummy;
|
static wxPoint dummy;
|
||||||
|
|
||||||
return dummy;
|
return dummy;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*********************************************************/
|
/*********************************************************/
|
||||||
int EQUIPOT:: ReadEquipotDescr( FILE* File, int* LineNum )
|
int EQUIPOT:: ReadDescr( FILE* File, int* LineNum )
|
||||||
/*********************************************************/
|
/*********************************************************/
|
||||||
|
|
||||||
/* Routine de lecture de 1 descr Equipotentielle.
|
/* Routine de lecture de 1 descr Equipotentielle.
|
||||||
|
@ -90,31 +91,52 @@ int EQUIPOT:: ReadEquipotDescr( FILE* File, int* LineNum )
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************/
|
||||||
bool EQUIPOT::Save( FILE* aFile ) const
|
bool EQUIPOT::Save( FILE* aFile ) const
|
||||||
|
/**************************************/
|
||||||
{
|
{
|
||||||
if( GetState( DELETED ) )
|
if( GetState( DELETED ) )
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
bool rc = false;
|
bool success = false;
|
||||||
|
|
||||||
fprintf( aFile, "$EQUIPOT\n" );
|
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", "~" );
|
fprintf( aFile, "St %s\n", "~" );
|
||||||
|
|
||||||
if( m_ForceWidth )
|
if( m_ForceWidth )
|
||||||
fprintf( aFile, "Lw %d\n", 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;
|
goto out;
|
||||||
|
|
||||||
rc = true;
|
success = true;
|
||||||
|
|
||||||
out:
|
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)
|
#if defined(DEBUG)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function Show
|
* Function Show
|
||||||
* is used to output the object tree, currently for debugging only.
|
* is used to output the object tree, currently for debugging only.
|
||||||
|
@ -129,6 +151,6 @@ void EQUIPOT::Show( int nestLevel, std::ostream& os )
|
||||||
" name=\"" << m_Netname.mb_str() << '"' <<
|
" name=\"" << m_Netname.mb_str() << '"' <<
|
||||||
" netcode=\"" << GetNet() << "\"/>\n";
|
" netcode=\"" << GetNet() << "\"/>\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,22 +1,21 @@
|
||||||
/*************************************************************************/
|
/*************************************************/
|
||||||
/* classe EQUIPOT: definition des elements relatifs aux equipotentielles */
|
/* classe EQUIPOT: Class to handle info on nets */
|
||||||
/*************************************************************************/
|
/*************************************************/
|
||||||
|
|
||||||
|
|
||||||
/* Representation des descriptions des equipotentielles */
|
|
||||||
|
|
||||||
class EQUIPOT : public BOARD_ITEM
|
class EQUIPOT : public BOARD_ITEM
|
||||||
{
|
{
|
||||||
private:
|
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:
|
public:
|
||||||
wxString m_Netname; // nom du net
|
|
||||||
int status; // no route, hight light...
|
int status; // no route, hight light...
|
||||||
int m_NbNodes; // nombre de pads appartenant au net
|
int m_NbNodes; // Pads count for this net
|
||||||
int m_NbLink; // nombre de chevelus
|
int m_NbLink; // Ratsnets count for this net
|
||||||
int m_NbNoconn; // nombre de chevelus actifs
|
int m_NbNoconn; // Ratsnets remaining to route count
|
||||||
int m_Masque_Layer; // couches interdites (bit 0 = layer 0...)
|
int m_Masque_Layer; // couches interdites (bit 0 = layer 0...)
|
||||||
int m_Masque_Plan; // couches mises en plan de cuivre
|
int m_Masque_Plan; // couches mises en plan de cuivre
|
||||||
int m_ForceWidth; // specific width (O = default width)
|
int m_ForceWidth; // specific width (O = default width)
|
||||||
|
@ -41,7 +40,7 @@ public:
|
||||||
wxPoint& GetPosition();
|
wxPoint& GetPosition();
|
||||||
|
|
||||||
/* Readind and writing data on files */
|
/* Readind and writing data on files */
|
||||||
int ReadEquipotDescr( FILE* File, int* LineNum );
|
int ReadDescr( FILE* File, int* LineNum );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function Save
|
* Function Save
|
||||||
|
@ -52,11 +51,11 @@ public:
|
||||||
bool Save( FILE* aFile ) const;
|
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,
|
void Draw( WinEDA_DrawPanel* panel, wxDC* DC,
|
||||||
int aDrawMode, const wxPoint& offset = ZeroOffset )
|
int aDrawMode, const wxPoint& offset = ZeroOffset );
|
||||||
{
|
|
||||||
// @todo we actually could show a NET, simply show all the tracks and pads
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -66,6 +65,23 @@ public:
|
||||||
int GetNet() const { return m_NetCode; }
|
int GetNet() const { return m_NetCode; }
|
||||||
void SetNet( int aNetCode ) { m_NetCode = aNetCode; }
|
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
|
* Function GetClass
|
||||||
|
|
|
@ -3,24 +3,12 @@
|
||||||
/************************************************/
|
/************************************************/
|
||||||
|
|
||||||
#include "fctsys.h"
|
#include "fctsys.h"
|
||||||
#include "gr_basic.h"
|
|
||||||
|
|
||||||
#include "wxstruct.h"
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "pcbnew.h"
|
#include "pcbnew.h"
|
||||||
#include "trigo.h"
|
#include "trigo.h"
|
||||||
#include "id.h" // ID_TRACK_BUTT
|
#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 */
|
/* classe D_PAD : constructeur */
|
||||||
|
@ -43,7 +31,7 @@ D_PAD::D_PAD( MODULE* parent ) : BOARD_CONNECTED_ITEM( parent, TYPE_PAD )
|
||||||
m_Attribut = PAD_STANDARD; // NORMAL, PAD_SMD, PAD_CONN, Bit 7 = STACK
|
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();
|
ComputeRayon();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -72,8 +60,8 @@ void D_PAD::ComputeRayon()
|
||||||
|
|
||||||
case PAD_RECT:
|
case PAD_RECT:
|
||||||
case PAD_TRAPEZOID:
|
case PAD_TRAPEZOID:
|
||||||
m_Rayon = (int) (sqrt( (double) m_Size.y * m_Size.y
|
m_Rayon = (int) ( sqrt( (double) m_Size.y * m_Size.y
|
||||||
+ (double) m_Size.x * m_Size.x ) / 2);
|
+ (double) m_Size.x * m_Size.x ) / 2 );
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -89,8 +77,8 @@ EDA_Rect D_PAD::GetBoundingBox()
|
||||||
// Calculate area:
|
// Calculate area:
|
||||||
ComputeRayon(); // calculate the radius of the area, considered as a circle
|
ComputeRayon(); // calculate the radius of the area, considered as a circle
|
||||||
EDA_Rect area;
|
EDA_Rect area;
|
||||||
area.SetOrigin(m_Pos);
|
area.SetOrigin( m_Pos );
|
||||||
area.Inflate(m_Rayon, m_Rayon);
|
area.Inflate( m_Rayon, m_Rayon );
|
||||||
|
|
||||||
return area;
|
return area;
|
||||||
}
|
}
|
||||||
|
@ -171,6 +159,18 @@ void D_PAD::SetPadName( const wxString& name )
|
||||||
m_Padname[ii] = 0;
|
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 )
|
void D_PAD::Copy( D_PAD* source )
|
||||||
|
@ -199,416 +199,7 @@ void D_PAD::Copy( D_PAD* source )
|
||||||
SetSubRatsnest( 0 );
|
SetSubRatsnest( 0 );
|
||||||
SetSubNet( 0 );
|
SetSubNet( 0 );
|
||||||
m_Netname = source->m_Netname;
|
m_Netname = source->m_Netname;
|
||||||
}
|
m_ShortNetname = source->m_ShortNetname;
|
||||||
|
|
||||||
|
|
||||||
/*******************************************************************************************/
|
|
||||||
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 );
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -735,7 +326,7 @@ int D_PAD::ReadDescr( FILE* File, int* LineNum )
|
||||||
|
|
||||||
/* Lecture du netname */
|
/* Lecture du netname */
|
||||||
ReadDelimitedText( BufLine, PtLine, sizeof(BufLine) );
|
ReadDelimitedText( BufLine, PtLine, sizeof(BufLine) );
|
||||||
m_Netname = CONV_FROM_UTF8( StrPurge( BufLine ) );
|
SetNetname(CONV_FROM_UTF8( StrPurge( BufLine ) ));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'P':
|
case 'P':
|
||||||
|
@ -766,7 +357,7 @@ bool D_PAD::Save( FILE* aFile ) const
|
||||||
bool rc = false;
|
bool rc = false;
|
||||||
|
|
||||||
// check the return values for first and last fprints() in this function
|
// 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;
|
goto out;
|
||||||
|
|
||||||
switch( m_PadShape )
|
switch( m_PadShape )
|
||||||
|
@ -826,7 +417,7 @@ bool D_PAD::Save( FILE* aFile ) const
|
||||||
|
|
||||||
fprintf( aFile, "Po %d %d\n", m_Pos0.x, m_Pos0.y );
|
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;
|
goto out;
|
||||||
|
|
||||||
rc = true;
|
rc = true;
|
||||||
|
@ -836,7 +427,6 @@ out:
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/******************************************************/
|
/******************************************************/
|
||||||
void D_PAD::Display_Infos( WinEDA_DrawFrame* frame )
|
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] =
|
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" )
|
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;
|
pos += 10;
|
||||||
#if 1 // Used only to debug connectivity calculations
|
#if 1 // Used only to debug connectivity calculations
|
||||||
Line.Printf( wxT( "%d-%d-%d " ), GetSubRatsnest(), GetSubNet(), m_ZoneSubnet );
|
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
|
#endif
|
||||||
|
|
||||||
wxString LayerInfo;
|
wxString LayerInfo;
|
||||||
|
@ -962,8 +553,13 @@ void D_PAD::Display_Infos( WinEDA_DrawFrame* frame )
|
||||||
|
|
||||||
pos += 6;
|
pos += 6;
|
||||||
int attribut = m_Attribut & 15;
|
int attribut = m_Attribut & 15;
|
||||||
if ( attribut > 3 ) attribut = 3;
|
if( attribut > 3 )
|
||||||
Affiche_1_Parametre( frame, pos, Msg_Pad_Shape[m_PadShape],Msg_Pad_Attribut[attribut], DARKGREEN );
|
attribut = 3;
|
||||||
|
Affiche_1_Parametre( frame,
|
||||||
|
pos,
|
||||||
|
Msg_Pad_Shape[m_PadShape],
|
||||||
|
Msg_Pad_Attribut[attribut],
|
||||||
|
DARKGREEN );
|
||||||
|
|
||||||
valeur_param( m_Size.x, Line );
|
valeur_param( m_Size.x, Line );
|
||||||
pos += 6;
|
pos += 6;
|
||||||
|
@ -992,7 +588,7 @@ void D_PAD::Display_Infos( WinEDA_DrawFrame* frame )
|
||||||
int module_orient = module ? module->m_Orient : 0;
|
int module_orient = module ? module->m_Orient : 0;
|
||||||
if( module_orient )
|
if( module_orient )
|
||||||
Line.Printf( wxT( "%3.1f(+%3.1f)" ),
|
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
|
else
|
||||||
Line.Printf( wxT( "%3.1f" ), (float) m_Orient / 10 );
|
Line.Printf( wxT( "%3.1f" ), (float) m_Orient / 10 );
|
||||||
pos += 8;
|
pos += 8;
|
||||||
|
@ -1011,7 +607,7 @@ void D_PAD::Display_Infos( WinEDA_DrawFrame* frame )
|
||||||
// see class_pad.h
|
// see class_pad.h
|
||||||
bool D_PAD::IsOnLayer( int aLayer ) const
|
bool D_PAD::IsOnLayer( int aLayer ) const
|
||||||
{
|
{
|
||||||
return (1<<aLayer) & m_Masque_Layer;
|
return (1 << aLayer) & m_Masque_Layer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1099,11 +695,20 @@ static const char* ShowPadType( int aPadType )
|
||||||
{
|
{
|
||||||
switch( aPadType )
|
switch( aPadType )
|
||||||
{
|
{
|
||||||
case PAD_CIRCLE: return "circle";
|
case PAD_CIRCLE:
|
||||||
case PAD_OVAL: return "oval";
|
return "circle";
|
||||||
case PAD_RECT: return "rect";
|
|
||||||
case PAD_TRAPEZOID: return "trap";
|
case PAD_OVAL:
|
||||||
default: return "??unknown??";
|
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 )
|
switch( aPadAttr )
|
||||||
{
|
{
|
||||||
case PAD_STANDARD: return "STD";
|
case PAD_STANDARD:
|
||||||
case PAD_SMD: return "SMD";
|
return "STD";
|
||||||
case PAD_CONN: return "CONN";
|
|
||||||
case PAD_HOLE_NOT_PLATED: return "HOLE";
|
case PAD_SMD:
|
||||||
default: return "??unkown??";
|
return "SMD";
|
||||||
|
|
||||||
|
case PAD_CONN:
|
||||||
|
return "CONN";
|
||||||
|
|
||||||
|
case PAD_HOLE_NOT_PLATED:
|
||||||
|
return "HOLE";
|
||||||
|
|
||||||
|
default:
|
||||||
|
return "??unkown??";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1150,4 +764,5 @@ void D_PAD::Show( int nestLevel, std::ostream& os )
|
||||||
// NestedSpace( nestLevel, os ) << "</" << GetClass().Lower().mb_str() << ">\n";
|
// NestedSpace( nestLevel, os ) << "</" << GetClass().Lower().mb_str() << ">\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -12,6 +12,8 @@ class D_PAD : public BOARD_CONNECTED_ITEM
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
int m_NetCode; // Net number for fast comparisons
|
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:
|
public:
|
||||||
|
@ -25,8 +27,6 @@ public:
|
||||||
*/
|
*/
|
||||||
};
|
};
|
||||||
|
|
||||||
wxString m_Netname; /* Net Name */
|
|
||||||
|
|
||||||
int m_Masque_Layer; // Bitwise layer :1= copper layer, 15= cmp,
|
int m_Masque_Layer; // Bitwise layer :1= copper layer, 15= cmp,
|
||||||
// 2..14 = internal layers
|
// 2..14 = internal layers
|
||||||
// 16 .. 31 = technical layers
|
// 16 .. 31 = technical layers
|
||||||
|
@ -73,6 +73,30 @@ public:
|
||||||
|
|
||||||
D_PAD* Next() { return (D_PAD*) Pnext; }
|
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
|
* Function GetPosition
|
||||||
* returns the position of this object.
|
* 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;
|
size.x = -size.x;
|
||||||
|
|
||||||
/* Trace du texte */
|
/* 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 );
|
orient, size, GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_CENTER, width );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -38,6 +38,7 @@ void DbgDisplayTrackInfos( TRACK* track )
|
||||||
wxMessageBox( msg );
|
wxMessageBox( msg );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
@ -56,7 +57,6 @@ static bool ShowClearance( const TRACK* aTrack )
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**********************************************************/
|
/**********************************************************/
|
||||||
TRACK::TRACK( BOARD_ITEM* aParent, KICAD_T idtype ) :
|
TRACK::TRACK( BOARD_ITEM* aParent, KICAD_T idtype ) :
|
||||||
BOARD_CONNECTED_ITEM( aParent, idtype )
|
BOARD_CONNECTED_ITEM( aParent, idtype )
|
||||||
|
@ -138,16 +138,16 @@ TRACK* TRACK::Copy() const
|
||||||
* Function GetDrillValue
|
* Function GetDrillValue
|
||||||
* calculate the drill value for vias (m-Drill if > 0, or default drill value for the board
|
* calculate the drill value for vias (m-Drill if > 0, or default drill value for the board
|
||||||
* @return real drill_value
|
* @return real drill_value
|
||||||
*/
|
*/
|
||||||
int TRACK::GetDrillValue() const
|
int TRACK::GetDrillValue() const
|
||||||
{
|
{
|
||||||
if ( Type() != TYPE_VIA )
|
if( Type() != TYPE_VIA )
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
if ( m_Drill >= 0 )
|
if( m_Drill >= 0 )
|
||||||
return m_Drill;
|
return m_Drill;
|
||||||
|
|
||||||
if ( m_Shape == VIA_MICROVIA )
|
if( m_Shape == VIA_MICROVIA )
|
||||||
return g_DesignSettings.m_MicroViaDrill;
|
return g_DesignSettings.m_MicroViaDrill;
|
||||||
|
|
||||||
return g_DesignSettings.m_ViaDrill;
|
return g_DesignSettings.m_ViaDrill;
|
||||||
|
@ -222,7 +222,7 @@ int TRACK::IsPointOnEnds( const wxPoint& point, int min_dist )
|
||||||
EDA_Rect TRACK::GetBoundingBox()
|
EDA_Rect TRACK::GetBoundingBox()
|
||||||
{
|
{
|
||||||
// end of track is round, this is its radius, rounded up
|
// 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 ymax;
|
||||||
int xmax;
|
int xmax;
|
||||||
|
@ -247,7 +247,7 @@ EDA_Rect TRACK::GetBoundingBox()
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
radius = ( m_Width+1 )/2;
|
radius = ( m_Width + 1 ) / 2;
|
||||||
|
|
||||||
ymax = MAX( m_Start.y, m_End.y );
|
ymax = MAX( m_Start.y, m_End.y );
|
||||||
xmax = MAX( m_Start.x, m_End.x );
|
xmax = MAX( m_Start.x, m_End.x );
|
||||||
|
@ -269,7 +269,7 @@ EDA_Rect TRACK::GetBoundingBox()
|
||||||
xmin -= radius;
|
xmin -= radius;
|
||||||
|
|
||||||
// return a rectangle which is [pos,dim) in nature. therefore the +1
|
// 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;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -528,7 +528,6 @@ bool TRACK::Save( FILE* aFile ) const
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*********************************************************************/
|
/*********************************************************************/
|
||||||
void TRACK::Draw( WinEDA_DrawPanel* panel, wxDC* DC, int draw_mode, const wxPoint& notUsed )
|
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
|
if( m_Flags & DRAW_ERASED ) // draw in background color, used by classs TRACK in gerbview
|
||||||
{
|
{
|
||||||
color = g_DrawBgColor;
|
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
|
else
|
||||||
{
|
{
|
||||||
color = g_DesignSettings.m_LayerColor[m_Layer];
|
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 )
|
if( m_Shape == S_CIRCLE )
|
||||||
{
|
{
|
||||||
rayon = (int) hypot( (double) (m_End.x - m_Start.x),
|
rayon = (int) hypot( (double) ( m_End.x - m_Start.x ),
|
||||||
(double) (m_End.y - m_Start.y) );
|
(double) ( m_End.y - m_Start.y ) );
|
||||||
if( (l_piste / zoom) < L_MIN_DESSIN )
|
if( (l_piste / zoom) < L_MIN_DESSIN )
|
||||||
{
|
{
|
||||||
GRCircle( &panel->m_ClipBox, DC, m_Start.x, m_Start.y, rayon, color );
|
GRCircle( &panel->m_ClipBox, DC, m_Start.x, m_Start.y, rayon, color );
|
||||||
|
@ -685,8 +683,9 @@ void SEGVIA::Draw( WinEDA_DrawPanel* panel, wxDC* DC, int draw_mode, const wxPoi
|
||||||
rayon = zoom;
|
rayon = zoom;
|
||||||
|
|
||||||
GRCircle( &panel->m_ClipBox, DC, m_Start.x, m_Start.y, rayon, color );
|
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 drill_rayon = GetDrillValue() / 2;
|
||||||
int inner_rayon = rayon - (2 * zoom);
|
int inner_rayon = rayon - (2 * zoom);
|
||||||
|
|
||||||
|
@ -696,8 +695,8 @@ void SEGVIA::Draw( WinEDA_DrawPanel* panel, wxDC* DC, int draw_mode, const wxPoi
|
||||||
// Draw the via hole if the display option allows it
|
// Draw the via hole if the display option allows it
|
||||||
if( DisplayOpt.m_DisplayViaMode != VIA_HOLE_NOT_SHOW )
|
if( DisplayOpt.m_DisplayViaMode != VIA_HOLE_NOT_SHOW )
|
||||||
{
|
{
|
||||||
if( (DisplayOpt.m_DisplayViaMode == ALL_VIA_HOLE_SHOW) || // Display all drill 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
|
|| ( (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
|
||||||
{
|
{
|
||||||
|
@ -718,7 +717,7 @@ void SEGVIA::Draw( WinEDA_DrawPanel* panel, wxDC* DC, int draw_mode, const wxPoi
|
||||||
{
|
{
|
||||||
int ax, ay, bx, by;
|
int ax, ay, bx, by;
|
||||||
|
|
||||||
if( IsOnLayer(COPPER_LAYER_N) )
|
if( IsOnLayer( COPPER_LAYER_N ) )
|
||||||
{
|
{
|
||||||
ax = rayon; ay = 0;
|
ax = rayon; ay = 0;
|
||||||
bx = drill_rayon; by = 0;
|
bx = drill_rayon; by = 0;
|
||||||
|
@ -730,15 +729,15 @@ void SEGVIA::Draw( WinEDA_DrawPanel* panel, wxDC* DC, int draw_mode, const wxPoi
|
||||||
}
|
}
|
||||||
|
|
||||||
/* lines | or \ */
|
/* lines | or \ */
|
||||||
GRLine( &panel->m_ClipBox, DC, m_Start.x - ax , m_Start.y - ay,
|
GRLine( &panel->m_ClipBox, DC, m_Start.x - ax, m_Start.y - ay,
|
||||||
m_Start.x - bx , m_Start.y - by, 0, color );
|
m_Start.x - bx, m_Start.y - by, 0, color );
|
||||||
GRLine( &panel->m_ClipBox, DC, m_Start.x + bx , m_Start.y + by,
|
GRLine( &panel->m_ClipBox, DC, m_Start.x + bx, m_Start.y + by,
|
||||||
m_Start.x + ax , m_Start.y + ay, 0, color );
|
m_Start.x + ax, m_Start.y + ay, 0, color );
|
||||||
|
|
||||||
/* lines - or / */
|
/* lines - or / */
|
||||||
GRLine( &panel->m_ClipBox, DC, m_Start.x + ay, m_Start.y - ax ,
|
GRLine( &panel->m_ClipBox, DC, m_Start.x + ay, m_Start.y - ax,
|
||||||
m_Start.x + by, m_Start.y - bx, 0, color );
|
m_Start.x + by, m_Start.y - bx, 0, color );
|
||||||
GRLine( &panel->m_ClipBox, DC, m_Start.x - by, m_Start.y + bx ,
|
GRLine( &panel->m_ClipBox, DC, m_Start.x - by, m_Start.y + bx,
|
||||||
m_Start.x - ay, m_Start.y + ax, 0, color );
|
m_Start.x - ay, m_Start.y + ax, 0, color );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -750,32 +749,49 @@ void SEGVIA::Draw( WinEDA_DrawPanel* panel, wxDC* DC, int draw_mode, const wxPoi
|
||||||
int ax = 0, ay = rayon, bx = 0, by = drill_rayon;
|
int ax = 0, ay = rayon, bx = 0, by = drill_rayon;
|
||||||
int layer_top, layer_bottom;
|
int layer_top, layer_bottom;
|
||||||
|
|
||||||
((SEGVIA*)this)->ReturnLayerPair(&layer_top, &layer_bottom);
|
( (SEGVIA*) this )->ReturnLayerPair( &layer_top, &layer_bottom );
|
||||||
|
|
||||||
/* lines for the top layer */
|
/* lines for the top layer */
|
||||||
RotatePoint( &ax, &ay, layer_top * 3600 / g_DesignSettings.m_CopperLayerCount);
|
RotatePoint( &ax, &ay, layer_top * 3600 / g_DesignSettings.m_CopperLayerCount );
|
||||||
RotatePoint( &bx, &by, 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,
|
GRLine( &panel->m_ClipBox, DC, m_Start.x - ax, m_Start.y - ay,
|
||||||
m_Start.x - bx , m_Start.y - by, 0, color );
|
m_Start.x - bx, m_Start.y - by, 0, color );
|
||||||
|
|
||||||
/* lines for the bottom layer */
|
/* lines for the bottom layer */
|
||||||
ax = 0; ay = rayon; bx = 0; by = drill_rayon;
|
ax = 0; ay = rayon; bx = 0; by = drill_rayon;
|
||||||
RotatePoint( &ax, &ay, layer_bottom * 3600 / g_DesignSettings.m_CopperLayerCount);
|
RotatePoint( &ax, &ay, layer_bottom * 3600 / g_DesignSettings.m_CopperLayerCount );
|
||||||
RotatePoint( &bx, &by, 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,
|
GRLine( &panel->m_ClipBox, DC, m_Start.x - ax, m_Start.y - ay,
|
||||||
m_Start.x - bx , m_Start.y - by, 0, color );
|
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
|
// see class_track.h
|
||||||
void TRACK::Display_Infos( WinEDA_DrawFrame* frame )
|
void TRACK::Display_Infos( WinEDA_DrawFrame* frame )
|
||||||
{
|
{
|
||||||
wxString msg;
|
wxString msg;
|
||||||
int text_pos;
|
int text_pos;
|
||||||
BOARD* board = ((WinEDA_PcbFrame*)frame)->m_Pcb;
|
BOARD* board = ( (WinEDA_PcbFrame*) frame )->m_Pcb;
|
||||||
|
|
||||||
#ifdef RATSNET_DEBUG
|
#ifdef RATSNET_DEBUG
|
||||||
DbgDisplayTrackInfos( this );
|
DbgDisplayTrackInfos( this );
|
||||||
|
@ -815,7 +831,7 @@ void TRACK::Display_Infos( WinEDA_DrawFrame* frame )
|
||||||
EQUIPOT* equipot = board->FindNet( GetNet() );
|
EQUIPOT* equipot = board->FindNet( GetNet() );
|
||||||
|
|
||||||
if( equipot )
|
if( equipot )
|
||||||
msg = equipot->m_Netname;
|
msg = equipot->GetNetname();
|
||||||
else
|
else
|
||||||
msg = wxT( "<noname>" );
|
msg = wxT( "<noname>" );
|
||||||
|
|
||||||
|
@ -841,7 +857,7 @@ void TRACK::Display_Infos( WinEDA_DrawFrame* frame )
|
||||||
#if defined(DEBUG)
|
#if defined(DEBUG)
|
||||||
|
|
||||||
/* Display the flags */
|
/* 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 );
|
Affiche_1_Parametre( frame, text_pos, _( "Flags" ), msg, BLUE );
|
||||||
text_pos += 8;
|
text_pos += 8;
|
||||||
|
|
||||||
|
@ -930,6 +946,7 @@ bool TRACK::HitTest( const wxPoint& ref_pos )
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function HitTest (overlayed)
|
* Function HitTest (overlayed)
|
||||||
* tests if the given EDA_Rect intersect this object.
|
* 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
|
* @param refArea : the given EDA_Rect
|
||||||
* @return bool - true if a hit, else false
|
* @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 ) )
|
if( refArea.Inside( m_Start ) )
|
||||||
return true;
|
return true;
|
||||||
|
@ -965,7 +982,7 @@ void TRACK::Show( int nestLevel, std::ostream& os )
|
||||||
" layer=\"" << m_Layer << '"' <<
|
" layer=\"" << m_Layer << '"' <<
|
||||||
" width=\"" << m_Width << '"' <<
|
" width=\"" << m_Width << '"' <<
|
||||||
" flags=\"" << m_Flags << '"' <<
|
" flags=\"" << m_Flags << '"' <<
|
||||||
" status=\"" << GetState(-1) << '"' <<
|
" status=\"" << GetState( -1 ) << '"' <<
|
||||||
|
|
||||||
// " drill=\"" << GetDrillValue() << '"' <<
|
// " drill=\"" << GetDrillValue() << '"' <<
|
||||||
" netcode=\"" << GetNet() << "\">" <<
|
" netcode=\"" << GetNet() << "\">" <<
|
||||||
|
@ -1035,33 +1052,34 @@ wxString TRACK::ShowState( int stateBits )
|
||||||
wxString ret;
|
wxString ret;
|
||||||
|
|
||||||
if( stateBits & CHAIN )
|
if( stateBits & CHAIN )
|
||||||
ret << wxT(" | CHAIN");
|
ret << wxT( " | CHAIN" );
|
||||||
if( stateBits & SEGM_AR )
|
if( stateBits & SEGM_AR )
|
||||||
ret << wxT(" | SEGM_AR");
|
ret << wxT( " | SEGM_AR" );
|
||||||
if( stateBits & SEGM_FIXE )
|
if( stateBits & SEGM_FIXE )
|
||||||
ret << wxT(" | SEGM_FIXE");
|
ret << wxT( " | SEGM_FIXE" );
|
||||||
if( stateBits & EDIT )
|
if( stateBits & EDIT )
|
||||||
ret << wxT(" | EDIT");
|
ret << wxT( " | EDIT" );
|
||||||
if( stateBits & DRAG )
|
if( stateBits & DRAG )
|
||||||
ret << wxT(" | DRAG");
|
ret << wxT( " | DRAG" );
|
||||||
if( stateBits & SURBRILL )
|
if( stateBits & SURBRILL )
|
||||||
ret << wxT(" | SURBRILL");
|
ret << wxT( " | SURBRILL" );
|
||||||
if( stateBits & NO_TRACE )
|
if( stateBits & NO_TRACE )
|
||||||
ret << wxT(" | NO_TRACE");
|
ret << wxT( " | NO_TRACE" );
|
||||||
if( stateBits & DELETED )
|
if( stateBits & DELETED )
|
||||||
ret << wxT(" | DELETED");
|
ret << wxT( " | DELETED" );
|
||||||
if( stateBits & BUSY )
|
if( stateBits & BUSY )
|
||||||
ret << wxT(" | BUSY");
|
ret << wxT( " | BUSY" );
|
||||||
if( stateBits & END_ONPAD)
|
if( stateBits & END_ONPAD )
|
||||||
ret << wxT(" | END_ONPAD");
|
ret << wxT( " | END_ONPAD" );
|
||||||
if( stateBits & BEGIN_ONPAD)
|
if( stateBits & BEGIN_ONPAD )
|
||||||
ret << wxT(" | BEGIN_ONPAD");
|
ret << wxT( " | BEGIN_ONPAD" );
|
||||||
if( stateBits & FLAG0)
|
if( stateBits & FLAG0 )
|
||||||
ret << wxT(" | FLAG0");
|
ret << wxT( " | FLAG0" );
|
||||||
if( stateBits & FLAG1 )
|
if( stateBits & FLAG1 )
|
||||||
ret << wxT(" | FLAG1");
|
ret << wxT( " | FLAG1" );
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -26,7 +26,7 @@ private:
|
||||||
|
|
||||||
|
|
||||||
public:
|
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_Start; // Line start point
|
||||||
wxPoint m_End; // Line end point
|
wxPoint m_End; // Line end point
|
||||||
int m_Shape; // vias: shape and type, Track = shape..
|
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 );
|
EQUIPOT* net = ( (BOARD*) m_Parent )->FindNet( anet_code );
|
||||||
if( net )
|
if( net )
|
||||||
m_Netname = net->m_Netname;
|
m_Netname = net->GetNetname();
|
||||||
else
|
else
|
||||||
m_Netname.Empty();
|
m_Netname.Empty();
|
||||||
}
|
}
|
||||||
|
@ -875,7 +875,7 @@ void ZONE_CONTAINER::Display_Infos( WinEDA_DrawFrame* frame )
|
||||||
EQUIPOT* equipot = ( (WinEDA_PcbFrame*) frame )->m_Pcb->FindNet( GetNet() );
|
EQUIPOT* equipot = ( (WinEDA_PcbFrame*) frame )->m_Pcb->FindNet( GetNet() );
|
||||||
|
|
||||||
if( equipot )
|
if( equipot )
|
||||||
msg = equipot->m_Netname;
|
msg = equipot->GetNetname();
|
||||||
else
|
else
|
||||||
msg = wxT( "<noname>" );
|
msg = wxT( "<noname>" );
|
||||||
}
|
}
|
||||||
|
@ -1047,7 +1047,7 @@ bool ZONE_CONTAINER::SetNetNameFromNetCode( void )
|
||||||
EQUIPOT* net;
|
EQUIPOT* net;
|
||||||
if ( m_Parent && (net = ((BOARD*)m_Parent)->FindNet( GetNet()) ) )
|
if ( m_Parent && (net = ((BOARD*)m_Parent)->FindNet( GetNet()) ) )
|
||||||
{
|
{
|
||||||
m_Netname = net->m_Netname;
|
m_Netname = net->GetNetname();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -195,7 +195,7 @@ void dialog_copper_zone::OnInitDialog( wxInitDialogEvent& event )
|
||||||
{
|
{
|
||||||
for( unsigned ii = 0; ii < ListNetName.GetCount(); ii++ )
|
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->SetSelection( ii );
|
||||||
m_ListNetNameSelection->EnsureVisible( 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;
|
g_Zone_Default_Setting.m_NetcodeSelection = 0;
|
||||||
for( net = m_Parent->m_Pcb->m_Equipots; net; net = net->Next() )
|
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();
|
g_Zone_Default_Setting.m_NetcodeSelection = net->GetNet();
|
||||||
break;
|
break;
|
||||||
|
@ -392,7 +392,7 @@ void dialog_copper_zone::OnNetSortingOptionSelected( wxCommandEvent& event )
|
||||||
{
|
{
|
||||||
for( unsigned ii = 0; ii < ListNetName.GetCount(); ii++ )
|
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->SetSelection( ii );
|
||||||
m_ListNetNameSelection->EnsureVisible( ii );
|
m_ListNetNameSelection->EnsureVisible( ii );
|
||||||
|
|
|
@ -84,7 +84,7 @@ DialogPadProperties::DialogPadProperties( WinEDA_BasePcbFrame* parent, D_PAD* Pa
|
||||||
|
|
||||||
if( m_CurrentPad )
|
if( m_CurrentPad )
|
||||||
{
|
{
|
||||||
Current_PadNetName = m_CurrentPad->m_Netname;
|
Current_PadNetName = m_CurrentPad->GetNetname();
|
||||||
g_Current_PadName = m_CurrentPad->ReturnStringPadName();
|
g_Current_PadName = m_CurrentPad->ReturnStringPadName();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -511,7 +511,7 @@ void DialogPadProperties::PadPropertiesAccept( wxCommandEvent& event )
|
||||||
}
|
}
|
||||||
m_CurrentPad->SetPadName( g_Current_PadName );
|
m_CurrentPad->SetPadName( g_Current_PadName );
|
||||||
|
|
||||||
if( m_CurrentPad->m_Netname != Current_PadNetName )
|
if( m_CurrentPad->GetNetname() != Current_PadNetName )
|
||||||
{
|
{
|
||||||
if( Current_PadNetName.IsEmpty() )
|
if( Current_PadNetName.IsEmpty() )
|
||||||
m_CurrentPad->SetNet( 0 );
|
m_CurrentPad->SetNet( 0 );
|
||||||
|
@ -521,7 +521,7 @@ void DialogPadProperties::PadPropertiesAccept( wxCommandEvent& event )
|
||||||
if( net )
|
if( net )
|
||||||
{
|
{
|
||||||
RastnestIsChanged = true;
|
RastnestIsChanged = true;
|
||||||
m_CurrentPad->m_Netname = Current_PadNetName;
|
m_CurrentPad->SetNetname( Current_PadNetName );
|
||||||
m_CurrentPad->SetNet( net->GetNet() );
|
m_CurrentPad->SetNet( net->GetNet() );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
@ -442,15 +442,16 @@ void CreateSignalsSection( FILE* file, BOARD* pcb )
|
||||||
|
|
||||||
for( equipot = pcb->m_Equipots; equipot != NULL; equipot = equipot->Next() )
|
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)
|
if( equipot->GetNet() <= 0 ) // dummy equipot (non connexion)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
msg = wxT( "\nSIGNAL " ) + equipot->m_Netname;
|
msg = wxT( "\nSIGNAL " ) + equipot->GetNetname();
|
||||||
|
|
||||||
fputs( CONV_TO_UTF8( msg ), file );
|
fputs( CONV_TO_UTF8( msg ), file );
|
||||||
fputs( "\n", file );
|
fputs( "\n", file );
|
||||||
|
@ -587,8 +588,8 @@ void CreateRoutesSection( FILE* file, BOARD* pcb )
|
||||||
old_netcode = track->GetNet();
|
old_netcode = track->GetNet();
|
||||||
EQUIPOT* equipot = pcb->FindNet( track->GetNet() );
|
EQUIPOT* equipot = pcb->FindNet( track->GetNet() );
|
||||||
wxString netname;
|
wxString netname;
|
||||||
if( equipot && (equipot->m_Netname != wxEmptyString) )
|
if( equipot && (equipot->GetNetname() != wxEmptyString) )
|
||||||
netname = equipot->m_Netname;
|
netname = equipot->GetNetname();
|
||||||
else
|
else
|
||||||
netname = wxT( "_noname_" );
|
netname = wxT( "_noname_" );
|
||||||
fprintf( file, "\nROUTE %s\n", CONV_TO_UTF8( netname ) );
|
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() )
|
for( pad = module->m_Pads; pad != NULL; pad = pad->Next() )
|
||||||
{
|
{
|
||||||
fprintf( file, "PINDESCR %.4s", pad->m_Padname );
|
fprintf( file, "PINDESCR %.4s", pad->m_Padname );
|
||||||
if( pad->m_Netname == wxEmptyString )
|
if( pad->GetNetname() == wxEmptyString )
|
||||||
fputs( " NoConn\n", file );
|
fputs( " NoConn\n", file );
|
||||||
else
|
else
|
||||||
fprintf( file, " %.4s\n", pad->m_Padname );
|
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 );
|
EQUIPOT* Equipot = new EQUIPOT( m_Pcb );
|
||||||
m_Pcb->m_Equipots.PushBack( Equipot );
|
m_Pcb->m_Equipots.PushBack( Equipot );
|
||||||
Equipot->ReadEquipotDescr( File, &LineNum );
|
Equipot->ReadDescr( File, &LineNum );
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -49,6 +49,7 @@ OBJECTS= $(TARGET).o classpcb.o\
|
||||||
class_mire.o\
|
class_mire.o\
|
||||||
class_cotation.o\
|
class_cotation.o\
|
||||||
class_pad.o \
|
class_pad.o \
|
||||||
|
class_pad_draw_functions.o\
|
||||||
class_equipot.o \
|
class_equipot.o \
|
||||||
class_module.o \
|
class_module.o \
|
||||||
class_edge_mod.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 : */
|
/* Mise a jour des caract de la pastille : */
|
||||||
Import_Pad_Settings( Pad, false );
|
Import_Pad_Settings( Pad, false );
|
||||||
Pad->m_Netname.Empty();
|
Pad->SetNetname(wxEmptyString);
|
||||||
|
|
||||||
Pad->m_Pos = GetScreen()->m_Curseur;
|
Pad->m_Pos = GetScreen()->m_Curseur;
|
||||||
|
|
||||||
|
|
|
@ -296,7 +296,7 @@ void ReadPcbNetlist( WinEDA_PcbFrame* aFrame,
|
||||||
PtPad = Module->m_Pads;
|
PtPad = Module->m_Pads;
|
||||||
for( ; PtPad != NULL; PtPad = (D_PAD*) PtPad->Next() )
|
for( ; PtPad != NULL; PtPad = (D_PAD*) PtPad->Next() )
|
||||||
{
|
{
|
||||||
PtPad->m_Netname = wxEmptyString;
|
PtPad->SetNetname( wxEmptyString );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
continue;
|
continue;
|
||||||
|
@ -597,9 +597,9 @@ int SetPadNetName( wxWindow* frame, char* Text, MODULE* Module )
|
||||||
{ /* trouve */
|
{ /* trouve */
|
||||||
trouve = TRUE;
|
trouve = TRUE;
|
||||||
if( *TextNetName != '?' )
|
if( *TextNetName != '?' )
|
||||||
pad->m_Netname = CONV_FROM_UTF8( TextNetName );
|
pad->SetNetname( CONV_FROM_UTF8( TextNetName ) );
|
||||||
else
|
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];
|
pad_courant = &m_Pcb->m_Pads[0];
|
||||||
for( ; ii > 0; pad_courant++, ii-- )
|
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 );
|
(*pad_courant)->SetNet( 0 );
|
||||||
continue;
|
continue;
|
||||||
|
@ -892,7 +892,7 @@ void WinEDA_BasePcbFrame::recalcule_pad_net_code()
|
||||||
pad_ref = &m_Pcb->m_Pads[0];
|
pad_ref = &m_Pcb->m_Pads[0];
|
||||||
while( pad_ref < pad_courant )
|
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
|
break; // sont du meme met
|
||||||
|
|
||||||
pad_ref++;
|
pad_ref++;
|
||||||
|
@ -926,7 +926,7 @@ void WinEDA_BasePcbFrame::recalcule_pad_net_code()
|
||||||
// Set the net_code for this equipot and reset other values
|
// Set the net_code for this equipot and reset other values
|
||||||
equipot->SetNet(ii);
|
equipot->SetNet(ii);
|
||||||
equipot->m_NbNodes = 0;
|
equipot->m_NbNodes = 0;
|
||||||
equipot->m_Netname.Empty();
|
equipot->SetNetname(wxEmptyString);
|
||||||
|
|
||||||
BufPtEquipot[ii] = equipot;
|
BufPtEquipot[ii] = equipot;
|
||||||
}
|
}
|
||||||
|
@ -950,9 +950,9 @@ void WinEDA_BasePcbFrame::recalcule_pad_net_code()
|
||||||
equipot = BufPtEquipot[net];
|
equipot = BufPtEquipot[net];
|
||||||
equipot->m_NbNodes++;
|
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;
|
wxString Line;
|
||||||
EQUIPOT* equipot = Pcb->FindNet( netcode );
|
EQUIPOT* equipot = Pcb->FindNet( netcode );
|
||||||
Line.Printf( wxT( "Warning: %d pad, net %s" ),
|
Line.Printf( wxT( "Warning: %d pad, net %s" ),
|
||||||
nb_pads, equipot->m_Netname.GetData() );
|
nb_pads, equipot->GetNetname().GetData() );
|
||||||
DisplayError( NULL, Line, 20 );
|
DisplayError( NULL, Line, 20 );
|
||||||
}
|
}
|
||||||
fprintf( outfile, "r %d %d %d %d %d %d 1 1\n",
|
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 );
|
pt_equipot = m_Pcb->FindNet( current_net_code );
|
||||||
if( pt_equipot )
|
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 );
|
Affiche_1_Parametre( this, 1, wxT( "Net route" ), msg, BROWN );
|
||||||
msg.Printf( wxT( "%d / %d" ), Ncurrent, Ntotal );
|
msg.Printf( wxT( "%d / %d" ), Ncurrent, Ntotal );
|
||||||
Affiche_1_Parametre( this, 12, wxT( "Activity" ), msg, BROWN );
|
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();
|
int netcode = equipot->GetNet();
|
||||||
if( netcode > 0 )
|
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 );
|
items.Collect( aBoard, scanMODULEs );
|
||||||
|
@ -1253,7 +1253,7 @@ void SPECCTRA_DB::FromBOARD( BOARD* aBoard ) throw( IOError )
|
||||||
old_netcode = netcode;
|
old_netcode = netcode;
|
||||||
EQUIPOT* equipot = aBoard->FindNet( netcode );
|
EQUIPOT* equipot = aBoard->FindNet( netcode );
|
||||||
wxASSERT( equipot );
|
wxASSERT( equipot );
|
||||||
netname = CONV_TO_UTF8( equipot->m_Netname );
|
netname = CONV_TO_UTF8( equipot->GetNetname() );
|
||||||
}
|
}
|
||||||
|
|
||||||
WIRE* wire = new WIRE( wiring );
|
WIRE* wire = new WIRE( wiring );
|
||||||
|
@ -1315,7 +1315,7 @@ void SPECCTRA_DB::FromBOARD( BOARD* aBoard ) throw( IOError )
|
||||||
EQUIPOT* equipot = aBoard->FindNet( netcode );
|
EQUIPOT* equipot = aBoard->FindNet( netcode );
|
||||||
wxASSERT( equipot );
|
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
|
dsnVia->via_type = T_protect; // @todo, this should be configurable
|
||||||
}
|
}
|
||||||
|
|
|
@ -45,11 +45,11 @@ void WinEDA_PcbFrame::Liste_Equipot( wxCommandEvent& event )
|
||||||
{
|
{
|
||||||
wxString Line;
|
wxString Line;
|
||||||
/* calcul adr relative du nom de la pastille reference de la piste */
|
/* 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;
|
continue;
|
||||||
|
|
||||||
Line.Printf( wxT( "net_code = %3.3d [%.16s] " ), Equipot->GetNet(),
|
Line.Printf( wxT( "net_code = %3.3d [%.16s] " ), Equipot->GetNet(),
|
||||||
Equipot->m_Netname.GetData() );
|
Equipot->GetNetname().GetData() );
|
||||||
List->Append( Line );
|
List->Append( Line );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -65,7 +65,7 @@ void WinEDA_PcbFrame::Liste_Equipot( wxCommandEvent& event )
|
||||||
for( jj = 0; Equipot != NULL; Equipot = (EQUIPOT*) Equipot->Next() )
|
for( jj = 0; Equipot != NULL; Equipot = (EQUIPOT*) Equipot->Next() )
|
||||||
{
|
{
|
||||||
/* calcul adr relative du nom de la pastille reference de la piste */
|
/* 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;
|
continue;
|
||||||
|
|
||||||
if( ii == jj )
|
if( ii == jj )
|
||||||
|
|
|
@ -190,6 +190,13 @@ void BOARD::Draw( WinEDA_DrawPanel* aPanel, wxDC* DC,
|
||||||
{
|
{
|
||||||
m_markers[i]->Draw( aPanel, DC, aDrawMode );
|
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 */
|
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) )
|
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;
|
NewModule->m_Path = OldModule->m_Path;
|
||||||
|
|
||||||
/* mise a jour des netnames ( lorsque c'est possible) */
|
/* mise a jour des netnames ( lorsque c'est possible) */
|
||||||
pt_pad = NewModule->m_Pads;
|
pad = NewModule->m_Pads;
|
||||||
for( ; pt_pad != NULL; pt_pad = pt_pad->Next() )
|
for( ; pad != NULL; pad = pad->Next() )
|
||||||
{
|
{
|
||||||
pt_pad->m_Netname = wxEmptyString;
|
pad->SetNetname( wxEmptyString );
|
||||||
pt_pad->SetNet( 0 );
|
pad->SetNet( 0 );
|
||||||
pt_old_pad = OldModule->m_Pads;
|
old_pad = OldModule->m_Pads;
|
||||||
for( ; pt_old_pad != NULL; pt_old_pad = pt_old_pad->Next() )
|
for( ; old_pad != NULL; old_pad = old_pad->Next() )
|
||||||
{
|
{
|
||||||
if( strnicmp( pt_pad->m_Padname, pt_old_pad->m_Padname,
|
if( strnicmp( pad->m_Padname, old_pad->m_Padname,
|
||||||
sizeof(pt_pad->m_Padname) ) == 0 )
|
sizeof(pad->m_Padname) ) == 0 )
|
||||||
{
|
{
|
||||||
pt_pad->m_Netname = pt_old_pad->m_Netname;
|
pad->SetNetname(old_pad->GetNetname() );
|
||||||
pt_pad->SetNet( pt_old_pad->GetNet() );
|
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);
|
g_Zone_Default_Setting.ExportSetting( *zone_container);
|
||||||
EQUIPOT* net = m_Pcb->FindNet( g_Zone_Default_Setting.m_NetcodeSelection );
|
EQUIPOT* net = m_Pcb->FindNet( g_Zone_Default_Setting.m_NetcodeSelection );
|
||||||
if( net ) // net === NULL should not occur
|
if( net ) // net === NULL should not occur
|
||||||
zone_container->m_Netname = net->m_Netname;
|
zone_container->m_Netname = net->GetNetname();
|
||||||
|
|
||||||
|
|
||||||
// Combine zones if possible :
|
// Combine zones if possible :
|
||||||
|
@ -897,7 +897,7 @@ int WinEDA_PcbFrame::Fill_Zone( wxDC* DC, ZONE_CONTAINER* zone_container, bool v
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
msg = net->m_Netname;
|
msg = net->GetNetname();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
msg = _( "No Net" );
|
msg = _( "No Net" );
|
||||||
|
|
Loading…
Reference in New Issue