14DIALOG_CLEANUP_TRACKS_AND_VIAS_BASE::DIALOG_CLEANUP_TRACKS_AND_VIAS_BASE( wxWindow* parent, wxWindowID 
id, 
const wxString& title, 
const wxPoint& pos, 
const wxSize& size, 
long style ) : 
DIALOG_SHIM( parent, id, title, pos, size, style )
 
   16    this->SetSizeHints( wxDefaultSize, wxDefaultSize );
 
   18    wxBoxSizer* bSizerMain;
 
   19    bSizerMain = 
new wxBoxSizer( wxVERTICAL );
 
   21    wxBoxSizer* bSizerTop;
 
   22    bSizerTop = 
new wxBoxSizer( wxHORIZONTAL );
 
   24    wxStaticBoxSizer* sbSizer3;
 
   25    sbSizer3 = 
new wxStaticBoxSizer( 
new wxStaticBox( 
this, wxID_ANY, 
_(
"Actions") ), wxVERTICAL );
 
   27    m_cbRefillZones = 
new wxCheckBox( sbSizer3->GetStaticBox(), wxID_ANY, 
_(
"Refill zones before and after cleanup"), wxDefaultPosition, wxDefaultSize, 0 );
 
   31    sbSizer3->Add( 0, 12, 1, wxEXPAND, 5 );
 
   33    m_cleanShortCircuitOpt = 
new wxCheckBox( sbSizer3->GetStaticBox(), wxID_ANY, 
_(
"Delete &tracks connecting different nets"), wxDefaultPosition, wxDefaultSize, 0 );
 
   34    m_cleanShortCircuitOpt->SetToolTip( 
_(
"remove track segments connecting nodes belonging to different nets (short circuit)") );
 
   39    sbSizer3->Add( 0, 10, 1, wxEXPAND, 5 );
 
   41    m_cleanViasOpt = 
new wxCheckBox( sbSizer3->GetStaticBox(), wxID_ANY, 
_(
"&Delete redundant vias"), wxDefaultPosition, wxDefaultSize, 0 );
 
   42    m_cleanViasOpt->SetToolTip( 
_(
"remove vias on through hole pads and superimposed vias") );
 
   46    m_deleteDanglingViasOpt = 
new wxCheckBox( sbSizer3->GetStaticBox(), wxID_ANY, 
_(
"Delete vias connected on only one layer"), wxDefaultPosition, wxDefaultSize, 0 );
 
   50    sbSizer3->Add( 0, 10, 1, wxEXPAND, 5 );
 
   52    m_mergeSegmOpt = 
new wxCheckBox( sbSizer3->GetStaticBox(), wxID_ANY, 
_(
"&Merge co-linear tracks"), wxDefaultPosition, wxDefaultSize, 0 );
 
   53    m_mergeSegmOpt->SetToolTip( 
_(
"merge aligned track segments, and remove null segments") );
 
   57    m_deleteUnconnectedOpt = 
new wxCheckBox( sbSizer3->GetStaticBox(), wxID_ANY, 
_(
"Delete tracks unconnected at one end"), wxDefaultPosition, wxDefaultSize, 0 );
 
   62    m_deleteTracksInPadsOpt = 
new wxCheckBox( sbSizer3->GetStaticBox(), wxID_ANY, 
_(
"Delete tracks fully inside pads"), wxDefaultPosition, wxDefaultSize, 0 );
 
   68    bSizerTop->Add( sbSizer3, 1, wxEXPAND|wxRIGHT|wxLEFT, 5 );
 
   70    wxStaticBoxSizer* sbFilters;
 
   71    sbFilters = 
new wxStaticBoxSizer( 
new wxStaticBox( 
this, wxID_ANY, 
_(
"Filter Items") ), wxVERTICAL );
 
   73    wxFlexGridSizer* fgSizer3;
 
   74    fgSizer3 = 
new wxFlexGridSizer( 0, 2, 3, 0 );
 
   75    fgSizer3->AddGrowableCol( 1 );
 
   76    fgSizer3->AddGrowableRow( 0 );
 
   77    fgSizer3->AddGrowableRow( 1 );
 
   78    fgSizer3->AddGrowableRow( 2 );
 
   79    fgSizer3->AddGrowableRow( 3 );
 
   80    fgSizer3->SetFlexibleDirection( wxBOTH );
 
   81    fgSizer3->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
 
   83    m_netFilterOpt = 
new wxCheckBox( sbFilters->GetStaticBox(), wxID_ANY, 
_(
"Filter items by net:"), wxDefaultPosition, wxDefaultSize, 0 );
 
   84    fgSizer3->Add( 
m_netFilterOpt, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
 
   87    fgSizer3->Add( 
m_netFilter, 1, wxEXPAND|wxRIGHT, 5 );
 
   89    m_netclassFilterOpt = 
new wxCheckBox( sbFilters->GetStaticBox(), wxID_ANY, 
_(
"Filter items by net class:"), wxDefaultPosition, wxDefaultSize, 0 );
 
   92    wxArrayString m_netclassFilterChoices;
 
   93    m_netclassFilter = 
new wxChoice( sbFilters->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_netclassFilterChoices, 0 );
 
   97    fgSizer3->Add( 
m_netclassFilter, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT, 5 );
 
  100    fgSizer3->Add( 0, 7, 1, wxEXPAND, 5 );
 
  103    fgSizer3->Add( 0, 0, 1, wxEXPAND, 5 );
 
  105    m_layerFilterOpt = 
new wxCheckBox( sbFilters->GetStaticBox(), wxID_ANY, 
_(
"Filter items by layer:"), wxDefaultPosition, wxDefaultSize, 0 );
 
  106    fgSizer3->Add( 
m_layerFilterOpt, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
 
  109    fgSizer3->Add( 
m_layerFilter, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
 
  112    fgSizer3->Add( 0, 7, 1, wxEXPAND, 5 );
 
  115    fgSizer3->Add( 0, 0, 1, wxEXPAND, 5 );
 
  118    sbFilters->Add( fgSizer3, 0, wxEXPAND|wxBOTTOM, 5 );
 
  121    sbFilters->Add( 0, 5, 0, 0, 5 );
 
  123    m_selectedItemsFilter = 
new wxCheckBox( sbFilters->GetStaticBox(), wxID_ANY, 
_(
"Selected items only"), wxDefaultPosition, wxDefaultSize, 0 );
 
  127    sbFilters->Add( 0, 0, 1, wxEXPAND, 5 );
 
  130    bSizerTop->Add( sbFilters, 1, wxEXPAND|wxRIGHT|wxLEFT, 5 );
 
  133    bSizerMain->Add( bSizerTop, 0, wxEXPAND|wxALL, 5 );
 
  135    wxBoxSizer* bLowerSizer;
 
  136    bLowerSizer = 
new wxBoxSizer( wxVERTICAL );
 
  138    bLowerSizer->SetMinSize( wxSize( 660,250 ) );
 
  139    m_outputBook = 
new wxSimplebook( 
this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
 
  141    wxBoxSizer* changesSizer;
 
  142    changesSizer = 
new wxBoxSizer( wxVERTICAL );
 
  157    wxBoxSizer* progressSizer;
 
  158    progressSizer = 
new wxBoxSizer( wxVERTICAL );
 
  164    m_tcReport = 
new wxTextCtrl( 
m_runningPanel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE|wxTE_READONLY );
 
  165    progressSizer->Add( 
m_tcReport, 1, wxEXPAND|wxRIGHT|wxLEFT, 3 );
 
  176    bSizerMain->Add( bLowerSizer, 1, wxEXPAND|wxALL, 5 );
 
  185    bSizerMain->Add( 
m_sdbSizer, 0, wxBOTTOM|wxLEFT|wxRIGHT|wxALIGN_RIGHT, 5 );
 
  188    this->SetSizer( bSizerMain );
 
  190    bSizerMain->Fit( 
this );
 
  192    this->Centre( wxBOTH );