More work on EDA_COLOR_T and layers.
In particular the new mechanism for handling extended color palettes is in place, included renaming the ini keys and saving the color name instead of its index; this means better forward compatibility with palette changes. Since ini keys are changed, colors will be reset
This commit is contained in:
parent
a47d36e399
commit
d12a45923b
|
@ -49,7 +49,7 @@
|
||||||
#include <3d_draw_basic_functions.h>
|
#include <3d_draw_basic_functions.h>
|
||||||
|
|
||||||
// Imported function:
|
// Imported function:
|
||||||
extern void SetGLColor( int color );
|
extern void SetGLColor( EDA_COLOR_T color );
|
||||||
extern void Set_Object_Data( std::vector< S3D_VERTEX >& aVertices, double aBiuTo3DUnits );
|
extern void Set_Object_Data( std::vector< S3D_VERTEX >& aVertices, double aBiuTo3DUnits );
|
||||||
extern void CheckGLError();
|
extern void CheckGLError();
|
||||||
|
|
||||||
|
@ -326,8 +326,8 @@ void EDA_3D_CANVAS::Draw3D_Zone( ZONE_CONTAINER* aZone )
|
||||||
void EDA_3D_CANVAS::DrawGrid( double aGriSizeMM )
|
void EDA_3D_CANVAS::DrawGrid( double aGriSizeMM )
|
||||||
{
|
{
|
||||||
double zpos = 0.0;
|
double zpos = 0.0;
|
||||||
int gridcolor = DARKGRAY; // Color of grid lines
|
EDA_COLOR_T gridcolor = DARKGRAY; // Color of grid lines
|
||||||
int gridcolor_marker = LIGHTGRAY; // Color of grid lines every 5 lines
|
EDA_COLOR_T gridcolor_marker = LIGHTGRAY; // Color of grid lines every 5 lines
|
||||||
double scale = g_Parm_3D_Visu.m_BiuTo3Dunits;
|
double scale = g_Parm_3D_Visu.m_BiuTo3Dunits;
|
||||||
|
|
||||||
glNormal3f( 0.0, 0.0, 1.0 );
|
glNormal3f( 0.0, 0.0, 1.0 );
|
||||||
|
@ -457,7 +457,7 @@ void EDA_3D_CANVAS::DrawGrid( double aGriSizeMM )
|
||||||
void EDA_3D_CANVAS::Draw3D_Track( TRACK* aTrack )
|
void EDA_3D_CANVAS::Draw3D_Track( TRACK* aTrack )
|
||||||
{
|
{
|
||||||
LAYER_NUM layer = aTrack->GetLayer();
|
LAYER_NUM layer = aTrack->GetLayer();
|
||||||
int color = g_ColorsSettings.GetLayerColor( layer );
|
EDA_COLOR_T color = g_ColorsSettings.GetLayerColor( layer );
|
||||||
int thickness = g_Parm_3D_Visu.GetCopperThicknessBIU();
|
int thickness = g_Parm_3D_Visu.GetCopperThicknessBIU();
|
||||||
|
|
||||||
if( layer == LAST_COPPER_LAYER )
|
if( layer == LAST_COPPER_LAYER )
|
||||||
|
@ -476,7 +476,7 @@ void EDA_3D_CANVAS::Draw3D_Track( TRACK* aTrack )
|
||||||
void EDA_3D_CANVAS::Draw3D_Via( SEGVIA* via )
|
void EDA_3D_CANVAS::Draw3D_Via( SEGVIA* via )
|
||||||
{
|
{
|
||||||
LAYER_NUM layer, top_layer, bottom_layer;
|
LAYER_NUM layer, top_layer, bottom_layer;
|
||||||
int color;
|
EDA_COLOR_T color;
|
||||||
double biu_to_3Dunits = g_Parm_3D_Visu.m_BiuTo3Dunits ;
|
double biu_to_3Dunits = g_Parm_3D_Visu.m_BiuTo3Dunits ;
|
||||||
|
|
||||||
int outer_radius = via->GetWidth() / 2;
|
int outer_radius = via->GetWidth() / 2;
|
||||||
|
@ -531,7 +531,7 @@ void EDA_3D_CANVAS::Draw3D_Via( SEGVIA* via )
|
||||||
void EDA_3D_CANVAS::Draw3D_DrawSegment( DRAWSEGMENT* segment )
|
void EDA_3D_CANVAS::Draw3D_DrawSegment( DRAWSEGMENT* segment )
|
||||||
{
|
{
|
||||||
LAYER_NUM layer = segment->GetLayer();
|
LAYER_NUM layer = segment->GetLayer();
|
||||||
int color = g_ColorsSettings.GetLayerColor( layer );
|
EDA_COLOR_T color = g_ColorsSettings.GetLayerColor( layer );
|
||||||
int thickness = g_Parm_3D_Visu.GetLayerObjectThicknessBIU( layer );
|
int thickness = g_Parm_3D_Visu.GetLayerObjectThicknessBIU( layer );
|
||||||
|
|
||||||
SetGLColor( color );
|
SetGLColor( color );
|
||||||
|
@ -625,7 +625,7 @@ static void Draw3dTextSegm( int x0, int y0, int xf, int yf )
|
||||||
void EDA_3D_CANVAS::Draw3D_DrawText( TEXTE_PCB* text )
|
void EDA_3D_CANVAS::Draw3D_DrawText( TEXTE_PCB* text )
|
||||||
{
|
{
|
||||||
LAYER_NUM layer = text->GetLayer();
|
LAYER_NUM layer = text->GetLayer();
|
||||||
int color = g_ColorsSettings.GetLayerColor( layer );
|
EDA_COLOR_T color = g_ColorsSettings.GetLayerColor( layer );
|
||||||
|
|
||||||
SetGLColor( color );
|
SetGLColor( color );
|
||||||
s_Text3DZPos = g_Parm_3D_Visu.GetLayerZcoordBIU( layer );
|
s_Text3DZPos = g_Parm_3D_Visu.GetLayerZcoordBIU( layer );
|
||||||
|
|
|
@ -122,10 +122,10 @@ static void Draw3D_VerticalPolygonalCylinder( const std::vector<CPolyPt>& aPolys
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void SetGLColor( int color )
|
void SetGLColor( EDA_COLOR_T color )
|
||||||
{
|
{
|
||||||
double red, green, blue;
|
double red, green, blue;
|
||||||
StructColors colordata = ColorRefs[color & MASKCOLOR];
|
const StructColors &colordata = g_ColorRefs[ColorGetBase( color )];
|
||||||
|
|
||||||
red = colordata.m_Red / 255.0;
|
red = colordata.m_Red / 255.0;
|
||||||
blue = colordata.m_Blue / 255.0;
|
blue = colordata.m_Blue / 255.0;
|
||||||
|
|
|
@ -72,9 +72,9 @@ bool IsGOST()
|
||||||
* Please: if you change a value, remember these values are carefully chosen
|
* Please: if you change a value, remember these values are carefully chosen
|
||||||
* to have good results in Pcbnew, that uses the ORed value of basic colors
|
* to have good results in Pcbnew, that uses the ORed value of basic colors
|
||||||
* when displaying superimposed objects
|
* when displaying superimposed objects
|
||||||
* This list must have exactly NBCOLOR items
|
* This list must have exactly NBCOLORS items
|
||||||
*/
|
*/
|
||||||
StructColors ColorRefs[NBCOLOR] =
|
const StructColors g_ColorRefs[NBCOLORS] =
|
||||||
{
|
{
|
||||||
{ 0, 0, 0, BLACK, wxT( "BLACK" ), DARKDARKGRAY },
|
{ 0, 0, 0, BLACK, wxT( "BLACK" ), DARKDARKGRAY },
|
||||||
{ 192, 0, 0, BLUE, wxT( "BLUE" ), LIGHTBLUE },
|
{ 192, 0, 0, BLUE, wxT( "BLUE" ), LIGHTBLUE },
|
||||||
|
|
|
@ -45,7 +45,7 @@ void DXF_PLOTTER::SetViewport( const wxPoint& aOffset, double aIusPerDecimil,
|
||||||
|
|
||||||
SetDefaultLineWidth( 0 ); // No line width on DXF
|
SetDefaultLineWidth( 0 ); // No line width on DXF
|
||||||
plotMirror = false; // No mirroring on DXF
|
plotMirror = false; // No mirroring on DXF
|
||||||
currentColor = BLACK;
|
m_currentColor = BLACK;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -151,7 +151,7 @@ bool DXF_PLOTTER::StartPlot()
|
||||||
" 2\n"
|
" 2\n"
|
||||||
"LAYER\n"
|
"LAYER\n"
|
||||||
" 70\n"
|
" 70\n"
|
||||||
"%d\n", NBCOLOR );
|
"%d\n", NBCOLORS );
|
||||||
|
|
||||||
/* The layer/colors palette. The acad/DXF palette is divided in 3 zones:
|
/* The layer/colors palette. The acad/DXF palette is divided in 3 zones:
|
||||||
|
|
||||||
|
@ -159,7 +159,7 @@ bool DXF_PLOTTER::StartPlot()
|
||||||
- An HSV zone (10-250, 5 values x 2 saturations x 10 hues
|
- An HSV zone (10-250, 5 values x 2 saturations x 10 hues
|
||||||
- Greys (251 - 255)
|
- Greys (251 - 255)
|
||||||
|
|
||||||
The is *no* black... the white does it on paper, usually, and
|
There is *no* black... the white does it on paper, usually, and
|
||||||
anyway it depends on the plotter configuration, since DXF colors
|
anyway it depends on the plotter configuration, since DXF colors
|
||||||
are meant to be logical only (they represent *both* line color and
|
are meant to be logical only (they represent *both* line color and
|
||||||
width); later version with plot styles only complicate the matter!
|
width); later version with plot styles only complicate the matter!
|
||||||
|
@ -170,7 +170,7 @@ bool DXF_PLOTTER::StartPlot()
|
||||||
static const struct {
|
static const struct {
|
||||||
const char *name;
|
const char *name;
|
||||||
int color;
|
int color;
|
||||||
} dxf_layer[NBCOLOR] = {
|
} dxf_layer[NBCOLORS] = {
|
||||||
{ "BLACK", 250 },
|
{ "BLACK", 250 },
|
||||||
{ "BLUE", 5 },
|
{ "BLUE", 5 },
|
||||||
{ "GREEN", 3 },
|
{ "GREEN", 3 },
|
||||||
|
@ -197,9 +197,8 @@ bool DXF_PLOTTER::StartPlot()
|
||||||
{ "LIGHTYELLOW", 51 },
|
{ "LIGHTYELLOW", 51 },
|
||||||
};
|
};
|
||||||
|
|
||||||
for( int i = 0; i < NBCOLOR; i++ )
|
for( EDA_COLOR_T i = BLACK; i < NBCOLORS; ++i )
|
||||||
{
|
{
|
||||||
wxString cname = ColorRefs[i].m_Name;
|
|
||||||
fprintf( outputFile,
|
fprintf( outputFile,
|
||||||
" 0\n"
|
" 0\n"
|
||||||
"LAYER\n"
|
"LAYER\n"
|
||||||
|
@ -254,10 +253,10 @@ void DXF_PLOTTER::SetColor( EDA_COLOR_T color )
|
||||||
|| ( color == BLACK )
|
|| ( color == BLACK )
|
||||||
|| ( color == WHITE ) )
|
|| ( color == WHITE ) )
|
||||||
{
|
{
|
||||||
currentColor = color;
|
m_currentColor = color;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
currentColor = BLACK;
|
m_currentColor = BLACK;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -287,7 +286,7 @@ void DXF_PLOTTER::Circle( const wxPoint& centre, int diameter, FILL_T fill, int
|
||||||
DPOINT centre_dev = userToDeviceCoordinates( centre );
|
DPOINT centre_dev = userToDeviceCoordinates( centre );
|
||||||
if( radius > 0 )
|
if( radius > 0 )
|
||||||
{
|
{
|
||||||
wxString cname = ColorRefs[currentColor].m_Name;
|
wxString cname( ColorGetName( m_currentColor ) );
|
||||||
if (!fill)
|
if (!fill)
|
||||||
{
|
{
|
||||||
fprintf( outputFile, "0\nCIRCLE\n8\n%s\n10\n%g\n20\n%g\n40\n%g\n",
|
fprintf( outputFile, "0\nCIRCLE\n8\n%s\n10\n%g\n20\n%g\n40\n%g\n",
|
||||||
|
@ -349,7 +348,7 @@ void DXF_PLOTTER::PenTo( const wxPoint& pos, char plume )
|
||||||
if( penLastpos != pos && plume == 'D' )
|
if( penLastpos != pos && plume == 'D' )
|
||||||
{
|
{
|
||||||
// DXF LINE
|
// DXF LINE
|
||||||
wxString cname = ColorRefs[currentColor].m_Name;
|
wxString cname( ColorGetName( m_currentColor ) );
|
||||||
fprintf( outputFile, "0\nLINE\n8\n%s\n10\n%g\n20\n%g\n11\n%g\n21\n%g\n",
|
fprintf( outputFile, "0\nLINE\n8\n%s\n10\n%g\n20\n%g\n11\n%g\n21\n%g\n",
|
||||||
TO_UTF8( cname ),
|
TO_UTF8( cname ),
|
||||||
pen_lastpos_dev.x, pen_lastpos_dev.y, pos_dev.x, pos_dev.y );
|
pen_lastpos_dev.x, pen_lastpos_dev.y, pos_dev.x, pos_dev.y );
|
||||||
|
@ -396,7 +395,7 @@ void DXF_PLOTTER::Arc( const wxPoint& centre, int StAngle, int EndAngle, int rad
|
||||||
double radius_dev = userToDeviceSize( radius );
|
double radius_dev = userToDeviceSize( radius );
|
||||||
|
|
||||||
// Emit a DXF ARC entity
|
// Emit a DXF ARC entity
|
||||||
wxString cname = ColorRefs[currentColor].m_Name;
|
wxString cname( ColorGetName( m_currentColor ) );
|
||||||
fprintf( outputFile,
|
fprintf( outputFile,
|
||||||
"0\nARC\n8\n%s\n10\n%g\n20\n%g\n40\n%g\n50\n%g\n51\n%g\n",
|
"0\nARC\n8\n%s\n10\n%g\n20\n%g\n40\n%g\n50\n%g\n51\n%g\n",
|
||||||
TO_UTF8( cname ),
|
TO_UTF8( cname ),
|
||||||
|
@ -570,7 +569,7 @@ void DXF_PLOTTER::Text( const wxPoint& aPos,
|
||||||
more useful as a CAD object */
|
more useful as a CAD object */
|
||||||
DPOINT origin_dev = userToDeviceCoordinates( aPos );
|
DPOINT origin_dev = userToDeviceCoordinates( aPos );
|
||||||
SetColor( aColor );
|
SetColor( aColor );
|
||||||
wxString cname = ColorRefs[currentColor].m_Name;
|
wxString cname( ColorGetName( m_currentColor ) );
|
||||||
DPOINT size_dev = userToDeviceSize( aSize );
|
DPOINT size_dev = userToDeviceSize( aSize );
|
||||||
int h_code = 0, v_code = 0;
|
int h_code = 0, v_code = 0;
|
||||||
switch( aH_justify )
|
switch( aH_justify )
|
||||||
|
|
|
@ -39,9 +39,9 @@ void PSLIKE_PLOTTER::SetColor( EDA_COLOR_T color )
|
||||||
|
|
||||||
if( colorMode )
|
if( colorMode )
|
||||||
{
|
{
|
||||||
double r = ColorRefs[color].m_Red / 255.0;
|
double r = g_ColorRefs[color].m_Red / 255.0;
|
||||||
double g = ColorRefs[color].m_Green / 255.0;
|
double g = g_ColorRefs[color].m_Green / 255.0;
|
||||||
double b = ColorRefs[color].m_Blue / 255.0;
|
double b = g_ColorRefs[color].m_Blue / 255.0;
|
||||||
if( negativeMode )
|
if( negativeMode )
|
||||||
emitSetRGBColor( 1 - r, 1 - g, 1 - b );
|
emitSetRGBColor( 1 - r, 1 - g, 1 - b );
|
||||||
else
|
else
|
||||||
|
|
|
@ -162,9 +162,7 @@ EDA_DRAW_FRAME::EDA_DRAW_FRAME( wxWindow* aParent,
|
||||||
m_messagePanel = new EDA_MSG_PANEL( this, -1, wxPoint( 0, m_FrameSize.y ),
|
m_messagePanel = new EDA_MSG_PANEL( this, -1, wxPoint( 0, m_FrameSize.y ),
|
||||||
wxSize( m_FrameSize.x, m_MsgFrameHeight ) );
|
wxSize( m_FrameSize.x, m_MsgFrameHeight ) );
|
||||||
|
|
||||||
m_messagePanel->SetBackgroundColour( wxColour( ColorRefs[LIGHTGRAY].m_Red,
|
m_messagePanel->SetBackgroundColour( MakeColour( LIGHTGRAY ) );
|
||||||
ColorRefs[LIGHTGRAY].m_Green,
|
|
||||||
ColorRefs[LIGHTGRAY].m_Blue ) );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1451,3 +1451,103 @@ void GRBezier( EDA_RECT* ClipBox,
|
||||||
std::vector<wxPoint> Points = Bezier2Poly( x1, y1, x2, y2, x3, y3, x4, y4 );
|
std::vector<wxPoint> Points = Bezier2Poly( x1, y1, x2, y2, x3, y3, x4, y4 );
|
||||||
GRPoly( ClipBox, DC, Points.size(), &Points[0], false, width, Color, Color );
|
GRPoly( ClipBox, DC, Points.size(), &Points[0], false, width, Color, Color );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
EDA_COLOR_T ColorMix( EDA_COLOR_T aColor1, EDA_COLOR_T aColor2 )
|
||||||
|
{
|
||||||
|
/* Memoization storage. This could be potentially called for each
|
||||||
|
* color merge so a cache is useful (there are few colours anyway) */
|
||||||
|
static EDA_COLOR_T mix_cache[NBCOLORS][NBCOLORS];
|
||||||
|
|
||||||
|
// TODO how is alpha used? it's a mac only thing, I have no idea
|
||||||
|
aColor1 = ColorGetBase( aColor1 );
|
||||||
|
aColor2 = ColorGetBase( aColor2 );
|
||||||
|
|
||||||
|
// First easy thing: a black gives always the other colour
|
||||||
|
if( aColor1 == BLACK )
|
||||||
|
return aColor2;
|
||||||
|
if( aColor2 == BLACK)
|
||||||
|
return aColor1;
|
||||||
|
|
||||||
|
/* Now we are sure that black can't occur, so the rule is:
|
||||||
|
* BLACK means not computed yet. If we're lucky we already have
|
||||||
|
* an answer */
|
||||||
|
EDA_COLOR_T candidate = mix_cache[aColor1][aColor2];
|
||||||
|
if( candidate != BLACK )
|
||||||
|
return candidate;
|
||||||
|
|
||||||
|
// Blend the two colors (i.e. OR the RGB values)
|
||||||
|
const StructColors &c1 = g_ColorRefs[aColor1];
|
||||||
|
const StructColors &c2 = g_ColorRefs[aColor2];
|
||||||
|
|
||||||
|
// Ask the palette for the nearest color to the mix
|
||||||
|
wxColour mixed( c1.m_Red | c2.m_Red,
|
||||||
|
c1.m_Green | c2.m_Green,
|
||||||
|
c1.m_Blue | c2.m_Blue );
|
||||||
|
candidate = ColorFindNearest( mixed );
|
||||||
|
|
||||||
|
/* Here, BLACK is *not* a good answer, since it would recompute the next time.
|
||||||
|
* Even theorically its not possible (with the current rules), but
|
||||||
|
* maybe the metric will change in the future */
|
||||||
|
if( candidate == BLACK)
|
||||||
|
candidate = DARKDARKGRAY;
|
||||||
|
|
||||||
|
// Store the result in the cache. The operation is commutative, too
|
||||||
|
mix_cache[aColor1][aColor2] = candidate;
|
||||||
|
mix_cache[aColor2][aColor1] = candidate;
|
||||||
|
return candidate;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
EDA_COLOR_T ColorByName( const wxChar *aName )
|
||||||
|
{
|
||||||
|
// look for a match in the palette itself
|
||||||
|
for( EDA_COLOR_T trying = BLACK; trying < NBCOLORS; ++trying )
|
||||||
|
{
|
||||||
|
if( 0 == wxStricmp( aName, g_ColorRefs[trying].m_Name ) )
|
||||||
|
return trying;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Not found, no idea...
|
||||||
|
return UNSPECIFIED_COLOR;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
EDA_COLOR_T ColorFindNearest( const wxColour &aColor )
|
||||||
|
{
|
||||||
|
EDA_COLOR_T candidate = BLACK;
|
||||||
|
|
||||||
|
// These are ints because we will subtract them later
|
||||||
|
int r = aColor.Red();
|
||||||
|
int g = aColor.Green();
|
||||||
|
int b = aColor.Blue();
|
||||||
|
|
||||||
|
/* Find the 'nearest' color in the palette. This is fun. There is
|
||||||
|
a gazilion of metrics for the color space and no one of the
|
||||||
|
useful one is in the RGB color space. Who cares, this is a CAD,
|
||||||
|
not a photosomething...
|
||||||
|
|
||||||
|
I hereby declare that the distance is the sum of the square of the
|
||||||
|
component difference. Think about the RGB color cube. Now get the
|
||||||
|
euclidean distance, but without the square root... for ordering
|
||||||
|
purposes it's the same, obviously. Also each component can't be
|
||||||
|
less of the target one, since I found this currently work better...
|
||||||
|
*/
|
||||||
|
int nearest_distance = 255 * 255 * 3 + 1; // Can't beat this
|
||||||
|
|
||||||
|
for( EDA_COLOR_T trying = BLACK; trying < NBCOLORS; ++trying )
|
||||||
|
{
|
||||||
|
const StructColors &c = g_ColorRefs[trying];
|
||||||
|
int distance = (r - c.m_Red) * (r - c.m_Red) +
|
||||||
|
(g - c.m_Green) * (g - c.m_Green) +
|
||||||
|
(b - c.m_Blue) * (b - c.m_Blue);
|
||||||
|
if( distance < nearest_distance && c.m_Red >= r &&
|
||||||
|
c.m_Green >= g && c.m_Blue >= b )
|
||||||
|
{
|
||||||
|
nearest_distance = distance;
|
||||||
|
candidate = trying;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return candidate;
|
||||||
|
}
|
||||||
|
|
|
@ -205,9 +205,7 @@ void EDA_MSG_PANEL::showItem( wxDC& aDC, const MSG_PANEL_ITEM& aItem )
|
||||||
if( color >= 0 )
|
if( color >= 0 )
|
||||||
{
|
{
|
||||||
color = ColorGetBase( color );
|
color = ColorGetBase( color );
|
||||||
aDC.SetTextForeground( wxColour( ColorRefs[color].m_Red,
|
aDC.SetTextForeground( MakeColour( color ) );
|
||||||
ColorRefs[color].m_Green,
|
|
||||||
ColorRefs[color].m_Blue ) );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if( !aItem.m_UpperText.IsEmpty() )
|
if( !aItem.m_UpperText.IsEmpty() )
|
||||||
|
|
|
@ -371,13 +371,11 @@ PARAM_CFG_SETCOLOR::PARAM_CFG_SETCOLOR( bool Insetup,
|
||||||
|
|
||||||
void PARAM_CFG_SETCOLOR::ReadParam( wxConfigBase* aConfig ) const
|
void PARAM_CFG_SETCOLOR::ReadParam( wxConfigBase* aConfig ) const
|
||||||
{
|
{
|
||||||
static const int MAX_COLOR = 0x8001F;
|
|
||||||
|
|
||||||
if( m_Pt_param == NULL || aConfig == NULL )
|
if( m_Pt_param == NULL || aConfig == NULL )
|
||||||
return;
|
return;
|
||||||
EDA_COLOR_T itmp = ColorFromInt( aConfig->Read( m_Ident, m_Default ) );
|
EDA_COLOR_T itmp = ColorByName( aConfig->Read( m_Ident, wxT("NONE") ) );
|
||||||
|
|
||||||
if( (itmp < 0) || (itmp > MAX_COLOR) )
|
if( itmp == UNSPECIFIED_COLOR )
|
||||||
itmp = m_Default;
|
itmp = m_Default;
|
||||||
*m_Pt_param = itmp;
|
*m_Pt_param = itmp;
|
||||||
}
|
}
|
||||||
|
@ -388,7 +386,7 @@ void PARAM_CFG_SETCOLOR::SaveParam( wxConfigBase* aConfig ) const
|
||||||
if( m_Pt_param == NULL || aConfig == NULL )
|
if( m_Pt_param == NULL || aConfig == NULL )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
aConfig->Write( m_Ident, (long) *m_Pt_param );
|
aConfig->Write( m_Ident, ColorGetName( *m_Pt_param ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -54,7 +54,7 @@ EDA_COLOR_T DisplayColorFrame( wxWindow* parent, int OldColor )
|
||||||
framepos, OldColor );
|
framepos, OldColor );
|
||||||
color = static_cast<EDA_COLOR_T>( frame->ShowModal() );
|
color = static_cast<EDA_COLOR_T>( frame->ShowModal() );
|
||||||
frame->Destroy();
|
frame->Destroy();
|
||||||
if( color > NBCOLOR )
|
if( color > NBCOLORS )
|
||||||
color = UNSPECIFIED_COLOR;
|
color = UNSPECIFIED_COLOR;
|
||||||
return color;
|
return color;
|
||||||
}
|
}
|
||||||
|
@ -125,7 +125,7 @@ void WinEDA_SelColorFrame::Init_Dialog( int aOldColor )
|
||||||
wxStdDialogButtonSizer* StdDialogButtonSizer = NULL;
|
wxStdDialogButtonSizer* StdDialogButtonSizer = NULL;
|
||||||
wxButton* Button = NULL;
|
wxButton* Button = NULL;
|
||||||
|
|
||||||
int ii, butt_ID, buttcolor;
|
int ii, butt_ID;
|
||||||
int w = 20, h = 20;
|
int w = 20, h = 20;
|
||||||
bool ColorFound = false;
|
bool ColorFound = false;
|
||||||
|
|
||||||
|
@ -137,7 +137,7 @@ void WinEDA_SelColorFrame::Init_Dialog( int aOldColor )
|
||||||
MainBoxSizer = new wxBoxSizer( wxHORIZONTAL );
|
MainBoxSizer = new wxBoxSizer( wxHORIZONTAL );
|
||||||
OuterBoxSizer->Add( MainBoxSizer, 1, wxGROW | wxLEFT | wxRIGHT | wxTOP, 5 );
|
OuterBoxSizer->Add( MainBoxSizer, 1, wxGROW | wxLEFT | wxRIGHT | wxTOP, 5 );
|
||||||
|
|
||||||
for( ii = 0; ColorRefs[ii].m_Name != NULL && ii < NBCOLOR; ii++ )
|
for( ii = 0; ii < NBCOLORS; ++ii )
|
||||||
{
|
{
|
||||||
// Provide a separate column for every eight buttons (and their
|
// Provide a separate column for every eight buttons (and their
|
||||||
// associated text strings), so provide a FlexGrid Sizer with
|
// associated text strings), so provide a FlexGrid Sizer with
|
||||||
|
@ -163,11 +163,9 @@ void WinEDA_SelColorFrame::Init_Dialog( int aOldColor )
|
||||||
wxBitmap ButtBitmap( w, h );
|
wxBitmap ButtBitmap( w, h );
|
||||||
wxBrush Brush;
|
wxBrush Brush;
|
||||||
iconDC.SelectObject( ButtBitmap );
|
iconDC.SelectObject( ButtBitmap );
|
||||||
buttcolor = ColorRefs[ii].m_Numcolor;
|
EDA_COLOR_T buttcolor = g_ColorRefs[ii].m_Numcolor;
|
||||||
iconDC.SetPen( *wxBLACK_PEN );
|
iconDC.SetPen( *wxBLACK_PEN );
|
||||||
Brush.SetColour( ColorRefs[buttcolor].m_Red,
|
ColorSetBrush( &Brush, buttcolor );
|
||||||
ColorRefs[buttcolor].m_Green,
|
|
||||||
ColorRefs[buttcolor].m_Blue );
|
|
||||||
Brush.SetStyle( wxSOLID );
|
Brush.SetStyle( wxSOLID );
|
||||||
|
|
||||||
iconDC.SetBrush( Brush );
|
iconDC.SetBrush( Brush );
|
||||||
|
@ -190,7 +188,7 @@ void WinEDA_SelColorFrame::Init_Dialog( int aOldColor )
|
||||||
BitmapButton->SetFocus();
|
BitmapButton->SetFocus();
|
||||||
}
|
}
|
||||||
|
|
||||||
Label = new wxStaticText( this, -1, ColorRefs[ii].m_Name,
|
Label = new wxStaticText( this, -1, ColorGetName( buttcolor ),
|
||||||
wxDefaultPosition, wxDefaultSize, 0 );
|
wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
FlexColumnBoxSizer->Add( Label, 1,
|
FlexColumnBoxSizer->Add( Label, 1,
|
||||||
wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL |
|
wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL |
|
||||||
|
|
|
@ -67,7 +67,7 @@ static void DrawSegment( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aPosi
|
||||||
return;
|
return;
|
||||||
|
|
||||||
segment = (SCH_LINE*) s_wires.begin();
|
segment = (SCH_LINE*) s_wires.begin();
|
||||||
EDA_COLOR_T color = ReturnLayerColor( segment->GetLayer() );
|
EDA_COLOR_T color = GetLayerColor( segment->GetLayer() );
|
||||||
ColorChangeHighlightFlag( &color, !(color & HIGHLIGHT_FLAG) );
|
ColorChangeHighlightFlag( &color, !(color & HIGHLIGHT_FLAG) );
|
||||||
|
|
||||||
if( aErase )
|
if( aErase )
|
||||||
|
|
|
@ -391,7 +391,7 @@ void LIB_COMPONENT::Plot( PLOTTER* aPlotter, int aUnit, int aConvert,
|
||||||
if( aConvert && item.m_Convert && ( item.m_Convert != aConvert ) )
|
if( aConvert && item.m_Convert && ( item.m_Convert != aConvert ) )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
aPlotter->SetColor( ReturnLayerColor( LAYER_DEVICE ) );
|
aPlotter->SetColor( GetLayerColor( LAYER_DEVICE ) );
|
||||||
bool fill = aPlotter->GetColorMode();
|
bool fill = aPlotter->GetColorMode();
|
||||||
|
|
||||||
item.Plot( aPlotter, aOffset, fill, aTransform );
|
item.Plot( aPlotter, aOffset, fill, aTransform );
|
||||||
|
|
|
@ -130,7 +130,6 @@ void DIALOG_COLOR_CONFIG::Init()
|
||||||
void DIALOG_COLOR_CONFIG::CreateControls()
|
void DIALOG_COLOR_CONFIG::CreateControls()
|
||||||
{
|
{
|
||||||
wxStaticText* label;
|
wxStaticText* label;
|
||||||
int color;
|
|
||||||
int buttonId = 1800;
|
int buttonId = 1800;
|
||||||
ButtonIndex* groups = buttonGroups;
|
ButtonIndex* groups = buttonGroups;
|
||||||
|
|
||||||
|
@ -168,12 +167,10 @@ void DIALOG_COLOR_CONFIG::CreateControls()
|
||||||
wxBitmap bitmap( BUTT_SIZE_X, BUTT_SIZE_Y );
|
wxBitmap bitmap( BUTT_SIZE_X, BUTT_SIZE_Y );
|
||||||
|
|
||||||
iconDC.SelectObject( bitmap );
|
iconDC.SelectObject( bitmap );
|
||||||
color = currentColors[ buttons->m_Layer ] = ReturnLayerColor( buttons->m_Layer );
|
EDA_COLOR_T color = currentColors[ buttons->m_Layer ] = GetLayerColor( buttons->m_Layer );
|
||||||
iconDC.SetPen( *wxBLACK_PEN );
|
iconDC.SetPen( *wxBLACK_PEN );
|
||||||
wxBrush brush;
|
wxBrush brush;
|
||||||
brush.SetColour( ColorRefs[ color ].m_Red,
|
ColorSetBrush( &brush, color );
|
||||||
ColorRefs[ color ].m_Green,
|
|
||||||
ColorRefs[ color ].m_Blue );
|
|
||||||
brush.SetStyle( wxSOLID );
|
brush.SetStyle( wxSOLID );
|
||||||
|
|
||||||
iconDC.SetBrush( brush );
|
iconDC.SetBrush( brush );
|
||||||
|
@ -267,9 +264,7 @@ void DIALOG_COLOR_CONFIG::SetColor( wxCommandEvent& event )
|
||||||
iconDC.SelectObject( bitmap );
|
iconDC.SelectObject( bitmap );
|
||||||
wxBrush brush;
|
wxBrush brush;
|
||||||
iconDC.SetPen( *wxBLACK_PEN );
|
iconDC.SetPen( *wxBLACK_PEN );
|
||||||
brush.SetColour( ColorRefs[ color ].m_Red,
|
ColorSetBrush( &brush, color);
|
||||||
ColorRefs[ color ].m_Green,
|
|
||||||
ColorRefs[ color ].m_Blue );
|
|
||||||
brush.SetStyle( wxSOLID );
|
brush.SetStyle( wxSOLID );
|
||||||
|
|
||||||
iconDC.SetBrush( brush );
|
iconDC.SetBrush( brush );
|
||||||
|
@ -295,13 +290,13 @@ bool DIALOG_COLOR_CONFIG::UpdateColorsSettings()
|
||||||
{
|
{
|
||||||
SetLayerColor( currentColors[ ii ], ii );
|
SetLayerColor( currentColors[ ii ], ii );
|
||||||
|
|
||||||
if( g_DrawBgColor == ReturnLayerColor( ii ) )
|
if( g_DrawBgColor == GetLayerColor( ii ) )
|
||||||
warning = true;
|
warning = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_Parent->SetGridColor( ReturnLayerColor( LAYER_GRID ) );
|
m_Parent->SetGridColor( GetLayerColor( LAYER_GRID ) );
|
||||||
|
|
||||||
if( g_DrawBgColor == ReturnLayerColor( LAYER_GRID ) )
|
if( g_DrawBgColor == GetLayerColor( LAYER_GRID ) )
|
||||||
warning = true;
|
warning = true;
|
||||||
|
|
||||||
return warning;
|
return warning;
|
||||||
|
|
|
@ -90,7 +90,7 @@ void SetDefaultLineThickness( int aThickness)
|
||||||
s_drawDefaultLineThickness = 1;
|
s_drawDefaultLineThickness = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
EDA_COLOR_T ReturnLayerColor( int aLayer )
|
EDA_COLOR_T GetLayerColor( int aLayer )
|
||||||
{
|
{
|
||||||
return s_layerColor[aLayer];
|
return s_layerColor[aLayer];
|
||||||
}
|
}
|
||||||
|
@ -460,80 +460,80 @@ PARAM_CFG_ARRAY& SCH_EDIT_FRAME::GetConfigurationSettings( void )
|
||||||
|
|
||||||
m_configSettings.push_back( new PARAM_CFG_INT( true, wxT( "Units" ),
|
m_configSettings.push_back( new PARAM_CFG_INT( true, wxT( "Units" ),
|
||||||
(int*)&g_UserUnit, MILLIMETRES ) );
|
(int*)&g_UserUnit, MILLIMETRES ) );
|
||||||
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColWire" ),
|
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorWireEx" ),
|
||||||
&s_layerColor[LAYER_WIRE],
|
&s_layerColor[LAYER_WIRE],
|
||||||
GREEN ) );
|
GREEN ) );
|
||||||
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorBus" ),
|
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorBusEx" ),
|
||||||
&s_layerColor[LAYER_BUS],
|
&s_layerColor[LAYER_BUS],
|
||||||
BLUE ) );
|
BLUE ) );
|
||||||
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorConn" ),
|
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorConnEx" ),
|
||||||
&s_layerColor[LAYER_JUNCTION],
|
&s_layerColor[LAYER_JUNCTION],
|
||||||
GREEN ) );
|
GREEN ) );
|
||||||
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorLlab" ),
|
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorLLabelEx" ),
|
||||||
&s_layerColor[LAYER_LOCLABEL],
|
&s_layerColor[LAYER_LOCLABEL],
|
||||||
BLACK ) );
|
BLACK ) );
|
||||||
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorHlab" ),
|
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorHLabelEx" ),
|
||||||
&s_layerColor[LAYER_HIERLABEL],
|
&s_layerColor[LAYER_HIERLABEL],
|
||||||
BROWN ) );
|
BROWN ) );
|
||||||
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorGbllab" ),
|
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorGLabelEx" ),
|
||||||
&s_layerColor[LAYER_GLOBLABEL],
|
&s_layerColor[LAYER_GLOBLABEL],
|
||||||
RED ) );
|
RED ) );
|
||||||
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorPinF" ),
|
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorPinFunEx" ),
|
||||||
&s_layerColor[LAYER_PINFUN],
|
&s_layerColor[LAYER_PINFUN],
|
||||||
MAGENTA ) );
|
MAGENTA ) );
|
||||||
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColPinN" ),
|
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorPinNumEx" ),
|
||||||
&s_layerColor[LAYER_PINNUM],
|
&s_layerColor[LAYER_PINNUM],
|
||||||
RED ) );
|
RED ) );
|
||||||
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorPNam" ),
|
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorPinNameEx" ),
|
||||||
&s_layerColor[LAYER_PINNAM],
|
&s_layerColor[LAYER_PINNAM],
|
||||||
CYAN ) );
|
CYAN ) );
|
||||||
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorField" ),
|
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorFieldEx" ),
|
||||||
&s_layerColor[LAYER_FIELDS],
|
&s_layerColor[LAYER_FIELDS],
|
||||||
MAGENTA ) );
|
MAGENTA ) );
|
||||||
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorRef" ),
|
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorReferenceEx" ),
|
||||||
&s_layerColor[LAYER_REFERENCEPART],
|
&s_layerColor[LAYER_REFERENCEPART],
|
||||||
CYAN ) );
|
CYAN ) );
|
||||||
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorValue" ),
|
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorValueEx" ),
|
||||||
&s_layerColor[LAYER_VALUEPART],
|
&s_layerColor[LAYER_VALUEPART],
|
||||||
CYAN ) );
|
CYAN ) );
|
||||||
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorNote" ),
|
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorNoteEx" ),
|
||||||
&s_layerColor[LAYER_NOTES],
|
&s_layerColor[LAYER_NOTES],
|
||||||
LIGHTBLUE ) );
|
LIGHTBLUE ) );
|
||||||
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorBody" ),
|
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorBodyEx" ),
|
||||||
&s_layerColor[LAYER_DEVICE],
|
&s_layerColor[LAYER_DEVICE],
|
||||||
RED ) );
|
RED ) );
|
||||||
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorBodyBg" ),
|
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorBodyBgEx" ),
|
||||||
&s_layerColor[LAYER_DEVICE_BACKGROUND],
|
&s_layerColor[LAYER_DEVICE_BACKGROUND],
|
||||||
LIGHTYELLOW ) );
|
LIGHTYELLOW ) );
|
||||||
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorNetN" ),
|
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorNetNameEx" ),
|
||||||
&s_layerColor[LAYER_NETNAM],
|
&s_layerColor[LAYER_NETNAM],
|
||||||
DARKGRAY ) );
|
DARKGRAY ) );
|
||||||
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorPin" ),
|
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorPinEx" ),
|
||||||
&s_layerColor[LAYER_PIN],
|
&s_layerColor[LAYER_PIN],
|
||||||
RED ) );
|
RED ) );
|
||||||
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorSheet" ),
|
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorSheetEx" ),
|
||||||
&s_layerColor[LAYER_SHEET],
|
&s_layerColor[LAYER_SHEET],
|
||||||
MAGENTA ) );
|
MAGENTA ) );
|
||||||
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true,
|
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true,
|
||||||
wxT( "ColorSheetFileName" ),
|
wxT( "ColorSheetFileNameEx" ),
|
||||||
&s_layerColor[LAYER_SHEETFILENAME],
|
&s_layerColor[LAYER_SHEETFILENAME],
|
||||||
BROWN ) );
|
BROWN ) );
|
||||||
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorSheetName" ),
|
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorSheetNameEx" ),
|
||||||
&s_layerColor[LAYER_SHEETNAME],
|
&s_layerColor[LAYER_SHEETNAME],
|
||||||
CYAN ) );
|
CYAN ) );
|
||||||
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorSheetLab" ),
|
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorSheetLabelEx" ),
|
||||||
&s_layerColor[LAYER_SHEETLABEL],
|
&s_layerColor[LAYER_SHEETLABEL],
|
||||||
BROWN ) );
|
BROWN ) );
|
||||||
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorNoCo" ),
|
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorNoConnectEx" ),
|
||||||
&s_layerColor[LAYER_NOCONNECT],
|
&s_layerColor[LAYER_NOCONNECT],
|
||||||
BLUE ) );
|
BLUE ) );
|
||||||
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorErcW" ),
|
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorErcWEx" ),
|
||||||
&s_layerColor[LAYER_ERC_WARN],
|
&s_layerColor[LAYER_ERC_WARN],
|
||||||
GREEN ) );
|
GREEN ) );
|
||||||
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorErcE" ),
|
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorErcEEx" ),
|
||||||
&s_layerColor[LAYER_ERC_ERR],
|
&s_layerColor[LAYER_ERC_ERR],
|
||||||
RED ) );
|
RED ) );
|
||||||
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorGrid" ),
|
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorGridEx" ),
|
||||||
&s_layerColor[LAYER_GRID],
|
&s_layerColor[LAYER_GRID],
|
||||||
DARKGRAY ) );
|
DARKGRAY ) );
|
||||||
m_configSettings.push_back( new PARAM_CFG_BOOL( true, wxT( "PrintMonochrome" ),
|
m_configSettings.push_back( new PARAM_CFG_BOOL( true, wxT( "PrintMonochrome" ),
|
||||||
|
@ -558,7 +558,7 @@ void SCH_EDIT_FRAME::LoadSettings()
|
||||||
wxGetApp().ReadCurrentSetupValues( GetConfigurationSettings() );
|
wxGetApp().ReadCurrentSetupValues( GetConfigurationSettings() );
|
||||||
|
|
||||||
// This is required until someone gets rid of the global variable s_layerColor.
|
// This is required until someone gets rid of the global variable s_layerColor.
|
||||||
m_GridColor = ReturnLayerColor( LAYER_GRID );
|
m_GridColor = GetLayerColor( LAYER_GRID );
|
||||||
|
|
||||||
SetDefaultBusThickness( cfg->Read( DefaultBusWidthEntry, 12l ) );
|
SetDefaultBusThickness( cfg->Read( DefaultBusWidthEntry, 12l ) );
|
||||||
SetDefaultLineThickness( cfg->Read( DefaultDrawLineWidthEntry, 6l ) );
|
SetDefaultLineThickness( cfg->Read( DefaultDrawLineWidthEntry, 6l ) );
|
||||||
|
|
|
@ -90,7 +90,7 @@ void SetDefaultLineThickness( int aThickness);
|
||||||
int GetDefaultBusThickness();
|
int GetDefaultBusThickness();
|
||||||
void SetDefaultBusThickness( int aThickness );
|
void SetDefaultBusThickness( int aThickness );
|
||||||
|
|
||||||
EDA_COLOR_T ReturnLayerColor( int aLayer );
|
EDA_COLOR_T GetLayerColor( int aLayer );
|
||||||
|
|
||||||
// Color to draw selected items
|
// Color to draw selected items
|
||||||
EDA_COLOR_T GetItemSelectedColor();
|
EDA_COLOR_T GetItemSelectedColor();
|
||||||
|
|
|
@ -370,12 +370,12 @@ void LIB_ARC::Plot( PLOTTER* aPlotter, const wxPoint& aOffset, bool aFill,
|
||||||
|
|
||||||
if( aFill && m_Fill == FILLED_WITH_BG_BODYCOLOR )
|
if( aFill && m_Fill == FILLED_WITH_BG_BODYCOLOR )
|
||||||
{
|
{
|
||||||
aPlotter->SetColor( ReturnLayerColor( LAYER_DEVICE_BACKGROUND ) );
|
aPlotter->SetColor( GetLayerColor( LAYER_DEVICE_BACKGROUND ) );
|
||||||
aPlotter->Arc( pos, -t2, -t1, m_Radius, FILLED_SHAPE, 0 );
|
aPlotter->Arc( pos, -t2, -t1, m_Radius, FILLED_SHAPE, 0 );
|
||||||
}
|
}
|
||||||
|
|
||||||
bool already_filled = m_Fill == FILLED_WITH_BG_BODYCOLOR;
|
bool already_filled = m_Fill == FILLED_WITH_BG_BODYCOLOR;
|
||||||
aPlotter->SetColor( ReturnLayerColor( LAYER_DEVICE ) );
|
aPlotter->SetColor( GetLayerColor( LAYER_DEVICE ) );
|
||||||
aPlotter->Arc( pos, -t2, -t1, m_Radius, already_filled ? NO_FILL : m_Fill, GetPenSize() );
|
aPlotter->Arc( pos, -t2, -t1, m_Radius, already_filled ? NO_FILL : m_Fill, GetPenSize() );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -416,7 +416,7 @@ void LIB_ARC::drawGraphic( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aOf
|
||||||
return;
|
return;
|
||||||
|
|
||||||
wxPoint pos1, pos2, posc;
|
wxPoint pos1, pos2, posc;
|
||||||
EDA_COLOR_T color = ReturnLayerColor( LAYER_DEVICE );
|
EDA_COLOR_T color = GetLayerColor( LAYER_DEVICE );
|
||||||
|
|
||||||
if( aColor < 0 ) // Used normal color or selected color
|
if( aColor < 0 ) // Used normal color or selected color
|
||||||
{
|
{
|
||||||
|
@ -452,8 +452,8 @@ void LIB_ARC::drawGraphic( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aOf
|
||||||
{
|
{
|
||||||
GRFilledArc( aPanel->GetClipBox(), aDC, posc.x, posc.y, pt1, pt2,
|
GRFilledArc( aPanel->GetClipBox(), aDC, posc.x, posc.y, pt1, pt2,
|
||||||
m_Radius, GetPenSize( ),
|
m_Radius, GetPenSize( ),
|
||||||
(m_Flags & IS_MOVED) ? color : ReturnLayerColor( LAYER_DEVICE_BACKGROUND ),
|
(m_Flags & IS_MOVED) ? color : GetLayerColor( LAYER_DEVICE_BACKGROUND ),
|
||||||
ReturnLayerColor( LAYER_DEVICE_BACKGROUND ) );
|
GetLayerColor( LAYER_DEVICE_BACKGROUND ) );
|
||||||
}
|
}
|
||||||
else if( fill == FILLED_SHAPE && !aData )
|
else if( fill == FILLED_SHAPE && !aData )
|
||||||
{
|
{
|
||||||
|
|
|
@ -270,12 +270,12 @@ void LIB_BEZIER::Plot( PLOTTER* aPlotter, const wxPoint& aOffset, bool aFill,
|
||||||
|
|
||||||
if( aFill && m_Fill == FILLED_WITH_BG_BODYCOLOR )
|
if( aFill && m_Fill == FILLED_WITH_BG_BODYCOLOR )
|
||||||
{
|
{
|
||||||
aPlotter->SetColor( ReturnLayerColor( LAYER_DEVICE_BACKGROUND ) );
|
aPlotter->SetColor( GetLayerColor( LAYER_DEVICE_BACKGROUND ) );
|
||||||
aPlotter->PlotPoly( cornerList, FILLED_WITH_BG_BODYCOLOR, 0 );
|
aPlotter->PlotPoly( cornerList, FILLED_WITH_BG_BODYCOLOR, 0 );
|
||||||
}
|
}
|
||||||
|
|
||||||
bool already_filled = m_Fill == FILLED_WITH_BG_BODYCOLOR;
|
bool already_filled = m_Fill == FILLED_WITH_BG_BODYCOLOR;
|
||||||
aPlotter->SetColor( ReturnLayerColor( LAYER_DEVICE ) );
|
aPlotter->SetColor( GetLayerColor( LAYER_DEVICE ) );
|
||||||
aPlotter->PlotPoly( cornerList, already_filled ? NO_FILL : m_Fill, GetPenSize() );
|
aPlotter->PlotPoly( cornerList, already_filled ? NO_FILL : m_Fill, GetPenSize() );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -293,7 +293,7 @@ void LIB_BEZIER::drawGraphic( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint&
|
||||||
wxPoint pos1;
|
wxPoint pos1;
|
||||||
std::vector<wxPoint> PolyPointsTraslated;
|
std::vector<wxPoint> PolyPointsTraslated;
|
||||||
|
|
||||||
EDA_COLOR_T color = ReturnLayerColor( LAYER_DEVICE );
|
EDA_COLOR_T color = GetLayerColor( LAYER_DEVICE );
|
||||||
|
|
||||||
m_PolyPoints = Bezier2Poly( m_BezierPoints[0],
|
m_PolyPoints = Bezier2Poly( m_BezierPoints[0],
|
||||||
m_BezierPoints[1],
|
m_BezierPoints[1],
|
||||||
|
@ -326,8 +326,8 @@ void LIB_BEZIER::drawGraphic( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint&
|
||||||
if( fill == FILLED_WITH_BG_BODYCOLOR )
|
if( fill == FILLED_WITH_BG_BODYCOLOR )
|
||||||
GRPoly( aPanel->GetClipBox(), aDC, m_PolyPoints.size(),
|
GRPoly( aPanel->GetClipBox(), aDC, m_PolyPoints.size(),
|
||||||
&PolyPointsTraslated[0], 1, GetPenSize(),
|
&PolyPointsTraslated[0], 1, GetPenSize(),
|
||||||
(m_Flags & IS_MOVED) ? color : ReturnLayerColor( LAYER_DEVICE_BACKGROUND ),
|
(m_Flags & IS_MOVED) ? color : GetLayerColor( LAYER_DEVICE_BACKGROUND ),
|
||||||
ReturnLayerColor( LAYER_DEVICE_BACKGROUND ) );
|
GetLayerColor( LAYER_DEVICE_BACKGROUND ) );
|
||||||
else if( fill == FILLED_SHAPE )
|
else if( fill == FILLED_SHAPE )
|
||||||
GRPoly( aPanel->GetClipBox(), aDC, m_PolyPoints.size(),
|
GRPoly( aPanel->GetClipBox(), aDC, m_PolyPoints.size(),
|
||||||
&PolyPointsTraslated[0], 1, GetPenSize(), color, color );
|
&PolyPointsTraslated[0], 1, GetPenSize(), color, color );
|
||||||
|
|
|
@ -194,12 +194,12 @@ void LIB_CIRCLE::Plot( PLOTTER* aPlotter, const wxPoint& aOffset, bool aFill,
|
||||||
|
|
||||||
if( aFill && m_Fill == FILLED_WITH_BG_BODYCOLOR )
|
if( aFill && m_Fill == FILLED_WITH_BG_BODYCOLOR )
|
||||||
{
|
{
|
||||||
aPlotter->SetColor( ReturnLayerColor( LAYER_DEVICE_BACKGROUND ) );
|
aPlotter->SetColor( GetLayerColor( LAYER_DEVICE_BACKGROUND ) );
|
||||||
aPlotter->Circle( pos, m_Radius * 2, FILLED_SHAPE, 0 );
|
aPlotter->Circle( pos, m_Radius * 2, FILLED_SHAPE, 0 );
|
||||||
}
|
}
|
||||||
|
|
||||||
bool already_filled = m_Fill == FILLED_WITH_BG_BODYCOLOR;
|
bool already_filled = m_Fill == FILLED_WITH_BG_BODYCOLOR;
|
||||||
aPlotter->SetColor( ReturnLayerColor( LAYER_DEVICE ) );
|
aPlotter->SetColor( GetLayerColor( LAYER_DEVICE ) );
|
||||||
aPlotter->Circle( pos, m_Radius * 2, already_filled ? NO_FILL : m_Fill, GetPenSize() );
|
aPlotter->Circle( pos, m_Radius * 2, already_filled ? NO_FILL : m_Fill, GetPenSize() );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -216,7 +216,7 @@ void LIB_CIRCLE::drawGraphic( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint&
|
||||||
{
|
{
|
||||||
wxPoint pos1;
|
wxPoint pos1;
|
||||||
|
|
||||||
EDA_COLOR_T color = ReturnLayerColor( LAYER_DEVICE );
|
EDA_COLOR_T color = GetLayerColor( LAYER_DEVICE );
|
||||||
|
|
||||||
if( aColor < 0 ) // Used normal color or selected color
|
if( aColor < 0 ) // Used normal color or selected color
|
||||||
{
|
{
|
||||||
|
@ -237,8 +237,8 @@ void LIB_CIRCLE::drawGraphic( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint&
|
||||||
|
|
||||||
if( fill == FILLED_WITH_BG_BODYCOLOR )
|
if( fill == FILLED_WITH_BG_BODYCOLOR )
|
||||||
GRFilledCircle( aPanel->GetClipBox(), aDC, pos1.x, pos1.y, m_Radius, GetPenSize(),
|
GRFilledCircle( aPanel->GetClipBox(), aDC, pos1.x, pos1.y, m_Radius, GetPenSize(),
|
||||||
(m_Flags & IS_MOVED) ? color : ReturnLayerColor( LAYER_DEVICE_BACKGROUND ),
|
(m_Flags & IS_MOVED) ? color : GetLayerColor( LAYER_DEVICE_BACKGROUND ),
|
||||||
ReturnLayerColor( LAYER_DEVICE_BACKGROUND ) );
|
GetLayerColor( LAYER_DEVICE_BACKGROUND ) );
|
||||||
else if( fill == FILLED_SHAPE )
|
else if( fill == FILLED_SHAPE )
|
||||||
GRFilledCircle( aPanel->GetClipBox(), aDC, pos1.x, pos1.y, m_Radius, 0, color, color );
|
GRFilledCircle( aPanel->GetClipBox(), aDC, pos1.x, pos1.y, m_Radius, 0, color, color );
|
||||||
else
|
else
|
||||||
|
|
|
@ -156,5 +156,5 @@ void LIB_ITEM::Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDC,
|
||||||
|
|
||||||
EDA_COLOR_T LIB_ITEM::GetDefaultColor()
|
EDA_COLOR_T LIB_ITEM::GetDefaultColor()
|
||||||
{
|
{
|
||||||
return ReturnLayerColor( LAYER_DEVICE );
|
return GetLayerColor( LAYER_DEVICE );
|
||||||
}
|
}
|
||||||
|
|
|
@ -523,15 +523,15 @@ EDA_COLOR_T LIB_FIELD::GetDefaultColor()
|
||||||
switch( m_id )
|
switch( m_id )
|
||||||
{
|
{
|
||||||
case REFERENCE:
|
case REFERENCE:
|
||||||
color = ReturnLayerColor( LAYER_REFERENCEPART );
|
color = GetLayerColor( LAYER_REFERENCEPART );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case VALUE:
|
case VALUE:
|
||||||
color = ReturnLayerColor( LAYER_VALUEPART );
|
color = GetLayerColor( LAYER_VALUEPART );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
color = ReturnLayerColor( LAYER_FIELDS );
|
color = GetLayerColor( LAYER_FIELDS );
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -860,7 +860,7 @@ void LIB_PIN::DrawPinSymbol( EDA_DRAW_PANEL* aPanel,
|
||||||
int posX = aPinPos.x, posY = aPinPos.y, len = m_length;
|
int posX = aPinPos.x, posY = aPinPos.y, len = m_length;
|
||||||
EDA_RECT* clipbox = aPanel ? aPanel->GetClipBox() : NULL;
|
EDA_RECT* clipbox = aPanel ? aPanel->GetClipBox() : NULL;
|
||||||
|
|
||||||
EDA_COLOR_T color = ReturnLayerColor( LAYER_PIN );
|
EDA_COLOR_T color = GetLayerColor( LAYER_PIN );
|
||||||
|
|
||||||
if( aColor < 0 ) // Used normal color or selected color
|
if( aColor < 0 ) // Used normal color or selected color
|
||||||
{
|
{
|
||||||
|
@ -1090,9 +1090,9 @@ void LIB_PIN::DrawPinTexts( EDA_DRAW_PANEL* panel,
|
||||||
Color = GetItemSelectedColor();
|
Color = GetItemSelectedColor();
|
||||||
|
|
||||||
NameColor = (EDA_COLOR_T) ( Color == UNSPECIFIED_COLOR ?
|
NameColor = (EDA_COLOR_T) ( Color == UNSPECIFIED_COLOR ?
|
||||||
ReturnLayerColor( LAYER_PINNAM ) : Color );
|
GetLayerColor( LAYER_PINNAM ) : Color );
|
||||||
NumColor = (EDA_COLOR_T) ( Color == UNSPECIFIED_COLOR ?
|
NumColor = (EDA_COLOR_T) ( Color == UNSPECIFIED_COLOR ?
|
||||||
ReturnLayerColor( LAYER_PINNUM ) : Color );
|
GetLayerColor( LAYER_PINNUM ) : Color );
|
||||||
|
|
||||||
/* Create the pin num string */
|
/* Create the pin num string */
|
||||||
ReturnPinStringNum( StringPinNum );
|
ReturnPinStringNum( StringPinNum );
|
||||||
|
@ -1271,7 +1271,7 @@ void LIB_PIN::DrawPinTexts( EDA_DRAW_PANEL* panel,
|
||||||
void LIB_PIN::PlotSymbol( PLOTTER* aPlotter, const wxPoint& aPosition, int aOrientation )
|
void LIB_PIN::PlotSymbol( PLOTTER* aPlotter, const wxPoint& aPosition, int aOrientation )
|
||||||
{
|
{
|
||||||
int MapX1, MapY1, x1, y1;
|
int MapX1, MapY1, x1, y1;
|
||||||
EDA_COLOR_T color = ReturnLayerColor( LAYER_PIN );
|
EDA_COLOR_T color = GetLayerColor( LAYER_PIN );
|
||||||
|
|
||||||
aPlotter->SetColor( color );
|
aPlotter->SetColor( color );
|
||||||
|
|
||||||
|
@ -1385,8 +1385,8 @@ void LIB_PIN::PlotPinTexts( PLOTTER* plotter,
|
||||||
wxSize PinNumSize = wxSize( m_numTextSize, m_numTextSize );
|
wxSize PinNumSize = wxSize( m_numTextSize, m_numTextSize );
|
||||||
|
|
||||||
/* Get the num and name colors */
|
/* Get the num and name colors */
|
||||||
NameColor = ReturnLayerColor( LAYER_PINNAM );
|
NameColor = GetLayerColor( LAYER_PINNAM );
|
||||||
NumColor = ReturnLayerColor( LAYER_PINNUM );
|
NumColor = GetLayerColor( LAYER_PINNUM );
|
||||||
|
|
||||||
/* Create the pin num string */
|
/* Create the pin num string */
|
||||||
ReturnPinStringNum( StringPinNum );
|
ReturnPinStringNum( StringPinNum );
|
||||||
|
|
|
@ -242,13 +242,13 @@ void LIB_POLYLINE::Plot( PLOTTER* aPlotter, const wxPoint& aOffset, bool aFill,
|
||||||
|
|
||||||
if( aFill && m_Fill == FILLED_WITH_BG_BODYCOLOR )
|
if( aFill && m_Fill == FILLED_WITH_BG_BODYCOLOR )
|
||||||
{
|
{
|
||||||
aPlotter->SetColor( ReturnLayerColor( LAYER_DEVICE_BACKGROUND ) );
|
aPlotter->SetColor( GetLayerColor( LAYER_DEVICE_BACKGROUND ) );
|
||||||
aPlotter->PlotPoly( cornerList, FILLED_WITH_BG_BODYCOLOR, 0 );
|
aPlotter->PlotPoly( cornerList, FILLED_WITH_BG_BODYCOLOR, 0 );
|
||||||
aFill = false; // body is now filled, do not fill it later.
|
aFill = false; // body is now filled, do not fill it later.
|
||||||
}
|
}
|
||||||
|
|
||||||
bool already_filled = m_Fill == FILLED_WITH_BG_BODYCOLOR;
|
bool already_filled = m_Fill == FILLED_WITH_BG_BODYCOLOR;
|
||||||
aPlotter->SetColor( ReturnLayerColor( LAYER_DEVICE ) );
|
aPlotter->SetColor( GetLayerColor( LAYER_DEVICE ) );
|
||||||
aPlotter->PlotPoly( cornerList, already_filled ? NO_FILL : m_Fill, GetPenSize() );
|
aPlotter->PlotPoly( cornerList, already_filled ? NO_FILL : m_Fill, GetPenSize() );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -270,7 +270,7 @@ void LIB_POLYLINE::drawGraphic( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint
|
||||||
const TRANSFORM& aTransform )
|
const TRANSFORM& aTransform )
|
||||||
{
|
{
|
||||||
wxPoint pos1;
|
wxPoint pos1;
|
||||||
EDA_COLOR_T color = ReturnLayerColor( LAYER_DEVICE );
|
EDA_COLOR_T color = GetLayerColor( LAYER_DEVICE );
|
||||||
wxPoint* buffer = NULL;
|
wxPoint* buffer = NULL;
|
||||||
|
|
||||||
if( aColor < 0 ) // Used normal color or selected color
|
if( aColor < 0 ) // Used normal color or selected color
|
||||||
|
@ -299,8 +299,8 @@ void LIB_POLYLINE::drawGraphic( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint
|
||||||
|
|
||||||
if( fill == FILLED_WITH_BG_BODYCOLOR )
|
if( fill == FILLED_WITH_BG_BODYCOLOR )
|
||||||
GRPoly( aPanel->GetClipBox(), aDC, m_PolyPoints.size(), buffer, 1, GetPenSize(),
|
GRPoly( aPanel->GetClipBox(), aDC, m_PolyPoints.size(), buffer, 1, GetPenSize(),
|
||||||
(m_Flags & IS_MOVED) ? color : ReturnLayerColor( LAYER_DEVICE_BACKGROUND ),
|
(m_Flags & IS_MOVED) ? color : GetLayerColor( LAYER_DEVICE_BACKGROUND ),
|
||||||
ReturnLayerColor( LAYER_DEVICE_BACKGROUND ) );
|
GetLayerColor( LAYER_DEVICE_BACKGROUND ) );
|
||||||
else if( fill == FILLED_SHAPE )
|
else if( fill == FILLED_SHAPE )
|
||||||
GRPoly( aPanel->GetClipBox(), aDC, m_PolyPoints.size(), buffer, 1, GetPenSize(),
|
GRPoly( aPanel->GetClipBox(), aDC, m_PolyPoints.size(), buffer, 1, GetPenSize(),
|
||||||
color, color );
|
color, color );
|
||||||
|
|
|
@ -179,12 +179,12 @@ void LIB_RECTANGLE::Plot( PLOTTER* aPlotter, const wxPoint& aOffset, bool aFill,
|
||||||
|
|
||||||
if( aFill && m_Fill == FILLED_WITH_BG_BODYCOLOR )
|
if( aFill && m_Fill == FILLED_WITH_BG_BODYCOLOR )
|
||||||
{
|
{
|
||||||
aPlotter->SetColor( ReturnLayerColor( LAYER_DEVICE_BACKGROUND ) );
|
aPlotter->SetColor( GetLayerColor( LAYER_DEVICE_BACKGROUND ) );
|
||||||
aPlotter->Rect( pos, end, FILLED_WITH_BG_BODYCOLOR, 0 );
|
aPlotter->Rect( pos, end, FILLED_WITH_BG_BODYCOLOR, 0 );
|
||||||
}
|
}
|
||||||
|
|
||||||
bool already_filled = m_Fill == FILLED_WITH_BG_BODYCOLOR;
|
bool already_filled = m_Fill == FILLED_WITH_BG_BODYCOLOR;
|
||||||
aPlotter->SetColor( ReturnLayerColor( LAYER_DEVICE ) );
|
aPlotter->SetColor( GetLayerColor( LAYER_DEVICE ) );
|
||||||
aPlotter->Rect( pos, end, already_filled ? NO_FILL : m_Fill, GetPenSize() );
|
aPlotter->Rect( pos, end, already_filled ? NO_FILL : m_Fill, GetPenSize() );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -201,7 +201,7 @@ void LIB_RECTANGLE::drawGraphic( EDA_DRAW_PANEL* aPanel, wxDC* aDC,
|
||||||
{
|
{
|
||||||
wxPoint pos1, pos2;
|
wxPoint pos1, pos2;
|
||||||
|
|
||||||
EDA_COLOR_T color = ReturnLayerColor( LAYER_DEVICE );
|
EDA_COLOR_T color = GetLayerColor( LAYER_DEVICE );
|
||||||
|
|
||||||
if( aColor < 0 ) // Used normal color or selected color
|
if( aColor < 0 ) // Used normal color or selected color
|
||||||
{
|
{
|
||||||
|
@ -225,8 +225,8 @@ void LIB_RECTANGLE::drawGraphic( EDA_DRAW_PANEL* aPanel, wxDC* aDC,
|
||||||
|
|
||||||
if( fill == FILLED_WITH_BG_BODYCOLOR && !aData )
|
if( fill == FILLED_WITH_BG_BODYCOLOR && !aData )
|
||||||
GRFilledRect( aPanel->GetClipBox(), aDC, pos1.x, pos1.y, pos2.x, pos2.y, GetPenSize( ),
|
GRFilledRect( aPanel->GetClipBox(), aDC, pos1.x, pos1.y, pos2.x, pos2.y, GetPenSize( ),
|
||||||
(m_Flags & IS_MOVED) ? color : ReturnLayerColor( LAYER_DEVICE_BACKGROUND ),
|
(m_Flags & IS_MOVED) ? color : GetLayerColor( LAYER_DEVICE_BACKGROUND ),
|
||||||
ReturnLayerColor( LAYER_DEVICE_BACKGROUND ) );
|
GetLayerColor( LAYER_DEVICE_BACKGROUND ) );
|
||||||
else if( m_Fill == FILLED_SHAPE && !aData )
|
else if( m_Fill == FILLED_SHAPE && !aData )
|
||||||
GRFilledRect( aPanel->GetClipBox(), aDC, pos1.x, pos1.y, pos2.x, pos2.y,
|
GRFilledRect( aPanel->GetClipBox(), aDC, pos1.x, pos1.y, pos2.x, pos2.y,
|
||||||
GetPenSize(), color, color );
|
GetPenSize(), color, color );
|
||||||
|
|
|
@ -48,12 +48,6 @@ SCH_ITEM* DuplicateStruct( SCH_ITEM* DrawStruct, bool aClone = false );
|
||||||
void DrawDanglingSymbol( EDA_DRAW_PANEL* panel, wxDC* DC, const wxPoint& pos, EDA_COLOR_T Color );
|
void DrawDanglingSymbol( EDA_DRAW_PANEL* panel, wxDC* DC, const wxPoint& pos, EDA_COLOR_T Color );
|
||||||
|
|
||||||
|
|
||||||
/***********************************/
|
|
||||||
/* dialogs/dialog_color_config.cpp */
|
|
||||||
/***********************************/
|
|
||||||
EDA_COLOR_T ReturnLayerColor( int Layer );
|
|
||||||
|
|
||||||
|
|
||||||
/***************/
|
/***************/
|
||||||
/* SELPART.CPP */
|
/* SELPART.CPP */
|
||||||
/***************/
|
/***************/
|
||||||
|
|
|
@ -301,5 +301,5 @@ bool SCH_BITMAP::HitTest( const EDA_RECT& aRect, bool aContained, int aAccuracy
|
||||||
|
|
||||||
void SCH_BITMAP::Plot( PLOTTER* aPlotter )
|
void SCH_BITMAP::Plot( PLOTTER* aPlotter )
|
||||||
{
|
{
|
||||||
m_Image->PlotImage( aPlotter, m_Pos, ReturnLayerColor( GetLayer() ), GetPenSize() );
|
m_Image->PlotImage( aPlotter, m_Pos, GetLayerColor( GetLayer() ), GetPenSize() );
|
||||||
}
|
}
|
||||||
|
|
|
@ -187,7 +187,7 @@ void SCH_BUS_ENTRY_BASE::Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint&
|
||||||
if( aColor >= 0 )
|
if( aColor >= 0 )
|
||||||
color = aColor;
|
color = aColor;
|
||||||
else
|
else
|
||||||
color = ReturnLayerColor( m_Layer );
|
color = GetLayerColor( m_Layer );
|
||||||
|
|
||||||
GRSetDrawMode( aDC, aDrawMode );
|
GRSetDrawMode( aDC, aDrawMode );
|
||||||
|
|
||||||
|
@ -287,7 +287,7 @@ bool SCH_BUS_ENTRY_BASE::HitTest( const EDA_RECT& aRect, bool aContained, int aA
|
||||||
void SCH_BUS_ENTRY_BASE::Plot( PLOTTER* aPlotter )
|
void SCH_BUS_ENTRY_BASE::Plot( PLOTTER* aPlotter )
|
||||||
{
|
{
|
||||||
aPlotter->SetCurrentLineWidth( GetPenSize() );
|
aPlotter->SetCurrentLineWidth( GetPenSize() );
|
||||||
aPlotter->SetColor( ReturnLayerColor( GetLayer() ) );
|
aPlotter->SetColor( GetLayerColor( GetLayer() ) );
|
||||||
aPlotter->MoveTo( m_pos );
|
aPlotter->MoveTo( m_pos );
|
||||||
aPlotter->FinishTo( m_End() );
|
aPlotter->FinishTo( m_End() );
|
||||||
}
|
}
|
||||||
|
|
|
@ -187,11 +187,11 @@ void SCH_FIELD::Draw( EDA_DRAW_PANEL* panel, wxDC* DC,
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if( m_id == REFERENCE )
|
if( m_id == REFERENCE )
|
||||||
color = ReturnLayerColor( LAYER_REFERENCEPART );
|
color = GetLayerColor( LAYER_REFERENCEPART );
|
||||||
else if( m_id == VALUE )
|
else if( m_id == VALUE )
|
||||||
color = ReturnLayerColor( LAYER_VALUEPART );
|
color = GetLayerColor( LAYER_VALUEPART );
|
||||||
else
|
else
|
||||||
color = ReturnLayerColor( LAYER_FIELDS );
|
color = GetLayerColor( LAYER_FIELDS );
|
||||||
}
|
}
|
||||||
|
|
||||||
DrawGraphicText( panel, DC, textpos, color, GetFullyQualifiedText(), orient, m_Size,
|
DrawGraphicText( panel, DC, textpos, color, GetFullyQualifiedText(), orient, m_Size,
|
||||||
|
@ -537,7 +537,7 @@ void SCH_FIELD::Plot( PLOTTER* aPlotter )
|
||||||
wxCHECK_RET( parent != NULL && parent->Type() == SCH_COMPONENT_T,
|
wxCHECK_RET( parent != NULL && parent->Type() == SCH_COMPONENT_T,
|
||||||
wxT( "Cannot plot field with invalid parent." ) );
|
wxT( "Cannot plot field with invalid parent." ) );
|
||||||
|
|
||||||
EDA_COLOR_T color = ReturnLayerColor( GetLayer() );
|
EDA_COLOR_T color = GetLayerColor( GetLayer() );
|
||||||
|
|
||||||
if( m_Attributs & TEXT_NO_VISIBLE )
|
if( m_Attributs & TEXT_NO_VISIBLE )
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -125,7 +125,7 @@ void SCH_JUNCTION::Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aOffs
|
||||||
if( aColor >= 0 )
|
if( aColor >= 0 )
|
||||||
color = aColor;
|
color = aColor;
|
||||||
else
|
else
|
||||||
color = ReturnLayerColor( m_Layer );
|
color = GetLayerColor( m_Layer );
|
||||||
|
|
||||||
GRSetDrawMode( aDC, aDrawMode );
|
GRSetDrawMode( aDC, aDrawMode );
|
||||||
|
|
||||||
|
@ -242,6 +242,6 @@ bool SCH_JUNCTION::doIsConnected( const wxPoint& aPosition ) const
|
||||||
|
|
||||||
void SCH_JUNCTION::Plot( PLOTTER* aPlotter )
|
void SCH_JUNCTION::Plot( PLOTTER* aPlotter )
|
||||||
{
|
{
|
||||||
aPlotter->SetColor( ReturnLayerColor( GetLayer() ) );
|
aPlotter->SetColor( GetLayerColor( GetLayer() ) );
|
||||||
aPlotter->Circle( m_pos, m_size.x, FILLED_SHAPE );
|
aPlotter->Circle( m_pos, m_size.x, FILLED_SHAPE );
|
||||||
}
|
}
|
||||||
|
|
|
@ -224,7 +224,7 @@ void SCH_LINE::Draw( EDA_DRAW_PANEL* panel, wxDC* DC, const wxPoint& offset,
|
||||||
if( Color >= 0 )
|
if( Color >= 0 )
|
||||||
color = Color;
|
color = Color;
|
||||||
else
|
else
|
||||||
color = ReturnLayerColor( m_Layer );
|
color = GetLayerColor( m_Layer );
|
||||||
|
|
||||||
GRSetDrawMode( DC, DrawMode );
|
GRSetDrawMode( DC, DrawMode );
|
||||||
|
|
||||||
|
@ -596,7 +596,7 @@ bool SCH_LINE::doIsConnected( const wxPoint& aPosition ) const
|
||||||
|
|
||||||
void SCH_LINE::Plot( PLOTTER* aPlotter )
|
void SCH_LINE::Plot( PLOTTER* aPlotter )
|
||||||
{
|
{
|
||||||
aPlotter->SetColor( ReturnLayerColor( GetLayer() ) );
|
aPlotter->SetColor( GetLayerColor( GetLayer() ) );
|
||||||
aPlotter->SetCurrentLineWidth( GetPenSize() );
|
aPlotter->SetCurrentLineWidth( GetPenSize() );
|
||||||
|
|
||||||
if( m_Layer == LAYER_NOTES )
|
if( m_Layer == LAYER_NOTES )
|
||||||
|
|
|
@ -111,8 +111,8 @@ void SCH_MARKER::Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDC,
|
||||||
|
|
||||||
if( GetMarkerType() == MARK_ERC )
|
if( GetMarkerType() == MARK_ERC )
|
||||||
{
|
{
|
||||||
color = ( GetErrorLevel() == WAR ) ? ReturnLayerColor( LAYER_ERC_WARN ) :
|
color = ( GetErrorLevel() == WAR ) ? GetLayerColor( LAYER_ERC_WARN ) :
|
||||||
ReturnLayerColor( LAYER_ERC_ERR );
|
GetLayerColor( LAYER_ERC_ERR );
|
||||||
}
|
}
|
||||||
|
|
||||||
if( aColor < 0 )
|
if( aColor < 0 )
|
||||||
|
|
|
@ -136,7 +136,7 @@ void SCH_NO_CONNECT::Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aOf
|
||||||
if( aColor >= 0 )
|
if( aColor >= 0 )
|
||||||
color = aColor;
|
color = aColor;
|
||||||
else
|
else
|
||||||
color = ReturnLayerColor( LAYER_NOCONNECT );
|
color = GetLayerColor( LAYER_NOCONNECT );
|
||||||
|
|
||||||
GRSetDrawMode( aDC, aDrawMode );
|
GRSetDrawMode( aDC, aDrawMode );
|
||||||
|
|
||||||
|
@ -243,7 +243,7 @@ void SCH_NO_CONNECT::Plot( PLOTTER* aPlotter )
|
||||||
pY = m_pos.y;
|
pY = m_pos.y;
|
||||||
|
|
||||||
aPlotter->SetCurrentLineWidth( GetPenSize() );
|
aPlotter->SetCurrentLineWidth( GetPenSize() );
|
||||||
aPlotter->SetColor( ReturnLayerColor( GetLayer() ) );
|
aPlotter->SetColor( GetLayerColor( GetLayer() ) );
|
||||||
aPlotter->MoveTo( wxPoint( pX - delta, pY - delta ) );
|
aPlotter->MoveTo( wxPoint( pX - delta, pY - delta ) );
|
||||||
aPlotter->FinishTo( wxPoint( pX + delta, pY + delta ) );
|
aPlotter->FinishTo( wxPoint( pX + delta, pY + delta ) );
|
||||||
aPlotter->MoveTo( wxPoint( pX + delta, pY - delta ) );
|
aPlotter->MoveTo( wxPoint( pX + delta, pY - delta ) );
|
||||||
|
|
|
@ -577,7 +577,7 @@ void SCH_SHEET::Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDC,
|
||||||
if( aColor >= 0 )
|
if( aColor >= 0 )
|
||||||
color = aColor;
|
color = aColor;
|
||||||
else
|
else
|
||||||
color = ReturnLayerColor( m_Layer );
|
color = GetLayerColor( m_Layer );
|
||||||
|
|
||||||
GRSetDrawMode( aDC, aDrawMode );
|
GRSetDrawMode( aDC, aDrawMode );
|
||||||
|
|
||||||
|
@ -596,7 +596,7 @@ void SCH_SHEET::Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDC,
|
||||||
if( aColor > 0 )
|
if( aColor > 0 )
|
||||||
txtcolor = aColor;
|
txtcolor = aColor;
|
||||||
else
|
else
|
||||||
txtcolor = ReturnLayerColor( LAYER_SHEETNAME );
|
txtcolor = GetLayerColor( LAYER_SHEETNAME );
|
||||||
|
|
||||||
Text = wxT( "Sheet: " ) + m_name;
|
Text = wxT( "Sheet: " ) + m_name;
|
||||||
DrawGraphicText( aPanel, aDC, pos_sheetname,
|
DrawGraphicText( aPanel, aDC, pos_sheetname,
|
||||||
|
@ -609,7 +609,7 @@ void SCH_SHEET::Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDC,
|
||||||
if( aColor >= 0 )
|
if( aColor >= 0 )
|
||||||
txtcolor = aColor;
|
txtcolor = aColor;
|
||||||
else
|
else
|
||||||
txtcolor = ReturnLayerColor( LAYER_SHEETFILENAME );
|
txtcolor = GetLayerColor( LAYER_SHEETFILENAME );
|
||||||
|
|
||||||
Text = wxT( "File: " ) + m_fileName;
|
Text = wxT( "File: " ) + m_fileName;
|
||||||
DrawGraphicText( aPanel, aDC, pos_filename,
|
DrawGraphicText( aPanel, aDC, pos_filename,
|
||||||
|
@ -1106,7 +1106,7 @@ void SCH_SHEET::Plot( PLOTTER* aPlotter )
|
||||||
wxPoint pos_sheetname, pos_filename;
|
wxPoint pos_sheetname, pos_filename;
|
||||||
wxPoint pos;
|
wxPoint pos;
|
||||||
|
|
||||||
aPlotter->SetColor( ReturnLayerColor( GetLayer() ) );
|
aPlotter->SetColor( GetLayerColor( GetLayer() ) );
|
||||||
|
|
||||||
int thickness = GetPenSize();
|
int thickness = GetPenSize();
|
||||||
aPlotter->SetCurrentLineWidth( thickness );
|
aPlotter->SetCurrentLineWidth( thickness );
|
||||||
|
@ -1146,7 +1146,7 @@ void SCH_SHEET::Plot( PLOTTER* aPlotter )
|
||||||
thickness = GetDefaultLineThickness();
|
thickness = GetDefaultLineThickness();
|
||||||
thickness = Clamp_Text_PenSize( thickness, size, false );
|
thickness = Clamp_Text_PenSize( thickness, size, false );
|
||||||
|
|
||||||
aPlotter->SetColor( ReturnLayerColor( LAYER_SHEETNAME ) );
|
aPlotter->SetColor( GetLayerColor( LAYER_SHEETNAME ) );
|
||||||
|
|
||||||
bool italic = false;
|
bool italic = false;
|
||||||
aPlotter->Text( pos_sheetname, txtcolor, Text, name_orientation, size,
|
aPlotter->Text( pos_sheetname, txtcolor, Text, name_orientation, size,
|
||||||
|
@ -1159,13 +1159,13 @@ void SCH_SHEET::Plot( PLOTTER* aPlotter )
|
||||||
thickness = GetDefaultLineThickness();
|
thickness = GetDefaultLineThickness();
|
||||||
thickness = Clamp_Text_PenSize( thickness, size, false );
|
thickness = Clamp_Text_PenSize( thickness, size, false );
|
||||||
|
|
||||||
aPlotter->SetColor( ReturnLayerColor( LAYER_SHEETFILENAME ) );
|
aPlotter->SetColor( GetLayerColor( LAYER_SHEETFILENAME ) );
|
||||||
|
|
||||||
aPlotter->Text( pos_filename, txtcolor, Text, name_orientation, size,
|
aPlotter->Text( pos_filename, txtcolor, Text, name_orientation, size,
|
||||||
GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_TOP,
|
GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_TOP,
|
||||||
thickness, italic, false );
|
thickness, italic, false );
|
||||||
|
|
||||||
aPlotter->SetColor( ReturnLayerColor( GetLayer() ) );
|
aPlotter->SetColor( GetLayerColor( GetLayer() ) );
|
||||||
|
|
||||||
/* Draw texts : SheetLabel */
|
/* Draw texts : SheetLabel */
|
||||||
for( size_t i = 0; i < m_pins.size(); i++ )
|
for( size_t i = 0; i < m_pins.size(); i++ )
|
||||||
|
|
|
@ -350,7 +350,7 @@ void SCH_TEXT::Draw( EDA_DRAW_PANEL* panel, wxDC* DC, const wxPoint& aOffset,
|
||||||
if( Color >= 0 )
|
if( Color >= 0 )
|
||||||
color = Color;
|
color = Color;
|
||||||
else
|
else
|
||||||
color = ReturnLayerColor( m_Layer );
|
color = GetLayerColor( m_Layer );
|
||||||
|
|
||||||
GRSetDrawMode( DC, DrawMode );
|
GRSetDrawMode( DC, DrawMode );
|
||||||
|
|
||||||
|
@ -657,7 +657,7 @@ void SCH_TEXT::Plot( PLOTTER* aPlotter )
|
||||||
{
|
{
|
||||||
static std::vector <wxPoint> Poly;
|
static std::vector <wxPoint> Poly;
|
||||||
|
|
||||||
EDA_COLOR_T color = ReturnLayerColor( GetLayer() );
|
EDA_COLOR_T color = GetLayerColor( GetLayer() );
|
||||||
wxPoint textpos = m_Pos + GetSchematicTextOffset();
|
wxPoint textpos = m_Pos + GetSchematicTextOffset();
|
||||||
int thickness = GetPenSize();
|
int thickness = GetPenSize();
|
||||||
|
|
||||||
|
@ -1276,7 +1276,7 @@ void SCH_GLOBALLABEL::Draw( EDA_DRAW_PANEL* panel,
|
||||||
if( Color >= 0 )
|
if( Color >= 0 )
|
||||||
color = Color;
|
color = Color;
|
||||||
else
|
else
|
||||||
color = ReturnLayerColor( m_Layer );
|
color = GetLayerColor( m_Layer );
|
||||||
|
|
||||||
GRSetDrawMode( DC, DrawMode );
|
GRSetDrawMode( DC, DrawMode );
|
||||||
|
|
||||||
|
@ -1614,7 +1614,7 @@ void SCH_HIERLABEL::Draw( EDA_DRAW_PANEL* panel,
|
||||||
if( Color >= 0 )
|
if( Color >= 0 )
|
||||||
color = Color;
|
color = Color;
|
||||||
else
|
else
|
||||||
color = ReturnLayerColor( m_Layer );
|
color = GetLayerColor( m_Layer );
|
||||||
|
|
||||||
GRSetDrawMode( DC, DrawMode );
|
GRSetDrawMode( DC, DrawMode );
|
||||||
|
|
||||||
|
|
|
@ -328,8 +328,7 @@ void GERBER_DRAW_ITEM::Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDC, GR_DRAWMODE aDra
|
||||||
if( aDrawMode & GR_HIGHLIGHT )
|
if( aDrawMode & GR_HIGHLIGHT )
|
||||||
ColorChangeHighlightFlag( &color, !(aDrawMode & GR_AND) );
|
ColorChangeHighlightFlag( &color, !(aDrawMode & GR_AND) );
|
||||||
|
|
||||||
if( color & HIGHLIGHT_FLAG )
|
ColorApplyHighlightFlag( &color );
|
||||||
color = ColorRefs[color & MASKCOLOR].m_LightColor;
|
|
||||||
|
|
||||||
alt_color = gerbFrame->GetNegativeItemsColor();
|
alt_color = gerbFrame->GetNegativeItemsColor();
|
||||||
|
|
||||||
|
|
|
@ -91,12 +91,12 @@ PARAM_CFG_ARRAY& GERBVIEW_FRAME::GetConfigurationSettings()
|
||||||
m_configSettings.push_back( new PARAM_CFG_INT( true, wxT( "DrawModeOption" ),
|
m_configSettings.push_back( new PARAM_CFG_INT( true, wxT( "DrawModeOption" ),
|
||||||
&m_displayMode, 2, 0, 2 ) );
|
&m_displayMode, 2, 0, 2 ) );
|
||||||
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true,
|
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true,
|
||||||
wxT( "DCodeColor" ),
|
wxT( "DCodeColorEx" ),
|
||||||
&g_ColorsSettings.m_ItemsColors[
|
&g_ColorsSettings.m_ItemsColors[
|
||||||
DCODES_VISIBLE],
|
DCODES_VISIBLE],
|
||||||
WHITE ) );
|
WHITE ) );
|
||||||
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true,
|
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true,
|
||||||
wxT( "NegativeObjectsColor" ),
|
wxT( "NegativeObjectsColorEx" ),
|
||||||
&g_ColorsSettings.m_ItemsColors[
|
&g_ColorsSettings.m_ItemsColors[
|
||||||
NEGATIVE_OBJECTS_VISIBLE],
|
NEGATIVE_OBJECTS_VISIBLE],
|
||||||
DARKGRAY ) );
|
DARKGRAY ) );
|
||||||
|
@ -122,15 +122,14 @@ PARAM_CFG_ARRAY& GERBVIEW_FRAME::GetConfigurationSettings()
|
||||||
// because the parameter list that use these keywords does not store them,
|
// because the parameter list that use these keywords does not store them,
|
||||||
// just points to them.
|
// just points to them.
|
||||||
static const wxChar* keys[] = {
|
static const wxChar* keys[] = {
|
||||||
wxT("ColorLayer_0"), wxT("ColorLayer_1"), wxT("ColorLayer_2"), wxT("ColorLayer_3"),
|
wxT("ColorLayer0Ex"), wxT("ColorLayer1Ex"), wxT("ColorLayer2Ex"), wxT("ColorLayer3Ex"),
|
||||||
wxT("ColorLayer_4"), wxT("ColorLayer_5"), wxT("ColorLayer_6"), wxT("ColorLayer_7"),
|
wxT("ColorLayer4Ex"), wxT("ColorLayer5Ex"), wxT("ColorLayer6Ex"), wxT("ColorLayer7Ex"),
|
||||||
wxT("ColorLayer_8"), wxT("ColorLayer_9"), wxT("ColorLayer_10"), wxT("ColorLayer_11"),
|
wxT("ColorLayer8Ex"), wxT("ColorLayer9Ex"), wxT("ColorLayer10Ex"), wxT("ColorLayer11Ex"),
|
||||||
wxT("ColorLayer_12"), wxT("ColorLayer_13"), wxT("ColorLayer_14"), wxT("ColorLayer_15"),
|
wxT("ColorLayer12Ex"), wxT("ColorLayer13Ex"), wxT("ColorLayer14Ex"), wxT("ColorLayer15Ex"),
|
||||||
|
wxT("ColorLayer16Ex"), wxT("ColorLayer17Ex"), wxT("ColorLayer18Ex"), wxT("ColorLayer19Ex"),
|
||||||
wxT("ColorLayer_16"), wxT("ColorLayer_17"), wxT("ColorLayer_18"), wxT("ColorLayer_19"),
|
wxT("ColorLayer20Ex"), wxT("ColorLayer21Ex"), wxT("ColorLayer22Ex"), wxT("ColorLayer23Ex"),
|
||||||
wxT("ColorLayer_20"), wxT("ColorLayer_21"), wxT("ColorLayer_22"), wxT("ColorLayer_23"),
|
wxT("ColorLayer24Ex"), wxT("ColorLayer25Ex"), wxT("ColorLayer26Ex"), wxT("ColorLayer27Ex"),
|
||||||
wxT("ColorLayer_24"), wxT("ColorLayer_25"), wxT("ColorLayer_26"), wxT("ColorLayer_27"),
|
wxT("ColorLayer28Ex"), wxT("ColorLayer29Ex"), wxT("ColorLayer30Ex"), wxT("ColorLayer31Ex"),
|
||||||
wxT("ColorLayer_28"), wxT("ColorLayer_29"), wxT("ColorLayer_30"), wxT("ColorLayer_31"),
|
|
||||||
};
|
};
|
||||||
|
|
||||||
wxASSERT( DIM(keys) == DIM(color_default) );
|
wxASSERT( DIM(keys) == DIM(color_default) );
|
||||||
|
|
|
@ -37,25 +37,37 @@ enum EDA_COLOR_T
|
||||||
DARKMAGENTA,
|
DARKMAGENTA,
|
||||||
DARKBROWN,
|
DARKBROWN,
|
||||||
LIGHTYELLOW,
|
LIGHTYELLOW,
|
||||||
LASTCOLOR,
|
NBCOLORS, ///< Number of colors
|
||||||
HIGHLIGHT_FLAG = ( 1<<19 ),
|
HIGHLIGHT_FLAG = ( 1<<19 ),
|
||||||
NBCOLOR = 24, ///< Number of colors
|
|
||||||
MASKCOLOR = 31 ///< mask for color index into ColorRefs[]
|
MASKCOLOR = 31 ///< mask for color index into ColorRefs[]
|
||||||
};
|
};
|
||||||
|
|
||||||
/// Checked cast. Use only when necessary (ex. I/O)
|
/// Checked cast. Use only when necessary (usually I/O)
|
||||||
inline EDA_COLOR_T ColorFromInt( int aColor )
|
inline EDA_COLOR_T ColorFromInt( int aColor )
|
||||||
{
|
{
|
||||||
wxASSERT( aColor >= UNSPECIFIED_COLOR && aColor < LASTCOLOR );
|
wxASSERT( aColor >= UNSPECIFIED_COLOR && aColor < NBCOLORS );
|
||||||
return static_cast<EDA_COLOR_T>( aColor );
|
return static_cast<EDA_COLOR_T>( aColor );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline EDA_COLOR_T operator++( EDA_COLOR_T& aColor )
|
||||||
|
{
|
||||||
|
// We have to accept NBCOLORS for loop termination conditions
|
||||||
|
wxASSERT( aColor >= UNSPECIFIED_COLOR && aColor <= NBCOLORS );
|
||||||
|
aColor = static_cast<EDA_COLOR_T>( int( aColor ) + 1 );
|
||||||
|
return aColor;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/// Return only the plain color part
|
/// Return only the plain color part
|
||||||
inline EDA_COLOR_T ColorGetBase( EDA_COLOR_T aColor)
|
inline EDA_COLOR_T ColorGetBase( EDA_COLOR_T aColor)
|
||||||
{
|
{
|
||||||
return static_cast<EDA_COLOR_T>( aColor & MASKCOLOR );
|
EDA_COLOR_T base = static_cast<EDA_COLOR_T>( aColor & MASKCOLOR );
|
||||||
|
return base;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Mix two colors in some way (hopefully like a logical OR)
|
||||||
|
EDA_COLOR_T ColorMix( EDA_COLOR_T aColor1, EDA_COLOR_T aColor2 );
|
||||||
|
|
||||||
/// Force the color part of a color to darkdarkgray
|
/// Force the color part of a color to darkdarkgray
|
||||||
inline void ColorTurnToDarkDarkGray( EDA_COLOR_T *aColor )
|
inline void ColorTurnToDarkDarkGray( EDA_COLOR_T *aColor )
|
||||||
{
|
{
|
||||||
|
@ -82,7 +94,6 @@ inline void SetAlpha( EDA_COLOR_T* aColor, unsigned char aBlend )
|
||||||
| ((aBlend & MASKALPHA) << 24));
|
| ((aBlend & MASKALPHA) << 24));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function GetAlpha
|
* Function GetAlpha
|
||||||
* returns the alpha blend parameter from a color index.
|
* returns the alpha blend parameter from a color index.
|
||||||
|
@ -105,8 +116,38 @@ struct StructColors
|
||||||
EDA_COLOR_T m_LightColor;
|
EDA_COLOR_T m_LightColor;
|
||||||
};
|
};
|
||||||
|
|
||||||
// list of existing Colors:
|
/// list of existing Colors
|
||||||
extern StructColors ColorRefs[NBCOLOR];
|
extern const StructColors g_ColorRefs[NBCOLORS];
|
||||||
|
|
||||||
|
/// Step a color to the highlighted version if the highlight flag is set
|
||||||
|
inline void ColorApplyHighlightFlag( EDA_COLOR_T *aColor )
|
||||||
|
{
|
||||||
|
EDA_COLOR_T base = ColorGetBase( *aColor );
|
||||||
|
wxASSERT( base > UNSPECIFIED_COLOR && base < NBCOLORS );
|
||||||
|
if( *aColor & HIGHLIGHT_FLAG )
|
||||||
|
*aColor = g_ColorRefs[base].m_LightColor;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Find a color by name
|
||||||
|
EDA_COLOR_T ColorByName( const wxChar *aName );
|
||||||
|
|
||||||
|
/// Find the nearest color match
|
||||||
|
EDA_COLOR_T ColorFindNearest( const wxColour &aColor );
|
||||||
|
|
||||||
|
inline const wxChar *ColorGetName( EDA_COLOR_T aColor )
|
||||||
|
{
|
||||||
|
EDA_COLOR_T base = ColorGetBase( aColor );
|
||||||
|
wxASSERT( base > UNSPECIFIED_COLOR && base < NBCOLORS );
|
||||||
|
return g_ColorRefs[base].m_Name;
|
||||||
|
}
|
||||||
|
|
||||||
|
inline void ColorSetBrush( wxBrush *aBrush, EDA_COLOR_T aColor )
|
||||||
|
{
|
||||||
|
EDA_COLOR_T base = ColorGetBase( aColor );
|
||||||
|
wxASSERT( base > UNSPECIFIED_COLOR && base < NBCOLORS );
|
||||||
|
const StructColors &col = g_ColorRefs[base];
|
||||||
|
aBrush->SetColour( col.m_Red, col.m_Green, col.m_Blue );
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function MakeColour
|
* Function MakeColour
|
||||||
|
@ -123,11 +164,12 @@ inline wxColour MakeColour( EDA_COLOR_T aColor )
|
||||||
int alpha = GetAlpha( aColor );
|
int alpha = GetAlpha( aColor );
|
||||||
alpha = alpha ? alpha : wxALPHA_OPAQUE;
|
alpha = alpha ? alpha : wxALPHA_OPAQUE;
|
||||||
#endif
|
#endif
|
||||||
int ndx = aColor & MASKCOLOR;
|
EDA_COLOR_T ndx = ColorGetBase( aColor );
|
||||||
|
wxASSERT( ndx > UNSPECIFIED_COLOR && ndx < NBCOLORS );
|
||||||
|
|
||||||
return wxColour( ColorRefs[ndx].m_Red,
|
return wxColour( g_ColorRefs[ndx].m_Red,
|
||||||
ColorRefs[ndx].m_Green,
|
g_ColorRefs[ndx].m_Green,
|
||||||
ColorRefs[ndx].m_Blue
|
g_ColorRefs[ndx].m_Blue
|
||||||
#if wxCHECK_VERSION(2,8,5)
|
#if wxCHECK_VERSION(2,8,5)
|
||||||
,(unsigned char) alpha
|
,(unsigned char) alpha
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -134,12 +134,26 @@ inline LAYER_MSK GetLayerMask( LAYER_NUM aLayerNumber )
|
||||||
return 1 << aLayerNumber;
|
return 1 << aLayerNumber;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Count the number of set layers in the mask
|
||||||
|
*/
|
||||||
|
inline int LayerMaskCountSet( LAYER_MSK aMask )
|
||||||
|
{
|
||||||
|
int count = 0;
|
||||||
|
|
||||||
|
for( LAYER_NUM i = FIRST_LAYER; i < NB_LAYERS; ++i )
|
||||||
|
{
|
||||||
|
if( aMask & GetLayerMask( i ) )
|
||||||
|
++count;
|
||||||
|
}
|
||||||
|
return count;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// layers order in dialogs (plot, print and toolbars)
|
// layers order in dialogs (plot, print and toolbars)
|
||||||
// in same order than in setup layers dialog
|
// in same order than in setup layers dialog
|
||||||
// (Front or Top to Back or Bottom)
|
// (Front or Top to Back or Bottom)
|
||||||
#define DECLARE_LAYERS_ORDER_LIST(list) LAYER_NUM list[NB_LAYERS] =\
|
#define DECLARE_LAYERS_ORDER_LIST(list) const LAYER_NUM list[NB_LAYERS] =\
|
||||||
{ LAYER_N_FRONT,\
|
{ LAYER_N_FRONT,\
|
||||||
LAYER_N_15, LAYER_N_14, LAYER_N_13, LAYER_N_12,\
|
LAYER_N_15, LAYER_N_14, LAYER_N_13, LAYER_N_12,\
|
||||||
LAYER_N_11, LAYER_N_10, LAYER_N_9, LAYER_N_8,\
|
LAYER_N_11, LAYER_N_10, LAYER_N_9, LAYER_N_8,\
|
||||||
|
@ -223,4 +237,39 @@ inline bool IsValidNonCopperLayerIndex( LAYER_NUM aLayerIndex )
|
||||||
&& aLayerIndex <= LAST_NON_COPPER_LAYER;
|
&& aLayerIndex <= LAST_NON_COPPER_LAYER;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* IMPORTANT: If a layer is not a front layer not necessarily is true
|
||||||
|
the converse. The same hold for a back layer.
|
||||||
|
So a layer can be:
|
||||||
|
- Front
|
||||||
|
- Back
|
||||||
|
- Neither (internal or auxiliary)
|
||||||
|
|
||||||
|
The check most frequent is for back layers, since it involves flips */
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Layer classification: check if it's a front layer
|
||||||
|
*/
|
||||||
|
inline bool IsFrontLayer( LAYER_NUM aLayer )
|
||||||
|
{
|
||||||
|
return ( aLayer == LAYER_N_FRONT ||
|
||||||
|
aLayer == ADHESIVE_N_FRONT ||
|
||||||
|
aLayer == SOLDERPASTE_N_FRONT ||
|
||||||
|
aLayer == SILKSCREEN_N_FRONT ||
|
||||||
|
aLayer == SOLDERPASTE_N_FRONT );
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Layer classification: check if it's a back layer
|
||||||
|
*/
|
||||||
|
inline bool IsBackLayer( LAYER_NUM aLayer )
|
||||||
|
{
|
||||||
|
return ( aLayer == LAYER_N_BACK ||
|
||||||
|
aLayer == ADHESIVE_N_BACK ||
|
||||||
|
aLayer == SOLDERPASTE_N_BACK ||
|
||||||
|
aLayer == SILKSCREEN_N_BACK ||
|
||||||
|
aLayer == SOLDERPASTE_N_BACK );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#endif // _LAYERS_ID_AND_VISIBILITY_H_
|
#endif // _LAYERS_ID_AND_VISIBILITY_H_
|
||||||
|
|
|
@ -895,7 +895,7 @@ public:
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
bool textAsLines;
|
bool textAsLines;
|
||||||
int currentColor;
|
EDA_COLOR_T m_currentColor;
|
||||||
};
|
};
|
||||||
|
|
||||||
class TITLE_BLOCK;
|
class TITLE_BLOCK;
|
||||||
|
|
|
@ -34,6 +34,7 @@
|
||||||
|
|
||||||
|
|
||||||
#include <base_struct.h>
|
#include <base_struct.h>
|
||||||
|
#include <layers_id_colors_and_visibility.h>
|
||||||
|
|
||||||
|
|
||||||
class BOARD;
|
class BOARD;
|
||||||
|
@ -208,7 +209,7 @@ void TraceFilledRectangle( int ux0, int uy0, int ux1, int uy1,
|
||||||
|
|
||||||
/* Same as above, but the rectangle is inclined angle angle. */
|
/* Same as above, but the rectangle is inclined angle angle. */
|
||||||
void TraceFilledRectangle( int ux0, int uy0, int ux1, int uy1,
|
void TraceFilledRectangle( int ux0, int uy0, int ux1, int uy1,
|
||||||
int angle, int masque_layer, int color, int op_logic );
|
int angle, LAYER_MSK masque_layer, int color, int op_logic );
|
||||||
|
|
||||||
/* QUEUE.CPP */
|
/* QUEUE.CPP */
|
||||||
void FreeQueue();
|
void FreeQueue();
|
||||||
|
|
|
@ -43,32 +43,32 @@
|
||||||
#include <autorout.h>
|
#include <autorout.h>
|
||||||
#include <cell.h>
|
#include <cell.h>
|
||||||
|
|
||||||
void TracePcbLine( int x0, int y0, int x1, int y1, int layer, int color );
|
void TracePcbLine( int x0, int y0, int x1, int y1, LAYER_NUM layer, int color );
|
||||||
|
|
||||||
void TraceArc( int ux0, int uy0,
|
void TraceArc( int ux0, int uy0,
|
||||||
int ux1, int uy1,
|
int ux1, int uy1,
|
||||||
int ArcAngle,
|
int ArcAngle,
|
||||||
int lg, int layer, int color,
|
int lg, LAYER_NUM layer, int color,
|
||||||
int op_logic );
|
int op_logic );
|
||||||
|
|
||||||
|
|
||||||
static void DrawSegmentQcq( int ux0, int uy0,
|
static void DrawSegmentQcq( int ux0, int uy0,
|
||||||
int ux1, int uy1,
|
int ux1, int uy1,
|
||||||
int lg, int layer, int color,
|
int lg, LAYER_NUM layer, int color,
|
||||||
int op_logic );
|
int op_logic );
|
||||||
|
|
||||||
static void TraceFilledCircle( int cx, int cy, int radius,
|
static void TraceFilledCircle( int cx, int cy, int radius,
|
||||||
int aLayerMask,
|
LAYER_MSK aLayerMask,
|
||||||
int color,
|
int color,
|
||||||
int op_logic );
|
int op_logic );
|
||||||
|
|
||||||
static void TraceCircle( int ux0, int uy0, int ux1, int uy1, int lg, int layer,
|
static void TraceCircle( int ux0, int uy0, int ux1, int uy1, int lg, LAYER_NUM layer,
|
||||||
int color, int op_logic );
|
int color, int op_logic );
|
||||||
|
|
||||||
// Macro call to update cell.
|
// Macro call to update cell.
|
||||||
#define OP_CELL( layer, dy, dx ) \
|
#define OP_CELL( layer, dy, dx ) \
|
||||||
{ \
|
{ \
|
||||||
if( layer < 0 ) \
|
if( layer == UNDEFINED_LAYER ) \
|
||||||
{ \
|
{ \
|
||||||
RoutingMatrix.WriteCell( dy, dx, BOTTOM, color ); \
|
RoutingMatrix.WriteCell( dy, dx, BOTTOM, color ); \
|
||||||
if( RoutingMatrix.m_RoutingLayersCount > 1 ) \
|
if( RoutingMatrix.m_RoutingLayersCount > 1 ) \
|
||||||
|
@ -140,7 +140,7 @@ void PlacePad( D_PAD* aPad, int color, int marge, int op_logic )
|
||||||
* op_logic: type of writing in the cell (WRITE, OR)
|
* op_logic: type of writing in the cell (WRITE, OR)
|
||||||
*/
|
*/
|
||||||
void TraceFilledCircle( int cx, int cy, int radius,
|
void TraceFilledCircle( int cx, int cy, int radius,
|
||||||
int aLayerMask,
|
LAYER_MSK aLayerMask,
|
||||||
int color,
|
int color,
|
||||||
int op_logic )
|
int op_logic )
|
||||||
{
|
{
|
||||||
|
@ -273,32 +273,32 @@ void TraceSegmentPcb( TRACK* pt_segm, int color, int marge, int op_logic )
|
||||||
// Test if VIA (filled circle was drawn)
|
// Test if VIA (filled circle was drawn)
|
||||||
if( pt_segm->Type() == PCB_VIA_T )
|
if( pt_segm->Type() == PCB_VIA_T )
|
||||||
{
|
{
|
||||||
int mask_layer = 0;
|
LAYER_MSK layer_mask = NO_LAYERS;
|
||||||
|
|
||||||
if( pt_segm->IsOnLayer( g_Route_Layer_BOTTOM ) )
|
if( pt_segm->IsOnLayer( g_Route_Layer_BOTTOM ) )
|
||||||
mask_layer = 1 << g_Route_Layer_BOTTOM;
|
layer_mask = GetLayerMask( g_Route_Layer_BOTTOM );
|
||||||
|
|
||||||
if( pt_segm->IsOnLayer( g_Route_Layer_TOP ) )
|
if( pt_segm->IsOnLayer( g_Route_Layer_TOP ) )
|
||||||
{
|
{
|
||||||
if( mask_layer == 0 )
|
if( layer_mask == 0 )
|
||||||
mask_layer = 1 << g_Route_Layer_TOP;
|
layer_mask = GetLayerMask( g_Route_Layer_TOP );
|
||||||
else
|
else
|
||||||
mask_layer = -1;
|
layer_mask = FULL_LAYERS;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( color == VIA_IMPOSSIBLE )
|
if( color == VIA_IMPOSSIBLE )
|
||||||
mask_layer = -1;
|
layer_mask = FULL_LAYERS;
|
||||||
|
|
||||||
if( mask_layer )
|
if( layer_mask )
|
||||||
TraceFilledCircle( pt_segm->GetStart().x, pt_segm->GetStart().y,
|
TraceFilledCircle( pt_segm->GetStart().x, pt_segm->GetStart().y,
|
||||||
half_width, mask_layer, color, op_logic );
|
half_width, layer_mask, color, op_logic );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
int layer = pt_segm->GetLayer();
|
LAYER_NUM layer = pt_segm->GetLayer();
|
||||||
|
|
||||||
if( color == VIA_IMPOSSIBLE )
|
if( color == VIA_IMPOSSIBLE )
|
||||||
layer = -1;
|
layer = UNDEFINED_LAYER;
|
||||||
|
|
||||||
// The segment is here a straight line or a circle or an arc.:
|
// The segment is here a straight line or a circle or an arc.:
|
||||||
if( pt_segm->GetShape() == S_CIRCLE )
|
if( pt_segm->GetShape() == S_CIRCLE )
|
||||||
|
@ -328,7 +328,7 @@ void TraceSegmentPcb( TRACK* pt_segm, int color, int marge, int op_logic )
|
||||||
|
|
||||||
/* Draws a line, if layer = -1 on all layers
|
/* Draws a line, if layer = -1 on all layers
|
||||||
*/
|
*/
|
||||||
void TracePcbLine( int x0, int y0, int x1, int y1, int layer, int color, int op_logic )
|
void TracePcbLine( int x0, int y0, int x1, int y1, LAYER_NUM layer, int color, int op_logic )
|
||||||
{
|
{
|
||||||
int dx, dy, lim;
|
int dx, dy, lim;
|
||||||
int cumul, inc, il, delta;
|
int cumul, inc, il, delta;
|
||||||
|
@ -531,7 +531,7 @@ void TraceFilledRectangle( int ux0, int uy0, int ux1, int uy1,
|
||||||
|
|
||||||
|
|
||||||
void TraceFilledRectangle( int ux0, int uy0, int ux1, int uy1,
|
void TraceFilledRectangle( int ux0, int uy0, int ux1, int uy1,
|
||||||
int angle, int aLayerMask, int color, int op_logic )
|
int angle, LAYER_MSK aLayerMask, int color, int op_logic )
|
||||||
{
|
{
|
||||||
int row, col;
|
int row, col;
|
||||||
int cx, cy; // Center of rectangle
|
int cx, cy; // Center of rectangle
|
||||||
|
@ -623,7 +623,7 @@ void TraceFilledRectangle( int ux0, int uy0, int ux1, int uy1,
|
||||||
* half-width = lg, org = ux0,uy0 end = ux1,uy1
|
* half-width = lg, org = ux0,uy0 end = ux1,uy1
|
||||||
* coordinates are in PCB units
|
* coordinates are in PCB units
|
||||||
*/
|
*/
|
||||||
void DrawSegmentQcq( int ux0, int uy0, int ux1, int uy1, int lg, int layer,
|
void DrawSegmentQcq( int ux0, int uy0, int ux1, int uy1, int lg, LAYER_NUM layer,
|
||||||
int color, int op_logic )
|
int color, int op_logic )
|
||||||
{
|
{
|
||||||
int row, col;
|
int row, col;
|
||||||
|
@ -749,7 +749,7 @@ void DrawSegmentQcq( int ux0, int uy0, int ux1, int uy1, int lg, int layer,
|
||||||
* half-width = lg, center = ux0, uy0, ux1,uy1 is a point on the circle.
|
* half-width = lg, center = ux0, uy0, ux1,uy1 is a point on the circle.
|
||||||
* coord are in PCB units.
|
* coord are in PCB units.
|
||||||
*/
|
*/
|
||||||
void TraceCircle( int ux0, int uy0, int ux1, int uy1, int lg, int layer,
|
void TraceCircle( int ux0, int uy0, int ux1, int uy1, int lg, LAYER_NUM layer,
|
||||||
int color, int op_logic )
|
int color, int op_logic )
|
||||||
{
|
{
|
||||||
int radius, nb_segm;
|
int radius, nb_segm;
|
||||||
|
@ -794,7 +794,7 @@ void TraceCircle( int ux0, int uy0, int ux1, int uy1, int lg, int layer,
|
||||||
* PCB units.
|
* PCB units.
|
||||||
*/
|
*/
|
||||||
void TraceArc( int ux0, int uy0, int ux1, int uy1, int ArcAngle, int lg,
|
void TraceArc( int ux0, int uy0, int ux1, int uy1, int ArcAngle, int lg,
|
||||||
int layer, int color, int op_logic )
|
LAYER_NUM layer, int color, int op_logic )
|
||||||
{
|
{
|
||||||
int radius, nb_segm;
|
int radius, nb_segm;
|
||||||
int x0, y0, // Starting point of the current segment trace
|
int x0, y0, // Starting point of the current segment trace
|
||||||
|
|
|
@ -198,7 +198,7 @@ void PlaceCells( BOARD* aPcb, int net_code, int flag )
|
||||||
{
|
{
|
||||||
int ux0 = 0, uy0 = 0, ux1, uy1, dx, dy;
|
int ux0 = 0, uy0 = 0, ux1, uy1, dx, dy;
|
||||||
int marge, via_marge;
|
int marge, via_marge;
|
||||||
int layerMask;
|
LAYER_MSK layerMask;
|
||||||
|
|
||||||
// use the default NETCLASS?
|
// use the default NETCLASS?
|
||||||
NETCLASS* nc = aPcb->m_NetClasses.GetDefault();
|
NETCLASS* nc = aPcb->m_NetClasses.GetDefault();
|
||||||
|
|
|
@ -138,7 +138,7 @@ void D_PAD::Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDC, GR_DRAWMODE aDraw_mode,
|
||||||
else
|
else
|
||||||
drawInfo.m_ShowPadFilled = false;
|
drawInfo.m_ShowPadFilled = false;
|
||||||
|
|
||||||
EDA_COLOR_T color = ColorFromInt(0); // XXX EVIL (it will be ORed later)
|
EDA_COLOR_T color = BLACK;
|
||||||
if( m_layerMask & LAYER_FRONT )
|
if( m_layerMask & LAYER_FRONT )
|
||||||
{
|
{
|
||||||
color = brd->GetVisibleElementColor( PAD_FR_VISIBLE );
|
color = brd->GetVisibleElementColor( PAD_FR_VISIBLE );
|
||||||
|
@ -146,13 +146,12 @@ void D_PAD::Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDC, GR_DRAWMODE aDraw_mode,
|
||||||
|
|
||||||
if( m_layerMask & LAYER_BACK )
|
if( m_layerMask & LAYER_BACK )
|
||||||
{
|
{
|
||||||
// XXX EVIL merge
|
color = ColorMix( color, brd->GetVisibleElementColor( PAD_BK_VISIBLE ) );
|
||||||
color = ColorFromInt( color | brd->GetVisibleElementColor( PAD_BK_VISIBLE ) );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if( color == 0 ) // Not on a visible copper layer XXX EVIL check
|
if( color == BLACK ) // Not on a visible copper layer (i.e. still nothing to show)
|
||||||
{
|
{
|
||||||
// If the pad in on only one tech layer, use the layer color else use DARKGRAY
|
// If the pad is on only one tech layer, use the layer color else use DARKGRAY
|
||||||
int mask_non_copper_layers = m_layerMask & ~ALL_CU_LAYERS;
|
int mask_non_copper_layers = m_layerMask & ~ALL_CU_LAYERS;
|
||||||
#ifdef SHOW_PADMASK_REAL_SIZE_AND_COLOR
|
#ifdef SHOW_PADMASK_REAL_SIZE_AND_COLOR
|
||||||
mask_non_copper_layers &= brd->GetVisibleLayers();
|
mask_non_copper_layers &= brd->GetVisibleLayers();
|
||||||
|
@ -328,8 +327,7 @@ void D_PAD::Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDC, GR_DRAWMODE aDraw_mode,
|
||||||
if( aDraw_mode & GR_HIGHLIGHT )
|
if( aDraw_mode & GR_HIGHLIGHT )
|
||||||
ColorChangeHighlightFlag( &color, !(aDraw_mode & GR_AND) );
|
ColorChangeHighlightFlag( &color, !(aDraw_mode & GR_AND) );
|
||||||
|
|
||||||
if( color & HIGHLIGHT_FLAG )
|
ColorApplyHighlightFlag( &color );
|
||||||
color = ColorRefs[color & MASKCOLOR].m_LightColor;
|
|
||||||
|
|
||||||
bool DisplayIsol = DisplayOpt.DisplayPadIsol;
|
bool DisplayIsol = DisplayOpt.DisplayPadIsol;
|
||||||
|
|
||||||
|
@ -362,7 +360,7 @@ void D_PAD::Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDC, GR_DRAWMODE aDraw_mode,
|
||||||
drawInfo.m_Display_netname = false;
|
drawInfo.m_Display_netname = false;
|
||||||
|
|
||||||
// Display net names is restricted to pads that are on the active layer
|
// Display net names is restricted to pads that are on the active layer
|
||||||
// in hight contrast mode display
|
// in high contrast mode display
|
||||||
if( ( aDraw_mode & GR_ALLOW_HIGHCONTRAST ) &&
|
if( ( aDraw_mode & GR_ALLOW_HIGHCONTRAST ) &&
|
||||||
!IsOnLayer( screen->m_Active_Layer ) && DisplayOpt.ContrastModeDisplay )
|
!IsOnLayer( screen->m_Active_Layer ) && DisplayOpt.ContrastModeDisplay )
|
||||||
drawInfo.m_Display_netname = false;
|
drawInfo.m_Display_netname = false;
|
||||||
|
|
|
@ -180,7 +180,7 @@ wxString TEXTE_PCB::GetSelectMenuText() const
|
||||||
if( m_Text.Len() < 12 )
|
if( m_Text.Len() < 12 )
|
||||||
shorttxt << m_Text;
|
shorttxt << m_Text;
|
||||||
else
|
else
|
||||||
shorttxt += m_Text.Left( 10 ) + wxT( ".." );
|
shorttxt += m_Text.Left( 10 ) + wxT( "..." );
|
||||||
|
|
||||||
text.Printf( _( "Pcb Text %s on %s"),
|
text.Printf( _( "Pcb Text %s on %s"),
|
||||||
GetChars ( shorttxt ), GetChars( GetLayerName() ) );
|
GetChars ( shorttxt ), GetChars( GetLayerName() ) );
|
||||||
|
|
|
@ -614,8 +614,7 @@ void TRACK::Draw( EDA_DRAW_PANEL* panel, wxDC* DC, GR_DRAWMODE draw_mode,
|
||||||
if( draw_mode & GR_HIGHLIGHT )
|
if( draw_mode & GR_HIGHLIGHT )
|
||||||
ColorChangeHighlightFlag( &color, !(draw_mode & GR_AND) );
|
ColorChangeHighlightFlag( &color, !(draw_mode & GR_AND) );
|
||||||
|
|
||||||
if( color & HIGHLIGHT_FLAG )
|
ColorApplyHighlightFlag( &color );
|
||||||
color = ColorRefs[color & MASKCOLOR].m_LightColor;
|
|
||||||
|
|
||||||
SetAlpha( &color, 150 );
|
SetAlpha( &color, 150 );
|
||||||
|
|
||||||
|
@ -780,8 +779,7 @@ void SEGVIA::Draw( EDA_DRAW_PANEL* panel, wxDC* DC, GR_DRAWMODE draw_mode,
|
||||||
if( draw_mode & GR_HIGHLIGHT )
|
if( draw_mode & GR_HIGHLIGHT )
|
||||||
ColorChangeHighlightFlag( &color, !(draw_mode & GR_AND) );
|
ColorChangeHighlightFlag( &color, !(draw_mode & GR_AND) );
|
||||||
|
|
||||||
if( color & HIGHLIGHT_FLAG )
|
ColorApplyHighlightFlag( &color );
|
||||||
color = ColorRefs[color & MASKCOLOR].m_LightColor;
|
|
||||||
|
|
||||||
SetAlpha( &color, 150 );
|
SetAlpha( &color, 150 );
|
||||||
|
|
||||||
|
|
|
@ -189,8 +189,7 @@ void ZONE_CONTAINER::Draw( EDA_DRAW_PANEL* panel, wxDC* DC, GR_DRAWMODE aDrawMod
|
||||||
if( aDrawMode & GR_HIGHLIGHT )
|
if( aDrawMode & GR_HIGHLIGHT )
|
||||||
ColorChangeHighlightFlag( &color, !(aDrawMode & GR_AND) );
|
ColorChangeHighlightFlag( &color, !(aDrawMode & GR_AND) );
|
||||||
|
|
||||||
if( color & HIGHLIGHT_FLAG )
|
ColorApplyHighlightFlag( &color );
|
||||||
color = ColorRefs[color & MASKCOLOR].m_LightColor;
|
|
||||||
|
|
||||||
SetAlpha( &color, 150 );
|
SetAlpha( &color, 150 );
|
||||||
|
|
||||||
|
@ -272,8 +271,7 @@ void ZONE_CONTAINER::DrawFilledArea( EDA_DRAW_PANEL* panel,
|
||||||
if( aDrawMode & GR_HIGHLIGHT )
|
if( aDrawMode & GR_HIGHLIGHT )
|
||||||
ColorChangeHighlightFlag( &color, !(aDrawMode & GR_AND) );
|
ColorChangeHighlightFlag( &color, !(aDrawMode & GR_AND) );
|
||||||
|
|
||||||
if( color & HIGHLIGHT_FLAG )
|
ColorApplyHighlightFlag( &color );
|
||||||
color = ColorRefs[color & MASKCOLOR].m_LightColor;
|
|
||||||
|
|
||||||
SetAlpha( &color, 150 );
|
SetAlpha( &color, 150 );
|
||||||
|
|
||||||
|
|
|
@ -163,7 +163,7 @@ void DIALOG_PLOT::Init_Dialog()
|
||||||
m_layerList.push_back( layer );
|
m_layerList.push_back( layer );
|
||||||
checkIndex = m_layerCheckListBox->Append( m_board->GetLayerName( layer ) );
|
checkIndex = m_layerCheckListBox->Append( m_board->GetLayerName( layer ) );
|
||||||
|
|
||||||
if( m_plotOpts.GetLayerSelection() & ( 1 << layer ) )
|
if( m_plotOpts.GetLayerSelection() & GetLayerMask( layer ) )
|
||||||
m_layerCheckListBox->Check( checkIndex );
|
m_layerCheckListBox->Check( checkIndex );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -241,7 +241,7 @@ void DIALOG_PLOT::OnPopUpLayers( wxCommandEvent& event )
|
||||||
case ID_LAYER_FAB: // Select layers usually neede d to build a board
|
case ID_LAYER_FAB: // Select layers usually neede d to build a board
|
||||||
for( i = 0; i < m_layerList.size(); i++ )
|
for( i = 0; i < m_layerList.size(); i++ )
|
||||||
{
|
{
|
||||||
long layermask = 1 << m_layerList[ i ];
|
LAYER_MSK layermask = GetLayerMask( m_layerList[ i ] );
|
||||||
if( ( layermask &
|
if( ( layermask &
|
||||||
( ALL_CU_LAYERS | SOLDERPASTE_LAYER_BACK | SOLDERPASTE_LAYER_FRONT |
|
( ALL_CU_LAYERS | SOLDERPASTE_LAYER_BACK | SOLDERPASTE_LAYER_FRONT |
|
||||||
SOLDERMASK_LAYER_BACK | SOLDERMASK_LAYER_FRONT |
|
SOLDERMASK_LAYER_BACK | SOLDERMASK_LAYER_FRONT |
|
||||||
|
@ -675,7 +675,7 @@ void DIALOG_PLOT::applyPlotSettings()
|
||||||
for( i = 0; i < m_layerList.size(); i++ )
|
for( i = 0; i < m_layerList.size(); i++ )
|
||||||
{
|
{
|
||||||
if( m_layerCheckListBox->IsChecked( i ) )
|
if( m_layerCheckListBox->IsChecked( i ) )
|
||||||
selectedLayers |= (1 << m_layerList[i]);
|
selectedLayers |= GetLayerMask( m_layerList[i] );
|
||||||
}
|
}
|
||||||
|
|
||||||
tempOptions.SetLayerSelection( selectedLayers );
|
tempOptions.SetLayerSelection( selectedLayers );
|
||||||
|
|
|
@ -43,7 +43,7 @@ private:
|
||||||
BOARD* m_board;
|
BOARD* m_board;
|
||||||
BOARD_DESIGN_SETTINGS m_brdSettings;
|
BOARD_DESIGN_SETTINGS m_brdSettings;
|
||||||
wxConfig* m_config;
|
wxConfig* m_config;
|
||||||
std::vector<int> m_layerList; // List to hold CheckListBox layer numbers
|
std::vector<LAYER_NUM> m_layerList; // List to hold CheckListBox layer numbers
|
||||||
double m_XScaleAdjust; // X scale factor adjust to compensate
|
double m_XScaleAdjust; // X scale factor adjust to compensate
|
||||||
// plotter X scaling error
|
// plotter X scaling error
|
||||||
double m_YScaleAdjust; // X scale factor adjust to compensate
|
double m_YScaleAdjust; // X scale factor adjust to compensate
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
extern int g_DrawDefaultLineThickness;
|
extern int g_DrawDefaultLineThickness;
|
||||||
|
|
||||||
// Local variables
|
// Local variables
|
||||||
static long s_SelectedLayers;
|
static LAYER_MSK s_SelectedLayers;
|
||||||
static double s_ScaleList[] =
|
static double s_ScaleList[] =
|
||||||
{ 0, 0.5, 0.7, 0.999, 1.0, 1.4, 2.0, 3.0, 4.0 };
|
{ 0, 0.5, 0.7, 0.999, 1.0, 1.4, 2.0, 3.0, 4.0 };
|
||||||
|
|
||||||
|
@ -144,7 +144,6 @@ DIALOG_PRINT_USING_PRINTER::DIALOG_PRINT_USING_PRINTER( PCB_EDIT_FRAME* parent )
|
||||||
|
|
||||||
void DIALOG_PRINT_USING_PRINTER::InitValues( )
|
void DIALOG_PRINT_USING_PRINTER::InitValues( )
|
||||||
{
|
{
|
||||||
LAYER_NUM layer_max = NB_PCB_LAYERS;
|
|
||||||
wxString msg;
|
wxString msg;
|
||||||
BOARD* board = m_parent->GetBoard();
|
BOARD* board = m_parent->GetBoard();
|
||||||
|
|
||||||
|
@ -189,7 +188,7 @@ void DIALOG_PRINT_USING_PRINTER::InitValues( )
|
||||||
m_BoxSelectLayer[layer]->SetValue( option );
|
m_BoxSelectLayer[layer]->SetValue( option );
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
long mask = 1 << layer;
|
LAYER_MSK mask = GetLayerMask( layer );
|
||||||
if( mask & s_SelectedLayers )
|
if( mask & s_SelectedLayers )
|
||||||
m_BoxSelectLayer[layer]->SetValue( true );
|
m_BoxSelectLayer[layer]->SetValue( true );
|
||||||
}
|
}
|
||||||
|
@ -220,8 +219,8 @@ void DIALOG_PRINT_USING_PRINTER::InitValues( )
|
||||||
s_Parameters.m_YScaleAdjust > MAX_SCALE )
|
s_Parameters.m_YScaleAdjust > MAX_SCALE )
|
||||||
s_Parameters.m_XScaleAdjust = s_Parameters.m_YScaleAdjust = 1.0;
|
s_Parameters.m_XScaleAdjust = s_Parameters.m_YScaleAdjust = 1.0;
|
||||||
|
|
||||||
s_SelectedLayers = 0;
|
s_SelectedLayers = NO_LAYERS;
|
||||||
for( int layer = 0; layer<layer_max; ++layer )
|
for( LAYER_NUM layer = FIRST_LAYER; layer< NB_PCB_LAYERS; ++layer )
|
||||||
{
|
{
|
||||||
if( m_BoxSelectLayer[layer] == NULL )
|
if( m_BoxSelectLayer[layer] == NULL )
|
||||||
continue;
|
continue;
|
||||||
|
@ -236,7 +235,7 @@ void DIALOG_PRINT_USING_PRINTER::InitValues( )
|
||||||
{
|
{
|
||||||
m_BoxSelectLayer[layer]->SetValue( option );
|
m_BoxSelectLayer[layer]->SetValue( option );
|
||||||
if( option )
|
if( option )
|
||||||
s_SelectedLayers |= 1 << layer;
|
s_SelectedLayers |= GetLayerMask( layer );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -273,19 +273,19 @@ static void write_triangle_bag( FILE* output_file, int color_index, //{{{
|
||||||
case 1: // Material marker
|
case 1: // Material marker
|
||||||
fprintf( output_file,
|
fprintf( output_file,
|
||||||
" diffuseColor %g %g %g\n",
|
" diffuseColor %g %g %g\n",
|
||||||
(double) ColorRefs[color_index].m_Red / 255.0,
|
(double) g_ColorRefs[color_index].m_Red / 255.0,
|
||||||
(double) ColorRefs[color_index].m_Green / 255.0,
|
(double) g_ColorRefs[color_index].m_Green / 255.0,
|
||||||
(double) ColorRefs[color_index].m_Blue / 255.0 );
|
(double) g_ColorRefs[color_index].m_Blue / 255.0 );
|
||||||
fprintf( output_file,
|
fprintf( output_file,
|
||||||
" specularColor %g %g %g\n",
|
" specularColor %g %g %g\n",
|
||||||
(double) ColorRefs[color_index].m_Red / 255.0,
|
(double) g_ColorRefs[color_index].m_Red / 255.0,
|
||||||
(double) ColorRefs[color_index].m_Green / 255.0,
|
(double) g_ColorRefs[color_index].m_Green / 255.0,
|
||||||
(double) ColorRefs[color_index].m_Blue / 255.0 );
|
(double) g_ColorRefs[color_index].m_Blue / 255.0 );
|
||||||
fprintf( output_file,
|
fprintf( output_file,
|
||||||
" emissiveColor %g %g %g\n",
|
" emissiveColor %g %g %g\n",
|
||||||
(double) ColorRefs[color_index].m_Red / 255.0,
|
(double) g_ColorRefs[color_index].m_Red / 255.0,
|
||||||
(double) ColorRefs[color_index].m_Green / 255.0,
|
(double) g_ColorRefs[color_index].m_Green / 255.0,
|
||||||
(double) ColorRefs[color_index].m_Blue / 255.0 );
|
(double) g_ColorRefs[color_index].m_Blue / 255.0 );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 2:
|
case 2:
|
||||||
|
|
|
@ -424,12 +424,10 @@ void PCB_IO::format( BOARD* aBoard, int aNestLevel ) const
|
||||||
// Layers.
|
// Layers.
|
||||||
m_out->Print( aNestLevel, "(layers\n" );
|
m_out->Print( aNestLevel, "(layers\n" );
|
||||||
|
|
||||||
unsigned mask = LAYER_FRONT;
|
|
||||||
LAYER_NUM layer = LAYER_N_FRONT;
|
|
||||||
|
|
||||||
// Save only the used copper layers from front to back.
|
// Save only the used copper layers from front to back.
|
||||||
while( mask != 0 )
|
for( LAYER_NUM layer = LAST_COPPER_LAYER; layer >= FIRST_COPPER_LAYER; --layer)
|
||||||
{
|
{
|
||||||
|
LAYER_MSK mask = GetLayerMask( layer );
|
||||||
if( mask & aBoard->GetEnabledLayers() )
|
if( mask & aBoard->GetEnabledLayers() )
|
||||||
{
|
{
|
||||||
m_out->Print( aNestLevel+1, "(%d %s %s", layer,
|
m_out->Print( aNestLevel+1, "(%d %s %s", layer,
|
||||||
|
@ -441,17 +439,12 @@ void PCB_IO::format( BOARD* aBoard, int aNestLevel ) const
|
||||||
|
|
||||||
m_out->Print( 0, ")\n" );
|
m_out->Print( 0, ")\n" );
|
||||||
}
|
}
|
||||||
|
|
||||||
mask >>= 1;
|
|
||||||
--layer;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
mask = ADHESIVE_LAYER_BACK;
|
|
||||||
layer = ADHESIVE_N_BACK;
|
|
||||||
|
|
||||||
// Save used non-copper layers in the order they are defined.
|
// Save used non-copper layers in the order they are defined.
|
||||||
while( layer < NB_LAYERS )
|
for( LAYER_NUM layer = FIRST_NON_COPPER_LAYER; layer <= LAST_NON_COPPER_LAYER; ++layer)
|
||||||
{
|
{
|
||||||
|
LAYER_MSK mask = GetLayerMask( layer );
|
||||||
if( mask & aBoard->GetEnabledLayers() )
|
if( mask & aBoard->GetEnabledLayers() )
|
||||||
{
|
{
|
||||||
m_out->Print( aNestLevel+1, "(%d %s user", layer,
|
m_out->Print( aNestLevel+1, "(%d %s user", layer,
|
||||||
|
@ -462,9 +455,6 @@ void PCB_IO::format( BOARD* aBoard, int aNestLevel ) const
|
||||||
|
|
||||||
m_out->Print( 0, ")\n" );
|
m_out->Print( 0, ")\n" );
|
||||||
}
|
}
|
||||||
|
|
||||||
mask <<= 1;
|
|
||||||
++layer;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
m_out->Print( aNestLevel, ")\n\n" );
|
m_out->Print( aNestLevel, ")\n\n" );
|
||||||
|
@ -1029,16 +1019,14 @@ void PCB_IO::formatLayers( LAYER_MSK aLayerMask, int aNestLevel ) const
|
||||||
|
|
||||||
// output any individual layers not handled in wildcard combos above
|
// output any individual layers not handled in wildcard combos above
|
||||||
|
|
||||||
unsigned layerMask = aLayerMask;
|
|
||||||
|
|
||||||
if( m_board )
|
if( m_board )
|
||||||
layerMask &= m_board->GetEnabledLayers();
|
aLayerMask &= m_board->GetEnabledLayers();
|
||||||
|
|
||||||
wxString layerName;
|
wxString layerName;
|
||||||
|
|
||||||
for( LAYER_NUM layer = FIRST_LAYER; layerMask; ++layer, layerMask >>= 1 )
|
for( LAYER_NUM layer = FIRST_LAYER; layer < NB_PCB_LAYERS; ++layer )
|
||||||
{
|
{
|
||||||
if( layerMask & 1 )
|
if( aLayerMask & GetLayerMask( layer ) )
|
||||||
{
|
{
|
||||||
if( m_board && !(m_ctl & CTL_STD_LAYER_NAMES) )
|
if( m_board && !(m_ctl & CTL_STD_LAYER_NAMES) )
|
||||||
layerName = m_board->GetLayerName( layer );
|
layerName = m_board->GetLayerName( layer );
|
||||||
|
|
|
@ -434,18 +434,9 @@ void LEGACY_PLUGIN::loadGENERAL()
|
||||||
|
|
||||||
else if( TESTLINE( "Ly" ) ) // Old format for Layer count
|
else if( TESTLINE( "Ly" ) ) // Old format for Layer count
|
||||||
{
|
{
|
||||||
int layer_mask = hexParse( line + SZ( "Ly" ) );
|
LAYER_MSK layer_mask = hexParse( line + SZ( "Ly" ) );
|
||||||
int layer_count = 0;
|
|
||||||
|
|
||||||
for( LAYER_NUM ii = FIRST_COPPER_LAYER;
|
m_board->SetCopperLayerCount( LayerMaskCountSet( layer_mask & ALL_CU_LAYERS ) );
|
||||||
ii < NB_COPPER_LAYERS && layer_mask;
|
|
||||||
++ii, layer_mask >>= 1 )
|
|
||||||
{
|
|
||||||
if( layer_mask & 1 )
|
|
||||||
layer_count++;
|
|
||||||
}
|
|
||||||
|
|
||||||
m_board->SetCopperLayerCount( layer_count );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
else if( TESTLINE( "BoardThickness" ) )
|
else if( TESTLINE( "BoardThickness" ) )
|
||||||
|
@ -1550,6 +1541,7 @@ void LEGACY_PLUGIN::loadMODULE_TEXT( TEXTE_MODULE* aText )
|
||||||
|
|
||||||
// after switching to strtok, there's no easy coming back because of the
|
// after switching to strtok, there's no easy coming back because of the
|
||||||
// embedded nul(s?) placed to the right of the current field.
|
// embedded nul(s?) placed to the right of the current field.
|
||||||
|
// (that's the reason why strtok was deprecated...)
|
||||||
char* mirror = strtok( (char*) data, delims );
|
char* mirror = strtok( (char*) data, delims );
|
||||||
char* hide = strtok( NULL, delims );
|
char* hide = strtok( NULL, delims );
|
||||||
char* tmp = strtok( NULL, delims );
|
char* tmp = strtok( NULL, delims );
|
||||||
|
@ -2984,9 +2976,9 @@ void LEGACY_PLUGIN::saveSETUP( const BOARD* aBoard ) const
|
||||||
|
|
||||||
unsigned layerMask = ALL_CU_LAYERS & aBoard->GetEnabledLayers();
|
unsigned layerMask = ALL_CU_LAYERS & aBoard->GetEnabledLayers();
|
||||||
|
|
||||||
for( LAYER_NUM layer = FIRST_LAYER; layerMask; ++layer, layerMask >>= 1 )
|
for( LAYER_NUM layer = FIRST_LAYER; layer <= LAST_COPPER_LAYER; ++layer )
|
||||||
{
|
{
|
||||||
if( layerMask & 1 )
|
if( layerMask & GetLayerMask( layer ) )
|
||||||
{
|
{
|
||||||
fprintf( m_fp, "Layer[%d] %s %s\n", layer,
|
fprintf( m_fp, "Layer[%d] %s %s\n", layer,
|
||||||
TO_UTF8( aBoard->GetLayerName( layer ) ),
|
TO_UTF8( aBoard->GetLayerName( layer ) ),
|
||||||
|
|
|
@ -351,95 +351,95 @@ PARAM_CFG_ARRAY& PCB_EDIT_FRAME::GetConfigurationSettings()
|
||||||
&DisplayOpt.DisplayZonesMode, 0, 0, 2 ) );
|
&DisplayOpt.DisplayZonesMode, 0, 0, 2 ) );
|
||||||
|
|
||||||
// Colors:
|
// Colors:
|
||||||
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColLay0" ), LOC_COLOR( 0 ),
|
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorLayer0Ex" ), LOC_COLOR( 0 ),
|
||||||
GREEN ) );
|
GREEN ) );
|
||||||
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColLay1" ), LOC_COLOR( 1 ),
|
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorLayer1Ex" ), LOC_COLOR( 1 ),
|
||||||
BLUE ) );
|
BLUE ) );
|
||||||
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColLay2" ), LOC_COLOR( 2 ),
|
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorLayer2Ex" ), LOC_COLOR( 2 ),
|
||||||
LIGHTGRAY ) );
|
LIGHTGRAY ) );
|
||||||
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColLay3" ), LOC_COLOR( 3 ),
|
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorLayer3Ex" ), LOC_COLOR( 3 ),
|
||||||
MAGENTA ) );
|
MAGENTA ) );
|
||||||
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColLay4" ), LOC_COLOR( 4 ),
|
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorLayer4Ex" ), LOC_COLOR( 4 ),
|
||||||
RED ) );
|
RED ) );
|
||||||
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColLay5" ), LOC_COLOR( 5 ),
|
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorLayer5Ex" ), LOC_COLOR( 5 ),
|
||||||
MAGENTA ) );
|
MAGENTA ) );
|
||||||
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColLay6" ), LOC_COLOR( 6 ),
|
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorLayer6Ex" ), LOC_COLOR( 6 ),
|
||||||
BROWN ) );
|
BROWN ) );
|
||||||
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColLay7" ), LOC_COLOR( 7 ),
|
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorLayer7Ex" ), LOC_COLOR( 7 ),
|
||||||
MAGENTA ) );
|
MAGENTA ) );
|
||||||
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColLay8" ), LOC_COLOR( 8 ),
|
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorLayer8Ex" ), LOC_COLOR( 8 ),
|
||||||
LIGHTGRAY ) );
|
LIGHTGRAY ) );
|
||||||
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColLay9" ), LOC_COLOR( 9 ),
|
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorLayer9Ex" ), LOC_COLOR( 9 ),
|
||||||
BLUE ) );
|
BLUE ) );
|
||||||
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColLayA" ), LOC_COLOR( 10 ),
|
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorLayer10Ex" ), LOC_COLOR( 10 ),
|
||||||
GREEN ) );
|
GREEN ) );
|
||||||
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColLayB" ), LOC_COLOR( 11 ),
|
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorLayer11Ex" ), LOC_COLOR( 11 ),
|
||||||
CYAN ) );
|
CYAN ) );
|
||||||
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColLayC" ), LOC_COLOR( 12 ),
|
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorLayer12Ex" ), LOC_COLOR( 12 ),
|
||||||
LIGHTRED ) );
|
LIGHTRED ) );
|
||||||
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColLayD" ), LOC_COLOR( 13 ),
|
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorLayer13Ex" ), LOC_COLOR( 13 ),
|
||||||
LIGHTMAGENTA ) );
|
LIGHTMAGENTA ) );
|
||||||
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColLayE" ), LOC_COLOR( 14 ),
|
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorLayer14Ex" ), LOC_COLOR( 14 ),
|
||||||
YELLOW ) );
|
YELLOW ) );
|
||||||
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColLayF" ), LOC_COLOR( 15 ),
|
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorLayer15Ex" ), LOC_COLOR( 15 ),
|
||||||
RED ) );
|
RED ) );
|
||||||
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColLayG" ), LOC_COLOR( 16 ),
|
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorLayer16Ex" ), LOC_COLOR( 16 ),
|
||||||
BLUE ) );
|
BLUE ) );
|
||||||
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColLayH" ), LOC_COLOR( 17 ),
|
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorLayer17Ex" ), LOC_COLOR( 17 ),
|
||||||
MAGENTA ) );
|
MAGENTA ) );
|
||||||
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColLayI" ), LOC_COLOR( 18 ),
|
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorLayer18Ex" ), LOC_COLOR( 18 ),
|
||||||
LIGHTCYAN ) );
|
LIGHTCYAN ) );
|
||||||
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColLayJ" ), LOC_COLOR( 19 ),
|
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorLayer19Ex" ), LOC_COLOR( 19 ),
|
||||||
RED ) );
|
RED ) );
|
||||||
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColLayK" ), LOC_COLOR( 20 ),
|
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorLayer20Ex" ), LOC_COLOR( 20 ),
|
||||||
MAGENTA ) );
|
MAGENTA ) );
|
||||||
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColLayL" ), LOC_COLOR( 21 ),
|
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorLayer21Ex" ), LOC_COLOR( 21 ),
|
||||||
CYAN ) );
|
CYAN ) );
|
||||||
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColLayM" ), LOC_COLOR( 22 ),
|
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorLayer22Ex" ), LOC_COLOR( 22 ),
|
||||||
BROWN ) );
|
BROWN ) );
|
||||||
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColLayN" ), LOC_COLOR( 23 ),
|
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorLayer23Ex" ), LOC_COLOR( 23 ),
|
||||||
MAGENTA ) );
|
MAGENTA ) );
|
||||||
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColLayO" ), LOC_COLOR( 24 ),
|
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorLayer24Ex" ), LOC_COLOR( 24 ),
|
||||||
LIGHTGRAY ) );
|
LIGHTGRAY ) );
|
||||||
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColLayP" ), LOC_COLOR( 25 ),
|
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorLayer25Ex" ), LOC_COLOR( 25 ),
|
||||||
BLUE ) );
|
BLUE ) );
|
||||||
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColLayQ" ), LOC_COLOR( 26 ),
|
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorLayer26Ex" ), LOC_COLOR( 26 ),
|
||||||
GREEN ) );
|
GREEN ) );
|
||||||
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColLayR" ), LOC_COLOR( 27 ),
|
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorLayer27Ex" ), LOC_COLOR( 27 ),
|
||||||
YELLOW ) );
|
YELLOW ) );
|
||||||
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColLayS" ), LOC_COLOR( 28 ),
|
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorLayer28Ex" ), LOC_COLOR( 28 ),
|
||||||
YELLOW ) );
|
YELLOW ) );
|
||||||
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColLayT" ), LOC_COLOR( 29 ),
|
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorLayer29Ex" ), LOC_COLOR( 29 ),
|
||||||
LIGHTMAGENTA ) );
|
LIGHTMAGENTA ) );
|
||||||
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColLayU" ), LOC_COLOR( 30 ),
|
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorLayer30Ex" ), LOC_COLOR( 30 ),
|
||||||
YELLOW ) );
|
YELLOW ) );
|
||||||
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColLayV" ), LOC_COLOR( 31 ),
|
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorLayer31Ex" ), LOC_COLOR( 31 ),
|
||||||
LIGHTGRAY ) );
|
LIGHTGRAY ) );
|
||||||
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "CTxtMoC" ),
|
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorTxtFrontEx" ),
|
||||||
ITEM_COLOR( MOD_TEXT_FR_VISIBLE ),
|
ITEM_COLOR( MOD_TEXT_FR_VISIBLE ),
|
||||||
LIGHTGRAY ) );
|
LIGHTGRAY ) );
|
||||||
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "CTxtMoS" ),
|
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorTxtBackEx" ),
|
||||||
ITEM_COLOR( MOD_TEXT_BK_VISIBLE ),
|
ITEM_COLOR( MOD_TEXT_BK_VISIBLE ),
|
||||||
BLUE ) );
|
BLUE ) );
|
||||||
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "CTxtVis" ),
|
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorTxtInvisEx" ),
|
||||||
ITEM_COLOR( MOD_TEXT_INVISIBLE ),
|
ITEM_COLOR( MOD_TEXT_INVISIBLE ),
|
||||||
DARKGRAY ) );
|
DARKGRAY ) );
|
||||||
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "CAncreM" ),
|
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorAnchorEx" ),
|
||||||
ITEM_COLOR( ANCHOR_VISIBLE ), BLUE ) );
|
ITEM_COLOR( ANCHOR_VISIBLE ), BLUE ) );
|
||||||
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "CoPadCu" ),
|
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorPadBackEx" ),
|
||||||
ITEM_COLOR( PAD_BK_VISIBLE ), GREEN ) );
|
ITEM_COLOR( PAD_BK_VISIBLE ), GREEN ) );
|
||||||
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "CoPadCm" ),
|
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorPadFrontEx" ),
|
||||||
ITEM_COLOR( PAD_FR_VISIBLE ), RED ) );
|
ITEM_COLOR( PAD_FR_VISIBLE ), RED ) );
|
||||||
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "CoViaTh" ),
|
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorViaThruEx" ),
|
||||||
ITEM_COLOR( VIA_THROUGH_VISIBLE ),
|
ITEM_COLOR( VIA_THROUGH_VISIBLE ),
|
||||||
LIGHTGRAY ) );
|
LIGHTGRAY ) );
|
||||||
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "CoViaBu" ),
|
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorViaBBlindEx" ),
|
||||||
ITEM_COLOR( VIA_BBLIND_VISIBLE ),
|
ITEM_COLOR( VIA_BBLIND_VISIBLE ),
|
||||||
BROWN ) );
|
BROWN ) );
|
||||||
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "CoViaMi" ),
|
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorViaMicroEx" ),
|
||||||
ITEM_COLOR( VIA_MICROVIA_VISIBLE ),
|
ITEM_COLOR( VIA_MICROVIA_VISIBLE ),
|
||||||
CYAN ) );
|
CYAN ) );
|
||||||
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "CoRatsN" ),
|
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorRatsEx" ),
|
||||||
ITEM_COLOR( RATSNEST_VISIBLE ),
|
ITEM_COLOR( RATSNEST_VISIBLE ),
|
||||||
WHITE ) );
|
WHITE ) );
|
||||||
|
|
||||||
|
|
|
@ -90,9 +90,9 @@ BOARD_PRINTOUT_CONTROLLER::BOARD_PRINTOUT_CONTROLLER( const PRINT_PARAMETERS& aP
|
||||||
bool BOARD_PRINTOUT_CONTROLLER::OnPrintPage( int aPage )
|
bool BOARD_PRINTOUT_CONTROLLER::OnPrintPage( int aPage )
|
||||||
{
|
{
|
||||||
#ifdef PCBNEW
|
#ifdef PCBNEW
|
||||||
int layers_count = NB_PCB_LAYERS;
|
LAYER_NUM layers_count = NB_PCB_LAYERS;
|
||||||
#else
|
#else
|
||||||
int layers_count = NB_LAYERS;
|
LAYER_NUM layers_count = NB_LAYERS;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
LAYER_MSK mask_layer = m_PrintParams.m_PrintMaskLayer;
|
LAYER_MSK mask_layer = m_PrintParams.m_PrintMaskLayer;
|
||||||
|
@ -100,10 +100,12 @@ bool BOARD_PRINTOUT_CONTROLLER::OnPrintPage( int aPage )
|
||||||
// compute layer mask from page number if we want one page per layer
|
// compute layer mask from page number if we want one page per layer
|
||||||
if( m_PrintParams.m_OptionPrintPage == 0 ) // One page per layer
|
if( m_PrintParams.m_OptionPrintPage == 0 ) // One page per layer
|
||||||
{
|
{
|
||||||
int ii, jj, mask = 1;
|
int jj;
|
||||||
|
LAYER_NUM ii;
|
||||||
|
|
||||||
for( ii = 0, jj = 0; ii < layers_count; ii++ )
|
for( ii = FIRST_LAYER, jj = 0; ii < layers_count; ++ii )
|
||||||
{
|
{
|
||||||
|
LAYER_MSK mask = GetLayerMask( ii );
|
||||||
if( mask_layer & mask )
|
if( mask_layer & mask )
|
||||||
jj++;
|
jj++;
|
||||||
|
|
||||||
|
@ -112,8 +114,6 @@ bool BOARD_PRINTOUT_CONTROLLER::OnPrintPage( int aPage )
|
||||||
m_PrintParams.m_PrintMaskLayer = mask;
|
m_PrintParams.m_PrintMaskLayer = mask;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
mask <<= 1;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue