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; }