12PANEL_SETUP_CONSTRAINTS_BASE::PANEL_SETUP_CONSTRAINTS_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* bMainSizer;
15 bMainSizer =
new wxBoxSizer( wxHORIZONTAL );
17 m_scrolledWindow =
new wxScrolledWindow(
this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxVSCROLL );
19 wxBoxSizer* bScrolledSizer;
20 bScrolledSizer =
new wxBoxSizer( wxHORIZONTAL );
22 wxBoxSizer* sbFeatureConstraints;
23 sbFeatureConstraints =
new wxBoxSizer( wxVERTICAL );
25 wxFlexGridSizer* fgFeatureConstraints;
26 fgFeatureConstraints =
new wxFlexGridSizer( 0, 5, 0, 0 );
27 fgFeatureConstraints->SetFlexibleDirection( wxBOTH );
28 fgFeatureConstraints->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
30 fgFeatureConstraints->SetMinSize( wxSize( -1,0 ) );
36 fgFeatureConstraints->Add( 0, 0, 1, wxEXPAND, 5 );
39 fgFeatureConstraints->Add( 0, 0, 1, wxEXPAND, 5 );
42 fgFeatureConstraints->Add( 0, 0, 1, wxEXPAND, 5 );
45 fgFeatureConstraints->Add( 0, 0, 1, wxEXPAND, 5 );
48 fgFeatureConstraints->Add(
m_staticline151, 0, wxEXPAND|wxTOP|wxBOTTOM, 2 );
51 fgFeatureConstraints->Add(
m_staticline16, 0, wxEXPAND|wxTOP|wxBOTTOM, 2 );
54 fgFeatureConstraints->Add(
m_staticline17, 0, wxEXPAND|wxTOP|wxBOTTOM, 2 );
57 fgFeatureConstraints->Add(
m_staticline18, 0, wxEXPAND|wxTOP|wxBOTTOM, 2 );
60 fgFeatureConstraints->Add(
m_staticline181, 0, wxEXPAND|wxTOP|wxBOTTOM, 2 );
63 fgFeatureConstraints->Add(
m_bitmapClearance, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
67 fgFeatureConstraints->Add(
m_clearanceTitle, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
70 m_clearanceCtrl->SetToolTip(
_(
"The minimum clearance between copper items which do not belong to the same net. If set, this can only be reduced by custom rules.") );
72 fgFeatureConstraints->Add(
m_clearanceCtrl, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP|wxBOTTOM, 5 );
76 fgFeatureConstraints->Add(
m_clearanceUnits, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
79 fgFeatureConstraints->Add(
m_clearanceWarning, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxRESERVE_SPACE_EVEN_IF_HIDDEN, 5 );
82 fgFeatureConstraints->Add(
m_bitmapMinTrackWidth, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
86 fgFeatureConstraints->Add(
m_TrackMinWidthTitle, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxRIGHT, 5 );
89 m_TrackMinWidthCtrl->SetToolTip(
_(
"The minimum track width. If set, this can only be reduced by custom rules.") );
92 fgFeatureConstraints->Add(
m_TrackMinWidthCtrl, 0, wxALIGN_LEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5 );
96 fgFeatureConstraints->Add(
m_TrackMinWidthUnits, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxLEFT, 5 );
99 fgFeatureConstraints->Add(
m_trackMinWidthWarning, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxRESERVE_SPACE_EVEN_IF_HIDDEN, 5 );
102 fgFeatureConstraints->Add(
m_bitmapMinConn, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT, 5 );
106 fgFeatureConstraints->Add(
m_MinConnTitle, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxRIGHT, 5 );
109 m_MinConnCtrl->SetToolTip(
_(
"The minimum copper width of connected copper items.") );
112 fgFeatureConstraints->Add(
m_MinConnCtrl, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxBOTTOM|wxEXPAND|wxTOP, 5 );
116 fgFeatureConstraints->Add(
m_MinConnUnits, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxLEFT, 5 );
119 fgFeatureConstraints->Add(
m_minConnWarning, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxRESERVE_SPACE_EVEN_IF_HIDDEN, 5 );
122 fgFeatureConstraints->Add(
m_bitmapMinViaAnnulus, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
129 m_ViaMinAnnulusCtrl->SetToolTip(
_(
"The minimum annular ring width. If set, this can only be reduced by custom rules.") );
131 fgFeatureConstraints->Add(
m_ViaMinAnnulusCtrl, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP|wxBOTTOM, 5 );
138 fgFeatureConstraints->Add(
m_viaMinAnnulusWarning, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxRESERVE_SPACE_EVEN_IF_HIDDEN, 5 );
141 fgFeatureConstraints->Add(
m_bitmapMinViaDiameter, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
145 fgFeatureConstraints->Add(
m_ViaMinTitle, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxRIGHT, 5 );
148 m_SetViasMinSizeCtrl->SetToolTip(
_(
"The minimum via diameter. If set, this can only be reduced by custom rules.") );
150 fgFeatureConstraints->Add(
m_SetViasMinSizeCtrl, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP|wxBOTTOM, 5 );
154 fgFeatureConstraints->Add(
m_ViaMinUnits, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxLEFT, 5 );
157 fgFeatureConstraints->Add(
m_viaMinSizeWarning, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxRESERVE_SPACE_EVEN_IF_HIDDEN, 5 );
160 fgFeatureConstraints->Add(
m_bitmapHoleClearance, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
167 m_HoleClearanceCtrl->SetToolTip(
_(
"The minimum clearance between a hole and an unassociated copper item. If set, this can only be reduced by custom rules.") );
169 fgFeatureConstraints->Add(
m_HoleClearanceCtrl, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5 );
176 fgFeatureConstraints->Add(
m_holeClearanceWarning, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxRESERVE_SPACE_EVEN_IF_HIDDEN, 5 );
179 fgFeatureConstraints->Add(
m_bitmapEdgeClearance, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
186 m_EdgeClearanceCtrl->SetToolTip(
_(
"The minimum clearance between the board edge and any copper item. If set, this can only be reduced by custom rules.") );
188 fgFeatureConstraints->Add(
m_EdgeClearanceCtrl, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5 );
195 fgFeatureConstraints->Add(
m_edgeClearanceWarning, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxRESERVE_SPACE_EVEN_IF_HIDDEN, 5 );
198 fgFeatureConstraints->Add(
m_bitmapMinGrooveWidth, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT, 5 );
207 fgFeatureConstraints->Add(
m_minGrooveWidthCtrl, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxEXPAND|wxTOP, 5 );
214 fgFeatureConstraints->Add(
m_minGrooveWidthWarning, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxRESERVE_SPACE_EVEN_IF_HIDDEN, 5 );
218 fgFeatureConstraints->Add(
m_staticText24, 0, wxALIGN_CENTER_HORIZONTAL|wxTOP|wxLEFT, 13 );
221 fgFeatureConstraints->Add( 0, 0, 1, wxEXPAND|wxTOP, 5 );
224 fgFeatureConstraints->Add( 0, 0, 1, wxEXPAND|wxTOP, 5 );
227 fgFeatureConstraints->Add( 0, 0, 1, wxEXPAND|wxTOP, 5 );
230 fgFeatureConstraints->Add( 0, 0, 1, wxEXPAND|wxTOP, 5 );
233 fgFeatureConstraints->Add(
m_staticline3, 0, wxEXPAND|wxTOP|wxBOTTOM, 2 );
236 fgFeatureConstraints->Add(
m_staticline4, 0, wxEXPAND|wxTOP|wxBOTTOM, 2 );
239 fgFeatureConstraints->Add(
m_staticline5, 0, wxEXPAND|wxTOP|wxBOTTOM, 2 );
248 fgFeatureConstraints->Add(
m_bitmapMinViaDrill, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
252 fgFeatureConstraints->Add(
m_MinDrillTitle, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxRIGHT, 5 );
255 m_MinDrillCtrl->SetToolTip(
_(
"The minimum drill size. If set, this can only be reduced by custom rules.") );
257 fgFeatureConstraints->Add(
m_MinDrillCtrl, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5 );
261 fgFeatureConstraints->Add(
m_MinDrillUnits, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxLEFT, 5 );
264 fgFeatureConstraints->Add(
m_minDrillWarning, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxRESERVE_SPACE_EVEN_IF_HIDDEN, 5 );
267 fgFeatureConstraints->Add(
m_bitmapMinHoleClearance, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
271 fgFeatureConstraints->Add(
m_HoleToHoleTitle, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
274 m_SetHoleToHoleCtrl->SetToolTip(
_(
"The minimum clearance between two drilled holes. If set, this can only be reduced by custom rules. (Note: does not apply to milled holes.)") );
276 fgFeatureConstraints->Add(
m_SetHoleToHoleCtrl, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5 );
280 fgFeatureConstraints->Add(
m_HoleToHoleUnits, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
283 fgFeatureConstraints->Add(
m_holeToHoleWarning, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxRESERVE_SPACE_EVEN_IF_HIDDEN, 5 );
287 fgFeatureConstraints->Add(
m_staticText25, 0, wxALIGN_CENTER_HORIZONTAL|wxTOP|wxLEFT, 13 );
290 fgFeatureConstraints->Add( 0, 0, 1, wxEXPAND|wxTOP, 2 );
293 fgFeatureConstraints->Add( 0, 0, 1, wxEXPAND|wxTOP, 5 );
296 fgFeatureConstraints->Add( 0, 0, 1, wxEXPAND|wxTOP, 5 );
299 fgFeatureConstraints->Add( 0, 0, 1, wxEXPAND|wxTOP, 5 );
302 fgFeatureConstraints->Add(
m_staticline8, 0, wxEXPAND|wxTOP|wxBOTTOM, 2 );
305 fgFeatureConstraints->Add(
m_staticline9, 0, wxEXPAND|wxTOP|wxBOTTOM, 2 );
308 fgFeatureConstraints->Add(
m_staticline10, 0, wxEXPAND|wxTOP|wxBOTTOM, 2 );
311 fgFeatureConstraints->Add(
m_staticline11, 0, wxEXPAND|wxTOP|wxBOTTOM, 2 );
314 fgFeatureConstraints->Add(
m_staticline112, 0, wxEXPAND|wxTOP|wxBOTTOM, 2 );
317 fgFeatureConstraints->Add(
m_bitmapMinuViaDiameter, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
321 fgFeatureConstraints->Add(
m_uviaMinSizeLabel, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxRIGHT, 5 );
324 m_uviaMinSizeCtrl->SetToolTip(
_(
"The minimum diameter for micro-vias. If set, this can only be reduced by custom rules.") );
326 fgFeatureConstraints->Add(
m_uviaMinSizeCtrl, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5 );
330 fgFeatureConstraints->Add(
m_uviaMinSizeUnits, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxLEFT, 5 );
333 fgFeatureConstraints->Add(
m_uviaMinSizeWarning, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxRESERVE_SPACE_EVEN_IF_HIDDEN, 5 );
336 fgFeatureConstraints->Add(
m_bitmapMinuViaDrill, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
340 fgFeatureConstraints->Add(
m_uviaMinDrillLabel, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxRIGHT, 5 );
343 m_uviaMinDrillCtrl->SetToolTip(
_(
"The minimum micro-via hole size. If set, this can only be reduced by custom rules.") );
345 fgFeatureConstraints->Add(
m_uviaMinDrillCtrl, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5 );
349 fgFeatureConstraints->Add(
m_uviaMinDrillUnits, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxLEFT, 5 );
352 fgFeatureConstraints->Add(
m_uviaMinDrillWarning, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxRESERVE_SPACE_EVEN_IF_HIDDEN, 5 );
356 fgFeatureConstraints->Add(
m_staticText28, 0, wxALIGN_CENTER_HORIZONTAL|wxTOP|wxLEFT, 13 );
359 fgFeatureConstraints->Add( 0, 0, 1, wxEXPAND, 5 );
362 fgFeatureConstraints->Add( 0, 0, 1, wxEXPAND, 5 );
365 fgFeatureConstraints->Add( 0, 0, 1, wxEXPAND, 5 );
368 fgFeatureConstraints->Add( 0, 0, 1, wxEXPAND, 5 );
371 fgFeatureConstraints->Add(
m_staticline111, 0, wxEXPAND|wxTOP|wxBOTTOM, 2 );
374 fgFeatureConstraints->Add(
m_staticline12, 0, wxEXPAND|wxTOP|wxBOTTOM, 2 );
377 fgFeatureConstraints->Add(
m_staticline13, 0, wxEXPAND|wxTOP|wxBOTTOM, 2 );
380 fgFeatureConstraints->Add(
m_staticline14, 0, wxEXPAND|wxTOP|wxBOTTOM, 2 );
383 fgFeatureConstraints->Add(
m_staticline141, 0, wxEXPAND|wxTOP|wxBOTTOM, 2 );
386 fgFeatureConstraints->Add( 0, 0, 1, wxEXPAND, 5 );
393 m_silkClearanceCtrl->SetToolTip(
_(
"Minimum clearance between two items on the same silkscreen layer. If set this can improve legibility. (Note: does not apply to multiple shapes within a single footprint.)") );
395 fgFeatureConstraints->Add(
m_silkClearanceCtrl, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP, 5 );
402 fgFeatureConstraints->Add(
m_silkClearanceWarning, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxRESERVE_SPACE_EVEN_IF_HIDDEN, 5 );
405 fgFeatureConstraints->Add( 0, 0, 1, wxEXPAND, 5 );
409 fgFeatureConstraints->Add(
m_textHeightLabel, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 );
412 fgFeatureConstraints->Add(
m_textHeightCtrl, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxTOP, 5 );
416 fgFeatureConstraints->Add(
m_textHeightUnits, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT, 5 );
419 fgFeatureConstraints->Add(
m_textHeightWarning, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxRESERVE_SPACE_EVEN_IF_HIDDEN, 5 );
422 fgFeatureConstraints->Add( 0, 0, 1, wxEXPAND, 5 );
429 fgFeatureConstraints->Add(
m_textThicknessCtrl, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxTOP, 5 );
436 fgFeatureConstraints->Add(
m_textThicknessWarning, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxRESERVE_SPACE_EVEN_IF_HIDDEN, 5 );
439 sbFeatureConstraints->Add( fgFeatureConstraints, 1, wxEXPAND, 5 );
442 bScrolledSizer->Add( sbFeatureConstraints, 0, wxEXPAND|wxRIGHT, 5 );
445 bScrolledSizer->Add( 0, 0, 0, wxEXPAND|wxRIGHT|wxLEFT, 15 );
447 wxBoxSizer* sbFeatureRules;
448 sbFeatureRules =
new wxBoxSizer( wxVERTICAL );
450 wxBoxSizer* bSizerArcToPoly;
451 bSizerArcToPoly =
new wxBoxSizer( wxVERTICAL );
458 bSizerArcToPoly->Add(
m_staticline19, 0, wxEXPAND|wxTOP|wxBOTTOM, 2 );
460 wxFlexGridSizer* fgSizer2;
461 fgSizer2 =
new wxFlexGridSizer( 0, 4, 3, 0 );
462 fgSizer2->AddGrowableCol( 2 );
463 fgSizer2->SetFlexibleDirection( wxBOTH );
464 fgSizer2->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
468 m_maxErrorTitle->SetToolTip(
_(
"This is the maximum distance between a circle and the polygonal shape that approximate it.\nThe error max defines the number of segments of this polygon.") );
470 fgSizer2->Add(
m_maxErrorTitle, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxLEFT, 5 );
473 m_maxErrorCtrl->SetToolTip(
_(
"The maximum allowed deviation between a true arc or circle and segments used to approximate it. Smaller values produce smoother graphics at the expense of performance.") );
475 fgSizer2->Add(
m_maxErrorCtrl, 0, wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND|wxLEFT|wxRIGHT, 5 );
479 fgSizer2->Add(
m_maxErrorUnits, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
482 fgSizer2->Add(
m_maxErrorWarning, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxRESERVE_SPACE_EVEN_IF_HIDDEN, 5 );
485 bSizerArcToPoly->Add( fgSizer2, 0, wxEXPAND|wxBOTTOM, 5 );
492 sbFeatureRules->Add( bSizerArcToPoly, 0, wxEXPAND, 5 );
504 bSizer9 =
new wxBoxSizer( wxHORIZONTAL );
507 bSizer9->Add(
m_filletBitmap, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
515 wxBoxSizer* bSizer111;
516 bSizer111 =
new wxBoxSizer( wxHORIZONTAL );
519 bSizer111->Add(
m_spokeBitmap, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
534 wxBoxSizer* bSizer11;
535 bSizer11 =
new wxBoxSizer( wxVERTICAL );
545 m_useHeightForLengthCalcs->SetToolTip(
_(
"When enabled, the distance between copper layers will be included in track length calculations for tracks with vias. When disabled, via stackup height is ignored.") );
550 sbFeatureRules->Add( bSizer11, 1, wxEXPAND, 5 );
553 bScrolledSizer->Add( sbFeatureRules, 0, wxEXPAND|wxRIGHT, 5 );
556 bScrolledSizer->Add( 0, 0, 1, wxEXPAND, 0 );
565 this->SetSizer( bMainSizer );
567 bMainSizer->Fit(
this );