Commit 0f406d3f authored by dickelbeck's avatar dickelbeck

MaskLay was type bool, needs to be type int

parent 2b6ec786
/*****************************************/ /*****************************************/
/* 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 @@ ...@@ -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;
ActiveScreen = screen; if( !m_Pcb || !screen )
GRSetDrawMode(DC, GR_COPY); return;
if ( EraseBg ) DrawPanel->EraseScreen(DC); ActiveScreen = screen;
GRSetDrawMode( DC, GR_COPY );
DrawPanel->DrawBackGround(DC); if( EraseBg )
TraceWorkSheet(DC, screen, 0); DrawPanel->EraseScreen( DC );
Module = (MODULE*) m_Pcb->m_Modules; DrawPanel->DrawBackGround( DC );
for ( ; Module != NULL; Module = (MODULE *) Module->Pnext ) TraceWorkSheet( DC, screen, 0 );
{
Module->Draw(DrawPanel, DC, wxPoint(0,0), GR_OR);
}
Module = (MODULE*) m_Pcb->m_Modules;
for( ; Module != NULL; Module = (MODULE*) Module->Pnext )
{
Module->Draw( DrawPanel, DC, wxPoint( 0, 0 ), GR_OR );
}
Affiche_Status_Box(); Affiche_Status_Box();
if( DrawPanel->ManageCurseur ) if( DrawPanel->ManageCurseur )
DrawPanel->ManageCurseur(DrawPanel, DC, FALSE); DrawPanel->ManageCurseur( DrawPanel, DC, FALSE );
/* Reaffichage du curseur */ /* Reaffichage du curseur */
DrawPanel->Trace_Curseur(DC); DrawPanel->Trace_Curseur( DC );
screen->ClrRefreshReq(); 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;
for ( ; Module != NULL; Module = (MODULE *) Module->Pnext ) Module = (MODULE*) m_Pcb->m_Modules;
{ for( ; Module != NULL; Module = (MODULE*) Module->Pnext )
bool display = TRUE, MaskLay = ALL_CU_LAYERS; {
if( Module->m_Flags & IS_MOVED ) continue ; bool display = true;
int MaskLay = ALL_CU_LAYERS;
if( ! DisplayOpt.Show_Modules_Cmp )
{ if( Module->m_Flags & IS_MOVED )
if(Module->m_Layer == CMP_N) display = FALSE; continue;
MaskLay &= ~CMP_LAYER;
} if( !DisplayOpt.Show_Modules_Cmp )
if( ! DisplayOpt.Show_Modules_Cu ) {
{ if( Module->m_Layer == CMP_N )
if(Module->m_Layer == CUIVRE_N) display = FALSE; display = FALSE;
MaskLay &= ~CUIVRE_LAYER; MaskLay &= ~CMP_LAYER;
} }
if( !DisplayOpt.Show_Modules_Cu )
if ( display ) Module->Draw(DrawPanel, DC, wxPoint(0,0), mode); {
else Trace_Pads_Only(DrawPanel, DC, Module, 0, 0, MaskLay, mode); if( Module->m_Layer == CUIVRE_N )
} display = FALSE;
MaskLay &= ~CUIVRE_LAYER;
/* Trace des elements particuliers de Drawings Pcb */ }
PtStruct = m_Pcb->m_Drawings; if( display )
for( ; PtStruct != NULL; PtStruct = PtStruct->Pnext ) Module->Draw( DrawPanel, DC, wxPoint( 0, 0 ), mode );
{ else
if ( PtStruct->m_Flags & IS_MOVED ) continue; Trace_Pads_Only( DrawPanel, DC, Module, 0, 0, MaskLay, mode );
}
switch(PtStruct->m_StructType)
{ /* Trace des elements particuliers de Drawings Pcb */
case TYPECOTATION:
((COTATION*) PtStruct)->Draw(DrawPanel, DC, wxPoint(0,0), mode); PtStruct = m_Pcb->m_Drawings;
break; for( ; PtStruct != NULL; PtStruct = PtStruct->Pnext )
{
case TYPETEXTE: if( PtStruct->m_Flags & IS_MOVED )
((TEXTE_PCB*) PtStruct)->Draw(DrawPanel, DC, wxPoint(0,0), mode ); continue;
break;
switch( PtStruct->m_StructType )
case TYPEMIRE: {
((MIREPCB*) PtStruct)->Draw(DrawPanel, DC, wxPoint(0,0), mode); case TYPECOTATION:
break; ( (COTATION*) PtStruct )->Draw( DrawPanel, DC, wxPoint( 0, 0 ), mode );
break;
case TYPEMARQUEUR: /* Trace des marqueurs */
Marqueur = ( MARQUEUR*) PtStruct; case TYPETEXTE:
Marqueur->Draw(DrawPanel, DC, mode); ( (TEXTE_PCB*) PtStruct )->Draw( DrawPanel, DC, wxPoint( 0, 0 ), mode );
break; break;
default: break; case TYPEMIRE:
} ( (MIREPCB*) PtStruct )->Draw( DrawPanel, DC, wxPoint( 0, 0 ), mode );
} break;
Trace_Pistes(DrawPanel, m_Pcb, DC, mode); case TYPEMARQUEUR: /* Trace des marqueurs */
if ( g_HightLigt_Status ) DrawHightLight(DC, g_HightLigth_NetCode) ; Marqueur = (MARQUEUR*) PtStruct;
Marqueur->Draw( DrawPanel, DC, mode );
EDGE_ZONE * segment = m_Pcb->m_CurrentLimitZone; break;
for( ; segment != NULL; segment = (EDGE_ZONE *) segment->Pback)
{ default:
if ( segment->m_Flags & IS_MOVED ) continue; break;
Trace_DrawSegmentPcb(DrawPanel, DC, segment, mode); }
} }
Trace_PcbEdges(DC, mode); Trace_Pistes( DrawPanel, m_Pcb, DC, mode );
DrawGeneralRatsnest(DC); if( g_HightLigt_Status )
DrawHightLight( DC, g_HightLigth_NetCode );
m_CurrentScreen->ClrRefreshReq();
EDGE_ZONE* segment = m_Pcb->m_CurrentLimitZone;
for( ; segment != NULL; segment = (EDGE_ZONE*) segment->Pback )
{
if( segment->m_Flags & IS_MOVED )
continue;
Trace_DrawSegmentPcb( DrawPanel, DC, segment, mode );
}
Trace_PcbEdges( DC, mode );
DrawGeneralRatsnest( DC );
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 );
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment