MaskLay was type bool, needs to be type int
This commit is contained in:
parent
2b6ec786a8
commit
0f406d3f89
|
@ -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 );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue