14PANEL_SETUP_BOARD_STACKUP_BASE::PANEL_SETUP_BOARD_STACKUP_BASE( wxWindow* parent, wxWindowID 
id, 
const wxPoint& pos, 
const wxSize& size, 
long style, 
const wxString& 
name ) : wxPanel( parent, id, pos, size, style, 
name )
 
   16    wxBoxSizer* bMainSizer;
 
   17    bMainSizer = 
new wxBoxSizer( wxVERTICAL );
 
   19    wxBoxSizer* bTopSizer;
 
   20    bTopSizer = 
new wxBoxSizer( wxHORIZONTAL );
 
   22    m_lblCopperLayers = 
new wxStaticText( 
this, wxID_ANY, 
_(
"Copper layers:"), wxDefaultPosition, wxDefaultSize, 0 );
 
   24    m_lblCopperLayers->SetToolTip( 
_(
"Select the number of copper layers in the stackup") );
 
   26    bTopSizer->Add( 
m_lblCopperLayers, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5 );
 
   28    wxString m_choiceCopperLayersChoices[] = { 
_(
"2"), 
_(
"4"), 
_(
"6"), 
_(
"8"), 
_(
"10"), 
_(
"12"), 
_(
"14"), 
_(
"16"), 
_(
"18"), 
_(
"20"), 
_(
"22"), 
_(
"24"), 
_(
"26"), 
_(
"28"), 
_(
"30"), 
_(
"32") };
 
   29    int m_choiceCopperLayersNChoices = 
sizeof( m_choiceCopperLayersChoices ) / 
sizeof( wxString );
 
   30    m_choiceCopperLayers = 
new wxChoice( 
this, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceCopperLayersNChoices, m_choiceCopperLayersChoices, 0 );
 
   37    bTopSizer->Add( 40, 0, 1, wxEXPAND, 5 );
 
   39    m_impedanceControlled = 
new wxCheckBox( 
this, wxID_ANY, 
_(
"Impedance controlled"), wxDefaultPosition, wxDefaultSize, 0 );
 
   40    m_impedanceControlled->SetToolTip( 
_(
"If Impedance Controlled option is set,\nLoss tangent and EpsilonR will be added to constraints.") );
 
   45    bTopSizer->Add( 40, 0, 1, wxEXPAND, 5 );
 
   54    bMainSizer->Add( bTopSizer, 0, wxEXPAND|wxALL, 5 );
 
   56    wxBoxSizer* m_sizerStackup;
 
   57    m_sizerStackup = 
new wxBoxSizer( wxVERTICAL );
 
   59    m_panel1 = 
new WX_PANEL( 
this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
 
   61    bSizer6 = 
new wxBoxSizer( wxVERTICAL );
 
   64    bSizer6->Add( 0, 1, 0, wxEXPAND, 5 );
 
   66    m_scGridWin = 
new wxScrolledWindow( 
m_panel1, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxBORDER_NONE|wxHSCROLL|wxVSCROLL );
 
   69    bMargins = 
new wxBoxSizer( wxVERTICAL );
 
   73    m_fgGridSizer->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
 
  111    bMargins->Add( 
m_fgGridSizer, 1, wxEXPAND|wxTOP|wxBOTTOM|wxLEFT, 5 );
 
  117    bSizer6->Add( 
m_scGridWin, 1, wxEXPAND|wxBOTTOM, 2 );
 
  123    m_sizerStackup->Add( 
m_panel1, 1, wxEXPAND, 5 );
 
  126    bMainSizer->Add( m_sizerStackup, 3, wxEXPAND|wxBOTTOM, 5 );
 
  128    wxBoxSizer* bBottomSizer;
 
  129    bBottomSizer = 
new wxBoxSizer( wxHORIZONTAL );
 
  131    m_staticTextCT = 
new wxStaticText( 
this, wxID_ANY, 
_(
"Board thickness from stackup:"), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT );
 
  133    bBottomSizer->Add( 
m_staticTextCT, 0, wxALIGN_CENTER_VERTICAL, 5 );
 
  135    m_tcCTValue = 
new wxTextCtrl( 
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY );
 
  136    bBottomSizer->Add( 
m_tcCTValue, 0, wxALL|wxALIGN_CENTER_VERTICAL, 2 );
 
  139    bBottomSizer->Add( 10, 0, 0, wxEXPAND, 5 );
 
  141    m_buttonAdjust = 
new wxButton( 
this, wxID_ANY, 
_(
"Adjust Dielectric Thickness"), wxDefaultPosition, wxDefaultSize, 0 );
 
  142    bBottomSizer->Add( 
m_buttonAdjust, 0, wxALL|wxALIGN_CENTER_VERTICAL, 2 );
 
  145    bBottomSizer->Add( 0, 0, 1, wxEXPAND, 5 );
 
  147    m_buttonExport = 
new wxButton( 
this, wxID_ANY, 
_(
"Export to Clipboard"), wxDefaultPosition, wxDefaultSize, 0 );
 
  148    bBottomSizer->Add( 
m_buttonExport, 0, wxTOP|wxBOTTOM|wxRIGHT|wxALIGN_CENTER_VERTICAL, 2 );
 
  151    bMainSizer->Add( bBottomSizer, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
 
  154    this->SetSizer( bMainSizer );
 
  156    bMainSizer->Fit( 
this );