12DIALOG_COPPER_ZONE_BASE::DIALOG_COPPER_ZONE_BASE( wxWindow* parent, wxWindowID
id,
const wxString& title,
const wxPoint& pos,
const wxSize& size,
long style ) :
DIALOG_SHIM( parent, id, title, pos, size, style )
14 this->SetSizeHints( wxDefaultSize, wxDefaultSize );
19 m_copperZoneInfo->SetShowHideEffects( wxSHOW_EFFECT_NONE, wxSHOW_EFFECT_NONE );
23 wxBoxSizer* m_OptionsBoxSizer;
24 m_OptionsBoxSizer =
new wxBoxSizer( wxHORIZONTAL );
26 wxStaticBoxSizer* sbSizer2;
27 sbSizer2 =
new wxStaticBoxSizer(
new wxStaticBox(
this, wxID_ANY,
_(
"Layer") ), wxVERTICAL );
29 sbSizer2->SetMinSize( wxSize( 180,-1 ) );
30 m_layers =
new wxDataViewListCtrl( sbSizer2->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, wxDV_NO_HEADER|wxBORDER_SIMPLE );
31 m_layers->SetMinSize( wxSize( 120,-1 ) );
33 sbSizer2->Add(
m_layers, 1, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
36 m_OptionsBoxSizer->Add( sbSizer2, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
38 wxStaticBoxSizer* sbSizer3;
39 sbSizer3 =
new wxStaticBoxSizer(
new wxStaticBox(
this, wxID_ANY,
_(
"Net") ), wxVERTICAL );
42 bSizer8 =
new wxBoxSizer( wxHORIZONTAL );
44 wxBoxSizer* bFilteringSizer;
45 bFilteringSizer =
new wxBoxSizer( wxHORIZONTAL );
48 m_ShowNetNameFilter->SetToolTip(
_(
"Pattern to filter net names in filtered list.\nOnly net names matching this pattern are displayed.") );
53 bFilteringSizer->Add( 0, 0, 1, wxEXPAND, 5 );
55 m_hideAutoGenNetNamesOpt =
new wxCheckBox( sbSizer3->GetStaticBox(), wxID_ANY,
_(
"Hide automatically generated net names"), wxDefaultPosition, wxDefaultSize, 0 );
60 bFilteringSizer->Add( 0, 0, 1, wxEXPAND, 5 );
62 m_sortByPadsOpt =
new wxCheckBox( sbSizer3->GetStaticBox(), wxID_ANY,
_(
"Sort nets by pad count"), wxDefaultPosition, wxDefaultSize, 0 );
63 bFilteringSizer->Add(
m_sortByPadsOpt, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT, 5 );
66 bSizer8->Add( bFilteringSizer, 1, wxEXPAND, 20 );
69 sbSizer3->Add( bSizer8, 1, wxEXPAND, 5 );
75 m_OptionsBoxSizer->Add( sbSizer3, 1, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
78 m_MainBoxSizer->Add( m_OptionsBoxSizer, 1, wxEXPAND|wxRIGHT|wxLEFT, 5 );
80 wxBoxSizer* bSizerMiddle;
81 bSizerMiddle =
new wxBoxSizer( wxHORIZONTAL );
83 wxBoxSizer* bLeftColumn;
84 bLeftColumn =
new wxBoxSizer( wxVERTICAL );
86 wxStaticBoxSizer* sbGeneral;
87 sbGeneral =
new wxStaticBoxSizer(
new wxStaticBox(
this, wxID_ANY,
_(
"General") ), wxHORIZONTAL );
89 wxFlexGridSizer* fgSizer1;
90 fgSizer1 =
new wxFlexGridSizer( 0, 2, 0, 0 );
91 fgSizer1->AddGrowableCol( 1 );
92 fgSizer1->SetFlexibleDirection( wxBOTH );
93 fgSizer1->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
95 m_zoneNameLabel =
new wxStaticText( sbGeneral->GetStaticBox(), wxID_ANY,
_(
"Zone name:"), wxDefaultPosition, wxDefaultSize, 0 );
97 m_zoneNameLabel->SetToolTip(
_(
"A unique name for this zone to identify it for DRC") );
101 m_tcZoneName =
new wxTextCtrl( sbGeneral->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
102 fgSizer1->Add(
m_tcZoneName, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 );
104 m_staticTextPriorityLevel =
new wxStaticText( sbGeneral->GetStaticBox(), wxID_ANY,
_(
"Zone priority level:"), wxDefaultPosition, wxDefaultSize, 0 );
106 m_staticTextPriorityLevel->SetToolTip(
_(
"Zones are filled by priority level, level 3 has higher priority than level 2.\nWhen a zone is inside another zone:\n* If its priority is higher, its outlines are removed from the other zone.\n* If its priority is equal, a DRC error is set.") );
111 fgSizer1->Add(
m_PriorityLevelCtrl, 0, wxEXPAND|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
114 sbGeneral->Add( fgSizer1, 1, wxEXPAND|wxBOTTOM, 5 );
117 bLeftColumn->Add( sbGeneral, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 10 );
119 wxStaticBoxSizer* m_ExportableSetupSizer;
120 m_ExportableSetupSizer =
new wxStaticBoxSizer(
new wxStaticBox(
this, wxID_ANY,
_(
"Shape") ), wxHORIZONTAL );
122 wxGridBagSizer* gbSizer1;
123 gbSizer1 =
new wxGridBagSizer( 5, 5 );
124 gbSizer1->SetFlexibleDirection( wxBOTH );
125 gbSizer1->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
127 m_cbLocked =
new wxCheckBox( m_ExportableSetupSizer->GetStaticBox(), wxID_ANY,
_(
"Locked"), wxDefaultPosition, wxDefaultSize, 0 );
128 gbSizer1->Add(
m_cbLocked, wxGBPosition( 0, 0 ), wxGBSpan( 1, 1 ), wxBOTTOM|wxRIGHT, 5 );
130 m_staticTextStyle =
new wxStaticText( m_ExportableSetupSizer->GetStaticBox(), wxID_ANY,
_(
"Outline display:"), wxDefaultPosition, wxDefaultSize, 0 );
132 gbSizer1->Add(
m_staticTextStyle, wxGBPosition( 1, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT, 5 );
134 wxString m_OutlineDisplayCtrlChoices[] = {
_(
"Line"),
_(
"Hatched"),
_(
"Fully hatched") };
135 int m_OutlineDisplayCtrlNChoices =
sizeof( m_OutlineDisplayCtrlChoices ) /
sizeof( wxString );
138 gbSizer1->Add(
m_OutlineDisplayCtrl, wxGBPosition( 1, 1 ), wxGBSpan( 1, 1 ), wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
140 m_stBorderHatchPitchText =
new wxStaticText( m_ExportableSetupSizer->GetStaticBox(), wxID_ANY,
_(
"Outline hatch pitch:"), wxDefaultPosition, wxDefaultSize, 0 );
142 gbSizer1->Add(
m_stBorderHatchPitchText, wxGBPosition( 2, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
145 gbSizer1->Add(
m_outlineHatchPitchCtrl, wxGBPosition( 2, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
147 m_outlineHatchUnits =
new wxStaticText( m_ExportableSetupSizer->GetStaticBox(), wxID_ANY,
_(
"mm"), wxDefaultPosition, wxDefaultSize, 0 );
149 gbSizer1->Add(
m_outlineHatchUnits, wxGBPosition( 2, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
151 m_staticline4 =
new wxStaticLine( m_ExportableSetupSizer->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
152 gbSizer1->Add(
m_staticline4, wxGBPosition( 3, 0 ), wxGBSpan( 1, 3 ), wxEXPAND | wxALL, 5 );
154 m_staticTextSmoothing =
new wxStaticText( m_ExportableSetupSizer->GetStaticBox(), wxID_ANY,
_(
"Corner smoothing:"), wxDefaultPosition, wxDefaultSize, 0 );
156 gbSizer1->Add(
m_staticTextSmoothing, wxGBPosition( 4, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
158 wxString m_cornerSmoothingChoiceChoices[] = {
_(
"None"),
_(
"Chamfer"),
_(
"Fillet") };
159 int m_cornerSmoothingChoiceNChoices =
sizeof( m_cornerSmoothingChoiceChoices ) /
sizeof( wxString );
162 gbSizer1->Add(
m_cornerSmoothingChoice, wxGBPosition( 4, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
164 m_cornerRadiusLabel =
new wxStaticText( m_ExportableSetupSizer->GetStaticBox(), wxID_ANY,
_(
"Chamfer distance:"), wxDefaultPosition, wxDefaultSize, 0 );
166 gbSizer1->Add(
m_cornerRadiusLabel, wxGBPosition( 5, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
169 gbSizer1->Add(
m_cornerRadiusCtrl, wxGBPosition( 5, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
171 m_cornerRadiusUnits =
new wxStaticText( m_ExportableSetupSizer->GetStaticBox(), wxID_ANY,
_(
"mm"), wxDefaultPosition, wxDefaultSize, 0 );
173 gbSizer1->Add(
m_cornerRadiusUnits, wxGBPosition( 5, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
176 gbSizer1->AddGrowableCol( 0 );
178 m_ExportableSetupSizer->Add( gbSizer1, 1, wxEXPAND|wxBOTTOM|wxRIGHT, 5 );
181 bLeftColumn->Add( m_ExportableSetupSizer, 1, wxEXPAND|wxLEFT|wxRIGHT|wxTOP, 10 );
184 bSizerMiddle->Add( bLeftColumn, 0, wxEXPAND, 5 );
186 wxBoxSizer* bMiddleColumn;
187 bMiddleColumn =
new wxBoxSizer( wxVERTICAL );
189 wxStaticBoxSizer* sbSizer5;
190 sbSizer5 =
new wxStaticBoxSizer(
new wxStaticBox(
this, wxID_ANY,
_(
"Electrical Properties") ), wxVERTICAL );
192 wxGridBagSizer* gbSizerSettings;
193 gbSizerSettings =
new wxGridBagSizer( 1, 1 );
194 gbSizerSettings->SetFlexibleDirection( wxBOTH );
195 gbSizerSettings->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
197 m_clearanceLabel =
new wxStaticText( sbSizer5->GetStaticBox(), wxID_ANY,
_(
"Clearance:"), wxDefaultPosition, wxDefaultSize, 0 );
199 m_clearanceLabel->SetToolTip(
_(
"Copper clearance for this zone (set to 0 to use the netclass clearance)") );
201 gbSizerSettings->Add(
m_clearanceLabel, wxGBPosition( 0, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxLEFT, 5 );
203 m_clearanceCtrl =
new wxTextCtrl( sbSizer5->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
204 gbSizerSettings->Add(
m_clearanceCtrl, wxGBPosition( 0, 1 ), wxGBSpan( 1, 1 ), wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 4 );
206 m_clearanceUnits =
new wxStaticText( sbSizer5->GetStaticBox(), wxID_ANY,
_(
"mm"), wxDefaultPosition, wxDefaultSize, 0 );
208 gbSizerSettings->Add(
m_clearanceUnits, wxGBPosition( 0, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT, 5 );
210 m_minWidthLabel =
new wxStaticText( sbSizer5->GetStaticBox(), wxID_ANY,
_(
"Minimum width:"), wxDefaultPosition, wxDefaultSize, 0 );
214 gbSizerSettings->Add(
m_minWidthLabel, wxGBPosition( 1, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxLEFT, 5 );
216 m_minWidthCtrl =
new wxTextCtrl( sbSizer5->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
217 gbSizerSettings->Add(
m_minWidthCtrl, wxGBPosition( 1, 1 ), wxGBSpan( 1, 1 ), wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 4 );
219 m_minWidthUnits =
new wxStaticText( sbSizer5->GetStaticBox(), wxID_ANY,
_(
"mm"), wxDefaultPosition, wxDefaultSize, 0 );
221 gbSizerSettings->Add(
m_minWidthUnits, wxGBPosition( 1, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT, 5 );
223 m_staticline2 =
new wxStaticLine( sbSizer5->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
224 gbSizerSettings->Add(
m_staticline2, wxGBPosition( 2, 0 ), wxGBSpan( 1, 3 ), wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT|wxTOP, 5 );
226 m_connectionLabel =
new wxStaticText( sbSizer5->GetStaticBox(), wxID_ANY,
_(
"Pad connections:"), wxDefaultPosition, wxDefaultSize, 0 );
228 m_connectionLabel->SetToolTip(
_(
"Default pad connection type to zone.\nThis setting can be overridden by local pad settings") );
230 gbSizerSettings->Add(
m_connectionLabel, wxGBPosition( 3, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT, 5 );
232 wxString m_PadInZoneOptChoices[] = {
_(
"Solid"),
_(
"Thermal reliefs"),
_(
"Reliefs for PTH"),
_(
"None") };
233 int m_PadInZoneOptNChoices =
sizeof( m_PadInZoneOptChoices ) /
sizeof( wxString );
234 m_PadInZoneOpt =
new wxChoice( sbSizer5->GetStaticBox(),
ID_M_PADINZONEOPT, wxDefaultPosition, wxDefaultSize, m_PadInZoneOptNChoices, m_PadInZoneOptChoices, 0 );
236 gbSizerSettings->Add(
m_PadInZoneOpt, wxGBPosition( 3, 1 ), wxGBSpan( 1, 1 ), wxEXPAND|wxTOP|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
238 m_antipadLabel =
new wxStaticText( sbSizer5->GetStaticBox(), wxID_ANY,
_(
"Thermal relief gap:"), wxDefaultPosition, wxDefaultSize, 0 );
240 m_antipadLabel->SetToolTip(
_(
"The distance that will be kept clear between the filled area of the zone and a pad connected by thermal relief spokes.") );
242 gbSizerSettings->Add(
m_antipadLabel, wxGBPosition( 4, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxLEFT|wxTOP, 4 );
245 m_antipadCtrl->SetToolTip(
_(
"Clearance between pads in the same net and filled areas.") );
247 gbSizerSettings->Add(
m_antipadCtrl, wxGBPosition( 4, 1 ), wxGBSpan( 1, 1 ), wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 4 );
249 m_antipadUnits =
new wxStaticText( sbSizer5->GetStaticBox(), wxID_ANY,
_(
"mm"), wxDefaultPosition, wxDefaultSize, 0 );
251 gbSizerSettings->Add(
m_antipadUnits, wxGBPosition( 4, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 );
253 m_spokeWidthLabel =
new wxStaticText( sbSizer5->GetStaticBox(), wxID_ANY,
_(
"Thermal spoke width:"), wxDefaultPosition, wxDefaultSize, 0 );
255 gbSizerSettings->Add(
m_spokeWidthLabel, wxGBPosition( 5, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxLEFT|wxTOP, 4 );
260 gbSizerSettings->Add(
m_spokeWidthCtrl, wxGBPosition( 5, 1 ), wxGBSpan( 1, 1 ), wxEXPAND|wxALL, 4 );
262 m_spokeWidthUnits =
new wxStaticText( sbSizer5->GetStaticBox(), wxID_ANY,
_(
"mm"), wxDefaultPosition, wxDefaultSize, 0 );
264 gbSizerSettings->Add(
m_spokeWidthUnits, wxGBPosition( 5, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
267 gbSizerSettings->AddGrowableCol( 1 );
269 sbSizer5->Add( gbSizerSettings, 0, wxEXPAND, 5 );
272 bMiddleColumn->Add( sbSizer5, 1, wxEXPAND|wxRIGHT|wxTOP, 10 );
275 bSizerMiddle->Add( bMiddleColumn, 1, wxEXPAND, 5 );
277 wxStaticBoxSizer* sbSizerZoneStyle;
278 sbSizerZoneStyle =
new wxStaticBoxSizer(
new wxStaticBox(
this, wxID_ANY,
_(
"Fill") ), wxVERTICAL );
280 wxGridBagSizer* gbSizer3;
281 gbSizer3 =
new wxGridBagSizer( 0, 0 );
282 gbSizer3->SetFlexibleDirection( wxBOTH );
283 gbSizer3->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
284 gbSizer3->SetEmptyCellSize( wxSize( -1,10 ) );
286 m_staticTextGridFillType =
new wxStaticText( sbSizerZoneStyle->GetStaticBox(), wxID_ANY,
_(
"Fill type:"), wxDefaultPosition, wxDefaultSize, 0 );
288 gbSizer3->Add(
m_staticTextGridFillType, wxGBPosition( 0, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
290 wxString m_GridStyleCtrlChoices[] = {
_(
"Solid fill"),
_(
"Hatch pattern") };
291 int m_GridStyleCtrlNChoices =
sizeof( m_GridStyleCtrlChoices ) /
sizeof( wxString );
292 m_GridStyleCtrl =
new wxChoice( sbSizerZoneStyle->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_GridStyleCtrlNChoices, m_GridStyleCtrlChoices, 0 );
294 gbSizer3->Add(
m_GridStyleCtrl, wxGBPosition( 0, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT|wxLEFT, 5 );
296 m_staticTextGrindOrient =
new wxStaticText( sbSizerZoneStyle->GetStaticBox(), wxID_ANY,
_(
"Orientation:"), wxDefaultPosition, wxDefaultSize, 0 );
298 gbSizer3->Add(
m_staticTextGrindOrient, wxGBPosition( 1, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxLEFT|wxTOP, 5 );
300 m_tcGridStyleOrientation =
new wxTextCtrl( sbSizerZoneStyle->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
301 gbSizer3->Add(
m_tcGridStyleOrientation, wxGBPosition( 1, 1 ), wxGBSpan( 1, 1 ), wxEXPAND|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
303 m_staticTextRotUnits =
new wxStaticText( sbSizerZoneStyle->GetStaticBox(), wxID_ANY,
_(
"deg"), wxDefaultPosition, wxDefaultSize, 0 );
305 gbSizer3->Add(
m_staticTextRotUnits, wxGBPosition( 1, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
307 m_staticTextStyleThickness =
new wxStaticText( sbSizerZoneStyle->GetStaticBox(), wxID_ANY,
_(
"Hatch width:"), wxDefaultPosition, wxDefaultSize, 0 );
309 gbSizer3->Add(
m_staticTextStyleThickness, wxGBPosition( 2, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxLEFT, 5 );
311 m_tcGridStyleThickness =
new wxTextCtrl( sbSizerZoneStyle->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
312 gbSizer3->Add(
m_tcGridStyleThickness, wxGBPosition( 2, 1 ), wxGBSpan( 1, 1 ), wxEXPAND|wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
314 m_GridStyleThicknessUnits =
new wxStaticText( sbSizerZoneStyle->GetStaticBox(), wxID_ANY,
_(
"mm"), wxDefaultPosition, wxDefaultSize, 0 );
316 gbSizer3->Add(
m_GridStyleThicknessUnits, wxGBPosition( 2, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT, 5 );
318 m_staticTextGridGap =
new wxStaticText( sbSizerZoneStyle->GetStaticBox(), wxID_ANY,
_(
"Hatch gap:"), wxDefaultPosition, wxDefaultSize, 0 );
320 gbSizer3->Add(
m_staticTextGridGap, wxGBPosition( 3, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxLEFT, 5 );
322 m_tcGridStyleGap =
new wxTextCtrl( sbSizerZoneStyle->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
323 gbSizer3->Add(
m_tcGridStyleGap, wxGBPosition( 3, 1 ), wxGBSpan( 1, 1 ), wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
325 m_GridStyleGapUnits =
new wxStaticText( sbSizerZoneStyle->GetStaticBox(), wxID_ANY,
_(
"mm"), wxDefaultPosition, wxDefaultSize, 0 );
327 gbSizer3->Add(
m_GridStyleGapUnits, wxGBPosition( 3, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT, 5 );
329 m_staticTextGridSmoothingLevel =
new wxStaticText( sbSizerZoneStyle->GetStaticBox(), wxID_ANY,
_(
"Smoothing effort:"), wxDefaultPosition, wxDefaultSize, 0 );
331 m_staticTextGridSmoothingLevel->SetToolTip(
_(
"Value of smoothing effort\n0 = no smoothing\n1 = chamfer\n2 = round corners\n3 = round corners (finer shape)") );
335 m_spinCtrlSmoothLevel =
new wxSpinCtrl( sbSizerZoneStyle->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 3, 0 );
336 gbSizer3->Add(
m_spinCtrlSmoothLevel, wxGBPosition( 4, 1 ), wxGBSpan( 1, 1 ), wxBOTTOM|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
338 m_staticTextGridSmootingVal =
new wxStaticText( sbSizerZoneStyle->GetStaticBox(), wxID_ANY,
_(
"Smoothing amount:"), wxDefaultPosition, wxDefaultSize, 0 );
340 m_staticTextGridSmootingVal->SetToolTip(
_(
"Ratio between smoothed corners size and the gap between lines\n0 = no smoothing\n1.0 = max radius/chamfer size (half gap value)") );
344 m_spinCtrlSmoothValue =
new wxSpinCtrlDouble( sbSizerZoneStyle->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 1, 0.1, 0.1 );
346 gbSizer3->Add(
m_spinCtrlSmoothValue, wxGBPosition( 5, 1 ), wxGBSpan( 1, 1 ), wxBOTTOM|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
348 m_staticline5 =
new wxStaticLine( sbSizerZoneStyle->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
349 gbSizer3->Add(
m_staticline5, wxGBPosition( 6, 0 ), wxGBSpan( 1, 3 ), wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT|wxTOP, 5 );
351 m_staticText40 =
new wxStaticText( sbSizerZoneStyle->GetStaticBox(), wxID_ANY,
_(
"Remove islands:"), wxDefaultPosition, wxDefaultSize, 0 );
353 m_staticText40->SetToolTip(
_(
"Choose what to do with unconnected copper islands") );
355 gbSizer3->Add(
m_staticText40, wxGBPosition( 7, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxLEFT|wxTOP, 5 );
357 wxString m_cbRemoveIslandsChoices[] = {
_(
"Always"),
_(
"Never"),
_(
"Below area limit") };
358 int m_cbRemoveIslandsNChoices =
sizeof( m_cbRemoveIslandsChoices ) /
sizeof( wxString );
359 m_cbRemoveIslands =
new wxChoice( sbSizerZoneStyle->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_cbRemoveIslandsNChoices, m_cbRemoveIslandsChoices, 0 );
361 gbSizer3->Add(
m_cbRemoveIslands, wxGBPosition( 7, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxALL, 5 );
363 m_islandThresholdLabel =
new wxStaticText( sbSizerZoneStyle->GetStaticBox(), wxID_ANY,
_(
"Minimum island size:"), wxDefaultPosition, wxDefaultSize, 0 );
368 gbSizer3->Add(
m_islandThresholdLabel, wxGBPosition( 8, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxLEFT, 5 );
370 m_tcIslandThreshold =
new wxTextCtrl( sbSizerZoneStyle->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
373 gbSizer3->Add(
m_tcIslandThreshold, wxGBPosition( 8, 1 ), wxGBSpan( 1, 1 ), wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
375 m_islandThresholdUnits =
new wxStaticText( sbSizerZoneStyle->GetStaticBox(), wxID_ANY,
_(
"mm"), wxDefaultPosition, wxDefaultSize, 0 );
379 gbSizer3->Add(
m_islandThresholdUnits, wxGBPosition( 8, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT, 5 );
382 gbSizer3->AddGrowableCol( 0 );
384 sbSizerZoneStyle->Add( gbSizer3, 1, wxEXPAND|wxBOTTOM, 5 );
387 bSizerMiddle->Add( sbSizerZoneStyle, 0, wxEXPAND|wxTOP|wxRIGHT, 10 );
392 wxBoxSizer* bSizerbottom;
393 bSizerbottom =
new wxBoxSizer( wxHORIZONTAL );
402 bSizerbottom->Add(
m_sdbSizer, 1, wxALL|wxEXPAND, 5 );
wxTextCtrl * m_tcGridStyleGap
wxStaticText * m_staticTextRotUnits
wxStaticLine * m_staticline4
wxStaticText * m_cornerRadiusUnits
wxCheckBox * m_sortByPadsOpt
wxChoice * m_cornerSmoothingChoice
DIALOG_COPPER_ZONE_BASE(wxWindow *parent, wxWindowID id=ID_DIALOG_COPPER_ZONE_BASE, const wxString &title=_("Copper Zone Properties"), const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxSize(-1,-1), long style=wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER)
wxStaticText * m_outlineHatchUnits
wxStaticText * m_zoneNameLabel
wxCheckBox * m_hideAutoGenNetNamesOpt
wxStaticText * m_staticTextGridFillType
wxSpinCtrl * m_PriorityLevelCtrl
wxBoxSizer * m_MainBoxSizer
wxStaticText * m_minWidthUnits
wxStaticText * m_connectionLabel
wxTextCtrl * m_tcGridStyleOrientation
wxTextCtrl * m_spokeWidthCtrl
wxListBox * m_ListNetNameSelection
virtual void OnClose(wxCloseEvent &event)
wxStaticText * m_stBorderHatchPitchText
wxStaticText * m_staticTextStyle
wxStaticText * m_minWidthLabel
wxStaticText * m_GridStyleGapUnits
wxStaticLine * m_staticline5
wxTextCtrl * m_antipadCtrl
wxStaticText * m_staticTextGridGap
wxTextCtrl * m_minWidthCtrl
virtual void OnUpdateUI(wxUpdateUIEvent &event)
virtual void OnButtonCancelClick(wxCommandEvent &event)
virtual void OnRemoveIslandsSelection(wxCommandEvent &event)
@ ID_M_CORNERSMOOTHINGCTRL
@ ID_M_OUTLINEAPPEARANCECTRL
@ wxID_COPPER_BRIDGE_VALUE
@ ID_TEXTCTRL_NETNAMES_FILTER
wxStaticText * m_antipadUnits
wxSpinCtrlDouble * m_spinCtrlSmoothValue
wxTextCtrl * m_tcIslandThreshold
wxTextCtrl * m_ShowNetNameFilter
wxTextCtrl * m_tcGridStyleThickness
virtual void OnNetSortingOptionSelected(wxCommandEvent &event)
virtual void OnStyleSelection(wxCommandEvent &event)
wxStaticText * m_staticTextGridSmootingVal
wxStaticText * m_antipadLabel
virtual void OnShowNetNameFilterChange(wxCommandEvent &event)
wxDataViewListCtrl * m_layers
wxChoice * m_GridStyleCtrl
wxTextCtrl * m_outlineHatchPitchCtrl
wxStaticText * m_cornerRadiusLabel
wxChoice * m_OutlineDisplayCtrl
wxChoice * m_cbRemoveIslands
wxStaticText * m_spokeWidthUnits
wxStaticText * m_clearanceLabel
wxStaticText * m_staticText40
wxStaticLine * m_staticline2
wxStaticText * m_GridStyleThicknessUnits
wxStaticText * m_staticTextGridSmoothingLevel
wxSpinCtrl * m_spinCtrlSmoothLevel
wxStaticText * m_islandThresholdLabel
virtual void OnLayerSelection(wxDataViewEvent &event)
wxStaticText * m_staticTextSmoothing
wxStaticText * m_islandThresholdUnits
wxTextCtrl * m_clearanceCtrl
virtual void OnNetSelectionUpdated(wxCommandEvent &event)
wxTextCtrl * m_cornerRadiusCtrl
wxStaticText * m_staticTextPriorityLevel
wxStaticText * m_staticTextGrindOrient
wxStaticText * m_clearanceUnits
wxChoice * m_PadInZoneOpt
wxButton * m_sdbSizerCancel
wxTextCtrl * m_tcZoneName
wxStaticText * m_staticTextStyleThickness
wxStdDialogButtonSizer * m_sdbSizer
~DIALOG_COPPER_ZONE_BASE()
wxStaticText * m_spokeWidthLabel
wxInfoBar * m_copperZoneInfo
Dialog helper object to sit in the inheritance tree between wxDialog and any class written by wxFormB...