15DIALOG_GEN_FOOTPRINT_POSITION_BASE::DIALOG_GEN_FOOTPRINT_POSITION_BASE( wxWindow* parent, wxWindowID 
id, 
const wxString& title, 
const wxPoint& pos, 
const wxSize& size, 
long style ) : 
DIALOG_SHIM( parent, id, title, pos, size, style )
 
   17    this->SetSizeHints( wxSize( -1,-1 ), wxDefaultSize );
 
   21    wxBoxSizer* bUpperSizer;
 
   22    bUpperSizer = 
new wxBoxSizer( wxHORIZONTAL );
 
   24    wxBoxSizer* bSizerdirBrowse;
 
   25    bSizerdirBrowse = 
new wxBoxSizer( wxHORIZONTAL );
 
   27    m_staticTextDir = 
new wxStaticText( 
this, wxID_ANY, 
_(
"Output directory:"), wxDefaultPosition, wxDefaultSize, 0 );
 
   29    bSizerdirBrowse->Add( 
m_staticTextDir, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
 
   31    m_outputDirectoryName = 
new wxTextCtrl( 
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
 
   32    m_outputDirectoryName->SetToolTip( 
_(
"Target directory for plot files. Can be absolute or relative to the board file location.") );
 
   38    bSizerdirBrowse->Add( 
m_browseButton, 0, wxALIGN_CENTER_VERTICAL, 5 );
 
   41    bUpperSizer->Add( bSizerdirBrowse, 1, wxEXPAND|wxALL, 10 );
 
   46    wxBoxSizer* bSizerMiddle;
 
   47    bSizerMiddle = 
new wxBoxSizer( wxHORIZONTAL );
 
   49    wxFlexGridSizer* fgSizer1;
 
   50    fgSizer1 = 
new wxFlexGridSizer( 0, 2, 5, 5 );
 
   51    fgSizer1->AddGrowableCol( 1 );
 
   52    fgSizer1->SetFlexibleDirection( wxBOTH );
 
   53    fgSizer1->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
 
   55    m_formatLabel = 
new wxStaticText( 
this, wxID_ANY, 
_(
"Format:"), wxDefaultPosition, wxDefaultSize, 0 );
 
   57    fgSizer1->Add( 
m_formatLabel, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
 
   59    wxString m_formatCtrlChoices[] = { 
_(
"Plain text"), 
_(
"CSV"), 
_(
"Gerber X3") };
 
   60    int m_formatCtrlNChoices = 
sizeof( m_formatCtrlChoices ) / 
sizeof( wxString );
 
   61    m_formatCtrl = 
new wxChoice( 
this, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_formatCtrlNChoices, m_formatCtrlChoices, 0 );
 
   63    fgSizer1->Add( 
m_formatCtrl, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 );
 
   65    m_unitsLabel = 
new wxStaticText( 
this, wxID_ANY, 
_(
"Units:"), wxDefaultPosition, wxDefaultSize, 0 );
 
   67    fgSizer1->Add( 
m_unitsLabel, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
 
   69    wxString m_unitsCtrlChoices[] = { 
_(
"Inches"), 
_(
"Millimeters") };
 
   70    int m_unitsCtrlNChoices = 
sizeof( m_unitsCtrlChoices ) / 
sizeof( wxString );
 
   71    m_unitsCtrl = 
new wxChoice( 
this, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_unitsCtrlNChoices, m_unitsCtrlChoices, 0 );
 
   73    fgSizer1->Add( 
m_unitsCtrl, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 );
 
   76    bSizerMiddle->Add( fgSizer1, 1, wxEXPAND|wxBOTTOM|wxLEFT, 5 );
 
   79    bSizer6 = 
new wxBoxSizer( wxVERTICAL );
 
   82    bSizer6->Add( 0, 0, 1, wxEXPAND, 5 );
 
   85    bSizerMiddle->Add( bSizer6, 1, wxEXPAND, 5 );
 
   88    m_MainSizer->Add( bSizerMiddle, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 );
 
   90    wxBoxSizer* bSizerLower;
 
   91    bSizerLower = 
new wxBoxSizer( wxVERTICAL );
 
   93    m_onlySMD = 
new wxCheckBox( 
this, wxID_ANY, 
_(
"Include only SMD footprints"), wxDefaultPosition, wxDefaultSize, 0 );
 
   94    bSizerLower->Add( 
m_onlySMD, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
 
   96    m_excludeTH = 
new wxCheckBox( 
this, wxID_ANY, 
_(
"Exclude all footprints with through hole pads"), wxDefaultPosition, wxDefaultSize, 0 );
 
   97    bSizerLower->Add( 
m_excludeTH, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
 
   99    m_excludeDNP = 
new wxCheckBox( 
this, wxID_ANY, 
_(
"Exclude all footprints with the Do Not Populate flag set"), wxDefaultPosition, wxDefaultSize, 0 );
 
  100    bSizerLower->Add( 
m_excludeDNP, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
 
  102    m_excludeBOM = 
new wxCheckBox( 
this, wxID_ANY, 
_(
"Exclude all footprints with the Exclude from BOM flag set"), wxDefaultPosition, wxDefaultSize, 0 );
 
  103    bSizerLower->Add( 
m_excludeBOM, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
 
  105    m_cbIncludeBoardEdge = 
new wxCheckBox( 
this, wxID_ANY, 
_(
"Include board edge layer"), wxDefaultPosition, wxDefaultSize, 0 );
 
  108    m_useDrillPlaceOrigin = 
new wxCheckBox( 
this, wxID_ANY, 
_(
"Use drill/place file origin"), wxDefaultPosition, wxDefaultSize, 0 );
 
  112    m_negateXcb = 
new wxCheckBox( 
this, wxID_ANY, 
_(
"Use negative X coordinates for footprints on bottom layer"), wxDefaultPosition, wxDefaultSize, 0 );
 
  113    bSizerLower->Add( 
m_negateXcb, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
 
  115    m_singleFile = 
new wxCheckBox( 
this, wxID_ANY, 
_(
"Generate single file with both front and back positions"), wxDefaultPosition, wxDefaultSize, 0 );
 
  117    bSizerLower->Add( 
m_singleFile, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
 
  120    bSizerLower->Add( 0, 5, 0, wxEXPAND, 5 );
 
  128    m_MainSizer->Add( bSizerLower, 1, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
 
  144    this->Centre( wxBOTH );