void Change_Side_Module( MODULE* Module, wxDC* DC ) is now member of class BOARD (as asked in todo list)
This commit is contained in:
parent
f50ec6e0b8
commit
9ba9be706e
|
@ -4,6 +4,14 @@ Started 2007-June-11
|
|||
Please add newer entries at the top, list the date and your name with
|
||||
email address.
|
||||
|
||||
|
||||
|
||||
2008-Jan-25 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
|
||||
================================================================================
|
||||
+pcbnew:
|
||||
void Change_Side_Module( MODULE* Module, wxDC* DC ) is now member of class BOARD.
|
||||
|
||||
|
||||
2008-Jan-24 UPDATE Dick Hollenbeck <dick@softplc.com>
|
||||
================================================================================
|
||||
+pcbnew:
|
||||
|
|
|
@ -187,7 +187,6 @@ public:
|
|||
MODULE* module,
|
||||
int angle,
|
||||
bool incremental );
|
||||
void Change_Side_Module( MODULE* Module, wxDC* DC );
|
||||
void Place_Module( MODULE* module, wxDC* DC );
|
||||
void InstallExchangeModuleFrame( MODULE* ExchangeModuleModule,
|
||||
wxDC* DC, const wxPoint& pos );
|
||||
|
|
|
@ -801,7 +801,7 @@ void WinEDA_BasePcbFrame::Block_Invert( wxDC* DC )
|
|||
Place_Module( module, NULL );
|
||||
|
||||
/* inversion du module */
|
||||
Change_Side_Module( module, DC );
|
||||
m_Pcb->Change_Side_Module( module, DC );
|
||||
|
||||
/* regeneration des valeurs originelles */
|
||||
GetScreen()->m_Curseur = memo;
|
||||
|
|
|
@ -246,6 +246,11 @@ public:
|
|||
|
||||
#endif
|
||||
|
||||
/**************************/
|
||||
/* footprint operations : */
|
||||
/**************************/
|
||||
void Change_Side_Module( MODULE* Module, wxDC* DC );
|
||||
|
||||
/*************************/
|
||||
/* Copper Areas handling */
|
||||
/*************************/
|
||||
|
|
|
@ -525,7 +525,7 @@ void WinEDA_ModulePropertiesFrame::OnOkClick( wxCommandEvent& event )
|
|||
|
||||
if( change_layer )
|
||||
{
|
||||
m_Parent->Change_Side_Module( m_CurrentModule, m_DC );
|
||||
m_Parent->m_Pcb->Change_Side_Module( m_CurrentModule, m_DC );
|
||||
}
|
||||
|
||||
if( m_AutoPlaceCtrl->GetSelection() == 1 )
|
||||
|
|
|
@ -618,7 +618,7 @@ void WinEDA_PcbFrame::Process_Special_Functions( wxCommandEvent& event )
|
|||
SetCurItem( GetCurItem()->GetParent() );
|
||||
if( !GetCurItem() || GetCurItem()->Type() != TYPEMODULE )
|
||||
break;
|
||||
Change_Side_Module( (MODULE*) GetCurItem(), &dc );
|
||||
m_Pcb->Change_Side_Module( (MODULE*) GetCurItem(), &dc );
|
||||
break;
|
||||
|
||||
case ID_POPUP_PCB_EDIT_MODULE:
|
||||
|
|
|
@ -103,7 +103,7 @@ void WinEDA_PcbFrame::ExportToGenCAD( wxCommandEvent& event )
|
|||
module->flag = 0;
|
||||
if( module->GetLayer() == COPPER_LAYER_N )
|
||||
{
|
||||
Change_Side_Module( module, NULL );
|
||||
m_Pcb->Change_Side_Module( module, NULL );
|
||||
module->flag = 1;
|
||||
}
|
||||
}
|
||||
|
@ -135,7 +135,7 @@ void WinEDA_PcbFrame::ExportToGenCAD( wxCommandEvent& event )
|
|||
{
|
||||
if( module->flag )
|
||||
{
|
||||
Change_Side_Module( module, NULL );
|
||||
m_Pcb->Change_Side_Module( module, NULL );
|
||||
module->flag = 0;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -507,7 +507,7 @@ void WinEDA_PcbFrame::OnHotKey( wxDC* DC, int hotkey,
|
|||
break;
|
||||
|
||||
case HK_FLIP_FOOTPRINT: // move to other side
|
||||
Change_Side_Module( module, DC );
|
||||
m_Pcb->Change_Side_Module( module, DC );
|
||||
break;
|
||||
|
||||
case HK_DRAG_FOOTPRINT: // Start move (and drag) module
|
||||
|
|
|
@ -80,7 +80,7 @@ void WinEDA_ModuleEditFrame::Load_Module_Module_From_BOARD( MODULE* Module )
|
|||
m_CurrentScreen->m_Curseur.x = m_CurrentScreen->m_Curseur.y = 0;
|
||||
Place_Module( Module, NULL );
|
||||
if( Module->GetLayer() != CMP_N )
|
||||
Change_Side_Module( Module, NULL );
|
||||
m_Pcb->Change_Side_Module( Module, NULL );
|
||||
Rotate_Module( NULL, Module, 0, FALSE );
|
||||
m_CurrentScreen->ClrModify();
|
||||
Zoom_Automatique( TRUE );
|
||||
|
|
|
@ -193,7 +193,7 @@ void Exit_Module( WinEDA_DrawPanel* Panel, wxDC* DC )
|
|||
if( ModuleInitOrient != module->m_Orient )
|
||||
pcbframe->Rotate_Module( NULL, module, ModuleInitOrient, FALSE );
|
||||
if( ModuleInitLayer != module->GetLayer() )
|
||||
pcbframe->Change_Side_Module( module, NULL );
|
||||
pcbframe->m_Pcb->Change_Side_Module( module, NULL );
|
||||
module->Draw( Panel, DC, wxPoint( 0, 0 ), GR_OR );
|
||||
}
|
||||
g_Drag_Pistes_On = FALSE;
|
||||
|
@ -320,14 +320,18 @@ bool WinEDA_PcbFrame::Delete_Module( MODULE* module, wxDC* DC )
|
|||
}
|
||||
|
||||
|
||||
/**********************************************************************/
|
||||
void WinEDA_BasePcbFrame::Change_Side_Module( MODULE* Module, wxDC* DC )
|
||||
/**********************************************************************/
|
||||
/****************************************************************************/
|
||||
void BOARD::Change_Side_Module( MODULE* Module, wxDC* DC )
|
||||
/****************************************************************************/
|
||||
|
||||
/* Change de cote un composant : il y a inversion MIROIR autour de l'axe X
|
||||
* Le changement n'est fait que si la couche est
|
||||
* - CUIVRE ou CMP
|
||||
* Si DC == NULL, il n'y a pas de redessin du composant et du chevelu
|
||||
/**
|
||||
* Function Change_Side_Module
|
||||
* Filp a footprint (switch layer from component or component to copper)
|
||||
* The mirroring is made from X axis
|
||||
* if a footprint is not on copper or component layer it is not flipped
|
||||
* (it could be on an adhesive layer, not supported at this time)
|
||||
* @param Module the footprint to fli^p
|
||||
* @param DC Current Device Context. if NULL, no redraw
|
||||
*/
|
||||
{
|
||||
D_PAD* pt_pad;
|
||||
|
@ -340,17 +344,17 @@ void WinEDA_BasePcbFrame::Change_Side_Module( MODULE* Module, wxDC* DC )
|
|||
if( (Module->GetLayer() != CMP_N) && (Module->GetLayer() != COPPER_LAYER_N) )
|
||||
return;
|
||||
|
||||
m_CurrentScreen->SetModify();
|
||||
m_PcbFrame->GetScreen()->SetModify();
|
||||
|
||||
if( !(Module->m_Flags & IS_MOVED) )
|
||||
{
|
||||
m_Pcb->m_Status_Pcb &= ~( LISTE_CHEVELU_OK | CONNEXION_OK);
|
||||
if( DC )
|
||||
Module->Draw( DrawPanel, DC, wxPoint( 0, 0 ), GR_XOR );
|
||||
m_Status_Pcb &= ~( LISTE_CHEVELU_OK | CONNEXION_OK);
|
||||
if( DC && m_PcbFrame )
|
||||
Module->Draw( m_PcbFrame->DrawPanel, DC, wxPoint( 0, 0 ), GR_XOR );
|
||||
|
||||
/* Effacement chevelu general si necessaire */
|
||||
if( DC && g_Show_Ratsnest )
|
||||
DrawGeneralRatsnest( DC );
|
||||
m_PcbFrame->DrawGeneralRatsnest( DC );
|
||||
|
||||
/* Init des variables utilisees dans la routine Dessine_Drag_segment() */
|
||||
g_Offset_Module.x = 0;
|
||||
|
@ -359,10 +363,10 @@ void WinEDA_BasePcbFrame::Change_Side_Module( MODULE* Module, wxDC* DC )
|
|||
else // Module en deplacement
|
||||
{
|
||||
/* efface empreinte ( vue en contours) si elle a ete deja dessinee */
|
||||
if( DC )
|
||||
if( DC && m_PcbFrame )
|
||||
{
|
||||
DrawModuleOutlines( DrawPanel, DC, Module );
|
||||
Dessine_Segments_Dragges( DrawPanel, DC );
|
||||
DrawModuleOutlines( m_PcbFrame->DrawPanel, DC, Module );
|
||||
Dessine_Segments_Dragges( m_PcbFrame->DrawPanel, DC );
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -485,33 +489,34 @@ void WinEDA_BasePcbFrame::Change_Side_Module( MODULE* Module, wxDC* DC )
|
|||
break;
|
||||
|
||||
default:
|
||||
DisplayError( this, wxT( "Unknown Draw Type" ) ); break;
|
||||
DisplayError( m_PcbFrame, wxT( "Unknown Draw Type" ) ); break;
|
||||
}
|
||||
}
|
||||
|
||||
/* calcul du rectangle d'encadrement */
|
||||
Module->Set_Rectangle_Encadrement();
|
||||
|
||||
Module->Display_Infos( this );
|
||||
if ( m_PcbFrame )
|
||||
Module->Display_Infos( m_PcbFrame );
|
||||
|
||||
if( !(Module->m_Flags & IS_MOVED) ) /* Inversion simple */
|
||||
{
|
||||
if( DC )
|
||||
if( DC && m_PcbFrame )
|
||||
{
|
||||
Module->Draw( DrawPanel, DC, wxPoint( 0, 0 ), GR_OR );
|
||||
Module->Draw( m_PcbFrame->DrawPanel, DC, wxPoint( 0, 0 ), GR_OR );
|
||||
|
||||
/* affichage chevelu general si necessaire */
|
||||
ReCompile_Ratsnest_After_Changes( DC );
|
||||
m_PcbFrame->ReCompile_Ratsnest_After_Changes( DC );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if( DC )
|
||||
if( DC && m_PcbFrame )
|
||||
{
|
||||
DrawModuleOutlines( DrawPanel, DC, Module );
|
||||
Dessine_Segments_Dragges( DrawPanel, DC );
|
||||
DrawModuleOutlines( m_PcbFrame->DrawPanel, DC, Module );
|
||||
Dessine_Segments_Dragges( m_PcbFrame->DrawPanel, DC );
|
||||
}
|
||||
m_Pcb->m_Status_Pcb &= ~CHEVELU_LOCAL_OK;
|
||||
m_Status_Pcb &= ~CHEVELU_LOCAL_OK;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -76,7 +76,7 @@ void WinEDA_PcbFrame::ExportToSPECCTRA( wxCommandEvent& event )
|
|||
module->flag = 0;
|
||||
if( module->GetLayer() == COPPER_LAYER_N )
|
||||
{
|
||||
Change_Side_Module( module, NULL );
|
||||
m_Pcb->Change_Side_Module( module, NULL );
|
||||
module->flag = 1;
|
||||
}
|
||||
}
|
||||
|
@ -103,7 +103,7 @@ void WinEDA_PcbFrame::ExportToSPECCTRA( wxCommandEvent& event )
|
|||
{
|
||||
if( module->flag )
|
||||
{
|
||||
Change_Side_Module( module, NULL );
|
||||
m_Pcb->Change_Side_Module( module, NULL );
|
||||
module->flag = 0;
|
||||
}
|
||||
}
|
||||
|
@ -242,7 +242,8 @@ static void makePADSTACKs( BOARD* aBoard, TYPE_COLLECTOR& aPads,
|
|||
{
|
||||
if( aPads.GetCount() )
|
||||
{
|
||||
qsort( (void*) aPads.BasePtr(), aPads.GetCount(), sizeof(D_PAD*), Pad_list_Sort_by_Shapes );
|
||||
#warning "uncomment next line asap"
|
||||
//JPC qsort( (void*) aPads.BasePtr(), aPads.GetCount(), sizeof(D_PAD*), Pad_list_Sort_by_Shapes );
|
||||
}
|
||||
|
||||
D_PAD* old_pad = NULL;
|
||||
|
@ -591,8 +592,10 @@ void SPECCTRA_DB::FromBOARD( BOARD* aBoard ) throw( IOError )
|
|||
|
||||
makePADSTACKs( aBoard, pads, pcb->library, pcb->library->padstacks );
|
||||
|
||||
#if defined(DEBUG)
|
||||
for( int p=0; p<pads.GetCount(); ++p )
|
||||
pads[p]->Show( 0, std::cout );
|
||||
#endif
|
||||
|
||||
/*
|
||||
static const KICAD_T scanMODULEs[] = { TYPEMODULE, EOT };
|
||||
|
|
|
@ -538,7 +538,7 @@ MODULE* WinEDA_BasePcbFrame::Exchange_Module( wxWindow* winaff,
|
|||
/* Changement eventuel de couche */
|
||||
if( OldModule->GetLayer() != NewModule->GetLayer() )
|
||||
{
|
||||
Change_Side_Module( NewModule, NULL );
|
||||
m_Pcb->Change_Side_Module( NewModule, NULL );
|
||||
}
|
||||
|
||||
/* Rotation eventuelle du module */
|
||||
|
|
11
todo.txt
11
todo.txt
|
@ -71,14 +71,3 @@ asked by: jp Charras
|
|||
Use the collector classes in eeschema.
|
||||
|
||||
|
||||
2008-Jan-24 Assigned To: nobody
|
||||
asked by: Dick Hollenbeck
|
||||
================================================================================
|
||||
See specctra.h's such comment
|
||||
* @todo
|
||||
* I would have liked to put the flipping logic into the ExportToSPECCTRA()
|
||||
* function directly, but for some strange reason,
|
||||
* void Change_Side_Module( MODULE* Module, wxDC* DC ) is a member of
|
||||
* of class WinEDA_BasePcbFrame rather than class BOARD.
|
||||
*
|
||||
|
||||
|
|
Loading…
Reference in New Issue