Commit ba7cc834 authored by dickelbeck's avatar dickelbeck
Browse files

SEGVIA::Show() & BOARD_ITEM::MenuText()

parent 9dca39f1
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -178,6 +178,7 @@ SEARCH_RESULT TRACK::Visit( INSPECTOR* inspector, const void* testData,
// see class_track.h
bool SEGVIA::IsOnLayer( int layer_number ) const
{
/* its the same logic, don't need this    
    int via_type = Shape();

    if( via_type == VIA_NORMALE )
@@ -189,12 +190,13 @@ bool SEGVIA::IsOnLayer( int layer_number ) const
    }

    // VIA_BORGNE ou  VIA_ENTERREE:
*/    

    int bottom_layer, top_layer;
    
    ReturnLayerPair( &top_layer, &bottom_layer );
    
    if( bottom_layer <= layer_number && top_layer >= layer_number )
    if( bottom_layer <= layer_number &&  layer_number <= top_layer )
        return true;
    else
        return false;
@@ -242,7 +244,7 @@ void SEGVIA::SetLayerPair( int top_layer, int bottom_layer )
 *  m_Layer code les 2 couches limitant la via
 */
{
    int via_type = m_Shape & 255;
    int via_type = Shape();

    if( via_type == VIA_NORMALE )
    {
@@ -252,6 +254,7 @@ void SEGVIA::SetLayerPair( int top_layer, int bottom_layer )

    if( bottom_layer > top_layer )
        EXCHG( bottom_layer, top_layer );
    
    m_Layer = (top_layer & 15) + ( (bottom_layer & 15) << 4 );
}

+16 −8
Original line number Diff line number Diff line
@@ -185,6 +185,7 @@ void WinEDA_PcbFrame::Other_Layer_Route( TRACK* track, wxDC* DC )
    /* Avoid more than one via on the current location: */
    if( Locate_Via( m_Pcb, g_CurrentTrackSegment->m_End, g_CurrentTrackSegment->GetLayer() ) )
        return;
    
    pt_segm = g_FirstTrackSegment;
    for( ii = 0; ii < g_TrackSegmentCount - 1; ii++, pt_segm = (TRACK*) pt_segm->Pnext )
    {
@@ -229,17 +230,24 @@ void WinEDA_PcbFrame::Other_Layer_Route( TRACK* track, wxDC* DC )
    else
        GetScreen()->m_Active_Layer = GetScreen()->m_Route_Layer_BOTTOM;

    
    /* Adjust the via layer pair */
    if( (Via->m_Shape & 15) == VIA_ENTERREE )
    if( Via->Shape() == VIA_ENTERREE )
    {
        Via->SetLayerPair( old_layer, GetScreen()->m_Active_Layer );
    }
    
    else if( Via->Shape() == VIA_BORGNE )    //blind via
    {                                               
        Via->SetLayer( old_layer | GetScreen()->m_Active_Layer << 4 );
        // A revoir! ( la via devrait deboucher sur 1 cote )
        Via->SetLayerPair( old_layer, GetScreen()->m_Active_Layer );
    }
    else if( (Via->m_Shape & 15) == VIA_BORGNE )    //blind via
    {                                               // A revoir! ( la via devrait deboucher sur 1 cote )
        Via->SetLayer( old_layer | GetScreen()->m_Active_Layer << 4 );
    
    else    // @todo: why have this override behaviour?  why does the user even need to tell us what kind of via, when we know which two layers are in play?
    {        
        // Usual via is from copper to component; layer pair is 0 and 0x0F.
        Via->SetLayerPair( LAYER_CUIVRE_N, LAYER_CMP_N );
    }
    else
        Via->SetLayer( 0x0F ); // Usual via is from copper to component; layer pair is 0 and 0x0F
        
    if( Drc_On &&( Drc( this, DC, Via, m_Pcb->m_Track, 1 ) == BAD_DRC ) )
    {
+1 −0
Original line number Diff line number Diff line
@@ -607,6 +607,7 @@ void WinEDA_PcbFrame::ReadAutoroutedTracks( wxDC* DC )
                NewVia->m_Shape = VIA_NORMALE;
            else
                NewVia->m_Shape = VIA_ENTERREE;
            
            NewVia->Insert( m_Pcb, NULL );
            NbTrack++;
            break;