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 );