12PANEL_SETUP_MASK_AND_PASTE_BASE::PANEL_SETUP_MASK_AND_PASTE_BASE( wxWindow* parent, wxWindowID 
id, 
const wxPoint& pos, 
const wxSize& size, 
long style, 
const wxString& 
name ) : wxPanel( parent, id, pos, size, style, 
name )
 
   14    wxBoxSizer* bMainSizer;
 
   15    bMainSizer = 
new wxBoxSizer( wxVERTICAL );
 
   18    bSizer3 = 
new wxBoxSizer( wxVERTICAL );
 
   20    wxBoxSizer* bMessages;
 
   21    bMessages = 
new wxBoxSizer( wxHORIZONTAL );
 
   24    bMessages->Add( 
m_bitmapWarning, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT, 5 );
 
   27    bSizer4 = 
new wxBoxSizer( wxVERTICAL );
 
   29    m_staticTextInfoMaskMinWidth = 
new wxStaticText( 
this, wxID_ANY, 
_(
"Consult your PCB manufacturer's specifications for solder mask expansion, web width, and clearance settings."), wxDefaultPosition, wxDefaultSize, 0 );
 
   33    m_staticTextInfoMaskMinWidth1 = 
new wxStaticText( 
this, wxID_ANY, 
_(
"If no specifications are provided, setting these values to zero is recommended."), wxDefaultPosition, wxDefaultSize, 0 );
 
   38    bMessages->Add( bSizer4, 1, wxEXPAND|wxLEFT, 5 );
 
   41    bSizer3->Add( bMessages, 0, wxEXPAND|wxTOP|wxBOTTOM, 10 );
 
   44    bSizer3->Add( 0, 5, 0, wxEXPAND, 5 );
 
   46    m_stSolderMaskSettings = 
new wxStaticText( 
this, wxID_ANY, 
_(
"Solder Mask Settings"), wxDefaultPosition, wxDefaultSize, 0 );
 
   48    m_stSolderMaskSettings->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, 
false, wxEmptyString ) );
 
   52    m_staticline1 = 
new wxStaticLine( 
this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
 
   55    wxGridBagSizer* gbSizer1;
 
   56    gbSizer1 = 
new wxGridBagSizer( 3, 5 );
 
   57    gbSizer1->SetFlexibleDirection( wxBOTH );
 
   58    gbSizer1->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
 
   60    m_maskMarginLabel = 
new wxStaticText( 
this, wxID_ANY, 
_(
"Solder mask expansion:"), wxDefaultPosition, wxDefaultSize, 0 );
 
   62    m_maskMarginLabel->SetToolTip( 
_(
"Global clearance between pads and the solder mask.\nThis value can be superseded by local values for a footprint or a pad.\nPositive clearance means a solder mask opening bigger than the pad (typical for solder mask clearance).") );
 
   64    gbSizer1->Add( 
m_maskMarginLabel, wxGBPosition( 0, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
 
   66    m_maskMarginCtrl = 
new wxTextCtrl( 
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
 
   67    m_maskMarginCtrl->SetToolTip( 
_(
"Global clearance between pads and the solder mask.\nThis value can be superseded by local values for a footprint or a pad.\nPositive clearance means a solder mask opening bigger than the pad (typical for solder mask clearance).") );
 
   69    gbSizer1->Add( 
m_maskMarginCtrl, wxGBPosition( 0, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
 
   71    m_maskMarginUnits = 
new wxStaticText( 
this, wxID_ANY, 
_(
"mm"), wxDefaultPosition, wxDefaultSize, 0 );
 
   73    gbSizer1->Add( 
m_maskMarginUnits, wxGBPosition( 0, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
 
   75    m_maskMinWidthLabel = 
new wxStaticText( 
this, wxID_ANY, 
_(
"Solder mask minimum web width:"), wxDefaultPosition, wxDefaultSize, 0 );
 
   77    m_maskMinWidthLabel->SetToolTip( 
_(
"Minimum distance between openings in the solder mask.\nPad openings closer than this distance will be plotted as a single opening.") );
 
   79    gbSizer1->Add( 
m_maskMinWidthLabel, wxGBPosition( 1, 0 ), wxGBSpan( 1, 1 ), wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
 
   81    m_maskMinWidthCtrl = 
new wxTextCtrl( 
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
 
   82    m_maskMinWidthCtrl->SetToolTip( 
_(
"Minimum distance between openings in the solder mask.\nPad openings closer than this distance will be plotted as a single opening.") );
 
   84    gbSizer1->Add( 
m_maskMinWidthCtrl, wxGBPosition( 1, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
 
   86    m_maskMinWidthUnits = 
new wxStaticText( 
this, wxID_ANY, 
_(
"mm"), wxDefaultPosition, wxDefaultSize, 0 );
 
   88    gbSizer1->Add( 
m_maskMinWidthUnits, wxGBPosition( 1, 2 ), wxGBSpan( 1, 1 ), wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
 
   90    m_maskToCopperClearanceLabel = 
new wxStaticText( 
this, wxID_ANY, 
_(
"Solder mask to copper clearance:"), wxDefaultPosition, wxDefaultSize, 0 );
 
   92    m_maskToCopperClearanceLabel->SetToolTip( 
_(
"Minimum distance between a solder mask opening and a copper item with a different net than the solder mask opening's parent.\nDistances smaller than this minimum will create a DRC error.") );
 
   97    m_maskToCopperClearanceCtrl->SetToolTip( 
_(
"Minimum distance between a solder mask opening and a copper item with a different net than the solder mask opening's parent.\nDistances smaller than this minimum will create a DRC error.") );
 
  105    m_allowBridges = 
new wxCheckBox( 
this, wxID_ANY, 
_(
"Allow bridged solder mask apertures between pads within footprints"), wxDefaultPosition, wxDefaultSize, 0 );
 
  106    m_allowBridges->SetToolTip( 
_(
"Disable DRC error checking for solder mask aperture bridging between pads in the same footprint.") );
 
  108    gbSizer1->Add( 
m_allowBridges, wxGBPosition( 3, 0 ), wxGBSpan( 1, 3 ), wxTOP|wxLEFT, 5 );
 
  111    bSizer6 = 
new wxBoxSizer( wxHORIZONTAL );
 
  113    m_stTenting = 
new wxStaticText( 
this, wxID_ANY, 
_(
"Tent vias:"), wxDefaultPosition, wxDefaultSize, 0 );
 
  115    bSizer6->Add( 
m_stTenting, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
 
  117    m_tentViasFront = 
new wxCheckBox( 
this, wxID_ANY, 
_(
"Front"), wxDefaultPosition, wxDefaultSize, 0 );
 
  118    m_tentViasFront->SetToolTip( 
_(
"Tented: vias are covered with solder mask.\nNot tented: vias are not covered with solder mask.") );
 
  120    bSizer6->Add( 
m_tentViasFront, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT, 5 );
 
  122    m_tentViasBack = 
new wxCheckBox( 
this, wxID_ANY, 
_(
"Back"), wxDefaultPosition, wxDefaultSize, 0 );
 
  123    m_tentViasBack->SetToolTip( 
_(
"Tented: vias are covered with solder mask.\nNot tented: vias are not covered with solder mask.") );
 
  125    bSizer6->Add( 
m_tentViasBack, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
 
  128    gbSizer1->Add( bSizer6, wxGBPosition( 4, 0 ), wxGBSpan( 1, 3 ), wxEXPAND|wxTOP|wxBOTTOM, 5 );
 
  131    bSizer3->Add( gbSizer1, 0, wxBOTTOM|wxEXPAND|wxTOP, 5 );
 
  134    bSizer3->Add( 0, 10, 0, wxEXPAND, 5 );
 
  136    m_stSolderPasteSettings = 
new wxStaticText( 
this, wxID_ANY, 
_(
"Solder Paste Settings"), wxDefaultPosition, wxDefaultSize, 0 );
 
  138    m_stSolderPasteSettings->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, 
false, wxEmptyString ) );
 
  142    m_staticline2 = 
new wxStaticLine( 
this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
 
  143    bSizer3->Add( 
m_staticline2, 0, wxEXPAND|wxTOP|wxBOTTOM, 2 );
 
  145    wxGridBagSizer* gbSizer2;
 
  146    gbSizer2 = 
new wxGridBagSizer( 3, 5 );
 
  147    gbSizer2->SetFlexibleDirection( wxBOTH );
 
  148    gbSizer2->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
 
  150    m_pasteMarginLabel = 
new wxStaticText( 
this, wxID_ANY, 
_(
"Solder paste absolute clearance:"), wxDefaultPosition, wxDefaultSize, 0 );
 
  152    m_pasteMarginLabel->SetToolTip( 
_(
"Global absolute clearance between pads and the solder paste.\nNegative clearance means solder paste area smaller than the pad (typical for solder paste clearance).\nThis value can be superseded by local values for a footprint or a pad.\nFinal clearance value is the sum of this value and the relative clearance value.") );
 
  154    gbSizer2->Add( 
m_pasteMarginLabel, wxGBPosition( 0, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
 
  156    m_pasteMarginCtrl = 
new wxTextCtrl( 
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
 
  157    m_pasteMarginCtrl->SetToolTip( 
_(
"Global absolute clearance between pads and the solder paste.\nNegative clearance means solder paste area smaller than the pad (typical for solder paste clearance).\nThis value can be superseded by local values for a footprint or a pad.\nFinal clearance value is the sum of this value and the relative clearance value.") );
 
  159    gbSizer2->Add( 
m_pasteMarginCtrl, wxGBPosition( 0, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
 
  161    m_pasteMarginUnits = 
new wxStaticText( 
this, wxID_ANY, 
_(
"mm"), wxDefaultPosition, wxDefaultSize, 0 );
 
  163    gbSizer2->Add( 
m_pasteMarginUnits, wxGBPosition( 0, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
 
  165    m_pasteMarginRatioLabel = 
new wxStaticText( 
this, wxID_ANY, 
_(
"Solder paste relative clearance:"), wxDefaultPosition, wxDefaultSize, 0 );
 
  167    m_pasteMarginRatioLabel->SetToolTip( 
_(
"Global clearance ratio between pads and the solder paste as a percentage of the pad size.\nA value of 10 means the clearance value is 10 percent of the pad size.\nThis value can be superseded by local values for a footprint or a pad.\nFinal clearance value is the sum of this value and the absolute clearance value.") );
 
  169    gbSizer2->Add( 
m_pasteMarginRatioLabel, wxGBPosition( 1, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
 
  171    m_pasteMarginRatioCtrl = 
new wxTextCtrl( 
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
 
  172    m_pasteMarginRatioCtrl->SetToolTip( 
_(
"Global clearance ratio between pads and the solder paste as a percentage of the pad size.\nA value of 10 means the clearance value is 10 percent of the pad size.\nThis value can be superseded by local values for a footprint or a pad.\nFinal clearance value is the sum of this value and the absolute clearance value.") );
 
  174    gbSizer2->Add( 
m_pasteMarginRatioCtrl, wxGBPosition( 1, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
 
  181    bSizer3->Add( gbSizer2, 0, wxBOTTOM|wxEXPAND|wxTOP, 5 );
 
  184    bSizer3->Add( 0, 0, 2, wxEXPAND, 5 );
 
  186    m_staticTextInfoPaste = 
new wxStaticText( 
this, wxID_ANY, 
_(
"Note: Solder paste clearances (absolute and relative) are added to determine the final clearance."), wxDefaultPosition, wxDefaultSize, 0 );
 
  191    bSizer3->Add( 0, 0, 1, wxEXPAND, 5 );
 
  194    bMainSizer->Add( bSizer3, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 );
 
  197    this->SetSizer( bMainSizer );
 
  199    bMainSizer->Fit( 
this );