14DIALOG_GLOBAL_EDIT_TRACKS_AND_VIAS_BASE::DIALOG_GLOBAL_EDIT_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* bMainSizer;
 
   19    bMainSizer = 
new wxBoxSizer( wxVERTICAL );
 
   21    wxBoxSizer* bSizerTop;
 
   22    bSizerTop = 
new wxBoxSizer( wxHORIZONTAL );
 
   24    wxStaticBoxSizer* sbScope;
 
   25    sbScope = 
new wxStaticBoxSizer( 
new wxStaticBox( 
this, wxID_ANY, 
_(
"Scope") ), wxVERTICAL );
 
   27    m_tracks = 
new wxCheckBox( sbScope->GetStaticBox(), wxID_ANY, 
_(
"Tracks"), wxDefaultPosition, wxDefaultSize, 0 );
 
   29    sbScope->Add( 
m_tracks, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
 
   32    sbScope->Add( 0, 10, 0, wxEXPAND, 5 );
 
   34    m_vias = 
new wxCheckBox( sbScope->GetStaticBox(), wxID_ANY, 
_(
"Vias"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE );
 
   36    sbScope->Add( 
m_vias, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
 
   38    m_throughVias = 
new wxCheckBox( sbScope->GetStaticBox(), wxID_ANY, 
_(
"Through vias"), wxDefaultPosition, wxDefaultSize, 0 );
 
   43    sbScope->Add( 0, 3, 0, wxEXPAND, 5 );
 
   45    m_microVias = 
new wxCheckBox( sbScope->GetStaticBox(), wxID_ANY, 
_(
"Microvias"), wxDefaultPosition, wxDefaultSize, 0 );
 
   50    sbScope->Add( 0, 3, 0, wxEXPAND, 5 );
 
   52    m_blindVias = 
new wxCheckBox( sbScope->GetStaticBox(), wxID_ANY, 
_(
"Blind vias"), wxDefaultPosition, wxDefaultSize, 0 );
 
   57    sbScope->Add( 0, 3, 0, wxLEFT, 20 );
 
   59    m_buriedVias = 
new wxCheckBox( sbScope->GetStaticBox(), wxID_ANY, 
_(
"Buried vias"), wxDefaultPosition, wxDefaultSize, 0 );
 
   64    bSizerTop->Add( sbScope, 1, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 10 );
 
   66    wxStaticBoxSizer* sbFilters;
 
   67    sbFilters = 
new wxStaticBoxSizer( 
new wxStaticBox( 
this, wxID_ANY, 
_(
"Filter Items") ), wxVERTICAL );
 
   69    wxFlexGridSizer* fgSizer3;
 
   70    fgSizer3 = 
new wxFlexGridSizer( 0, 2, 3, 0 );
 
   71    fgSizer3->AddGrowableCol( 1 );
 
   72    fgSizer3->AddGrowableRow( 0 );
 
   73    fgSizer3->AddGrowableRow( 1 );
 
   74    fgSizer3->AddGrowableRow( 2 );
 
   75    fgSizer3->AddGrowableRow( 3 );
 
   76    fgSizer3->SetFlexibleDirection( wxBOTH );
 
   77    fgSizer3->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
 
   79    m_netFilterOpt = 
new wxCheckBox( sbFilters->GetStaticBox(), wxID_ANY, 
_(
"Filter items by net:"), wxDefaultPosition, wxDefaultSize, 0 );
 
   80    fgSizer3->Add( 
m_netFilterOpt, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
 
   83    fgSizer3->Add( 
m_netFilter, 1, wxEXPAND|wxRIGHT, 5 );
 
   85    m_netclassFilterOpt = 
new wxCheckBox( sbFilters->GetStaticBox(), wxID_ANY, 
_(
"Filter items by net class:"), wxDefaultPosition, wxDefaultSize, 0 );
 
   88    wxArrayString m_netclassFilterChoices;
 
   89    m_netclassFilter = 
new wxChoice( sbFilters->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_netclassFilterChoices, 0 );
 
   91    fgSizer3->Add( 
m_netclassFilter, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT, 5 );
 
   94    fgSizer3->Add( 0, 7, 1, wxEXPAND, 5 );
 
   97    fgSizer3->Add( 0, 0, 1, wxEXPAND, 5 );
 
   99    m_layerFilterOpt = 
new wxCheckBox( sbFilters->GetStaticBox(), wxID_ANY, 
_(
"Filter items by layer:"), wxDefaultPosition, wxDefaultSize, 0 );
 
  100    fgSizer3->Add( 
m_layerFilterOpt, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
 
  103    fgSizer3->Add( 
m_layerFilter, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
 
  106    fgSizer3->Add( 0, 7, 1, wxEXPAND, 5 );
 
  109    fgSizer3->Add( 0, 0, 1, wxEXPAND, 5 );
 
  111    m_filterByTrackWidth = 
new wxCheckBox( sbFilters->GetStaticBox(), wxID_ANY, 
_(
"Filter tracks by width:"), wxDefaultPosition, wxDefaultSize, 0 );
 
  115    bSizer3 = 
new wxBoxSizer( wxHORIZONTAL );
 
  117    m_trackWidthFilterCtrl = 
new wxTextCtrl( sbFilters->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
 
  120    m_trackWidthFilterUnits = 
new wxStaticText( sbFilters->GetStaticBox(), wxID_ANY, 
_(
"mm"), wxDefaultPosition, wxDefaultSize, 0 );
 
  125    fgSizer3->Add( bSizer3, 1, wxEXPAND, 5 );
 
  127    m_filterByViaSize = 
new wxCheckBox( sbFilters->GetStaticBox(), wxID_ANY, 
_(
"Filter vias by size:"), wxDefaultPosition, wxDefaultSize, 0 );
 
  128    fgSizer3->Add( 
m_filterByViaSize, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
 
  130    wxBoxSizer* bSizer31;
 
  131    bSizer31 = 
new wxBoxSizer( wxHORIZONTAL );
 
  133    m_viaSizeFilterCtrl = 
new wxTextCtrl( sbFilters->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
 
  136    m_viaSizeFilterUnits = 
new wxStaticText( sbFilters->GetStaticBox(), wxID_ANY, 
_(
"mm"), wxDefaultPosition, wxDefaultSize, 0 );
 
  141    fgSizer3->Add( bSizer31, 1, wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
 
  144    sbFilters->Add( fgSizer3, 1, wxEXPAND|wxBOTTOM, 5 );
 
  147    sbFilters->Add( 0, 5, 0, 0, 5 );
 
  149    m_selectedItemsFilter = 
new wxCheckBox( sbFilters->GetStaticBox(), wxID_ANY, 
_(
"Selected items only"), wxDefaultPosition, wxDefaultSize, 0 );
 
  153    bSizerTop->Add( sbFilters, 2, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 10 );
 
  156    bMainSizer->Add( bSizerTop, 0, wxEXPAND, 5 );
 
  158    wxStaticBoxSizer* sbAction;
 
  159    sbAction = 
new wxStaticBoxSizer( 
new wxStaticBox( 
this, wxID_ANY, 
_(
"Action") ), wxVERTICAL );
 
  165    wxFlexGridSizer* fgSizerTrackViaPopups;
 
  166    fgSizerTrackViaPopups = 
new wxFlexGridSizer( 5, 2, 0, 10 );
 
  167    fgSizerTrackViaPopups->AddGrowableCol( 1 );
 
  168    fgSizerTrackViaPopups->SetFlexibleDirection( wxBOTH );
 
  169    fgSizerTrackViaPopups->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_NONE );
 
  171    m_layerLabel = 
new wxStaticText( sbAction->GetStaticBox(), wxID_ANY, 
_(
"Layer:"), wxDefaultPosition, wxDefaultSize, 0 );
 
  173    fgSizerTrackViaPopups->Add( 
m_layerLabel, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5 );
 
  176    fgSizerTrackViaPopups->Add( 
m_layerCtrl, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
 
  178    m_trackWidthLabel = 
new wxStaticText( sbAction->GetStaticBox(), wxID_ANY, 
_(
"Track width:"), wxDefaultPosition, wxDefaultSize, 0 );
 
  180    fgSizerTrackViaPopups->Add( 
m_trackWidthLabel, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM, 5 );
 
  182    wxArrayString m_trackWidthCtrlChoices;
 
  183    m_trackWidthCtrl = 
new wxChoice( sbAction->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_trackWidthCtrlChoices, 0 );
 
  185    fgSizerTrackViaPopups->Add( 
m_trackWidthCtrl, 4, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
 
  187    m_viaSizeLabel = 
new wxStaticText( sbAction->GetStaticBox(), wxID_ANY, 
_(
"Via size:"), wxDefaultPosition, wxDefaultSize, 0 );
 
  189    fgSizerTrackViaPopups->Add( 
m_viaSizeLabel, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT, 5 );
 
  191    wxArrayString m_viaSizesCtrlChoices;
 
  192    m_viaSizesCtrl = 
new wxChoice( sbAction->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_viaSizesCtrlChoices, 0 );
 
  194    fgSizerTrackViaPopups->Add( 
m_viaSizesCtrl, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT, 5 );
 
  196    m_annularRingsLabel = 
new wxStaticText( sbAction->GetStaticBox(), wxID_ANY, 
_(
"Via annular rings:"), wxDefaultPosition, wxDefaultSize, 0 );
 
  200    wxString m_annularRingsCtrlChoices[] = { 
_(
"All copper layers"), 
_(
"Start, end, and connected layers"), 
_(
"Connected layers only"), 
_(
"Start and end layers only") };
 
  201    int m_annularRingsCtrlNChoices = 
sizeof( m_annularRingsCtrlChoices ) / 
sizeof( wxString );
 
  202    m_annularRingsCtrl = 
new wxChoice( sbAction->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_annularRingsCtrlNChoices, m_annularRingsCtrlChoices, 0 );
 
  204    fgSizerTrackViaPopups->Add( 
m_annularRingsCtrl, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxLEFT|wxRIGHT, 5 );
 
  206    m_protectionFeaturesLabel = 
new wxStaticText( sbAction->GetStaticBox(), wxID_ANY, 
_(
"Via protection features:"), wxDefaultPosition, wxDefaultSize, 0 );
 
  210    wxArrayString m_protectionFeaturesChoices;
 
  211    m_protectionFeatures = 
new wxChoice( sbAction->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_protectionFeaturesChoices, 0 );
 
  213    m_protectionFeatures->SetToolTip( 
_(
"Select which protection feature according to IPC-4761 the via should have.") );
 
  218    sbAction->Add( fgSizerTrackViaPopups, 0, wxBOTTOM|wxEXPAND|wxLEFT, 25 );
 
  224    bMainSizer->Add( sbAction, 1, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 10 );
 
  235    bMainSizer->Add( 
m_sdbSizer, 0, wxEXPAND|wxALL, 5 );
 
  238    this->SetSizer( bMainSizer );
 
  240    bMainSizer->Fit( 
this );