Ejemplo n.º 1
0
wxString LayerMaskDescribe( const BOARD *aBoard, LSET aMask )
{
    // Try the single or no- layer case (easy)
    PCB_LAYER_ID layer = aMask.ExtractLayer();

    switch( (int) layer )
    {
    case UNSELECTED_LAYER:
        return _( "No layers" );

    case UNDEFINED_LAYER:
        break;

    default:
        return aBoard->GetLayerName( layer );
    }

    // Try to be smart and useful, starting with outer copper
    // (which are more important than internal ones)
    wxString layerInfo;

    if( aMask[F_Cu] )
        AccumulateDescription( layerInfo, aBoard->GetLayerName( F_Cu ) );

    if( aMask[B_Cu] )
        AccumulateDescription( layerInfo, aBoard->GetLayerName( B_Cu ) );

    if( ( aMask & LSET::InternalCuMask() ).any() )
        AccumulateDescription( layerInfo, _("Internal" ) );

    if( ( aMask & LSET::AllNonCuMask() ).any() )
        AccumulateDescription( layerInfo, _("Non-copper" ) );

    return layerInfo;
}