14DIALOG_TRACK_VIA_PROPERTIES_BASE::DIALOG_TRACK_VIA_PROPERTIES_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( wxSize( -1,-1 ), wxDefaultSize );
20 m_sbCommonSizer =
new wxStaticBoxSizer(
new wxStaticBox(
this, wxID_ANY,
_(
"Common") ), wxVERTICAL );
22 wxBoxSizer* bSizerNetWidgets;
23 bSizerNetWidgets =
new wxBoxSizer( wxHORIZONTAL );
25 wxBoxSizer* bNetWidgetsLeftCol;
26 bNetWidgetsLeftCol =
new wxBoxSizer( wxHORIZONTAL );
33 bNetWidgetsLeftCol->Add(
m_netSelector, 1, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
36 bSizerNetWidgets->Add( bNetWidgetsLeftCol, 1, wxALIGN_CENTER_VERTICAL|wxRIGHT, 10 );
38 wxBoxSizer* bNetWidgetsRightCol;
39 bNetWidgetsRightCol =
new wxBoxSizer( wxHORIZONTAL );
41 m_viaNotFree =
new wxCheckBox(
m_sbCommonSizer->GetStaticBox(), wxID_ANY,
_(
"Automatically update via nets"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE|wxCHK_ALLOW_3RD_STATE_FOR_USER );
42 m_viaNotFree->SetToolTip(
_(
"Automatically change the net of this via when the pads or zones it touches are changed") );
44 bNetWidgetsRightCol->Add(
m_viaNotFree, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
47 bSizerNetWidgets->Add( bNetWidgetsRightCol, 1, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
50 m_sbCommonSizer->Add( bSizerNetWidgets, 5, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
58 m_lockedCbox =
new wxCheckBox(
m_sbCommonSizer->GetStaticBox(), wxID_ANY,
_(
"Locked"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE|wxCHK_ALLOW_3RD_STATE_FOR_USER );
64 m_sbTrackSizer =
new wxStaticBoxSizer(
new wxStaticBox(
this, wxID_ANY,
_(
"Tracks") ), wxHORIZONTAL );
66 wxBoxSizer* bSizerTracksLeftCol;
67 bSizerTracksLeftCol =
new wxBoxSizer( wxVERTICAL );
69 wxFlexGridSizer* fgTrackEnds;
70 fgTrackEnds =
new wxFlexGridSizer( 7, 5, 3, 3 );
71 fgTrackEnds->AddGrowableCol( 1 );
72 fgTrackEnds->AddGrowableCol( 3 );
73 fgTrackEnds->SetFlexibleDirection( wxBOTH );
74 fgTrackEnds->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
99 fgTrackEnds->Add(
m_TrackEndXCtrl, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 3 );
106 fgTrackEnds->Add(
m_TrackEndYCtrl, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 3 );
113 bSizerTracksLeftCol->Add( fgTrackEnds, 0, wxEXPAND|wxBOTTOM, 8 );
115 wxGridBagSizer* gbSizer1;
116 gbSizer1 =
new wxGridBagSizer( 3, 3 );
117 gbSizer1->SetFlexibleDirection( wxBOTH );
118 gbSizer1->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
119 gbSizer1->SetEmptyCellSize( wxSize( -1,0 ) );
125 wxArrayString m_predefinedTrackWidthsCtrlChoices;
128 gbSizer1->Add(
m_predefinedTrackWidthsCtrl, wxGBPosition( 1, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP|wxBOTTOM, 3 );
136 gbSizer1->Add(
m_TrackWidthLabel, wxGBPosition( 2, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
139 gbSizer1->Add(
m_TrackWidthCtrl, wxGBPosition( 2, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
143 gbSizer1->Add(
m_TrackWidthUnit, wxGBPosition( 2, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
146 gbSizer1->AddGrowableCol( 1 );
148 bSizerTracksLeftCol->Add( gbSizer1, 1, wxEXPAND|wxTOP, 5 );
151 m_sbTrackSizer->Add( bSizerTracksLeftCol, 1, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
156 wxBoxSizer* bSizerTrackRightControl;
157 bSizerTrackRightControl =
new wxBoxSizer( wxVERTICAL );
159 wxFlexGridSizer* fgTrackRightSizer;
160 fgTrackRightSizer =
new wxFlexGridSizer( 1, 3, 3, 5 );
161 fgTrackRightSizer->AddGrowableCol( 2 );
162 fgTrackRightSizer->SetFlexibleDirection( wxBOTH );
163 fgTrackRightSizer->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
167 fgTrackRightSizer->Add(
m_TrackLayerLabel, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
170 fgTrackRightSizer->Add( 25, 0, 0, wxEXPAND, 5 );
173 fgTrackRightSizer->Add(
m_TrackLayerCtrl, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT, 5 );
176 bSizerTrackRightControl->Add( fgTrackRightSizer, 0, wxEXPAND|wxRIGHT, 3 );
178 wxBoxSizer* bSizerTechLayers;
179 bSizerTechLayers =
new wxBoxSizer( wxVERTICAL );
182 bSizerTechLayers->Add( 0, 15, 0, wxEXPAND, 5 );
184 wxBoxSizer* bSizer26;
185 bSizer26 =
new wxBoxSizer( wxHORIZONTAL );
189 bSizer26->Add(
m_techLayersLabel, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
192 bSizer26->Add(
m_staticline3, 1, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT|wxLEFT, 3 );
195 bSizerTechLayers->Add( bSizer26, 0, wxEXPAND, 5 );
197 wxFlexGridSizer* fgSizerTrackMaskMargin;
198 fgSizerTrackMaskMargin =
new wxFlexGridSizer( 0, 4, 3, 5 );
199 fgSizerTrackMaskMargin->AddGrowableCol( 2 );
200 fgSizerTrackMaskMargin->SetFlexibleDirection( wxBOTH );
201 fgSizerTrackMaskMargin->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
203 m_trackHasSolderMask =
new wxCheckBox(
m_sbTrackSizer->GetStaticBox(), wxID_ANY,
_(
"Solder mask"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE|wxCHK_ALLOW_3RD_STATE_FOR_USER );
211 m_trackMaskMarginCtrl->SetToolTip(
_(
"This is the local clearance between the track and the solder mask opening.\nLeave blank to use the value defined in the Board Setup.") );
220 bSizerTechLayers->Add( fgSizerTrackMaskMargin, 1, wxEXPAND|wxTOP, 2 );
223 bSizerTrackRightControl->Add( bSizerTechLayers, 1, wxEXPAND, 3 );
231 m_sbViaSizer =
new wxStaticBoxSizer(
new wxStaticBox(
this, wxID_ANY,
_(
"Vias") ), wxVERTICAL );
233 wxBoxSizer* bSizerViaCols;
234 bSizerViaCols =
new wxBoxSizer( wxHORIZONTAL );
236 wxBoxSizer* bSizerViasLeftCol;
237 bSizerViasLeftCol =
new wxBoxSizer( wxVERTICAL );
239 wxFlexGridSizer* fgViaPos;
240 fgViaPos =
new wxFlexGridSizer( 6, 5, 4, 2 );
241 fgViaPos->AddGrowableCol( 1 );
242 fgViaPos->AddGrowableCol( 3 );
243 fgViaPos->SetFlexibleDirection( wxBOTH );
244 fgViaPos->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
246 m_ViaXLabel =
new wxStaticText(
m_sbViaSizer->GetStaticBox(), wxID_ANY,
_(
"Position X:"), wxDefaultPosition, wxDefaultSize, 0 );
248 fgViaPos->Add(
m_ViaXLabel, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 1 );
250 m_ViaXCtrl =
new wxTextCtrl(
m_sbViaSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
251 fgViaPos->Add(
m_ViaXCtrl, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL, 3 );
253 m_ViaYLabel =
new wxStaticText(
m_sbViaSizer->GetStaticBox(), wxID_ANY,
_(
"Y:"), wxDefaultPosition, wxDefaultSize, 0 );
255 fgViaPos->Add(
m_ViaYLabel, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 8 );
257 m_ViaYCtrl =
new wxTextCtrl(
m_sbViaSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
258 fgViaPos->Add(
m_ViaYCtrl, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 3 );
260 m_ViaYUnit =
new wxStaticText(
m_sbViaSizer->GetStaticBox(), wxID_ANY,
_(
"mm"), wxDefaultPosition, wxDefaultSize, 0 );
262 fgViaPos->Add(
m_ViaYUnit, 0, wxALIGN_CENTER_VERTICAL, 5 );
265 bSizerViasLeftCol->Add( fgViaPos, 0, wxEXPAND|wxBOTTOM, 8 );
267 wxGridBagSizer* gbSizer3;
268 gbSizer3 =
new wxGridBagSizer( 3, 3 );
269 gbSizer3->SetFlexibleDirection( wxBOTH );
270 gbSizer3->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
271 gbSizer3->SetEmptyCellSize( wxSize( -1,0 ) );
277 wxArrayString m_predefinedViaSizesCtrlChoices;
280 gbSizer3->Add(
m_predefinedViaSizesCtrl, wxGBPosition( 1, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP|wxBOTTOM, 3 );
292 wxString m_cbPadstackModeChoices[] = {
_(
"Normal"),
_(
"Front/Inner/Back"),
_(
"Custom") };
293 int m_cbPadstackModeNChoices =
sizeof( m_cbPadstackModeChoices ) /
sizeof( wxString );
294 m_cbPadstackMode =
new wxChoice(
m_sbViaSizer->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_cbPadstackModeNChoices, m_cbPadstackModeChoices, 0 );
298 m_stEditLayer =
new wxStaticText(
m_sbViaSizer->GetStaticBox(), wxID_ANY,
_(
"Edit layer:"), wxDefaultPosition, wxDefaultSize, 0 );
302 wxArrayString m_cbEditLayerChoices;
303 m_cbEditLayer =
new wxChoice(
m_sbViaSizer->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_cbEditLayerChoices, 0 );
312 gbSizer3->Add(
m_ViaDiameterLabel, wxGBPosition( 3, 0 ), wxGBSpan( 1, 1 ), wxLEFT|wxALIGN_CENTER_VERTICAL, 1 );
315 gbSizer3->Add(
m_ViaDiameterCtrl, wxGBPosition( 3, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
319 gbSizer3->Add(
m_ViaDiameterUnit, wxGBPosition( 3, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
323 gbSizer3->Add(
m_ViaDrillLabel, wxGBPosition( 4, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxLEFT, 1 );
325 m_ViaDrillCtrl =
new wxTextCtrl(
m_sbViaSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
326 gbSizer3->Add(
m_ViaDrillCtrl, wxGBPosition( 4, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
330 gbSizer3->Add(
m_ViaDrillUnit, wxGBPosition( 4, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
333 gbSizer3->AddGrowableCol( 1 );
335 bSizerViasLeftCol->Add( gbSizer3, 1, wxEXPAND|wxTOP, 5 );
338 bSizerViaCols->Add( bSizerViasLeftCol, 1, wxEXPAND, 5 );
341 bSizerViaCols->Add( 0, 0, 0, wxEXPAND|wxRIGHT|wxLEFT, 15 );
343 wxBoxSizer* viaRightColumn;
344 viaRightColumn =
new wxBoxSizer( wxVERTICAL );
346 wxGridBagSizer* gbSizer4;
347 gbSizer4 =
new wxGridBagSizer( 1, 0 );
348 gbSizer4->SetFlexibleDirection( wxBOTH );
349 gbSizer4->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
353 gbSizer4->Add(
m_ViaTypeLabel, wxGBPosition( 0, 0 ), wxGBSpan( 1, 1 ), wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
355 wxString m_ViaTypeChoiceChoices[] = {
_(
"Through"),
_(
"Micro"),
_(
"Blind"),
_(
"Buried") };
356 int m_ViaTypeChoiceNChoices =
sizeof( m_ViaTypeChoiceChoices ) /
sizeof( wxString );
357 m_ViaTypeChoice =
new wxChoice(
m_sbViaSizer->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_ViaTypeChoiceNChoices, m_ViaTypeChoiceChoices, 0 );
361 gbSizer4->Add(
m_ViaTypeChoice, wxGBPosition( 0, 1 ), wxGBSpan( 1, 1 ), wxEXPAND|wxALIGN_CENTER_VERTICAL|wxBOTTOM, 2 );
365 gbSizer4->Add(
m_ViaStartLayerLabel, wxGBPosition( 1, 0 ), wxGBSpan( 1, 1 ), wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
368 gbSizer4->Add(
m_ViaStartLayer, wxGBPosition( 1, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
372 gbSizer4->Add(
m_ViaEndLayerLabel1, wxGBPosition( 2, 0 ), wxGBSpan( 1, 1 ), wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
375 gbSizer4->Add(
m_ViaEndLayer, wxGBPosition( 2, 1 ), wxGBSpan( 1, 1 ), wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
379 gbSizer4->Add(
m_annularRingsLabel, wxGBPosition( 4, 0 ), wxGBSpan( 1, 1 ), wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
381 wxString m_annularRingsCtrlChoices[] = {
_(
"All copper layers"),
_(
"Start, end, and connected layers"),
_(
"Connected layers only"),
_(
"Start and end layers only") };
382 int m_annularRingsCtrlNChoices =
sizeof( m_annularRingsCtrlChoices ) /
sizeof( wxString );
383 m_annularRingsCtrl =
new wxChoice(
m_sbViaSizer->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_annularRingsCtrlNChoices, m_annularRingsCtrlChoices, 0 );
385 gbSizer4->Add(
m_annularRingsCtrl, wxGBPosition( 4, 1 ), wxGBSpan( 1, 1 ), wxEXPAND|wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 3 );
389 gbSizer4->Add(
m_protectionPresetsLabel, wxGBPosition( 5, 0 ), wxGBSpan( 1, 1 ), wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
391 wxArrayString m_protectionFeaturesChoices;
394 m_protectionFeatures->SetToolTip(
_(
"Select which protection feature according to IPC-4761 the via should have.") );
396 gbSizer4->Add(
m_protectionFeatures, wxGBPosition( 5, 1 ), wxGBSpan( 1, 1 ), wxEXPAND|wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 3 );
399 gbSizer4->AddGrowableCol( 1 );
401 viaRightColumn->Add( gbSizer4, 1, wxEXPAND, 5 );
404 bSizerViaCols->Add( viaRightColumn, 1, wxEXPAND, 5 );
407 m_sbViaSizer->Add( bSizerViaCols, 0, wxALL|wxEXPAND, 5 );
409 wxBoxSizer* bBackdrillLabel;
410 bBackdrillLabel =
new wxBoxSizer( wxHORIZONTAL );
412 m_staticline2 =
new wxStaticLine(
m_sbViaSizer->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
413 bBackdrillLabel->Add(
m_staticline2, 1, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 3 );
418 wxBoxSizer* bSizerBackdrill;
419 bSizerBackdrill =
new wxBoxSizer( wxHORIZONTAL );
421 wxFlexGridSizer* fgSizer6;
422 fgSizer6 =
new wxFlexGridSizer( 0, 2, 0, 0 );
423 fgSizer6->SetFlexibleDirection( wxBOTH );
424 fgSizer6->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
430 wxString m_backdrillChoiceChoices[] = {
_(
"None"),
_(
"Bottom"),
_(
"Top"),
_(
"Both") };
431 int m_backdrillChoiceNChoices =
sizeof( m_backdrillChoiceChoices ) /
sizeof( wxString );
432 m_backdrillChoice =
new wxChoice(
m_sbViaSizer->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_backdrillChoiceNChoices, m_backdrillChoiceChoices, 0 );
434 fgSizer6->Add(
m_backdrillChoice, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT|wxLEFT, 5 );
437 bSizerBackdrill->Add( fgSizer6, 1, 0, 5 );
439 wxFlexGridSizer* fgSizer7;
440 fgSizer7 =
new wxFlexGridSizer( 0, 2, 2, 0 );
441 fgSizer7->SetFlexibleDirection( wxBOTH );
442 fgSizer7->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
448 wxBoxSizer* bSizer31;
449 bSizer31 =
new wxBoxSizer( wxHORIZONTAL );
459 fgSizer7->Add( bSizer31, 1, wxEXPAND, 5 );
469 bSizerBackdrill->Add( fgSizer7, 2, wxEXPAND, 5 );
471 wxFlexGridSizer* fgSizer8;
472 fgSizer8 =
new wxFlexGridSizer( 0, 2, 2, 0 );
473 fgSizer8->SetFlexibleDirection( wxBOTH );
474 fgSizer8->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
480 wxBoxSizer* bSizer32;
481 bSizer32 =
new wxBoxSizer( wxHORIZONTAL );
491 fgSizer8->Add( bSizer32, 1, wxEXPAND, 5 );
503 bSizerBackdrill->Add( fgSizer8, 2, wxEXPAND, 5 );
506 m_sbViaSizer->Add( bSizerBackdrill, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
508 wxBoxSizer* bPostMachineLabel;
509 bPostMachineLabel =
new wxBoxSizer( wxHORIZONTAL );
515 m_staticline21 =
new wxStaticLine(
m_sbViaSizer->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
516 bPostMachineLabel->Add(
m_staticline21, 1, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 3 );
521 wxBoxSizer* bSizerPostMachine;
522 bSizerPostMachine =
new wxBoxSizer( wxHORIZONTAL );
524 wxFlexGridSizer* fgSizer9;
525 fgSizer9 =
new wxFlexGridSizer( 0, 3, 0, 0 );
526 fgSizer9->AddGrowableCol( 1 );
527 fgSizer9->SetFlexibleDirection( wxBOTH );
528 fgSizer9->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
534 wxString m_topPostMachineChoices[] = {
_(
"None"),
_(
"Countersink"),
_(
"Counterbore") };
535 int m_topPostMachineNChoices =
sizeof( m_topPostMachineChoices ) /
sizeof( wxString );
536 m_topPostMachine =
new wxChoice(
m_sbViaSizer->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_topPostMachineNChoices, m_topPostMachineChoices, 0 );
538 fgSizer9->Add(
m_topPostMachine, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP|wxBOTTOM, 3 );
541 fgSizer9->Add( 0, 0, 1, wxEXPAND, 5 );
566 bSizerPostMachine->Add( fgSizer9, 1, wxEXPAND, 5 );
569 bSizerPostMachine->Add( 0, 0, 0, wxEXPAND|wxLEFT|wxRIGHT, 15 );
571 wxFlexGridSizer* fgSizer10;
572 fgSizer10 =
new wxFlexGridSizer( 0, 3, 0, 0 );
573 fgSizer10->AddGrowableCol( 1 );
574 fgSizer10->SetFlexibleDirection( wxBOTH );
575 fgSizer10->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
581 wxString m_bottomPostMachineChoices[] = {
_(
"None"),
_(
"Countersink"),
_(
"Counterbore") };
582 int m_bottomPostMachineNChoices =
sizeof( m_bottomPostMachineChoices ) /
sizeof( wxString );
583 m_bottomPostMachine =
new wxChoice(
m_sbViaSizer->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_bottomPostMachineNChoices, m_bottomPostMachineChoices, 0 );
585 fgSizer10->Add(
m_bottomPostMachine, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP|wxBOTTOM, 3 );
588 fgSizer10->Add( 0, 0, 1, wxEXPAND, 5 );
613 bSizerPostMachine->Add( fgSizer10, 1, wxEXPAND, 5 );
618 m_staticline4 =
new wxStaticLine(
m_sbViaSizer->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
626 wxBoxSizer* bSizer42;
627 bSizer42 =
new wxBoxSizer( wxVERTICAL );
629 m_staticText85 =
new wxStaticText(
m_sbViaSizer->GetStaticBox(), wxID_ANY,
_(
"Board contains legacy teardrops."), wxDefaultPosition, wxDefaultSize, 0 );
633 m_staticText851 =
new wxStaticText(
m_sbViaSizer->GetStaticBox(), wxID_ANY,
_(
"Use Edit > Edit Teardrops to apply automatic teardrops."), wxDefaultPosition, wxDefaultSize, 0 );
643 wxBoxSizer* bSizerTeardrops;
644 bSizerTeardrops =
new wxBoxSizer( wxVERTICAL );
646 wxBoxSizer* bSizerCols11;
647 bSizerCols11 =
new wxBoxSizer( wxHORIZONTAL );
649 wxBoxSizer* bSizerLeftCol11;
650 bSizerLeftCol11 =
new wxBoxSizer( wxVERTICAL );
653 bSizerLeftCol11->Add( 0, 2, 0, wxEXPAND, 5 );
655 m_cbTeardrops =
new wxCheckBox(
m_sbViaSizer->GetStaticBox(), wxID_ANY,
_(
"Add teardrops on via's track connections"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE|wxCHK_ALLOW_3RD_STATE_FOR_USER );
656 bSizerLeftCol11->Add(
m_cbTeardrops, 0, wxBOTTOM|wxRIGHT|wxLEFT, 3 );
658 m_cbTeardropsUseNextTrack =
new wxCheckBox(
m_sbViaSizer->GetStaticBox(), wxID_ANY,
_(
"Allow teardrops to span two track segments"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE|wxCHK_ALLOW_3RD_STATE_FOR_USER );
659 m_cbTeardropsUseNextTrack->SetToolTip(
_(
"Allows a teardrop to extend over the first 2 connected track segments if the first track segment is too short to accommodate the best length.") );
664 bSizerCols11->Add( bSizerLeftCol11, 1, wxEXPAND|wxTOP|wxLEFT, 1 );
667 bSizerCols11->Add( 20, 0, 0, wxEXPAND, 5 );
669 wxBoxSizer* bSizerRightCol11;
670 bSizerRightCol11 =
new wxBoxSizer( wxVERTICAL );
672 wxBoxSizer* bSizer39;
673 bSizer39 =
new wxBoxSizer( wxHORIZONTAL );
675 m_stHDRatio =
new wxStaticText(
m_sbViaSizer->GetStaticBox(), wxID_ANY,
_(
"Maximum track width:"), wxDefaultPosition, wxDefaultSize, 0 );
677 m_stHDRatio->SetToolTip(
_(
"Max pad/via size to track width ratio to create a teardrop.\n100 always creates a teardrop.") );
679 bSizer39->Add(
m_stHDRatio, 0, wxALIGN_CENTER_VERTICAL, 5 );
681 m_tcHDRatio =
new wxTextCtrl(
m_sbViaSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1,-1 ), 0 );
682 m_tcHDRatio->SetToolTip(
_(
"Tracks which are similar in size to the via do not need teardrops.") );
684 bSizer39->Add(
m_tcHDRatio, 0, wxRIGHT|wxLEFT, 5 );
691 bSizerRightCol11->Add( bSizer39, 0, wxEXPAND, 3 );
693 wxBoxSizer* bSizer17;
694 bSizer17 =
new wxBoxSizer( wxVERTICAL );
696 m_minTrackWidthHint =
new wxStaticText(
m_sbViaSizer->GetStaticBox(), wxID_ANY,
_(
"(as a percentage of pad/via/track size)"), wxDefaultPosition, wxDefaultSize, 0 );
701 bSizerRightCol11->Add( bSizer17, 0, wxEXPAND|wxLEFT, 5 );
704 bSizerCols11->Add( bSizerRightCol11, 1, wxEXPAND|wxLEFT, 10 );
707 bSizerTeardrops->Add( bSizerCols11, 0, wxEXPAND|wxTOP, 3 );
710 bSizerTeardrops->Add( 0, 5, 0, wxEXPAND, 5 );
712 wxBoxSizer* bSizerShapeColumns;
713 bSizerShapeColumns =
new wxBoxSizer( wxHORIZONTAL );
715 wxBoxSizer* bSizerLeftCol;
716 bSizerLeftCol =
new wxBoxSizer( wxVERTICAL );
722 bSizerShapeColumns->Add( bSizerLeftCol, 1, wxEXPAND|wxRIGHT, 10 );
725 bSizerShapeColumns->Add( 20, 0, 0, wxEXPAND, 5 );
727 wxBoxSizer* bSizer20;
728 bSizer20 =
new wxBoxSizer( wxVERTICAL );
730 wxFlexGridSizer* fgSizerRightCol;
731 fgSizerRightCol =
new wxFlexGridSizer( 0, 3, 3, 5 );
732 fgSizerRightCol->AddGrowableCol( 1 );
733 fgSizerRightCol->SetFlexibleDirection( wxBOTH );
734 fgSizerRightCol->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
740 m_tcLenPercent =
new wxTextCtrl(
m_sbViaSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
741 fgSizerRightCol->Add(
m_tcLenPercent, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
743 wxBoxSizer* bSizer131;
744 bSizer131 =
new wxBoxSizer( wxHORIZONTAL );
752 m_stLenPercentHint->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_ITALIC, wxFONTWEIGHT_NORMAL,
false, wxEmptyString ) );
761 fgSizerRightCol->Add( bSizer131, 0, wxALIGN_CENTER_VERTICAL, 5 );
763 m_stMaxLen =
new wxStaticText(
m_sbViaSizer->GetStaticBox(), wxID_ANY,
_(
"Maximum length (L):"), wxDefaultPosition, wxDefaultSize, 0 );
765 fgSizerRightCol->Add(
m_stMaxLen, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
767 m_tcTdMaxLen =
new wxTextCtrl(
m_sbViaSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
768 fgSizerRightCol->Add(
m_tcTdMaxLen, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
772 fgSizerRightCol->Add(
m_stMaxLenUnits, 0, wxALIGN_CENTER_VERTICAL, 3 );
775 fgSizerRightCol->Add( 0, 3, 1, wxEXPAND, 5 );
778 fgSizerRightCol->Add( 0, 0, 1, wxEXPAND, 5 );
781 fgSizerRightCol->Add( 0, 0, 1, wxEXPAND, 5 );
788 fgSizerRightCol->Add(
m_tcWidthPercent, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
790 wxBoxSizer* bSizer1311;
791 bSizer1311 =
new wxBoxSizer( wxHORIZONTAL );
799 m_stWidthPercentHint->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_ITALIC, wxFONTWEIGHT_NORMAL,
false, wxEmptyString ) );
808 fgSizerRightCol->Add( bSizer1311, 0, wxALIGN_CENTER_VERTICAL, 5 );
814 m_tcMaxWidth =
new wxTextCtrl(
m_sbViaSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
815 fgSizerRightCol->Add(
m_tcMaxWidth, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
822 bSizer20->Add( fgSizerRightCol, 1, wxEXPAND|wxLEFT|wxRIGHT|wxTOP, 5 );
824 wxBoxSizer* bSizer44;
825 bSizer44 =
new wxBoxSizer( wxHORIZONTAL );
827 m_curvedEdges =
new wxCheckBox(
m_sbViaSizer->GetStaticBox(), wxID_ANY,
_(
"Curved edges"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE|wxCHK_ALLOW_3RD_STATE_FOR_USER );
828 bSizer44->Add(
m_curvedEdges, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
831 bSizer44->Add( 45, 0, 0, 0, 5 );
834 bSizer20->Add( bSizer44, 0, wxBOTTOM|wxEXPAND|wxLEFT|wxTOP, 5 );
837 bSizerShapeColumns->Add( bSizer20, 1, wxEXPAND, 5 );
840 bSizerTeardrops->Add( bSizerShapeColumns, 1, wxEXPAND|wxBOTTOM, 3 );
862 this->Centre( wxBOTH );