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 bSizer41 =
new wxBoxSizer( wxHORIZONTAL );
38 m_edgesLabel =
new wxStaticText(
this, wxID_ANY,
_(
"Edges:"), wxDefaultPosition, wxDefaultSize, 0 );
40 bSizer41->Add(
m_edgesLabel, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
42 m_rbStraightLines =
new wxRadioButton(
this, wxID_ANY,
_(
"Straight lines"), wxDefaultPosition, wxDefaultSize, wxRB_GROUP );
45 m_rbCurved =
new wxRadioButton(
this, wxID_ANY,
_(
"Curved"), wxDefaultPosition, wxDefaultSize, 0 );
46 bSizer41->Add(
m_rbCurved, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
49 bSizerLeftCol->Add( bSizer41, 0, wxEXPAND|wxBOTTOM, 4 );
52 bSizerShapeColumns->Add( bSizerLeftCol, 0, wxEXPAND|wxRIGHT, 10 );
55 bSizerShapeColumns->Add( 10, 0, 0, wxEXPAND, 5 );
57 wxGridBagSizer* gbSizer;
58 gbSizer =
new wxGridBagSizer( 2, 3 );
59 gbSizer->SetFlexibleDirection( wxBOTH );
60 gbSizer->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
61 gbSizer->SetEmptyCellSize( wxSize( 10,7 ) );
63 m_stLenPercentLabel =
new wxStaticText(
this, wxID_ANY,
_(
"Best length (L):"), wxDefaultPosition, wxDefaultSize, 0 );
65 gbSizer->Add(
m_stLenPercentLabel, wxGBPosition( 0, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
67 m_spLenPercent =
new wxSpinCtrlDouble(
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 20, 100, 40.000000, 10 );
69 gbSizer->Add(
m_spLenPercent, wxGBPosition( 0, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
71 wxBoxSizer* bSizer131;
72 bSizer131 =
new wxBoxSizer( wxHORIZONTAL );
74 wxStaticText* stLenPercentUnits;
75 stLenPercentUnits =
new wxStaticText(
this, wxID_ANY,
_(
"%("), wxDefaultPosition, wxDefaultSize, 0 );
76 stLenPercentUnits->Wrap( -1 );
77 bSizer131->Add( stLenPercentUnits, 0, wxALIGN_CENTER_VERTICAL, 5 );
79 wxStaticText* stLenPercentHint;
80 stLenPercentHint =
new wxStaticText(
this, wxID_ANY,
_(
"d"), wxDefaultPosition, wxDefaultSize, 0 );
81 stLenPercentHint->Wrap( -1 );
82 stLenPercentHint->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_ITALIC, wxFONTWEIGHT_NORMAL,
false, wxEmptyString ) );
84 bSizer131->Add( stLenPercentHint, 0, wxALIGN_BOTTOM, 1 );
86 wxStaticText* staticText76;
87 staticText76 =
new wxStaticText(
this, wxID_ANY,
_(
" )"), wxDefaultPosition, wxDefaultSize, 0 );
88 staticText76->Wrap( -1 );
89 bSizer131->Add( staticText76, 0, wxALIGN_CENTER_VERTICAL, 5 );
92 gbSizer->Add( bSizer131, wxGBPosition( 0, 2 ), wxGBSpan( 1, 1 ), wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
94 m_stMaxLen =
new wxStaticText(
this, wxID_ANY,
_(
"Maximum length (L):"), wxDefaultPosition, wxDefaultSize, 0 );
96 gbSizer->Add(
m_stMaxLen, wxGBPosition( 1, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
98 m_tcTdMaxLen =
new wxTextCtrl(
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
99 gbSizer->Add(
m_tcTdMaxLen, wxGBPosition( 1, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
101 m_stMaxLenUnits =
new wxStaticText(
this, wxID_ANY,
_(
"mm"), wxDefaultPosition, wxDefaultSize, 0 );
103 gbSizer->Add(
m_stMaxLenUnits, wxGBPosition( 1, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
105 m_stWidthLabel =
new wxStaticText(
this, wxID_ANY,
_(
"Best width (W):"), wxDefaultPosition, wxDefaultSize, 0 );
107 gbSizer->Add(
m_stWidthLabel, wxGBPosition( 3, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
109 m_spWidthPercent =
new wxSpinCtrlDouble(
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 60, 100, 100.000000, 10 );
111 gbSizer->Add(
m_spWidthPercent, wxGBPosition( 3, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
113 wxBoxSizer* bSizer13;
114 bSizer13 =
new wxBoxSizer( wxHORIZONTAL );
116 wxStaticText* stWidthPercentUnits;
117 stWidthPercentUnits =
new wxStaticText(
this, wxID_ANY,
_(
"%("), wxDefaultPosition, wxDefaultSize, 0 );
118 stWidthPercentUnits->Wrap( -1 );
119 bSizer13->Add( stWidthPercentUnits, 0, wxALIGN_CENTER_VERTICAL, 5 );
121 wxStaticText* stWidthPercentHint;
122 stWidthPercentHint =
new wxStaticText(
this, wxID_ANY,
_(
"d"), wxDefaultPosition, wxDefaultSize, 0 );
123 stWidthPercentHint->Wrap( -1 );
124 stWidthPercentHint->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_ITALIC, wxFONTWEIGHT_NORMAL,
false, wxEmptyString ) );
126 bSizer13->Add( stWidthPercentHint, 0, wxALIGN_BOTTOM, 1 );
128 wxStaticText* stWidthPercentSuffix;
129 stWidthPercentSuffix =
new wxStaticText(
this, wxID_ANY,
_(
" )"), wxDefaultPosition, wxDefaultSize, 0 );
130 stWidthPercentSuffix->Wrap( -1 );
131 bSizer13->Add( stWidthPercentSuffix, 0, wxALIGN_CENTER_VERTICAL, 5 );
134 gbSizer->Add( bSizer13, wxGBPosition( 3, 2 ), wxGBSpan( 1, 1 ), wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
136 m_stMaxWidthLabel =
new wxStaticText(
this, wxID_ANY,
_(
"Maximum width (W):"), wxDefaultPosition, wxDefaultSize, 0 );
138 gbSizer->Add(
m_stMaxWidthLabel, wxGBPosition( 4, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
140 m_tcMaxWidth =
new wxTextCtrl(
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
141 gbSizer->Add(
m_tcMaxWidth, wxGBPosition( 4, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
143 m_stMaxWidthUnits =
new wxStaticText(
this, wxID_ANY,
_(
"mm"), wxDefaultPosition, wxDefaultSize, 0 );
145 gbSizer->Add(
m_stMaxWidthUnits, wxGBPosition( 4, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
147 m_cbPreferZoneConnection =
new wxCheckBox(
this, wxID_ANY,
_(
"Prefer zone connection"), wxDefaultPosition, wxDefaultSize, 0 );
148 m_cbPreferZoneConnection->SetToolTip(
_(
"Do not create teardrops on tracks connected to pads that are also connected to a copper zone.") );
150 gbSizer->Add(
m_cbPreferZoneConnection, wxGBPosition( 1, 3 ), wxGBSpan( 1, 3 ), wxALIGN_CENTER_VERTICAL|wxLEFT, 40 );
152 m_stHDRatio =
new wxStaticText(
this, wxID_ANY,
_(
"Maximum track width:"), wxDefaultPosition, wxDefaultSize, 0 );
154 m_stHDRatio->SetToolTip(
_(
"Max pad/via size to track width ratio to create a teardrop.\n100 always creates a teardrop.") );
156 gbSizer->Add(
m_stHDRatio, wxGBPosition( 3, 3 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxLEFT, 40 );
158 m_spTeardropHDPercent =
new wxSpinCtrlDouble(
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 100, 90, 10 );
160 m_spTeardropHDPercent->SetToolTip(
_(
"Tracks which are similar in size to the pad or via do not need teardrops.") );
162 gbSizer->Add(
m_spTeardropHDPercent, wxGBPosition( 3, 4 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
164 wxBoxSizer* bSizer1311;
165 bSizer1311 =
new wxBoxSizer( wxHORIZONTAL );
167 wxStaticText* minTrackWidthUnits;
168 minTrackWidthUnits =
new wxStaticText(
this, wxID_ANY,
_(
"%("), wxDefaultPosition, wxDefaultSize, 0 );
169 minTrackWidthUnits->Wrap( -1 );
170 bSizer1311->Add( minTrackWidthUnits, 0, wxALIGN_CENTER_VERTICAL, 5 );
172 wxStaticText* stMinTrackWidthHint;
173 stMinTrackWidthHint =
new wxStaticText(
this, wxID_ANY,
_(
"d"), wxDefaultPosition, wxDefaultSize, 0 );
174 stMinTrackWidthHint->Wrap( -1 );
175 stMinTrackWidthHint->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_ITALIC, wxFONTWEIGHT_NORMAL,
false, wxEmptyString ) );
177 bSizer1311->Add( stMinTrackWidthHint, 0, wxALIGN_BOTTOM, 1 );
179 wxStaticText* stMinTrackWidthSuffix;
180 stMinTrackWidthSuffix =
new wxStaticText(
this, wxID_ANY,
_(
" )"), wxDefaultPosition, wxDefaultSize, 0 );
181 stMinTrackWidthSuffix->Wrap( -1 );
182 bSizer1311->Add( stMinTrackWidthSuffix, 0, wxALIGN_CENTER_VERTICAL, 5 );
185 gbSizer->Add( bSizer1311, wxGBPosition( 3, 5 ), wxGBSpan( 1, 1 ), wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
187 m_cbTeardropsUseNextTrack =
new wxCheckBox(
this, wxID_ANY,
_(
"Allow teardrop to span two track segments"), wxDefaultPosition, wxDefaultSize, 0 );
189 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.") );
194 bSizerShapeColumns->Add( gbSizer, 0, wxEXPAND|wxLEFT, 20 );
197 m_gridSizer->Add( bSizerShapeColumns, 1, wxEXPAND, 5 );
202 m_rectShapesLabel =
new wxStaticText(
this, wxID_ANY,
_(
"Default properties for rectangular shapes:"), wxDefaultPosition, wxDefaultSize, 0 );
206 m_staticline2 =
new wxStaticLine(
this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
209 wxBoxSizer* bSizerShapeColumns1;
210 bSizerShapeColumns1 =
new wxBoxSizer( wxHORIZONTAL );
212 wxBoxSizer* bSizerLeftCol1;
213 bSizerLeftCol1 =
new wxBoxSizer( wxVERTICAL );
215 m_bitmapTeardrop1 =
new wxStaticBitmap(
this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
216 bSizerLeftCol1->Add(
m_bitmapTeardrop1, 1, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 5 );
218 wxBoxSizer* bSizer411;
219 bSizer411 =
new wxBoxSizer( wxHORIZONTAL );
221 m_edgesLabel1 =
new wxStaticText(
this, wxID_ANY,
_(
"Edges:"), wxDefaultPosition, wxDefaultSize, 0 );
223 bSizer411->Add(
m_edgesLabel1, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
225 m_rbStraightLines1 =
new wxRadioButton(
this, wxID_ANY,
_(
"Straight lines"), wxDefaultPosition, wxDefaultSize, wxRB_GROUP );
228 m_rbCurved1 =
new wxRadioButton(
this, wxID_ANY,
_(
"Curved"), wxDefaultPosition, wxDefaultSize, 0 );
229 bSizer411->Add(
m_rbCurved1, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
232 bSizerLeftCol1->Add( bSizer411, 0, wxEXPAND|wxBOTTOM, 4 );
235 bSizerShapeColumns1->Add( bSizerLeftCol1, 0, wxEXPAND|wxRIGHT, 10 );
238 bSizerShapeColumns1->Add( 10, 0, 0, wxEXPAND, 5 );
240 wxGridBagSizer* gbSizer1;
241 gbSizer1 =
new wxGridBagSizer( 2, 3 );
242 gbSizer1->SetFlexibleDirection( wxBOTH );
243 gbSizer1->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
244 gbSizer1->SetEmptyCellSize( wxSize( 10,7 ) );
246 m_stLenPercent1Label =
new wxStaticText(
this, wxID_ANY,
_(
"Best length (L):"), wxDefaultPosition, wxDefaultSize, 0 );
248 gbSizer1->Add(
m_stLenPercent1Label, wxGBPosition( 0, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
250 m_spLenPercent1 =
new wxSpinCtrlDouble(
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 20, 100, 40.000000, 10 );
252 gbSizer1->Add(
m_spLenPercent1, wxGBPosition( 0, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
254 wxBoxSizer* bSizer122;
255 bSizer122 =
new wxBoxSizer( wxHORIZONTAL );
257 wxStaticText* stLenPercent1Units;
258 stLenPercent1Units =
new wxStaticText(
this, wxID_ANY,
_(
"%("), wxDefaultPosition, wxDefaultSize, 0 );
259 stLenPercent1Units->Wrap( -1 );
260 bSizer122->Add( stLenPercent1Units, 0, wxALIGN_CENTER_VERTICAL, 5 );
262 wxStaticText* stLenPercent1Hint;
263 stLenPercent1Hint =
new wxStaticText(
this, wxID_ANY,
_(
"w"), wxDefaultPosition, wxDefaultSize, 0 );
264 stLenPercent1Hint->Wrap( -1 );
265 stLenPercent1Hint->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_ITALIC, wxFONTWEIGHT_NORMAL,
false, wxEmptyString ) );
267 bSizer122->Add( stLenPercent1Hint, 0, wxALIGN_BOTTOM, 1 );
269 wxStaticText* stLenPercent1Suffix;
270 stLenPercent1Suffix =
new wxStaticText(
this, wxID_ANY,
_(
" )"), wxDefaultPosition, wxDefaultSize, 0 );
271 stLenPercent1Suffix->Wrap( -1 );
272 bSizer122->Add( stLenPercent1Suffix, 0, wxALIGN_CENTER_VERTICAL, 5 );
275 gbSizer1->Add( bSizer122, wxGBPosition( 0, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
277 m_stMaxLen1 =
new wxStaticText(
this, wxID_ANY,
_(
"Maximum length (L):"), wxDefaultPosition, wxDefaultSize, 0 );
279 gbSizer1->Add(
m_stMaxLen1, wxGBPosition( 1, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
281 m_tcTdMaxLen1 =
new wxTextCtrl(
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
282 gbSizer1->Add(
m_tcTdMaxLen1, wxGBPosition( 1, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
284 m_stMaxLen1Units =
new wxStaticText(
this, wxID_ANY,
_(
"mm"), wxDefaultPosition, wxDefaultSize, 0 );
286 gbSizer1->Add(
m_stMaxLen1Units, wxGBPosition( 1, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
288 m_stWidth1Label =
new wxStaticText(
this, wxID_ANY,
_(
"Best width (W):"), wxDefaultPosition, wxDefaultSize, 0 );
290 gbSizer1->Add(
m_stWidth1Label, wxGBPosition( 3, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
292 m_spWidthPercent1 =
new wxSpinCtrlDouble(
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 60, 100, 100.000000, 10 );
294 gbSizer1->Add(
m_spWidthPercent1, wxGBPosition( 3, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
296 wxBoxSizer* bSizer12;
297 bSizer12 =
new wxBoxSizer( wxHORIZONTAL );
299 wxStaticText* stWidthPercent1Units;
300 stWidthPercent1Units =
new wxStaticText(
this, wxID_ANY,
_(
"%("), wxDefaultPosition, wxDefaultSize, 0 );
301 stWidthPercent1Units->Wrap( -1 );
302 bSizer12->Add( stWidthPercent1Units, 0, wxALIGN_CENTER_VERTICAL, 5 );
304 wxStaticText* stSizePercent1Hint;
305 stSizePercent1Hint =
new wxStaticText(
this, wxID_ANY,
_(
"w"), wxDefaultPosition, wxDefaultSize, 0 );
306 stSizePercent1Hint->Wrap( -1 );
307 stSizePercent1Hint->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_ITALIC, wxFONTWEIGHT_NORMAL,
false, wxEmptyString ) );
309 bSizer12->Add( stSizePercent1Hint, 0, wxALIGN_BOTTOM, 1 );
311 wxStaticText* stSizePercent1Suffix;
312 stSizePercent1Suffix =
new wxStaticText(
this, wxID_ANY,
_(
" )"), wxDefaultPosition, wxDefaultSize, 0 );
313 stSizePercent1Suffix->Wrap( -1 );
314 bSizer12->Add( stSizePercent1Suffix, 0, wxALIGN_CENTER_VERTICAL, 5 );
317 gbSizer1->Add( bSizer12, wxGBPosition( 3, 2 ), wxGBSpan( 1, 1 ), wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
319 m_stMaxWidth1Label =
new wxStaticText(
this, wxID_ANY,
_(
"Maximum width (W):"), wxDefaultPosition, wxDefaultSize, 0 );
321 gbSizer1->Add(
m_stMaxWidth1Label, wxGBPosition( 4, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
323 m_tcMaxWidth1 =
new wxTextCtrl(
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
324 gbSizer1->Add(
m_tcMaxWidth1, wxGBPosition( 4, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
326 m_stMaxWidth1Units =
new wxStaticText(
this, wxID_ANY,
_(
"mm"), wxDefaultPosition, wxDefaultSize, 0 );
328 gbSizer1->Add(
m_stMaxWidth1Units, wxGBPosition( 4, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
330 m_cbPreferZoneConnection1 =
new wxCheckBox(
this, wxID_ANY,
_(
"Prefer zone connection"), wxDefaultPosition, wxDefaultSize, 0 );
331 m_cbPreferZoneConnection1->SetToolTip(
_(
"Do not create teardrops on tracks connected to pads that are also connected to a copper zone.") );
335 m_stHDRatio1 =
new wxStaticText(
this, wxID_ANY,
_(
"Maximum track width:"), wxDefaultPosition, wxDefaultSize, 0 );
337 m_stHDRatio1->SetToolTip(
_(
"Max pad/via size to track width ratio to create a teardrop.\n100 always creates a teardrop.") );
339 gbSizer1->Add(
m_stHDRatio1, wxGBPosition( 3, 3 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxLEFT, 40 );
341 m_spTeardropHDPercent1 =
new wxSpinCtrlDouble(
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 100, 90, 10 );
345 gbSizer1->Add(
m_spTeardropHDPercent1, wxGBPosition( 3, 4 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
347 wxBoxSizer* bSizer1221;
348 bSizer1221 =
new wxBoxSizer( wxHORIZONTAL );
350 wxStaticText* minTrackWidthUnits1;
351 minTrackWidthUnits1 =
new wxStaticText(
this, wxID_ANY,
_(
"%("), wxDefaultPosition, wxDefaultSize, 0 );
352 minTrackWidthUnits1->Wrap( -1 );
353 bSizer1221->Add( minTrackWidthUnits1, 0, 0, 5 );
355 wxStaticText* stMinTrackWidthHint1;
356 stMinTrackWidthHint1 =
new wxStaticText(
this, wxID_ANY,
_(
"w"), wxDefaultPosition, wxDefaultSize, 0 );
357 stMinTrackWidthHint1->Wrap( -1 );
358 stMinTrackWidthHint1->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_ITALIC, wxFONTWEIGHT_NORMAL,
false, wxEmptyString ) );
360 bSizer1221->Add( stMinTrackWidthHint1, 0, wxALIGN_BOTTOM, 1 );
362 wxStaticText* staticText73;
363 staticText73 =
new wxStaticText(
this, wxID_ANY,
_(
" )"), wxDefaultPosition, wxDefaultSize, 0 );
364 staticText73->Wrap( -1 );
365 bSizer1221->Add( staticText73, 0, wxALIGN_CENTER_VERTICAL, 5 );
368 gbSizer1->Add( bSizer1221, wxGBPosition( 3, 5 ), wxGBSpan( 1, 1 ), wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
370 m_cbTeardropsUseNextTrack1 =
new wxCheckBox(
this, wxID_ANY,
_(
"Allow teardrop to span track segments"), wxDefaultPosition, wxDefaultSize, 0 );
372 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.") );
377 bSizerShapeColumns1->Add( gbSizer1, 0, wxEXPAND|wxLEFT, 20 );
380 m_gridSizer->Add( bSizerShapeColumns1, 1, wxEXPAND, 5 );
385 m_tracksLabel =
new wxStaticText(
this, wxID_ANY,
_(
"Properties for track-to-track teardrops:"), wxDefaultPosition, wxDefaultSize, 0 );
389 m_staticline3 =
new wxStaticLine(
this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
392 wxBoxSizer* bSizerShapeColumns2;
393 bSizerShapeColumns2 =
new wxBoxSizer( wxHORIZONTAL );
395 wxBoxSizer* bSizerLeftCol2;
396 bSizerLeftCol2 =
new wxBoxSizer( wxVERTICAL );
398 m_bitmapTeardrop2 =
new wxStaticBitmap(
this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
399 bSizerLeftCol2->Add(
m_bitmapTeardrop2, 1, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 5 );
401 wxBoxSizer* bSizer412;
402 bSizer412 =
new wxBoxSizer( wxHORIZONTAL );
404 m_edgesLabel2 =
new wxStaticText(
this, wxID_ANY,
_(
"Edges:"), wxDefaultPosition, wxDefaultSize, 0 );
406 bSizer412->Add(
m_edgesLabel2, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
408 m_rbStraightLines2 =
new wxRadioButton(
this, wxID_ANY,
_(
"Straight lines"), wxDefaultPosition, wxDefaultSize, wxRB_GROUP );
411 m_rbCurved2 =
new wxRadioButton(
this, wxID_ANY,
_(
"Curved"), wxDefaultPosition, wxDefaultSize, 0 );
412 bSizer412->Add(
m_rbCurved2, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
415 bSizerLeftCol2->Add( bSizer412, 0, wxEXPAND|wxBOTTOM, 4 );
418 bSizerShapeColumns2->Add( bSizerLeftCol2, 0, wxEXPAND|wxRIGHT, 10 );
421 bSizerShapeColumns2->Add( 10, 0, 0, wxEXPAND, 5 );
423 wxGridBagSizer* gbSizer2;
424 gbSizer2 =
new wxGridBagSizer( 2, 3 );
425 gbSizer2->SetFlexibleDirection( wxBOTH );
426 gbSizer2->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
427 gbSizer2->SetEmptyCellSize( wxSize( 10,7 ) );
429 m_stLenPercent2Label =
new wxStaticText(
this, wxID_ANY,
_(
"Best length (L):"), wxDefaultPosition, wxDefaultSize, 0 );
431 gbSizer2->Add(
m_stLenPercent2Label, wxGBPosition( 0, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
433 m_spLenPercent2 =
new wxSpinCtrlDouble(
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 20, 100, 40.000000, 10 );
435 gbSizer2->Add(
m_spLenPercent2, wxGBPosition( 0, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
437 wxBoxSizer* bSizer1211;
438 bSizer1211 =
new wxBoxSizer( wxHORIZONTAL );
440 wxStaticText* stLenPercent2Units;
441 stLenPercent2Units =
new wxStaticText(
this, wxID_ANY,
_(
"%("), wxDefaultPosition, wxDefaultSize, 0 );
442 stLenPercent2Units->Wrap( -1 );
443 bSizer1211->Add( stLenPercent2Units, 0, wxALIGN_CENTER_VERTICAL, 5 );
445 wxStaticText* stLenPercent2Hint;
446 stLenPercent2Hint =
new wxStaticText(
this, wxID_ANY,
_(
"w"), wxDefaultPosition, wxDefaultSize, 0 );
447 stLenPercent2Hint->Wrap( -1 );
448 stLenPercent2Hint->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_ITALIC, wxFONTWEIGHT_NORMAL,
false, wxEmptyString ) );
450 bSizer1211->Add( stLenPercent2Hint, 0, wxALIGN_BOTTOM, 1 );
452 wxStaticText* stLenPercent2Suffix;
453 stLenPercent2Suffix =
new wxStaticText(
this, wxID_ANY,
_(
" )"), wxDefaultPosition, wxDefaultSize, 0 );
454 stLenPercent2Suffix->Wrap( -1 );
455 bSizer1211->Add( stLenPercent2Suffix, 0, wxALIGN_CENTER_VERTICAL, 5 );
458 gbSizer2->Add( bSizer1211, wxGBPosition( 0, 2 ), wxGBSpan( 1, 1 ), wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
460 m_stMaxLen2 =
new wxStaticText(
this, wxID_ANY,
_(
"Maximum length (L):"), wxDefaultPosition, wxDefaultSize, 0 );
462 gbSizer2->Add(
m_stMaxLen2, wxGBPosition( 1, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
464 m_tcTdMaxLen2 =
new wxTextCtrl(
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
465 gbSizer2->Add(
m_tcTdMaxLen2, wxGBPosition( 1, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
467 m_stMaxLen2Units =
new wxStaticText(
this, wxID_ANY,
_(
"mm"), wxDefaultPosition, wxDefaultSize, 0 );
469 gbSizer2->Add(
m_stMaxLen2Units, wxGBPosition( 1, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
471 m_stWidth2Label =
new wxStaticText(
this, wxID_ANY,
_(
"Best width (W):"), wxDefaultPosition, wxDefaultSize, 0 );
473 gbSizer2->Add(
m_stWidth2Label, wxGBPosition( 3, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
475 m_spWidthPercent2 =
new wxSpinCtrlDouble(
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 60, 100, 100.000000, 10 );
477 gbSizer2->Add(
m_spWidthPercent2, wxGBPosition( 3, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
479 wxBoxSizer* bSizer121;
480 bSizer121 =
new wxBoxSizer( wxHORIZONTAL );
482 wxStaticText* stWidthPercent2Units;
483 stWidthPercent2Units =
new wxStaticText(
this, wxID_ANY,
_(
"%("), wxDefaultPosition, wxDefaultSize, 0 );
484 stWidthPercent2Units->Wrap( -1 );
485 bSizer121->Add( stWidthPercent2Units, 0, wxALIGN_CENTER_VERTICAL, 5 );
487 wxStaticText* stWidthPercent2Hint;
488 stWidthPercent2Hint =
new wxStaticText(
this, wxID_ANY,
_(
"w"), wxDefaultPosition, wxDefaultSize, 0 );
489 stWidthPercent2Hint->Wrap( -1 );
490 stWidthPercent2Hint->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_ITALIC, wxFONTWEIGHT_NORMAL,
false, wxEmptyString ) );
492 bSizer121->Add( stWidthPercent2Hint, 0, wxALIGN_BOTTOM, 1 );
494 wxStaticText* stWidthPercent2Suffix;
495 stWidthPercent2Suffix =
new wxStaticText(
this, wxID_ANY,
_(
" )"), wxDefaultPosition, wxDefaultSize, 0 );
496 stWidthPercent2Suffix->Wrap( -1 );
497 bSizer121->Add( stWidthPercent2Suffix, 0, wxALIGN_CENTER_VERTICAL, 5 );
500 gbSizer2->Add( bSizer121, wxGBPosition( 3, 2 ), wxGBSpan( 1, 1 ), wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
502 m_stMaxWidth2Label =
new wxStaticText(
this, wxID_ANY,
_(
"Maximum width (W):"), wxDefaultPosition, wxDefaultSize, 0 );
504 gbSizer2->Add(
m_stMaxWidth2Label, wxGBPosition( 4, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
506 m_tcMaxWidth2 =
new wxTextCtrl(
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
507 gbSizer2->Add(
m_tcMaxWidth2, wxGBPosition( 4, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
509 m_stMaxWidth2Units =
new wxStaticText(
this, wxID_ANY,
_(
"mm"), wxDefaultPosition, wxDefaultSize, 0 );
511 gbSizer2->Add(
m_stMaxWidth2Units, wxGBPosition( 4, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
513 m_stHDRatio2 =
new wxStaticText(
this, wxID_ANY,
_(
"Maximum track width"), wxDefaultPosition, wxDefaultSize, 0 );
515 m_stHDRatio2->SetToolTip(
_(
"Max track width ratio to create a teardrop.\n100 always creates a teardrop.") );
517 gbSizer2->Add(
m_stHDRatio2, wxGBPosition( 3, 3 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxLEFT, 40 );
519 m_spTeardropHDPercent2 =
new wxSpinCtrlDouble(
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 100, 90, 10 );
523 gbSizer2->Add(
m_spTeardropHDPercent2, wxGBPosition( 3, 4 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
525 wxBoxSizer* bSizer12211;
526 bSizer12211 =
new wxBoxSizer( wxHORIZONTAL );
528 wxStaticText* stMinTrackWidth2Units;
529 stMinTrackWidth2Units =
new wxStaticText(
this, wxID_ANY,
_(
"%("), wxDefaultPosition, wxDefaultSize, 0 );
530 stMinTrackWidth2Units->Wrap( -1 );
531 bSizer12211->Add( stMinTrackWidth2Units, 0, wxALIGN_CENTER_VERTICAL, 5 );
533 wxStaticText* stMinTrackWidth2Hint;
534 stMinTrackWidth2Hint =
new wxStaticText(
this, wxID_ANY,
_(
"w"), wxDefaultPosition, wxDefaultSize, 0 );
535 stMinTrackWidth2Hint->Wrap( -1 );
536 stMinTrackWidth2Hint->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_ITALIC, wxFONTWEIGHT_NORMAL,
false, wxEmptyString ) );
538 bSizer12211->Add( stMinTrackWidth2Hint, 0, wxALIGN_CENTER_VERTICAL, 5 );
540 wxStaticText* stMinTrackWidth2Suffix;
541 stMinTrackWidth2Suffix =
new wxStaticText(
this, wxID_ANY,
_(
" )"), wxDefaultPosition, wxDefaultSize, 0 );
542 stMinTrackWidth2Suffix->Wrap( -1 );
543 bSizer12211->Add( stMinTrackWidth2Suffix, 0, wxALIGN_BOTTOM|wxBOTTOM, 1 );
546 gbSizer2->Add( bSizer12211, wxGBPosition( 3, 5 ), wxGBSpan( 1, 1 ), wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
548 m_cbTeardropsUseNextTrack2 =
new wxCheckBox(
this, wxID_ANY,
_(
"Allow teardrop to span track segments"), wxDefaultPosition, wxDefaultSize, 0 );
550 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.") );
555 bSizerShapeColumns2->Add( gbSizer2, 0, wxEXPAND|wxLEFT, 20 );
558 m_gridSizer->Add( bSizerShapeColumns2, 1, wxEXPAND, 5 );
567 this->SetSizer( mainSizer );
569 mainSizer->Fit(
this );
wxRadioButton * m_rbStraightLines
wxStaticText * m_stMaxLen1Units
wxStaticText * m_edgesLabel2
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
wxStaticText * m_edgesLabel
wxTextCtrl * m_tcMaxWidth2
wxTextCtrl * m_tcTdMaxLen1
wxCheckBox * m_cbTeardropsUseNextTrack1
wxTextCtrl * m_tcTdMaxLen
wxCheckBox * m_cbTeardropsUseNextTrack2
wxStaticLine * m_staticline1
wxStaticText * m_rectShapesLabel
wxSpinCtrlDouble * m_spTeardropHDPercent2
wxStaticText * m_stLenPercent1Label
wxRadioButton * m_rbCurved
wxStaticText * m_stHDRatio2
wxStaticText * m_stWidthLabel
wxStaticText * m_edgesLabel1
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
wxRadioButton * m_rbCurved2
wxStaticBitmap * m_bitmapTeardrop1
wxCheckBox * m_cbPreferZoneConnection1
wxTextCtrl * m_tcMaxWidth
wxStaticText * m_stLenPercent2Label
wxStaticText * m_stMaxLen
wxStaticText * m_stHDRatio1
wxRadioButton * m_rbCurved1
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
wxRadioButton * m_rbStraightLines2
wxSpinCtrlDouble * m_spLenPercent2
wxSpinCtrlDouble * m_spWidthPercent2
wxRadioButton * m_rbStraightLines1
wxStaticText * m_stMaxLen2Units
wxSpinCtrlDouble * m_spLenPercent1
wxSpinCtrlDouble * m_spWidthPercent1
wxSpinCtrlDouble * m_spTeardropHDPercent