12PANEL_SETUP_TEARDROPS_BASE::PANEL_SETUP_TEARDROPS_BASE( wxWindow* parent, wxWindowID
id,
const wxPoint& pos,
const wxSize& size,
long style,
const wxString&
name ) : wxPanel( parent, id, pos, size, style,
name )
14 wxBoxSizer* mainSizer;
15 mainSizer =
new wxBoxSizer( wxVERTICAL );
19 m_roundShapesLabel =
new wxStaticText(
this, wxID_ANY,
_(
"Default Properties for Round Shapes"), wxDefaultPosition, wxDefaultSize, 0 );
23 m_staticline1 =
new wxStaticLine(
this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
26 wxBoxSizer* bSizerShapeColumns;
27 bSizerShapeColumns =
new wxBoxSizer( wxHORIZONTAL );
29 wxBoxSizer* bSizerLeftCol;
30 bSizerLeftCol =
new wxBoxSizer( wxVERTICAL );
32 m_bitmapTeardrop =
new wxStaticBitmap(
this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
33 bSizerLeftCol->Add(
m_bitmapTeardrop, 1, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 5 );
36 bSizerShapeColumns->Add( bSizerLeftCol, 0, wxEXPAND|wxRIGHT, 10 );
39 bSizerShapeColumns->Add( 10, 0, 0, wxEXPAND, 5 );
41 wxGridBagSizer* gbSizer;
42 gbSizer =
new wxGridBagSizer( 2, 3 );
43 gbSizer->SetFlexibleDirection( wxBOTH );
44 gbSizer->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
45 gbSizer->SetEmptyCellSize( wxSize( 10,7 ) );
47 m_stLenPercentLabel =
new wxStaticText(
this, wxID_ANY,
_(
"Best length (L):"), wxDefaultPosition, wxDefaultSize, 0 );
49 gbSizer->Add(
m_stLenPercentLabel, wxGBPosition( 0, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
51 m_spLenPercent =
new wxSpinCtrlDouble(
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 20, 100, 40.000000, 10 );
53 gbSizer->Add(
m_spLenPercent, wxGBPosition( 0, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
55 wxBoxSizer* bSizer131;
56 bSizer131 =
new wxBoxSizer( wxHORIZONTAL );
58 wxStaticText* stLenPercentUnits;
59 stLenPercentUnits =
new wxStaticText(
this, wxID_ANY,
_(
"%("), wxDefaultPosition, wxDefaultSize, 0 );
60 stLenPercentUnits->Wrap( -1 );
61 bSizer131->Add( stLenPercentUnits, 0, wxALIGN_CENTER_VERTICAL, 5 );
63 wxStaticText* stLenPercentHint;
64 stLenPercentHint =
new wxStaticText(
this, wxID_ANY,
_(
"d"), wxDefaultPosition, wxDefaultSize, 0 );
65 stLenPercentHint->Wrap( -1 );
66 stLenPercentHint->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_ITALIC, wxFONTWEIGHT_NORMAL,
false, wxEmptyString ) );
68 bSizer131->Add( stLenPercentHint, 0, wxALIGN_BOTTOM, 1 );
70 wxStaticText* staticText76;
71 staticText76 =
new wxStaticText(
this, wxID_ANY,
_(
" )"), wxDefaultPosition, wxDefaultSize, 0 );
72 staticText76->Wrap( -1 );
73 bSizer131->Add( staticText76, 0, wxALIGN_CENTER_VERTICAL, 5 );
76 gbSizer->Add( bSizer131, wxGBPosition( 0, 2 ), wxGBSpan( 1, 1 ), wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
78 m_stMaxLen =
new wxStaticText(
this, wxID_ANY,
_(
"Maximum length (L):"), wxDefaultPosition, wxDefaultSize, 0 );
80 gbSizer->Add(
m_stMaxLen, wxGBPosition( 1, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
82 m_tcTdMaxLen =
new wxTextCtrl(
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
83 gbSizer->Add(
m_tcTdMaxLen, wxGBPosition( 1, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
85 m_stMaxLenUnits =
new wxStaticText(
this, wxID_ANY,
_(
"mm"), wxDefaultPosition, wxDefaultSize, 0 );
87 gbSizer->Add(
m_stMaxLenUnits, wxGBPosition( 1, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
89 m_stWidthLabel =
new wxStaticText(
this, wxID_ANY,
_(
"Best width (W):"), wxDefaultPosition, wxDefaultSize, 0 );
91 gbSizer->Add(
m_stWidthLabel, wxGBPosition( 3, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
93 m_spWidthPercent =
new wxSpinCtrlDouble(
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 60, 100, 100.000000, 10 );
95 gbSizer->Add(
m_spWidthPercent, wxGBPosition( 3, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
98 bSizer13 =
new wxBoxSizer( wxHORIZONTAL );
100 wxStaticText* stWidthPercentUnits;
101 stWidthPercentUnits =
new wxStaticText(
this, wxID_ANY,
_(
"%("), wxDefaultPosition, wxDefaultSize, 0 );
102 stWidthPercentUnits->Wrap( -1 );
103 bSizer13->Add( stWidthPercentUnits, 0, wxALIGN_CENTER_VERTICAL, 5 );
105 wxStaticText* stWidthPercentHint;
106 stWidthPercentHint =
new wxStaticText(
this, wxID_ANY,
_(
"d"), wxDefaultPosition, wxDefaultSize, 0 );
107 stWidthPercentHint->Wrap( -1 );
108 stWidthPercentHint->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_ITALIC, wxFONTWEIGHT_NORMAL,
false, wxEmptyString ) );
110 bSizer13->Add( stWidthPercentHint, 0, wxALIGN_BOTTOM, 1 );
112 wxStaticText* stWidthPercentSuffix;
113 stWidthPercentSuffix =
new wxStaticText(
this, wxID_ANY,
_(
" )"), wxDefaultPosition, wxDefaultSize, 0 );
114 stWidthPercentSuffix->Wrap( -1 );
115 bSizer13->Add( stWidthPercentSuffix, 0, wxALIGN_CENTER_VERTICAL, 5 );
118 gbSizer->Add( bSizer13, wxGBPosition( 3, 2 ), wxGBSpan( 1, 1 ), wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
120 m_stMaxWidthLabel =
new wxStaticText(
this, wxID_ANY,
_(
"Maximum width (W):"), wxDefaultPosition, wxDefaultSize, 0 );
122 gbSizer->Add(
m_stMaxWidthLabel, wxGBPosition( 4, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
124 m_tcMaxWidth =
new wxTextCtrl(
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
125 gbSizer->Add(
m_tcMaxWidth, wxGBPosition( 4, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
127 m_stMaxWidthUnits =
new wxStaticText(
this, wxID_ANY,
_(
"mm"), wxDefaultPosition, wxDefaultSize, 0 );
129 gbSizer->Add(
m_stMaxWidthUnits, wxGBPosition( 4, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
131 m_cbPreferZoneConnection =
new wxCheckBox(
this, wxID_ANY,
_(
"Prefer zone connection"), wxDefaultPosition, wxDefaultSize, 0 );
132 m_cbPreferZoneConnection->SetToolTip(
_(
"Do not create teardrops on tracks connected to pads that are also connected to a copper zone.") );
134 gbSizer->Add(
m_cbPreferZoneConnection, wxGBPosition( 1, 3 ), wxGBSpan( 1, 3 ), wxALIGN_CENTER_VERTICAL|wxLEFT, 40 );
136 m_stHDRatio =
new wxStaticText(
this, wxID_ANY,
_(
"Track width limit:"), wxDefaultPosition, wxDefaultSize, 0 );
138 m_stHDRatio->SetToolTip(
_(
"Max pad/via size to track width ratio to create a teardrop.\n100 always creates a teardrop.") );
140 gbSizer->Add(
m_stHDRatio, wxGBPosition( 3, 3 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxLEFT, 40 );
142 m_spTeardropHDPercent =
new wxSpinCtrlDouble(
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 100, 90, 10 );
144 m_spTeardropHDPercent->SetToolTip(
_(
"Tracks which are similar in size to the pad or via do not need teardrops.") );
146 gbSizer->Add(
m_spTeardropHDPercent, wxGBPosition( 3, 4 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
148 wxBoxSizer* bSizer1311;
149 bSizer1311 =
new wxBoxSizer( wxHORIZONTAL );
151 wxStaticText* minTrackWidthUnits;
152 minTrackWidthUnits =
new wxStaticText(
this, wxID_ANY,
_(
"%("), wxDefaultPosition, wxDefaultSize, 0 );
153 minTrackWidthUnits->Wrap( -1 );
154 bSizer1311->Add( minTrackWidthUnits, 0, wxALIGN_CENTER_VERTICAL, 5 );
156 wxStaticText* stMinTrackWidthHint;
157 stMinTrackWidthHint =
new wxStaticText(
this, wxID_ANY,
_(
"d"), wxDefaultPosition, wxDefaultSize, 0 );
158 stMinTrackWidthHint->Wrap( -1 );
159 stMinTrackWidthHint->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_ITALIC, wxFONTWEIGHT_NORMAL,
false, wxEmptyString ) );
161 bSizer1311->Add( stMinTrackWidthHint, 0, wxALIGN_BOTTOM, 1 );
163 wxStaticText* stMinTrackWidthSuffix;
164 stMinTrackWidthSuffix =
new wxStaticText(
this, wxID_ANY,
_(
" )"), wxDefaultPosition, wxDefaultSize, 0 );
165 stMinTrackWidthSuffix->Wrap( -1 );
166 bSizer1311->Add( stMinTrackWidthSuffix, 0, wxALIGN_CENTER_VERTICAL, 5 );
169 gbSizer->Add( bSizer1311, wxGBPosition( 3, 5 ), wxGBSpan( 1, 1 ), wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
171 m_cbTeardropsUseNextTrack =
new wxCheckBox(
this, wxID_ANY,
_(
"Allow teardrop to span two track segments"), wxDefaultPosition, wxDefaultSize, 0 );
173 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.") );
177 m_cbCurvedEdges =
new wxCheckBox(
this, wxID_ANY,
_(
"Curved edges"), wxDefaultPosition, wxDefaultSize, 0 );
178 gbSizer->Add(
m_cbCurvedEdges, wxGBPosition( 6, 0 ), wxGBSpan( 1, 1 ), 0, 5 );
181 bSizerShapeColumns->Add( gbSizer, 0, wxEXPAND|wxLEFT, 20 );
184 m_gridSizer->Add( bSizerShapeColumns, 1, wxEXPAND, 5 );
189 m_rectShapesLabel =
new wxStaticText(
this, wxID_ANY,
_(
"Default Properties for Rectangular Shapes"), wxDefaultPosition, wxDefaultSize, 0 );
193 m_staticline2 =
new wxStaticLine(
this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
196 wxBoxSizer* bSizerShapeColumns1;
197 bSizerShapeColumns1 =
new wxBoxSizer( wxHORIZONTAL );
199 wxBoxSizer* bSizerLeftCol1;
200 bSizerLeftCol1 =
new wxBoxSizer( wxVERTICAL );
202 m_bitmapTeardrop1 =
new wxStaticBitmap(
this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
203 bSizerLeftCol1->Add(
m_bitmapTeardrop1, 1, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 5 );
206 bSizerShapeColumns1->Add( bSizerLeftCol1, 0, wxEXPAND|wxRIGHT, 10 );
209 bSizerShapeColumns1->Add( 10, 0, 0, wxEXPAND, 5 );
211 wxGridBagSizer* gbSizer1;
212 gbSizer1 =
new wxGridBagSizer( 2, 3 );
213 gbSizer1->SetFlexibleDirection( wxBOTH );
214 gbSizer1->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
215 gbSizer1->SetEmptyCellSize( wxSize( 10,7 ) );
217 m_stLenPercent1Label =
new wxStaticText(
this, wxID_ANY,
_(
"Best length (L):"), wxDefaultPosition, wxDefaultSize, 0 );
219 gbSizer1->Add(
m_stLenPercent1Label, wxGBPosition( 0, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
221 m_spLenPercent1 =
new wxSpinCtrlDouble(
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 20, 100, 40.000000, 10 );
223 gbSizer1->Add(
m_spLenPercent1, wxGBPosition( 0, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
225 wxBoxSizer* bSizer122;
226 bSizer122 =
new wxBoxSizer( wxHORIZONTAL );
228 wxStaticText* stLenPercent1Units;
229 stLenPercent1Units =
new wxStaticText(
this, wxID_ANY,
_(
"%("), wxDefaultPosition, wxDefaultSize, 0 );
230 stLenPercent1Units->Wrap( -1 );
231 bSizer122->Add( stLenPercent1Units, 0, wxALIGN_CENTER_VERTICAL, 5 );
233 wxStaticText* stLenPercent1Hint;
234 stLenPercent1Hint =
new wxStaticText(
this, wxID_ANY,
_(
"w"), wxDefaultPosition, wxDefaultSize, 0 );
235 stLenPercent1Hint->Wrap( -1 );
236 stLenPercent1Hint->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_ITALIC, wxFONTWEIGHT_NORMAL,
false, wxEmptyString ) );
238 bSizer122->Add( stLenPercent1Hint, 0, wxALIGN_BOTTOM, 1 );
240 wxStaticText* stLenPercent1Suffix;
241 stLenPercent1Suffix =
new wxStaticText(
this, wxID_ANY,
_(
" )"), wxDefaultPosition, wxDefaultSize, 0 );
242 stLenPercent1Suffix->Wrap( -1 );
243 bSizer122->Add( stLenPercent1Suffix, 0, wxALIGN_CENTER_VERTICAL, 5 );
246 gbSizer1->Add( bSizer122, wxGBPosition( 0, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
248 m_stMaxLen1 =
new wxStaticText(
this, wxID_ANY,
_(
"Maximum length (L):"), wxDefaultPosition, wxDefaultSize, 0 );
250 gbSizer1->Add(
m_stMaxLen1, wxGBPosition( 1, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
252 m_tcTdMaxLen1 =
new wxTextCtrl(
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
253 gbSizer1->Add(
m_tcTdMaxLen1, wxGBPosition( 1, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
255 m_stMaxLen1Units =
new wxStaticText(
this, wxID_ANY,
_(
"mm"), wxDefaultPosition, wxDefaultSize, 0 );
257 gbSizer1->Add(
m_stMaxLen1Units, wxGBPosition( 1, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
259 m_stWidth1Label =
new wxStaticText(
this, wxID_ANY,
_(
"Best width (W):"), wxDefaultPosition, wxDefaultSize, 0 );
261 gbSizer1->Add(
m_stWidth1Label, wxGBPosition( 3, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
263 m_spWidthPercent1 =
new wxSpinCtrlDouble(
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 60, 100, 100.000000, 10 );
265 gbSizer1->Add(
m_spWidthPercent1, wxGBPosition( 3, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
267 wxBoxSizer* bSizer12;
268 bSizer12 =
new wxBoxSizer( wxHORIZONTAL );
270 wxStaticText* stWidthPercent1Units;
271 stWidthPercent1Units =
new wxStaticText(
this, wxID_ANY,
_(
"%("), wxDefaultPosition, wxDefaultSize, 0 );
272 stWidthPercent1Units->Wrap( -1 );
273 bSizer12->Add( stWidthPercent1Units, 0, wxALIGN_CENTER_VERTICAL, 5 );
275 wxStaticText* stSizePercent1Hint;
276 stSizePercent1Hint =
new wxStaticText(
this, wxID_ANY,
_(
"w"), wxDefaultPosition, wxDefaultSize, 0 );
277 stSizePercent1Hint->Wrap( -1 );
278 stSizePercent1Hint->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_ITALIC, wxFONTWEIGHT_NORMAL,
false, wxEmptyString ) );
280 bSizer12->Add( stSizePercent1Hint, 0, wxALIGN_BOTTOM, 1 );
282 wxStaticText* stSizePercent1Suffix;
283 stSizePercent1Suffix =
new wxStaticText(
this, wxID_ANY,
_(
" )"), wxDefaultPosition, wxDefaultSize, 0 );
284 stSizePercent1Suffix->Wrap( -1 );
285 bSizer12->Add( stSizePercent1Suffix, 0, wxALIGN_CENTER_VERTICAL, 5 );
288 gbSizer1->Add( bSizer12, wxGBPosition( 3, 2 ), wxGBSpan( 1, 1 ), wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
290 m_stMaxWidth1Label =
new wxStaticText(
this, wxID_ANY,
_(
"Maximum width (W):"), wxDefaultPosition, wxDefaultSize, 0 );
292 gbSizer1->Add(
m_stMaxWidth1Label, wxGBPosition( 4, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
294 m_tcMaxWidth1 =
new wxTextCtrl(
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
295 gbSizer1->Add(
m_tcMaxWidth1, wxGBPosition( 4, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
297 m_stMaxWidth1Units =
new wxStaticText(
this, wxID_ANY,
_(
"mm"), wxDefaultPosition, wxDefaultSize, 0 );
299 gbSizer1->Add(
m_stMaxWidth1Units, wxGBPosition( 4, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
301 m_cbPreferZoneConnection1 =
new wxCheckBox(
this, wxID_ANY,
_(
"Prefer zone connection"), wxDefaultPosition, wxDefaultSize, 0 );
302 m_cbPreferZoneConnection1->SetToolTip(
_(
"Do not create teardrops on tracks connected to pads that are also connected to a copper zone.") );
306 m_stHDRatio1 =
new wxStaticText(
this, wxID_ANY,
_(
"Track width limit:"), wxDefaultPosition, wxDefaultSize, 0 );
308 m_stHDRatio1->SetToolTip(
_(
"Max pad/via size to track width ratio to create a teardrop.\n100 always creates a teardrop.") );
310 gbSizer1->Add(
m_stHDRatio1, wxGBPosition( 3, 3 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxLEFT, 40 );
312 m_spTeardropHDPercent1 =
new wxSpinCtrlDouble(
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 100, 90, 10 );
316 gbSizer1->Add(
m_spTeardropHDPercent1, wxGBPosition( 3, 4 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
318 wxBoxSizer* bSizer1221;
319 bSizer1221 =
new wxBoxSizer( wxHORIZONTAL );
321 wxStaticText* minTrackWidthUnits1;
322 minTrackWidthUnits1 =
new wxStaticText(
this, wxID_ANY,
_(
"%("), wxDefaultPosition, wxDefaultSize, 0 );
323 minTrackWidthUnits1->Wrap( -1 );
324 bSizer1221->Add( minTrackWidthUnits1, 0, 0, 5 );
326 wxStaticText* stMinTrackWidthHint1;
327 stMinTrackWidthHint1 =
new wxStaticText(
this, wxID_ANY,
_(
"w"), wxDefaultPosition, wxDefaultSize, 0 );
328 stMinTrackWidthHint1->Wrap( -1 );
329 stMinTrackWidthHint1->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_ITALIC, wxFONTWEIGHT_NORMAL,
false, wxEmptyString ) );
331 bSizer1221->Add( stMinTrackWidthHint1, 0, wxALIGN_BOTTOM, 1 );
333 wxStaticText* staticText73;
334 staticText73 =
new wxStaticText(
this, wxID_ANY,
_(
" )"), wxDefaultPosition, wxDefaultSize, 0 );
335 staticText73->Wrap( -1 );
336 bSizer1221->Add( staticText73, 0, wxALIGN_CENTER_VERTICAL, 5 );
339 gbSizer1->Add( bSizer1221, wxGBPosition( 3, 5 ), wxGBSpan( 1, 1 ), wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
341 m_cbTeardropsUseNextTrack1 =
new wxCheckBox(
this, wxID_ANY,
_(
"Allow teardrop to span track segments"), wxDefaultPosition, wxDefaultSize, 0 );
343 m_cbTeardropsUseNextTrack1->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.") );
347 m_cbCurvedEdges1 =
new wxCheckBox(
this, wxID_ANY,
_(
"Curved edges"), wxDefaultPosition, wxDefaultSize, 0 );
348 gbSizer1->Add(
m_cbCurvedEdges1, wxGBPosition( 6, 0 ), wxGBSpan( 1, 1 ), 0, 5 );
351 bSizerShapeColumns1->Add( gbSizer1, 0, wxEXPAND|wxLEFT, 20 );
354 m_gridSizer->Add( bSizerShapeColumns1, 1, wxEXPAND, 5 );
359 m_tracksLabel =
new wxStaticText(
this, wxID_ANY,
_(
"Properties for Track-to-Track Teardrops"), wxDefaultPosition, wxDefaultSize, 0 );
363 m_staticline3 =
new wxStaticLine(
this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
366 wxBoxSizer* bSizerShapeColumns2;
367 bSizerShapeColumns2 =
new wxBoxSizer( wxHORIZONTAL );
369 wxBoxSizer* bSizerLeftCol2;
370 bSizerLeftCol2 =
new wxBoxSizer( wxVERTICAL );
372 m_bitmapTeardrop2 =
new wxStaticBitmap(
this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
373 bSizerLeftCol2->Add(
m_bitmapTeardrop2, 1, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 5 );
376 bSizerShapeColumns2->Add( bSizerLeftCol2, 0, wxEXPAND|wxRIGHT, 10 );
379 bSizerShapeColumns2->Add( 10, 0, 0, wxEXPAND, 5 );
381 wxGridBagSizer* gbSizer2;
382 gbSizer2 =
new wxGridBagSizer( 2, 3 );
383 gbSizer2->SetFlexibleDirection( wxBOTH );
384 gbSizer2->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
385 gbSizer2->SetEmptyCellSize( wxSize( 10,7 ) );
387 m_stLenPercent2Label =
new wxStaticText(
this, wxID_ANY,
_(
"Best length (L):"), wxDefaultPosition, wxDefaultSize, 0 );
389 gbSizer2->Add(
m_stLenPercent2Label, wxGBPosition( 0, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
391 m_spLenPercent2 =
new wxSpinCtrlDouble(
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 20, 100, 40.000000, 10 );
393 gbSizer2->Add(
m_spLenPercent2, wxGBPosition( 0, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
395 wxBoxSizer* bSizer1211;
396 bSizer1211 =
new wxBoxSizer( wxHORIZONTAL );
398 wxStaticText* stLenPercent2Units;
399 stLenPercent2Units =
new wxStaticText(
this, wxID_ANY,
_(
"%("), wxDefaultPosition, wxDefaultSize, 0 );
400 stLenPercent2Units->Wrap( -1 );
401 bSizer1211->Add( stLenPercent2Units, 0, wxALIGN_CENTER_VERTICAL, 5 );
403 wxStaticText* stLenPercent2Hint;
404 stLenPercent2Hint =
new wxStaticText(
this, wxID_ANY,
_(
"w"), wxDefaultPosition, wxDefaultSize, 0 );
405 stLenPercent2Hint->Wrap( -1 );
406 stLenPercent2Hint->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_ITALIC, wxFONTWEIGHT_NORMAL,
false, wxEmptyString ) );
408 bSizer1211->Add( stLenPercent2Hint, 0, wxALIGN_BOTTOM, 1 );
410 wxStaticText* stLenPercent2Suffix;
411 stLenPercent2Suffix =
new wxStaticText(
this, wxID_ANY,
_(
" )"), wxDefaultPosition, wxDefaultSize, 0 );
412 stLenPercent2Suffix->Wrap( -1 );
413 bSizer1211->Add( stLenPercent2Suffix, 0, wxALIGN_CENTER_VERTICAL, 5 );
416 gbSizer2->Add( bSizer1211, wxGBPosition( 0, 2 ), wxGBSpan( 1, 1 ), wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
418 m_stMaxLen2 =
new wxStaticText(
this, wxID_ANY,
_(
"Maximum length (L):"), wxDefaultPosition, wxDefaultSize, 0 );
420 gbSizer2->Add(
m_stMaxLen2, wxGBPosition( 1, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
422 m_tcTdMaxLen2 =
new wxTextCtrl(
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
423 gbSizer2->Add(
m_tcTdMaxLen2, wxGBPosition( 1, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
425 m_stMaxLen2Units =
new wxStaticText(
this, wxID_ANY,
_(
"mm"), wxDefaultPosition, wxDefaultSize, 0 );
427 gbSizer2->Add(
m_stMaxLen2Units, wxGBPosition( 1, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
429 m_stWidth2Label =
new wxStaticText(
this, wxID_ANY,
_(
"Best width (W):"), wxDefaultPosition, wxDefaultSize, 0 );
431 gbSizer2->Add(
m_stWidth2Label, wxGBPosition( 3, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
433 m_spWidthPercent2 =
new wxSpinCtrlDouble(
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 60, 100, 100.000000, 10 );
435 gbSizer2->Add(
m_spWidthPercent2, wxGBPosition( 3, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
437 wxBoxSizer* bSizer121;
438 bSizer121 =
new wxBoxSizer( wxHORIZONTAL );
440 wxStaticText* stWidthPercent2Units;
441 stWidthPercent2Units =
new wxStaticText(
this, wxID_ANY,
_(
"%("), wxDefaultPosition, wxDefaultSize, 0 );
442 stWidthPercent2Units->Wrap( -1 );
443 bSizer121->Add( stWidthPercent2Units, 0, wxALIGN_CENTER_VERTICAL, 5 );
445 wxStaticText* stWidthPercent2Hint;
446 stWidthPercent2Hint =
new wxStaticText(
this, wxID_ANY,
_(
"w"), wxDefaultPosition, wxDefaultSize, 0 );
447 stWidthPercent2Hint->Wrap( -1 );
448 stWidthPercent2Hint->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_ITALIC, wxFONTWEIGHT_NORMAL,
false, wxEmptyString ) );
450 bSizer121->Add( stWidthPercent2Hint, 0, wxALIGN_BOTTOM, 1 );
452 wxStaticText* stWidthPercent2Suffix;
453 stWidthPercent2Suffix =
new wxStaticText(
this, wxID_ANY,
_(
" )"), wxDefaultPosition, wxDefaultSize, 0 );
454 stWidthPercent2Suffix->Wrap( -1 );
455 bSizer121->Add( stWidthPercent2Suffix, 0, wxALIGN_CENTER_VERTICAL, 5 );
458 gbSizer2->Add( bSizer121, wxGBPosition( 3, 2 ), wxGBSpan( 1, 1 ), wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
460 m_stMaxWidth2Label =
new wxStaticText(
this, wxID_ANY,
_(
"Maximum width (W):"), wxDefaultPosition, wxDefaultSize, 0 );
462 gbSizer2->Add(
m_stMaxWidth2Label, wxGBPosition( 4, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
464 m_tcMaxWidth2 =
new wxTextCtrl(
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
465 gbSizer2->Add(
m_tcMaxWidth2, wxGBPosition( 4, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
467 m_stMaxWidth2Units =
new wxStaticText(
this, wxID_ANY,
_(
"mm"), wxDefaultPosition, wxDefaultSize, 0 );
469 gbSizer2->Add(
m_stMaxWidth2Units, wxGBPosition( 4, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
471 m_stHDRatio2 =
new wxStaticText(
this, wxID_ANY,
_(
"Track width limit:"), wxDefaultPosition, wxDefaultSize, 0 );
473 m_stHDRatio2->SetToolTip(
_(
"Max track width ratio to create a teardrop.\n100 always creates a teardrop.") );
475 gbSizer2->Add(
m_stHDRatio2, wxGBPosition( 3, 3 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxLEFT, 40 );
477 m_spTeardropHDPercent2 =
new wxSpinCtrlDouble(
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 100, 90, 10 );
481 gbSizer2->Add(
m_spTeardropHDPercent2, wxGBPosition( 3, 4 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
483 wxBoxSizer* bSizer12211;
484 bSizer12211 =
new wxBoxSizer( wxHORIZONTAL );
486 wxStaticText* stMinTrackWidth2Units;
487 stMinTrackWidth2Units =
new wxStaticText(
this, wxID_ANY,
_(
"%("), wxDefaultPosition, wxDefaultSize, 0 );
488 stMinTrackWidth2Units->Wrap( -1 );
489 bSizer12211->Add( stMinTrackWidth2Units, 0, wxALIGN_CENTER_VERTICAL, 5 );
491 wxStaticText* stMinTrackWidth2Hint;
492 stMinTrackWidth2Hint =
new wxStaticText(
this, wxID_ANY,
_(
"w"), wxDefaultPosition, wxDefaultSize, 0 );
493 stMinTrackWidth2Hint->Wrap( -1 );
494 stMinTrackWidth2Hint->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_ITALIC, wxFONTWEIGHT_NORMAL,
false, wxEmptyString ) );
496 bSizer12211->Add( stMinTrackWidth2Hint, 0, wxALIGN_CENTER_VERTICAL, 5 );
498 wxStaticText* stMinTrackWidth2Suffix;
499 stMinTrackWidth2Suffix =
new wxStaticText(
this, wxID_ANY,
_(
" )"), wxDefaultPosition, wxDefaultSize, 0 );
500 stMinTrackWidth2Suffix->Wrap( -1 );
501 bSizer12211->Add( stMinTrackWidth2Suffix, 0, wxALIGN_BOTTOM|wxBOTTOM, 1 );
504 gbSizer2->Add( bSizer12211, wxGBPosition( 3, 5 ), wxGBSpan( 1, 1 ), wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
506 m_cbTeardropsUseNextTrack2 =
new wxCheckBox(
this, wxID_ANY,
_(
"Allow teardrop to span track segments"), wxDefaultPosition, wxDefaultSize, 0 );
508 m_cbTeardropsUseNextTrack2->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.") );
512 m_cbCurvedEdges2 =
new wxCheckBox(
this, wxID_ANY,
_(
"Curved edges"), wxDefaultPosition, wxDefaultSize, 0 );
513 gbSizer2->Add(
m_cbCurvedEdges2, wxGBPosition( 6, 0 ), wxGBSpan( 1, 1 ), 0, 5 );
516 bSizerShapeColumns2->Add( gbSizer2, 0, wxEXPAND|wxLEFT, 20 );
519 m_gridSizer->Add( bSizerShapeColumns2, 1, wxEXPAND, 5 );
528 this->SetSizer( mainSizer );
530 mainSizer->Fit(
this );
wxCheckBox * m_cbCurvedEdges1
wxStaticText * m_stMaxLen1Units
wxStaticText * m_tracksLabel
wxSpinCtrlDouble * m_spLenPercent
wxTextCtrl * m_tcMaxWidth1
wxStaticLine * m_staticline2
wxStaticText * m_stMaxLen1
wxCheckBox * m_cbTeardropsUseNextTrack
wxStaticText * m_stMaxWidth2Units
wxTextCtrl * m_tcTdMaxLen2
wxStaticLine * m_staticline3
wxTextCtrl * m_tcMaxWidth2
wxTextCtrl * m_tcTdMaxLen1
wxCheckBox * m_cbTeardropsUseNextTrack1
wxTextCtrl * m_tcTdMaxLen
wxCheckBox * m_cbTeardropsUseNextTrack2
wxCheckBox * m_cbCurvedEdges
wxStaticLine * m_staticline1
wxStaticText * m_rectShapesLabel
wxSpinCtrlDouble * m_spTeardropHDPercent2
wxStaticText * m_stLenPercent1Label
wxStaticText * m_stHDRatio2
wxStaticText * m_stWidthLabel
PANEL_SETUP_TEARDROPS_BASE(wxWindow *parent, wxWindowID id=wxID_ANY, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxSize(-1,-1), long style=wxTAB_TRAVERSAL, const wxString &name=wxEmptyString)
wxSpinCtrlDouble * m_spWidthPercent
wxSpinCtrlDouble * m_spTeardropHDPercent1
wxStaticText * m_stMaxWidth1Units
wxStaticText * m_stMaxLen2
wxStaticText * m_stMaxWidth2Label
wxStaticBitmap * m_bitmapTeardrop2
wxStaticText * m_stMaxLenUnits
wxStaticText * m_stMaxWidthUnits
wxStaticText * m_stMaxWidthLabel
wxStaticText * m_stLenPercentLabel
wxStaticBitmap * m_bitmapTeardrop1
wxCheckBox * m_cbPreferZoneConnection1
wxTextCtrl * m_tcMaxWidth
wxStaticText * m_stLenPercent2Label
wxStaticText * m_stMaxLen
wxStaticText * m_stHDRatio1
wxStaticText * m_stWidth1Label
~PANEL_SETUP_TEARDROPS_BASE()
wxStaticText * m_roundShapesLabel
wxCheckBox * m_cbPreferZoneConnection
wxStaticBitmap * m_bitmapTeardrop
wxStaticText * m_stHDRatio
wxStaticText * m_stWidth2Label
wxStaticText * m_stMaxWidth1Label
wxSpinCtrlDouble * m_spLenPercent2
wxSpinCtrlDouble * m_spWidthPercent2
wxCheckBox * m_cbCurvedEdges2
wxStaticText * m_stMaxLen2Units
wxSpinCtrlDouble * m_spLenPercent1
wxSpinCtrlDouble * m_spWidthPercent1
wxSpinCtrlDouble * m_spTeardropHDPercent