diff --git a/common/base_struct.cpp b/common/base_struct.cpp index 4abb41d002..1dee27f22e 100644 --- a/common/base_struct.cpp +++ b/common/base_struct.cpp @@ -231,7 +231,7 @@ std::ostream& EDA_BaseStruct::NestedSpace( int nestLevel, std::ostream& os ) // see base_struct.h SEARCH_RESULT EDA_BaseStruct::IterateForward( EDA_BaseStruct* listStart, - INSPECTOR* inspector, void* testData, const KICAD_T scanTypes[] ) + INSPECTOR* inspector, const void* testData, const KICAD_T scanTypes[] ) { EDA_BaseStruct* p = listStart; for( ; p; p = p->Pnext ) @@ -245,7 +245,7 @@ SEARCH_RESULT EDA_BaseStruct::IterateForward( EDA_BaseStruct* listStart, // see base_struct.h -SEARCH_RESULT EDA_BaseStruct::Traverse( INSPECTOR* inspector, void* testData, +SEARCH_RESULT EDA_BaseStruct::Traverse( INSPECTOR* inspector, const void* testData, const KICAD_T scanTypes[] ) { KICAD_T stype; diff --git a/include/base_struct.h b/include/base_struct.h index 31f8f61305..b12392448e 100644 --- a/include/base_struct.h +++ b/include/base_struct.h @@ -88,7 +88,7 @@ class EDA_BaseStruct; * Class INSPECTOR * is an abstract class that is used to inspect and possibly collect the * (search) results of Iterating over a list or tree of KICAD_T objects. - * Extend from this class and implment the Inspect function and provide for + * Extend from this class and implement the Inspect function and provide for * a way for the extension to collect the results of the search/scan data and * provide them to the caller. */ @@ -99,15 +99,18 @@ public: /** * Function Inspect - * is the function type that can be passed to the Iterate function, - * used primarily for searching, but not exclusively. + * is the examining function within the INSPECTOR which is passed to the + * Iterate function. It is used primarily for searching, but not limited to + * that. It can also collect or modify the scanned objects. + * + * @param testItem An EDA_BaseStruct to examine. * @param testData is arbitrary data needed by the inspector to determine * if the EDA_BaseStruct under test meets its match criteria. * @return SEARCH_RESULT - SEARCH_QUIT if the Iterator is to stop the scan, * else SCAN_CONTINUE; */ SEARCH_RESULT virtual Inspect( EDA_BaseStruct* testItem, - void* testData ) = 0; + const void* testData ) = 0; // derived classes add more functions for collecting and subsequent // retrieval here. @@ -199,27 +202,27 @@ public: /** * Function IterateForward * walks through the object tree calling the testFunc on each object - * type requested in structTypes. + * type requested in scanTypes. * * @param listStart The first in a list of EDA_BaseStructs to iterate over. - * @param inspector Is an INSPECTOR to call on each object that is of one of - * the requested itemTypes. + * @param inspector Is an INSPECTOR to call on each object that is one of + * the requested scanTypes. * @param testData Is an aid to testFunc, and should be sufficient to * allow it to fully determine if an item meets the match criteria, but it * may also be used to collect output. - * @param scanTypes Is a char array of KICAD_T that is EOT + * @param scanTypes A KICAD_T array that is EOT * terminated, and provides both the order and interest level of of * the types of objects to be iterated over. - * @return SEARCH_RESULT - SEARCH_QUIT if the Iterator is to stop the scan, - * else SCAN_CONTINUE; + * @return SEARCH_RESULT - SEARCH_QUIT if the called INSPECTOR returned + * SEARCH_QUIT, else SCAN_CONTINUE; */ static SEARCH_RESULT IterateForward( EDA_BaseStruct* listStart, - INSPECTOR* inspector, void* testData, const KICAD_T scanTypes[] ); + INSPECTOR* inspector, const void* testData, const KICAD_T scanTypes[] ); /** * Function Traverse - * should be re-implemented for each derrived class in order to handle + * should be re-implemented for each derived class in order to handle * all the types given by its member data. Implementations should call * inspector->Inspect() on types in scanTypes[], and may use IterateForward() * to do so on lists of such data. @@ -230,7 +233,7 @@ public: * @return SEARCH_RESULT - SEARCH_QUIT if the Iterator is to stop the scan, * else SCAN_CONTINUE; */ - virtual SEARCH_RESULT Traverse( INSPECTOR* inspector, void* testData, + virtual SEARCH_RESULT Traverse( INSPECTOR* inspector, const void* testData, const KICAD_T scanTypes[] ); diff --git a/pcbnew/class_board.cpp b/pcbnew/class_board.cpp index 6b191af4a8..5f1d39ee16 100644 --- a/pcbnew/class_board.cpp +++ b/pcbnew/class_board.cpp @@ -300,7 +300,7 @@ public: { } - SEARCH_RESULT Inspect( EDA_BaseStruct* testItem, void* testData ) + SEARCH_RESULT Inspect( EDA_BaseStruct* testItem, const void* testData ) { const wxPoint* refPos = (const wxPoint*) testData; @@ -336,9 +336,9 @@ EDA_BaseStruct* BOARD::FindModuleOrPad( const wxPoint& refPos ) { ModuleOrPad inspector; - static const KICAD_T scanTypes[] = { TYPEMODULE, TYPEPAD, EOT }; + static const KICAD_T scanTypes[] = { TYPEPAD, TYPEMODULE, EOT }; - if( SEARCH_QUIT == IterateForward( m_Modules, &inspector, (void*) &refPos, scanTypes ) ) + if( SEARCH_QUIT == IterateForward( m_Modules, &inspector, &refPos, scanTypes ) ) return inspector.found; return NULL; diff --git a/pcbnew/class_module.cpp b/pcbnew/class_module.cpp index abd8bbf2ed..7efc0f18ee 100644 --- a/pcbnew/class_module.cpp +++ b/pcbnew/class_module.cpp @@ -1188,7 +1188,7 @@ void MODULE::Show( int nestLevel, std::ostream& os ) // see class_module.h -SEARCH_RESULT MODULE::Traverse( INSPECTOR* inspector, void* testData, +SEARCH_RESULT MODULE::Traverse( INSPECTOR* inspector, const void* testData, const KICAD_T scanTypes[] ) { KICAD_T stype; diff --git a/pcbnew/class_module.h b/pcbnew/class_module.h index 23341f35a8..57c7604870 100644 --- a/pcbnew/class_module.h +++ b/pcbnew/class_module.h @@ -157,7 +157,7 @@ public: * @return SEARCH_RESULT - SEARCH_QUIT if the Iterator is to stop the scan, * else SCAN_CONTINUE; */ - virtual SEARCH_RESULT Traverse( INSPECTOR* inspector, void* testData, + virtual SEARCH_RESULT Traverse( INSPECTOR* inspector, const void* testData, const KICAD_T scanTypes[] ); #endif diff --git a/pcbnew/classpcb.cpp b/pcbnew/classpcb.cpp index ffcb63635f..0613ac792f 100644 --- a/pcbnew/classpcb.cpp +++ b/pcbnew/classpcb.cpp @@ -19,305 +19,320 @@ /**************************************************************/ -void EDA_BaseStruct::Place(WinEDA_DrawFrame * frame, wxDC * DC) +void EDA_BaseStruct::Place( WinEDA_DrawFrame* frame, wxDC* DC ) /**************************************************************/ + /* fonction virtuelle de placement: non utilisee en pcbnew (utilisee eeschema) ----- A mieux utiliser (TODO...) -*/ + * ---- A mieux utiliser (TODO...) + */ { } - - /**********************/ - /* Classe EDGE_ZONE */ - /**********************/ +/**********************/ +/* Classe EDGE_ZONE */ +/**********************/ /* Classe EDGE_ZONE: constructeur */ -EDGE_ZONE::EDGE_ZONE(EDA_BaseStruct * parent): - DRAWSEGMENT( parent, TYPEEDGEZONE) +EDGE_ZONE::EDGE_ZONE( EDA_BaseStruct* parent ) : + DRAWSEGMENT( parent, TYPEEDGEZONE ) { } + /* Effacement memoire de la structure */ -EDGE_ZONE:: ~EDGE_ZONE(void) +EDGE_ZONE:: ~EDGE_ZONE( void ) { } - /**********************/ - /* Classe DRAWSEGMENT */ - /**********************/ + +/**********************/ +/* Classe DRAWSEGMENT */ +/**********************/ /* Classe DRAWSEGMENT: constructeur */ -DRAWSEGMENT::DRAWSEGMENT(EDA_BaseStruct * StructFather, DrawStructureType idtype): - EDA_BaseLineStruct( StructFather, idtype) +DRAWSEGMENT::DRAWSEGMENT( EDA_BaseStruct* StructFather, DrawStructureType idtype ) : + EDA_BaseLineStruct( StructFather, idtype ) { - m_Flags = m_Shape = m_Type = m_Angle = 0; + m_Flags = m_Shape = m_Type = m_Angle = 0; } + /* Effacement memoire de la structure */ -DRAWSEGMENT:: ~DRAWSEGMENT(void) +DRAWSEGMENT:: ~DRAWSEGMENT( void ) { } + void DRAWSEGMENT::UnLink( void ) { - /* Modification du chainage arriere */ - if( Pback ) - { - if( Pback->m_StructType != TYPEPCB) - { - Pback->Pnext = Pnext; - } + /* Modification du chainage arriere */ + if( Pback ) + { + if( Pback->m_StructType != TYPEPCB ) + { + Pback->Pnext = Pnext; + } + else /* Le chainage arriere pointe sur la structure "Pere" */ + { + ( (BOARD*) Pback )->m_Drawings = Pnext; + } + } - else /* Le chainage arriere pointe sur la structure "Pere" */ - { - ((BOARD*)Pback)->m_Drawings = Pnext; - } - } + /* Modification du chainage avant */ + if( Pnext ) + Pnext->Pback = Pback; - /* Modification du chainage avant */ - if( Pnext) Pnext->Pback = Pback; - - Pnext = Pback = NULL; + Pnext = Pback = NULL; } /*******************************************/ -void DRAWSEGMENT::Copy(DRAWSEGMENT * source) +void DRAWSEGMENT::Copy( DRAWSEGMENT* source ) /*******************************************/ { - m_Type = source->m_Type; - m_Layer = source->m_Layer; - m_Width = source->m_Width; - m_Start = source->m_Start; - m_End = source->m_End; - m_Shape = source->m_Shape; - m_Angle = source->m_Angle; - m_TimeStamp = source->m_TimeStamp; + m_Type = source->m_Type; + m_Layer = source->m_Layer; + m_Width = source->m_Width; + m_Start = source->m_Start; + m_End = source->m_End; + m_Shape = source->m_Shape; + m_Angle = source->m_Angle; + m_TimeStamp = source->m_TimeStamp; } /********************************************************/ -bool DRAWSEGMENT::WriteDrawSegmentDescr(FILE * File) +bool DRAWSEGMENT::WriteDrawSegmentDescr( FILE* File ) /********************************************************/ { - if( GetState(DELETED) ) return FALSE; + if( GetState( DELETED ) ) + return FALSE; - fprintf( File, "$DRAWSEGMENT\n"); - fprintf( File,"Po %d %d %d %d %d %d\n", - m_Shape, - m_Start.x, m_Start.y, - m_End.x, m_End.y, m_Width ); - fprintf( File,"De %d %d %d %lX %X\n", - m_Layer, m_Type, m_Angle, - m_TimeStamp, ReturnStatus()); - fprintf( File, "$EndDRAWSEGMENT\n"); - return TRUE; + fprintf( File, "$DRAWSEGMENT\n" ); + fprintf( File, "Po %d %d %d %d %d %d\n", + m_Shape, + m_Start.x, m_Start.y, + m_End.x, m_End.y, m_Width ); + fprintf( File, "De %d %d %d %lX %X\n", + m_Layer, m_Type, m_Angle, + m_TimeStamp, ReturnStatus() ); + fprintf( File, "$EndDRAWSEGMENT\n" ); + return TRUE; } + /******************************************************************/ -bool DRAWSEGMENT::ReadDrawSegmentDescr(FILE * File, int * LineNum) +bool DRAWSEGMENT::ReadDrawSegmentDescr( FILE* File, int* LineNum ) /******************************************************************/ + /* Lecture de la description de 1 segment type Drawing PCB -*/ + */ { -char Line[2048]; + char Line[2048]; - while( GetLine(File, Line, LineNum ) != NULL ) - { - if(strnicmp(Line,"$End",4 ) == 0 ) return TRUE; /* fin de liste */ - if(Line[0] == 'P') - { - sscanf( Line+2," %d %d %d %d %d %d", - &m_Shape, &m_Start.x, &m_Start.y, - &m_End.x, &m_End.y, &m_Width ); - if ( m_Width < 0 ) m_Width = 0; - } + while( GetLine( File, Line, LineNum ) != NULL ) + { + if( strnicmp( Line, "$End", 4 ) == 0 ) + return TRUE; /* fin de liste */ + if( Line[0] == 'P' ) + { + sscanf( Line + 2, " %d %d %d %d %d %d", + &m_Shape, &m_Start.x, &m_Start.y, + &m_End.x, &m_End.y, &m_Width ); + if( m_Width < 0 ) + m_Width = 0; + } - if(Line[0] == 'D') - { - int status; - sscanf( Line+2," %d %d %d %lX %X", - &m_Layer, &m_Type, &m_Angle, - &m_TimeStamp, &status); + if( Line[0] == 'D' ) + { + int status; + sscanf( Line + 2, " %d %d %d %lX %X", + &m_Layer, &m_Type, &m_Angle, + &m_TimeStamp, &status ); - if ( m_Layer < FIRST_NO_COPPER_LAYER ) - m_Layer = FIRST_NO_COPPER_LAYER; - if ( m_Layer > LAST_NO_COPPER_LAYER ) - m_Layer = LAST_NO_COPPER_LAYER; + if( m_Layer < FIRST_NO_COPPER_LAYER ) + m_Layer = FIRST_NO_COPPER_LAYER; + if( m_Layer > LAST_NO_COPPER_LAYER ) + m_Layer = LAST_NO_COPPER_LAYER; - SetState(status, ON); - } + SetState( status, ON ); + } + } - } - return FALSE; + return FALSE; } +/*******************/ +/* Classe MARQUEUR */ +/*******************/ - /*******************/ - /* Classe MARQUEUR */ - /*******************/ - -MARQUEUR::MARQUEUR(EDA_BaseStruct * StructFather): - EDA_BaseStruct( StructFather, TYPEMARQUEUR) +MARQUEUR::MARQUEUR( EDA_BaseStruct* StructFather ) : + EDA_BaseStruct( StructFather, TYPEMARQUEUR ) { - m_Bitmap = NULL; - m_Type = 0; - m_Color = RED; + m_Bitmap = NULL; + m_Type = 0; + m_Color = RED; } + /* Effacement memoire de la structure */ -MARQUEUR:: ~MARQUEUR(void) +MARQUEUR:: ~MARQUEUR( void ) { } /* supprime du chainage la structure Struct - les structures arrieres et avant sont chainees directement + * les structures arrieres et avant sont chainees directement */ void MARQUEUR::UnLink( void ) { - /* Modification du chainage arriere */ - if( Pback ) - { - if( Pback->m_StructType != TYPEPCB) - { - Pback->Pnext = Pnext; - } + /* Modification du chainage arriere */ + if( Pback ) + { + if( Pback->m_StructType != TYPEPCB ) + { + Pback->Pnext = Pnext; + } + else /* Le chainage arriere pointe sur la structure "Pere" */ + { + ( (BOARD*) Pback )->m_Drawings = Pnext; + } + } - else /* Le chainage arriere pointe sur la structure "Pere" */ - { - ((BOARD*)Pback)->m_Drawings = Pnext; - } - } + /* Modification du chainage avant */ + if( Pnext ) + Pnext->Pback = Pback; - /* Modification du chainage avant */ - if( Pnext) Pnext->Pback = Pback; - - Pnext = Pback = NULL; + Pnext = Pback = NULL; } - - /**************************************************/ - /* Class SCREEN: classe de gestion d'un affichage */ - /***************************************************/ +/**************************************************/ +/* Class SCREEN: classe de gestion d'un affichage */ +/***************************************************/ /* Constructeur de SCREEN */ -PCB_SCREEN::PCB_SCREEN(int idscreen): BASE_SCREEN(TYPESCREEN) +PCB_SCREEN::PCB_SCREEN( int idscreen ) : BASE_SCREEN( TYPESCREEN ) { -int zoom_list[] = {1,2,4,8,16,32,64,128,256,512,1024,2048,0}; - m_Type = idscreen; - SetGridList(g_GridList); - SetZoomList(zoom_list); - Init(); + int zoom_list[] = { 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 0 }; + + m_Type = idscreen; + SetGridList( g_GridList ); + SetZoomList( zoom_list ); + Init(); } + /***************************/ -PCB_SCREEN::~PCB_SCREEN(void) +PCB_SCREEN::~PCB_SCREEN( void ) /***************************/ { } /*************************/ -void PCB_SCREEN::Init(void) +void PCB_SCREEN::Init( void ) /*************************/ { - InitDatas(); - m_Active_Layer = CUIVRE_N; /* ref couche active 0.. 31 */ - m_Route_Layer_TOP = CMP_N; /* ref couches par defaut pour vias (Cu.. Cmp) */ - m_Route_Layer_BOTTOM = CUIVRE_N; - m_Zoom = 128; /* valeur */ - m_Grid = wxSize(500,500); /* pas de la grille en 1/10000 "*/ + InitDatas(); + m_Active_Layer = CUIVRE_N; /* ref couche active 0.. 31 */ + m_Route_Layer_TOP = CMP_N; /* ref couches par defaut pour vias (Cu.. Cmp) */ + m_Route_Layer_BOTTOM = CUIVRE_N; + m_Zoom = 128; /* valeur */ + m_Grid = wxSize( 500, 500 ); /* pas de la grille en 1/10000 "*/ } /*************************/ /* class DISPLAY_OPTIONS */ /*************************/ + /* -Options diverses d'affichage à l'écran: -*/ + * Options diverses d'affichage �l'�ran: + */ -DISPLAY_OPTIONS::DISPLAY_OPTIONS(void) +DISPLAY_OPTIONS::DISPLAY_OPTIONS( void ) { - DisplayPadFill = TRUE; - DisplayPadNum = TRUE; - DisplayPadNoConn = TRUE; - DisplayPadIsol = TRUE; + DisplayPadFill = TRUE; + DisplayPadNum = TRUE; + DisplayPadNoConn = TRUE; + DisplayPadIsol = TRUE; - DisplayModEdge = TRUE; - DisplayModText = TRUE; - DisplayPcbTrackFill = TRUE; /* FALSE = sketch , TRUE = rempli */ - DisplayTrackIsol = FALSE; - m_DisplayViaMode = VIA_HOLE_NOT_SHOW; + DisplayModEdge = TRUE; + DisplayModText = TRUE; + DisplayPcbTrackFill = TRUE; /* FALSE = sketch , TRUE = rempli */ + DisplayTrackIsol = FALSE; + m_DisplayViaMode = VIA_HOLE_NOT_SHOW; - DisplayPolarCood = TRUE; - DisplayZones = TRUE; - Show_Modules_Cmp = TRUE; - Show_Modules_Cu = TRUE; + DisplayPolarCood = TRUE; + DisplayZones = TRUE; + Show_Modules_Cmp = TRUE; + Show_Modules_Cu = TRUE; - DisplayDrawItems = TRUE; - ContrastModeDisplay = FALSE; + DisplayDrawItems = TRUE; + ContrastModeDisplay = FALSE; } /*****************************************************/ -EDA_BoardDesignSettings::EDA_BoardDesignSettings(void) +EDA_BoardDesignSettings::EDA_BoardDesignSettings( void ) /*****************************************************/ + // Default values for designing boards { -int ii; -int default_layer_color[32]= { - GREEN, LIGHTGRAY, LIGHTGRAY, LIGHTGRAY, - LIGHTGRAY, LIGHTGRAY, LIGHTGRAY, LIGHTGRAY, - LIGHTGRAY, LIGHTGRAY, LIGHTGRAY, LIGHTGRAY, - LIGHTGRAY, LIGHTGRAY, LIGHTGRAY, RED, - LIGHTGRAY, LIGHTGRAY, - LIGHTGRAY, LIGHTGRAY, - MAGENTA, CYAN, - LIGHTGRAY, LIGHTGRAY, - LIGHTGRAY, - LIGHTGRAY, - LIGHTGRAY, LIGHTGRAY, - LIGHTGRAY, - LIGHTGRAY, - LIGHTGRAY, - LIGHTGRAY }; + int ii; + int default_layer_color[32] = { + GREEN, LIGHTGRAY, LIGHTGRAY, LIGHTGRAY, + LIGHTGRAY, LIGHTGRAY, LIGHTGRAY, LIGHTGRAY, + LIGHTGRAY, LIGHTGRAY, LIGHTGRAY, LIGHTGRAY, + LIGHTGRAY, LIGHTGRAY, LIGHTGRAY, RED, + LIGHTGRAY, LIGHTGRAY, + LIGHTGRAY, LIGHTGRAY, + MAGENTA, CYAN, + LIGHTGRAY, LIGHTGRAY, + LIGHTGRAY, + LIGHTGRAY, + LIGHTGRAY, LIGHTGRAY, + LIGHTGRAY, + LIGHTGRAY, + LIGHTGRAY, + LIGHTGRAY + }; - m_CopperLayerCount = 2; // Default design is a double sided board - m_ViaDrill = 250; // via drill (for the entire board) - m_CurrentViaSize = 450; // Current via size - m_CurrentViaType = VIA_NORMALE; /* via type (BLIND, TROUGHT ...), bits 1 and 2 (not 0 and 1)*/ - m_CurrentTrackWidth = 170; // current track width - for ( ii = 0; ii < HIST0RY_NUMBER; ii ++ ) - { - m_TrackWidhtHistory[ii] = 0; // Last HIST0RY_NUMBER used track widths - m_ViaSizeHistory[ii] = 0; // Last HIST0RY_NUMBER used via sizes - } - m_DrawSegmentWidth = 100; // current graphic line width (not EDGE layer) - m_EdgeSegmentWidth = 100; // current graphic line width (EDGE layer only) - m_PcbTextWidth = 100; // current Pcb (not module) Text width - m_PcbTextSize = wxSize(500,500); // current Pcb (not module) Text size - m_TrackClearence = 100; // track to track and track to pads clearance - m_ZoneClearence = 150; // zone to track and zone to pads clearance - m_MaskMargin = 150; // Solder mask margin - /* Color options for screen display of the Printed Board: */ - m_PcbGridColor = DARKGRAY; // Grid color - for ( ii = 0; ii < 32; ii ++ ) - m_LayerColor[ii] = default_layer_color[ii]; // Layer colors (tracks and graphic items) - m_ViaColor[VIA_BORGNE] = CYAN; - m_ViaColor[VIA_ENTERREE] = BROWN; - m_ViaColor[VIA_NORMALE] = WHITE; - m_ModuleTextCMPColor = LIGHTGRAY; // Text module color for modules on the COMPONENT layer - m_ModuleTextCUColor = MAGENTA; // Text module color for modules on the COPPER layer - m_ModuleTextNOVColor = DARKGRAY; // Text module color for "invisible" texts (must be BLACK if really not displayed) - m_AnchorColor = BLUE; // Anchor color for modules and texts - m_PadCUColor = GREEN; // Pad color for the COMPONENT side of the pad - m_PadCMPColor = RED; // Pad color for the COPPER side of the pad - m_RatsnestColor = WHITE; // Ratsnest color + m_CopperLayerCount = 2; // Default design is a double sided board + m_ViaDrill = 250; // via drill (for the entire board) + m_CurrentViaSize = 450; // Current via size + m_CurrentViaType = VIA_NORMALE; /* via type (BLIND, TROUGHT ...), bits 1 and 2 (not 0 and 1)*/ + m_CurrentTrackWidth = 170; // current track width + for( ii = 0; ii < HIST0RY_NUMBER; ii++ ) + { + m_TrackWidhtHistory[ii] = 0; // Last HIST0RY_NUMBER used track widths + m_ViaSizeHistory[ii] = 0; // Last HIST0RY_NUMBER used via sizes + } + + m_DrawSegmentWidth = 100; // current graphic line width (not EDGE layer) + m_EdgeSegmentWidth = 100; // current graphic line width (EDGE layer only) + m_PcbTextWidth = 100; // current Pcb (not module) Text width + m_PcbTextSize = wxSize( 500, 500 ); // current Pcb (not module) Text size + m_TrackClearence = 100; // track to track and track to pads clearance + m_ZoneClearence = 150; // zone to track and zone to pads clearance + m_MaskMargin = 150; // Solder mask margin + /* Color options for screen display of the Printed Board: */ + m_PcbGridColor = DARKGRAY; // Grid color + for( ii = 0; ii < 32; ii++ ) + m_LayerColor[ii] = default_layer_color[ii]; + + // Layer colors (tracks and graphic items) + m_ViaColor[VIA_BORGNE] = CYAN; + m_ViaColor[VIA_ENTERREE] = BROWN; + m_ViaColor[VIA_NORMALE] = WHITE; + m_ModuleTextCMPColor = LIGHTGRAY; // Text module color for modules on the COMPONENT layer + m_ModuleTextCUColor = MAGENTA; // Text module color for modules on the COPPER layer + m_ModuleTextNOVColor = DARKGRAY; // Text module color for "invisible" texts (must be BLACK if really not displayed) + m_AnchorColor = BLUE; // Anchor color for modules and texts + m_PadCUColor = GREEN; // Pad color for the COMPONENT side of the pad + m_PadCMPColor = RED; // Pad color for the COPPER side of the pad + m_RatsnestColor = WHITE; // Ratsnest color } -