MaskLay was type bool, needs to be type int

This commit is contained in:
dickelbeck 2007-08-15 02:43:03 +00:00
parent 2b6ec786a8
commit 0f406d3f89
1 changed files with 136 additions and 117 deletions

View File

@ -1,11 +1,12 @@
/*****************************************/ /*****************************************/
/* Routines generales d'affichage du PCB */ /* Routines generales d'affichage du PCB */
/*****************************************/ /*****************************************/
/* fichier tracepcb.cpp */
/* fichier tracepcb.cpp */
/* /*
Routines d'affichage grille, Boite de coordonnees, Curseurs, marqueurs ... * Routines d'affichage grille, Boite de coordonnees, Curseurs, marqueurs ...
*/ */
#include "fctsys.h" #include "fctsys.h"
#include "gr_basic.h" #include "gr_basic.h"
@ -23,170 +24,188 @@
/**********************************************************************/ /**********************************************************************/
void WinEDA_ModuleEditFrame::RedrawActiveWindow(wxDC * DC, bool EraseBg) void WinEDA_ModuleEditFrame::RedrawActiveWindow( wxDC* DC, bool EraseBg )
/**********************************************************************/ /**********************************************************************/
/* Trace le PCB, et les elements complementaires ( axes, grille .. ) /* Trace le PCB, et les elements complementaires ( axes, grille .. )
pour l'ecran actif et ses sous ecran * pour l'ecran actif et ses sous ecran
*/ */
{ {
MODULE * Module; MODULE* Module;
PCB_SCREEN * screen = GetScreen(); PCB_SCREEN* screen = GetScreen();
if ( ! m_Pcb || ! screen ) return; if( !m_Pcb || !screen )
return;
ActiveScreen = screen; ActiveScreen = screen;
GRSetDrawMode(DC, GR_COPY); GRSetDrawMode( DC, GR_COPY );
if ( EraseBg ) DrawPanel->EraseScreen(DC); if( EraseBg )
DrawPanel->EraseScreen( DC );
DrawPanel->DrawBackGround(DC); DrawPanel->DrawBackGround( DC );
TraceWorkSheet(DC, screen, 0); TraceWorkSheet( DC, screen, 0 );
Module = (MODULE*) m_Pcb->m_Modules; Module = (MODULE*) m_Pcb->m_Modules;
for ( ; Module != NULL; Module = (MODULE *) Module->Pnext ) for( ; Module != NULL; Module = (MODULE*) Module->Pnext )
{ {
Module->Draw(DrawPanel, DC, wxPoint(0,0), GR_OR); Module->Draw( DrawPanel, DC, wxPoint( 0, 0 ), GR_OR );
} }
Affiche_Status_Box();
Affiche_Status_Box(); if( DrawPanel->ManageCurseur )
DrawPanel->ManageCurseur( DrawPanel, DC, FALSE );
if( DrawPanel->ManageCurseur ) /* Reaffichage du curseur */
DrawPanel->ManageCurseur(DrawPanel, DC, FALSE); DrawPanel->Trace_Curseur( DC );
/* Reaffichage du curseur */ screen->ClrRefreshReq();
DrawPanel->Trace_Curseur(DC);
screen->ClrRefreshReq();
} }
/****************************************************************/ /****************************************************************/
void WinEDA_PcbFrame::RedrawActiveWindow(wxDC * DC, bool EraseBg) void WinEDA_PcbFrame::RedrawActiveWindow( wxDC* DC, bool EraseBg )
/****************************************************************/ /****************************************************************/
/* Trace le PCB, et les elements complementaires ( axes, grille .. ) /* Trace le PCB, et les elements complementaires ( axes, grille .. )
pour l'ecran actif et ses sous ecran * pour l'ecran actif et ses sous ecran
*/ */
{ {
PCB_SCREEN * Screen = GetScreen(); PCB_SCREEN* Screen = GetScreen();
if ( ! m_Pcb || ! Screen ) return; if( !m_Pcb || !Screen )
return;
ActiveScreen = GetScreen(); ActiveScreen = GetScreen();
GRSetDrawMode(DC, GR_COPY); GRSetDrawMode( DC, GR_COPY );
if ( EraseBg ) DrawPanel->EraseScreen(DC); if( EraseBg )
DrawPanel->EraseScreen( DC );
DrawPanel->DrawBackGround(DC); DrawPanel->DrawBackGround( DC );
Trace_Pcb(DC, GR_OR); Trace_Pcb( DC, GR_OR );
TraceWorkSheet(DC, GetScreen(), 0); TraceWorkSheet( DC, GetScreen(), 0 );
Affiche_Status_Box(); Affiche_Status_Box();
/* Reaffichage des curseurs */ /* Reaffichage des curseurs */
for( Screen = GetScreen(); Screen != NULL; Screen = Screen->Next() ) for( Screen = GetScreen(); Screen != NULL; Screen = Screen->Next() )
{ {
if( DrawPanel->ManageCurseur ) if( DrawPanel->ManageCurseur )
DrawPanel->ManageCurseur(DrawPanel, DC, FALSE); DrawPanel->ManageCurseur( DrawPanel, DC, FALSE );
DrawPanel->Trace_Curseur(DC); DrawPanel->Trace_Curseur( DC );
} }
} }
/****************************************************/ /****************************************************/
void WinEDA_PcbFrame::Trace_Pcb(wxDC * DC, int mode) void WinEDA_PcbFrame::Trace_Pcb( wxDC* DC, int mode )
/****************************************************/ /****************************************************/
/* Trace l'ensemble des elements du PCB sur l'ecran actif*/ /* Trace l'ensemble des elements du PCB sur l'ecran actif*/
{ {
MARQUEUR * Marqueur; MARQUEUR* Marqueur;
MODULE * Module; MODULE* Module;
EDA_BaseStruct * PtStruct; EDA_BaseStruct* PtStruct;
if ( ! m_Pcb ) return; if( !m_Pcb )
return;
Module = (MODULE*) m_Pcb->m_Modules; Module = (MODULE*) m_Pcb->m_Modules;
for ( ; Module != NULL; Module = (MODULE *) Module->Pnext ) for( ; Module != NULL; Module = (MODULE*) Module->Pnext )
{ {
bool display = TRUE, MaskLay = ALL_CU_LAYERS; bool display = true;
if( Module->m_Flags & IS_MOVED ) continue ; int MaskLay = ALL_CU_LAYERS;
if( Module->m_Flags & IS_MOVED )
continue;
if( ! DisplayOpt.Show_Modules_Cmp ) if( !DisplayOpt.Show_Modules_Cmp )
{ {
if(Module->m_Layer == CMP_N) display = FALSE; if( Module->m_Layer == CMP_N )
MaskLay &= ~CMP_LAYER; display = FALSE;
} MaskLay &= ~CMP_LAYER;
if( ! DisplayOpt.Show_Modules_Cu ) }
{ if( !DisplayOpt.Show_Modules_Cu )
if(Module->m_Layer == CUIVRE_N) display = FALSE; {
MaskLay &= ~CUIVRE_LAYER; if( Module->m_Layer == CUIVRE_N )
} display = FALSE;
MaskLay &= ~CUIVRE_LAYER;
}
if ( display ) Module->Draw(DrawPanel, DC, wxPoint(0,0), mode); if( display )
else Trace_Pads_Only(DrawPanel, DC, Module, 0, 0, MaskLay, mode); Module->Draw( DrawPanel, DC, wxPoint( 0, 0 ), mode );
} else
Trace_Pads_Only( DrawPanel, DC, Module, 0, 0, MaskLay, mode );
}
/* Trace des elements particuliers de Drawings Pcb */ /* Trace des elements particuliers de Drawings Pcb */
PtStruct = m_Pcb->m_Drawings; PtStruct = m_Pcb->m_Drawings;
for( ; PtStruct != NULL; PtStruct = PtStruct->Pnext ) for( ; PtStruct != NULL; PtStruct = PtStruct->Pnext )
{ {
if ( PtStruct->m_Flags & IS_MOVED ) continue; if( PtStruct->m_Flags & IS_MOVED )
continue;
switch(PtStruct->m_StructType) switch( PtStruct->m_StructType )
{ {
case TYPECOTATION: case TYPECOTATION:
((COTATION*) PtStruct)->Draw(DrawPanel, DC, wxPoint(0,0), mode); ( (COTATION*) PtStruct )->Draw( DrawPanel, DC, wxPoint( 0, 0 ), mode );
break; break;
case TYPETEXTE: case TYPETEXTE:
((TEXTE_PCB*) PtStruct)->Draw(DrawPanel, DC, wxPoint(0,0), mode ); ( (TEXTE_PCB*) PtStruct )->Draw( DrawPanel, DC, wxPoint( 0, 0 ), mode );
break; break;
case TYPEMIRE: case TYPEMIRE:
((MIREPCB*) PtStruct)->Draw(DrawPanel, DC, wxPoint(0,0), mode); ( (MIREPCB*) PtStruct )->Draw( DrawPanel, DC, wxPoint( 0, 0 ), mode );
break; break;
case TYPEMARQUEUR: /* Trace des marqueurs */ case TYPEMARQUEUR: /* Trace des marqueurs */
Marqueur = ( MARQUEUR*) PtStruct; Marqueur = (MARQUEUR*) PtStruct;
Marqueur->Draw(DrawPanel, DC, mode); Marqueur->Draw( DrawPanel, DC, mode );
break; break;
default: break; default:
} break;
} }
}
Trace_Pistes(DrawPanel, m_Pcb, DC, mode); Trace_Pistes( DrawPanel, m_Pcb, DC, mode );
if ( g_HightLigt_Status ) DrawHightLight(DC, g_HightLigth_NetCode) ; if( g_HightLigt_Status )
DrawHightLight( DC, g_HightLigth_NetCode );
EDGE_ZONE * segment = m_Pcb->m_CurrentLimitZone; EDGE_ZONE* segment = m_Pcb->m_CurrentLimitZone;
for( ; segment != NULL; segment = (EDGE_ZONE *) segment->Pback) for( ; segment != NULL; segment = (EDGE_ZONE*) segment->Pback )
{ {
if ( segment->m_Flags & IS_MOVED ) continue; if( segment->m_Flags & IS_MOVED )
Trace_DrawSegmentPcb(DrawPanel, DC, segment, mode); continue;
} Trace_DrawSegmentPcb( DrawPanel, DC, segment, mode );
}
Trace_PcbEdges(DC, mode); Trace_PcbEdges( DC, mode );
DrawGeneralRatsnest(DC); DrawGeneralRatsnest( DC );
m_CurrentScreen->ClrRefreshReq(); m_CurrentScreen->ClrRefreshReq();
} }
/**************************************************************/ /**************************************************************/
void WinEDA_PcbFrame::Trace_PcbEdges(wxDC * DC, int mode_color) void WinEDA_PcbFrame::Trace_PcbEdges( wxDC* DC, int mode_color )
/**************************************************************/ /**************************************************************/
/* impression des contours ( edge pcb) : et draw */ /* impression des contours ( edge pcb) : et draw */
{ {
EDA_BaseStruct * PtStruct; EDA_BaseStruct* PtStruct;
if ( ! m_Pcb ) return; if( !m_Pcb )
for ( PtStruct = m_Pcb->m_Drawings; PtStruct != NULL; PtStruct = PtStruct->Pnext) return;
{ for( PtStruct = m_Pcb->m_Drawings; PtStruct != NULL; PtStruct = PtStruct->Pnext )
if ( PtStruct->m_Flags & IS_MOVED ) continue; {
if( PtStruct->m_StructType != TYPEDRAWSEGMENT ) continue; if( PtStruct->m_Flags & IS_MOVED )
Trace_DrawSegmentPcb(DrawPanel, DC, (DRAWSEGMENT *) PtStruct,mode_color); continue;
} if( PtStruct->m_StructType != TYPEDRAWSEGMENT )
continue;
Trace_DrawSegmentPcb( DrawPanel, DC, (DRAWSEGMENT*) PtStruct, mode_color );
}
} }