KiCad PCB EDA Suite
Loading...
Searching...
No Matches
panel_zone_properties_base.cpp
Go to the documentation of this file.
1
2// C++ code generated with wxFormBuilder (version 4.2.1-0-g80c4cb6a)
3// http://www.wxformbuilder.org/
4//
5// PLEASE DO *NOT* EDIT THIS FILE!
7
9#include "widgets/wx_grid.h"
10#include "widgets/wx_infobar.h"
11
13
15
16PANEL_ZONE_PROPERTIES_BASE::PANEL_ZONE_PROPERTIES_BASE( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style, const wxString& name ) : wxPanel( parent, id, pos, size, style, name )
17{
18 wxBoxSizer* bMainSizer;
19 bMainSizer = new wxBoxSizer( wxHORIZONTAL );
20
21 wxBoxSizer* bSizer8;
22 bSizer8 = new wxBoxSizer( wxVERTICAL );
23
24 m_copperZoneInfoBar = new WX_INFOBAR( this );
25 m_copperZoneInfoBar->SetShowHideEffects( wxSHOW_EFFECT_NONE, wxSHOW_EFFECT_NONE );
26 m_copperZoneInfoBar->SetEffectDuration( 500 );
27 bSizer8->Add( m_copperZoneInfoBar, 0, wxEXPAND, 5 );
28
29 wxBoxSizer* bPropertiesSizer;
30 bPropertiesSizer = new wxBoxSizer( wxVERTICAL );
31
32 wxGridBagSizer* gbSizer8;
33 gbSizer8 = new wxGridBagSizer( 3, 5 );
34 gbSizer8->SetFlexibleDirection( wxBOTH );
35 gbSizer8->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
36
37 m_zoneNameLabel = new wxStaticText( this, wxID_ANY, _("Zone name:"), wxDefaultPosition, wxDefaultSize, 0 );
38 m_zoneNameLabel->Wrap( -1 );
39 m_zoneNameLabel->SetToolTip( _("A unique name for this zone, used to identify it in DRC rules") );
40
41 gbSizer8->Add( m_zoneNameLabel, wxGBPosition( 0, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
42
43 m_tcZoneName = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
44 m_tcZoneName->SetToolTip( _("A unique name for this zone, used to identify it in DRC rules") );
45
46 gbSizer8->Add( m_tcZoneName, wxGBPosition( 0, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
47
48 m_netLabel = new wxStaticText( this, wxID_ANY, _("Net name:"), wxDefaultPosition, wxDefaultSize, 0 );
49 m_netLabel->Wrap( -1 );
50 gbSizer8->Add( m_netLabel, wxGBPosition( 1, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
51
52 m_netSelector = new NET_SELECTOR( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
53 gbSizer8->Add( m_netSelector, wxGBPosition( 1, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
54
55
56 gbSizer8->AddGrowableCol( 1 );
57
58 bPropertiesSizer->Add( gbSizer8, 0, wxEXPAND|wxALL, 5 );
59
60 m_cbLocked = new wxCheckBox( this, wxID_ANY, _("Locked"), wxDefaultPosition, wxDefaultSize, 0 );
61 bPropertiesSizer->Add( m_cbLocked, 0, wxLEFT|wxRIGHT, 5 );
62
63 m_notebook = new wxNotebook( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
64 m_clearancesPanel = new wxPanel( m_notebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
65 wxBoxSizer* bClearancesSizer;
66 bClearancesSizer = new wxBoxSizer( wxVERTICAL );
67
68 wxGridBagSizer* gbSizerClearances;
69 gbSizerClearances = new wxGridBagSizer( 1, 1 );
70 gbSizerClearances->SetFlexibleDirection( wxBOTH );
71 gbSizerClearances->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
72 gbSizerClearances->SetEmptyCellSize( wxSize( -1,10 ) );
73
74 m_clearanceLabel = new wxStaticText( m_clearancesPanel, wxID_ANY, _("Clearance:"), wxDefaultPosition, wxDefaultSize, 0 );
75 m_clearanceLabel->Wrap( -1 );
76 m_clearanceLabel->SetToolTip( _("Copper clearance for this zone (set to 0 to use the netclass clearance)") );
77
78 gbSizerClearances->Add( m_clearanceLabel, wxGBPosition( 0, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 5 );
79
80 m_clearanceCtrl = new wxTextCtrl( m_clearancesPanel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
81 gbSizerClearances->Add( m_clearanceCtrl, wxGBPosition( 0, 1 ), wxGBSpan( 1, 1 ), wxEXPAND|wxALL, 4 );
82
83 m_clearanceUnits = new wxStaticText( m_clearancesPanel, wxID_ANY, _("mm"), wxDefaultPosition, wxDefaultSize, 0 );
84 m_clearanceUnits->Wrap( -1 );
85 gbSizerClearances->Add( m_clearanceUnits, wxGBPosition( 0, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
86
87 m_minWidthLabel = new wxStaticText( m_clearancesPanel, wxID_ANY, _("Minimum width:"), wxDefaultPosition, wxDefaultSize, 0 );
88 m_minWidthLabel->Wrap( -1 );
89 m_minWidthLabel->SetToolTip( _("Minimum thickness of filled areas.") );
90
91 gbSizerClearances->Add( m_minWidthLabel, wxGBPosition( 1, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxLEFT, 5 );
92
93 m_minWidthCtrl = new wxTextCtrl( m_clearancesPanel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
94 gbSizerClearances->Add( m_minWidthCtrl, wxGBPosition( 1, 1 ), wxGBSpan( 1, 1 ), wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 4 );
95
96 m_minWidthUnits = new wxStaticText( m_clearancesPanel, wxID_ANY, _("mm"), wxDefaultPosition, wxDefaultSize, 0 );
97 m_minWidthUnits->Wrap( -1 );
98 gbSizerClearances->Add( m_minWidthUnits, wxGBPosition( 1, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT, 5 );
99
100 m_connectionLabel = new wxStaticText( m_clearancesPanel, wxID_ANY, _("Pad connections:"), wxDefaultPosition, wxDefaultSize, 0 );
101 m_connectionLabel->Wrap( -1 );
102 m_connectionLabel->SetToolTip( _("Default pad connection type to zone.\nThis setting can be overridden by local pad settings") );
103
104 gbSizerClearances->Add( m_connectionLabel, wxGBPosition( 3, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT, 5 );
105
106 wxString m_PadInZoneOptChoices[] = { _("Solid"), _("Thermal reliefs"), _("Reliefs for PTH"), _("None") };
107 int m_PadInZoneOptNChoices = sizeof( m_PadInZoneOptChoices ) / sizeof( wxString );
108 m_PadInZoneOpt = new wxChoice( m_clearancesPanel, ID_M_PADINZONEOPT, wxDefaultPosition, wxDefaultSize, m_PadInZoneOptNChoices, m_PadInZoneOptChoices, 0 );
109 m_PadInZoneOpt->SetSelection( 0 );
110 gbSizerClearances->Add( m_PadInZoneOpt, wxGBPosition( 3, 1 ), wxGBSpan( 1, 1 ), wxEXPAND|wxTOP|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
111
112 m_antipadLabel = new wxStaticText( m_clearancesPanel, wxID_ANY, _("Thermal relief gap:"), wxDefaultPosition, wxDefaultSize, 0 );
113 m_antipadLabel->Wrap( -1 );
114 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.") );
115
116 gbSizerClearances->Add( m_antipadLabel, wxGBPosition( 4, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxLEFT|wxTOP, 4 );
117
118 m_antipadCtrl = new wxTextCtrl( m_clearancesPanel, wxID_ANTIPAD_SIZE, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
119 m_antipadCtrl->SetToolTip( _("Clearance between pads in the same net and filled areas.") );
120
121 gbSizerClearances->Add( m_antipadCtrl, wxGBPosition( 4, 1 ), wxGBSpan( 1, 1 ), wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 4 );
122
123 m_antipadUnits = new wxStaticText( m_clearancesPanel, wxID_ANY, _("mm"), wxDefaultPosition, wxDefaultSize, 0 );
124 m_antipadUnits->Wrap( -1 );
125 gbSizerClearances->Add( m_antipadUnits, wxGBPosition( 4, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 );
126
127 m_spokeWidthLabel = new wxStaticText( m_clearancesPanel, wxID_ANY, _("Thermal spoke width:"), wxDefaultPosition, wxDefaultSize, 0 );
128 m_spokeWidthLabel->Wrap( -1 );
129 gbSizerClearances->Add( m_spokeWidthLabel, wxGBPosition( 5, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxLEFT|wxTOP, 4 );
130
131 m_spokeWidthCtrl = new wxTextCtrl( m_clearancesPanel, wxID_COPPER_BRIDGE_VALUE, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
132 m_spokeWidthCtrl->SetToolTip( _("Width of copper in thermal reliefs.") );
133
134 gbSizerClearances->Add( m_spokeWidthCtrl, wxGBPosition( 5, 1 ), wxGBSpan( 1, 1 ), wxEXPAND|wxALL, 4 );
135
136 m_spokeWidthUnits = new wxStaticText( m_clearancesPanel, wxID_ANY, _("mm"), wxDefaultPosition, wxDefaultSize, 0 );
137 m_spokeWidthUnits->Wrap( -1 );
138 gbSizerClearances->Add( m_spokeWidthUnits, wxGBPosition( 5, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
139
140
141 gbSizerClearances->AddGrowableCol( 2 );
142
143 bClearancesSizer->Add( gbSizerClearances, 0, wxALL, 5 );
144
145
146 m_clearancesPanel->SetSizer( bClearancesSizer );
147 m_clearancesPanel->Layout();
148 bClearancesSizer->Fit( m_clearancesPanel );
149 m_notebook->AddPage( m_clearancesPanel, _("Clearances && Pad Connections"), true );
150 m_displayOverridesPanel = new wxPanel( m_notebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
151 wxBoxSizer* bDisplayOverridesSizer;
152 bDisplayOverridesSizer = new wxBoxSizer( wxVERTICAL );
153
154 wxGridBagSizer* gbSizerDisplayOverrides;
155 gbSizerDisplayOverrides = new wxGridBagSizer( 5, 5 );
156 gbSizerDisplayOverrides->SetFlexibleDirection( wxBOTH );
157 gbSizerDisplayOverrides->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
158
159 m_staticTextStyle = new wxStaticText( m_displayOverridesPanel, wxID_ANY, _("Outline display:"), wxDefaultPosition, wxDefaultSize, 0 );
160 m_staticTextStyle->Wrap( -1 );
161 gbSizerDisplayOverrides->Add( m_staticTextStyle, wxGBPosition( 0, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT, 5 );
162
163 wxString m_OutlineDisplayCtrlChoices[] = { _("Line"), _("Hatched"), _("Fully hatched") };
164 int m_OutlineDisplayCtrlNChoices = sizeof( m_OutlineDisplayCtrlChoices ) / sizeof( wxString );
165 m_OutlineDisplayCtrl = new wxChoice( m_displayOverridesPanel, ID_M_OUTLINEAPPEARANCECTRL, wxDefaultPosition, wxDefaultSize, m_OutlineDisplayCtrlNChoices, m_OutlineDisplayCtrlChoices, 0 );
166 m_OutlineDisplayCtrl->SetSelection( 0 );
167 gbSizerDisplayOverrides->Add( m_OutlineDisplayCtrl, wxGBPosition( 0, 1 ), wxGBSpan( 1, 1 ), wxEXPAND|wxALIGN_CENTER_VERTICAL|wxTOP, 5 );
168
169 m_stBorderHatchPitchText = new wxStaticText( m_displayOverridesPanel, wxID_ANY, _("Outline hatch pitch:"), wxDefaultPosition, wxDefaultSize, 0 );
170 m_stBorderHatchPitchText->Wrap( -1 );
171 gbSizerDisplayOverrides->Add( m_stBorderHatchPitchText, wxGBPosition( 1, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
172
173 m_outlineHatchPitchCtrl = new wxTextCtrl( m_displayOverridesPanel, ID_M_CORNERSMOOTHINGCTRL, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
174 gbSizerDisplayOverrides->Add( m_outlineHatchPitchCtrl, wxGBPosition( 1, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
175
176 m_outlineHatchUnits = new wxStaticText( m_displayOverridesPanel, wxID_ANY, _("mm"), wxDefaultPosition, wxDefaultSize, 0 );
177 m_outlineHatchUnits->Wrap( -1 );
178 gbSizerDisplayOverrides->Add( m_outlineHatchUnits, wxGBPosition( 1, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
179
180
181 gbSizerDisplayOverrides->AddGrowableCol( 2 );
182
183 bDisplayOverridesSizer->Add( gbSizerDisplayOverrides, 0, wxALL, 5 );
184
185
186 m_displayOverridesPanel->SetSizer( bDisplayOverridesSizer );
187 m_displayOverridesPanel->Layout();
188 bDisplayOverridesSizer->Fit( m_displayOverridesPanel );
189 m_notebook->AddPage( m_displayOverridesPanel, _("Display Overrides"), false );
190 m_hatchedFillPanel = new wxPanel( m_notebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
191 wxBoxSizer* bHatchedFillSizer;
192 bHatchedFillSizer = new wxBoxSizer( wxHORIZONTAL );
193
194 wxGridBagSizer* gbSizerHatchedFill;
195 gbSizerHatchedFill = new wxGridBagSizer( 0, 0 );
196 gbSizerHatchedFill->SetFlexibleDirection( wxBOTH );
197 gbSizerHatchedFill->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
198 gbSizerHatchedFill->SetEmptyCellSize( wxSize( -1,10 ) );
199
200 m_cbHatched = new wxCheckBox( m_hatchedFillPanel, wxID_ANY, _("Hatched fill"), wxDefaultPosition, wxDefaultSize, 0 );
201 m_cbHatched->SetValue(true);
202 gbSizerHatchedFill->Add( m_cbHatched, wxGBPosition( 0, 0 ), wxGBSpan( 1, 1 ), wxLEFT|wxRIGHT, 5 );
203
204 m_staticTextGrindOrient = new wxStaticText( m_hatchedFillPanel, wxID_ANY, _("Orientation:"), wxDefaultPosition, wxDefaultSize, 0 );
205 m_staticTextGrindOrient->Wrap( -1 );
206 gbSizerHatchedFill->Add( m_staticTextGrindOrient, wxGBPosition( 1, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxLEFT|wxTOP, 5 );
207
208 m_tcGridStyleOrientation = new wxTextCtrl( m_hatchedFillPanel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
209 gbSizerHatchedFill->Add( m_tcGridStyleOrientation, wxGBPosition( 1, 1 ), wxGBSpan( 1, 1 ), wxEXPAND|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
210
211 m_staticTextRotUnits = new wxStaticText( m_hatchedFillPanel, wxID_ANY, _("deg"), wxDefaultPosition, wxDefaultSize, 0 );
212 m_staticTextRotUnits->Wrap( -1 );
213 gbSizerHatchedFill->Add( m_staticTextRotUnits, wxGBPosition( 1, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
214
215 m_staticTextStyleThickness = new wxStaticText( m_hatchedFillPanel, wxID_ANY, _("Hatch width:"), wxDefaultPosition, wxDefaultSize, 0 );
216 m_staticTextStyleThickness->Wrap( -1 );
217 gbSizerHatchedFill->Add( m_staticTextStyleThickness, wxGBPosition( 2, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxLEFT, 5 );
218
219 m_tcGridStyleThickness = new wxTextCtrl( m_hatchedFillPanel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
220 gbSizerHatchedFill->Add( m_tcGridStyleThickness, wxGBPosition( 2, 1 ), wxGBSpan( 1, 1 ), wxEXPAND|wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
221
222 m_GridStyleThicknessUnits = new wxStaticText( m_hatchedFillPanel, wxID_ANY, _("mm"), wxDefaultPosition, wxDefaultSize, 0 );
223 m_GridStyleThicknessUnits->Wrap( -1 );
224 gbSizerHatchedFill->Add( m_GridStyleThicknessUnits, wxGBPosition( 2, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT, 5 );
225
226 m_staticTextGridGap = new wxStaticText( m_hatchedFillPanel, wxID_ANY, _("Hatch gap:"), wxDefaultPosition, wxDefaultSize, 0 );
227 m_staticTextGridGap->Wrap( -1 );
228 gbSizerHatchedFill->Add( m_staticTextGridGap, wxGBPosition( 3, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxLEFT, 5 );
229
230 m_tcGridStyleGap = new wxTextCtrl( m_hatchedFillPanel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
231 gbSizerHatchedFill->Add( m_tcGridStyleGap, wxGBPosition( 3, 1 ), wxGBSpan( 1, 1 ), wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
232
233 m_GridStyleGapUnits = new wxStaticText( m_hatchedFillPanel, wxID_ANY, _("mm"), wxDefaultPosition, wxDefaultSize, 0 );
234 m_GridStyleGapUnits->Wrap( -1 );
235 gbSizerHatchedFill->Add( m_GridStyleGapUnits, wxGBPosition( 3, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT, 5 );
236
237 m_staticTextGridSmoothingLevel = new wxStaticText( m_hatchedFillPanel, wxID_ANY, _("Smoothing effort:"), wxDefaultPosition, wxDefaultSize, 0 );
239 m_staticTextGridSmoothingLevel->SetToolTip( _("Value of smoothing effort\n0 = no smoothing\n1 = chamfer\n2 = round corners\n3 = round corners (finer shape)") );
240
241 gbSizerHatchedFill->Add( m_staticTextGridSmoothingLevel, wxGBPosition( 4, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxLEFT, 5 );
242
243 m_spinCtrlSmoothLevel = new wxSpinCtrl( m_hatchedFillPanel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 3, 0 );
244 gbSizerHatchedFill->Add( m_spinCtrlSmoothLevel, wxGBPosition( 4, 1 ), wxGBSpan( 1, 1 ), wxBOTTOM|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
245
246 m_staticTextGridSmootingVal = new wxStaticText( m_hatchedFillPanel, wxID_ANY, _("Smoothing amount:"), wxDefaultPosition, wxDefaultSize, 0 );
247 m_staticTextGridSmootingVal->Wrap( -1 );
248 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)") );
249
250 gbSizerHatchedFill->Add( m_staticTextGridSmootingVal, wxGBPosition( 5, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxLEFT, 5 );
251
252 m_spinCtrlSmoothValue = new wxSpinCtrlDouble( m_hatchedFillPanel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 1, 0.1, 0.1 );
253 m_spinCtrlSmoothValue->SetDigits( 2 );
254 gbSizerHatchedFill->Add( m_spinCtrlSmoothValue, wxGBPosition( 5, 1 ), wxGBSpan( 1, 1 ), wxBOTTOM|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
255
256
257 gbSizerHatchedFill->AddGrowableCol( 2 );
258
259 bHatchedFillSizer->Add( gbSizerHatchedFill, 0, wxALL, 5 );
260
261 wxBoxSizer* bSizerOffsetOverrides;
262 bSizerOffsetOverrides = new wxBoxSizer( wxVERTICAL );
263
264 m_offsetOverridesLabel = new wxStaticText( m_hatchedFillPanel, wxID_ANY, _("Hatch offset overrides:"), wxDefaultPosition, wxDefaultSize, 0 );
265 m_offsetOverridesLabel->Wrap( -1 );
266 bSizerOffsetOverrides->Add( m_offsetOverridesLabel, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
267
268
269 bSizerOffsetOverrides->Add( 0, 2, 0, 0, 5 );
270
271 m_layerSpecificOverrides = new WX_GRID( m_hatchedFillPanel, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
272
273 // Grid
274 m_layerSpecificOverrides->CreateGrid( 0, 3 );
275 m_layerSpecificOverrides->EnableEditing( true );
276 m_layerSpecificOverrides->EnableGridLines( true );
277 m_layerSpecificOverrides->EnableDragGridSize( false );
278 m_layerSpecificOverrides->SetMargins( 0, 0 );
279
280 // Columns
281 m_layerSpecificOverrides->SetColSize( 0, 90 );
282 m_layerSpecificOverrides->SetColSize( 1, 90 );
283 m_layerSpecificOverrides->SetColSize( 2, 90 );
284 m_layerSpecificOverrides->EnableDragColMove( false );
285 m_layerSpecificOverrides->EnableDragColSize( true );
286 m_layerSpecificOverrides->SetColLabelValue( 0, _("Layer") );
287 m_layerSpecificOverrides->SetColLabelValue( 1, _("X Offset") );
288 m_layerSpecificOverrides->SetColLabelValue( 2, _("Y Offset") );
289 m_layerSpecificOverrides->SetColLabelSize( 22 );
290 m_layerSpecificOverrides->SetColLabelAlignment( wxALIGN_CENTER, wxALIGN_CENTER );
291
292 // Rows
293 m_layerSpecificOverrides->EnableDragRowSize( true );
294 m_layerSpecificOverrides->SetRowLabelSize( 0 );
295 m_layerSpecificOverrides->SetRowLabelAlignment( wxALIGN_CENTER, wxALIGN_CENTER );
296
297 // Label Appearance
298
299 // Cell Defaults
300 m_layerSpecificOverrides->SetDefaultCellAlignment( wxALIGN_LEFT, wxALIGN_TOP );
301 bSizerOffsetOverrides->Add( m_layerSpecificOverrides, 1, wxEXPAND|wxRIGHT|wxLEFT, 5 );
302
303 wxBoxSizer* bButtonSizer;
304 bButtonSizer = new wxBoxSizer( wxHORIZONTAL );
305
306 m_bpAddCustomLayer = new STD_BITMAP_BUTTON( m_hatchedFillPanel, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW|0 );
307 bButtonSizer->Add( m_bpAddCustomLayer, 0, wxLEFT|wxRIGHT, 5 );
308
309
310 bButtonSizer->Add( 20, 0, 0, wxEXPAND, 5 );
311
312 m_bpDeleteCustomLayer = new STD_BITMAP_BUTTON( m_hatchedFillPanel, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW|0 );
313 bButtonSizer->Add( m_bpDeleteCustomLayer, 0, wxRIGHT, 5 );
314
315
316 bSizerOffsetOverrides->Add( bButtonSizer, 0, wxEXPAND|wxTOP|wxBOTTOM, 5 );
317
318
319 bHatchedFillSizer->Add( bSizerOffsetOverrides, 1, wxEXPAND|wxRIGHT|wxLEFT, 5 );
320
321
322 m_hatchedFillPanel->SetSizer( bHatchedFillSizer );
323 m_hatchedFillPanel->Layout();
324 bHatchedFillSizer->Fit( m_hatchedFillPanel );
325 m_notebook->AddPage( m_hatchedFillPanel, _("Hatched Fill"), false );
326
327 bPropertiesSizer->Add( m_notebook, 1, wxEXPAND|wxALL, 5 );
328
329 gbSizerGeneralProps = new wxGridBagSizer( 5, 5 );
330 gbSizerGeneralProps->SetFlexibleDirection( wxHORIZONTAL );
331 gbSizerGeneralProps->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
332
333 m_cornerSmoothingLabel = new wxStaticText( this, wxID_ANY, _("Corner smoothing:"), wxDefaultPosition, wxDefaultSize, 0 );
334 m_cornerSmoothingLabel->Wrap( -1 );
335 gbSizerGeneralProps->Add( m_cornerSmoothingLabel, wxGBPosition( 0, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
336
337 wxString m_cornerSmoothingChoiceChoices[] = { _("None"), _("Chamfer"), _("Fillet") };
338 int m_cornerSmoothingChoiceNChoices = sizeof( m_cornerSmoothingChoiceChoices ) / sizeof( wxString );
339 m_cornerSmoothingChoice = new wxChoice( this, ID_CORNER_SMOOTHING, wxDefaultPosition, wxDefaultSize, m_cornerSmoothingChoiceNChoices, m_cornerSmoothingChoiceChoices, 0 );
340 m_cornerSmoothingChoice->SetSelection( 1 );
341 gbSizerGeneralProps->Add( m_cornerSmoothingChoice, wxGBPosition( 0, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxEXPAND, 2 );
342
343 m_cornerRadiusLabel = new wxStaticText( this, wxID_ANY, _("Radius:"), wxDefaultPosition, wxDefaultSize, 0 );
344 m_cornerRadiusLabel->Wrap( -1 );
345 gbSizerGeneralProps->Add( m_cornerRadiusLabel, wxGBPosition( 0, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxLEFT|wxRESERVE_SPACE_EVEN_IF_HIDDEN, 10 );
346
347 m_cornerRadiusCtrl = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
348 gbSizerGeneralProps->Add( m_cornerRadiusCtrl, wxGBPosition( 0, 3 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRESERVE_SPACE_EVEN_IF_HIDDEN, 5 );
349
350 m_cornerRadiusUnits = new wxStaticText( this, wxID_ANY, _("mm"), wxDefaultPosition, wxDefaultSize, 0 );
351 m_cornerRadiusUnits->Wrap( -1 );
352 gbSizerGeneralProps->Add( m_cornerRadiusUnits, wxGBPosition( 0, 4 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxRESERVE_SPACE_EVEN_IF_HIDDEN, 5 );
353
354 m_removeIslandsLabel = new wxStaticText( this, wxID_ANY, _("Remove islands:"), wxDefaultPosition, wxDefaultSize, 0 );
355 m_removeIslandsLabel->Wrap( -1 );
356 m_removeIslandsLabel->SetToolTip( _("Choose what to do with unconnected copper islands") );
357
358 gbSizerGeneralProps->Add( m_removeIslandsLabel, wxGBPosition( 1, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
359
360 wxString m_cbRemoveIslandsChoices[] = { _("Always"), _("Never"), _("Below area limit") };
361 int m_cbRemoveIslandsNChoices = sizeof( m_cbRemoveIslandsChoices ) / sizeof( wxString );
362 m_cbRemoveIslands = new wxChoice( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_cbRemoveIslandsNChoices, m_cbRemoveIslandsChoices, 0 );
363 m_cbRemoveIslands->SetSelection( 0 );
364 gbSizerGeneralProps->Add( m_cbRemoveIslands, wxGBPosition( 1, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxEXPAND, 2 );
365
366 m_islandThresholdLabel = new wxStaticText( this, wxID_ANY, _("Area limit:"), wxDefaultPosition, wxDefaultSize, 0 );
367 m_islandThresholdLabel->Wrap( -1 );
368 m_islandThresholdLabel->SetToolTip( _("Isolated islands smaller than this will be removed") );
369
370 gbSizerGeneralProps->Add( m_islandThresholdLabel, wxGBPosition( 1, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxLEFT|wxRESERVE_SPACE_EVEN_IF_HIDDEN, 10 );
371
372 m_tcIslandThreshold = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
373 gbSizerGeneralProps->Add( m_tcIslandThreshold, wxGBPosition( 1, 3 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRESERVE_SPACE_EVEN_IF_HIDDEN, 5 );
374
375 m_islandThresholdUnits = new wxStaticText( this, wxID_ANY, _("mm"), wxDefaultPosition, wxDefaultSize, 0 );
376 m_islandThresholdUnits->Wrap( -1 );
377 gbSizerGeneralProps->Add( m_islandThresholdUnits, wxGBPosition( 1, 4 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxRESERVE_SPACE_EVEN_IF_HIDDEN, 5 );
378
379
380 gbSizerGeneralProps->AddGrowableCol( 1 );
381 gbSizerGeneralProps->AddGrowableCol( 3 );
382
383 bPropertiesSizer->Add( gbSizerGeneralProps, 0, wxALL|wxEXPAND, 10 );
384
385
386 bSizer8->Add( bPropertiesSizer, 1, wxEXPAND, 5 );
387
388
389 bMainSizer->Add( bSizer8, 1, wxEXPAND, 5 );
390
391
392 this->SetSizer( bMainSizer );
393 this->Layout();
394 bMainSizer->Fit( this );
395
396 // Connect Events
397 m_tcZoneName->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PANEL_ZONE_PROPERTIES_BASE::OnZoneNameChanged ), NULL, this );
398 m_cbHatched->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( PANEL_ZONE_PROPERTIES_BASE::onHatched ), NULL, this );
399 m_bpAddCustomLayer->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PANEL_ZONE_PROPERTIES_BASE::OnAddLayerItem ), NULL, this );
400 m_bpDeleteCustomLayer->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PANEL_ZONE_PROPERTIES_BASE::OnDeleteLayerItem ), NULL, this );
401 m_cornerSmoothingChoice->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PANEL_ZONE_PROPERTIES_BASE::OnCornerSmoothingSelection ), NULL, this );
402 m_cbRemoveIslands->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PANEL_ZONE_PROPERTIES_BASE::OnRemoveIslandsSelection ), NULL, this );
403}
404
406{
407 // Disconnect Events
408 m_tcZoneName->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PANEL_ZONE_PROPERTIES_BASE::OnZoneNameChanged ), NULL, this );
409 m_cbHatched->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( PANEL_ZONE_PROPERTIES_BASE::onHatched ), NULL, this );
410 m_bpAddCustomLayer->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PANEL_ZONE_PROPERTIES_BASE::OnAddLayerItem ), NULL, this );
411 m_bpDeleteCustomLayer->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PANEL_ZONE_PROPERTIES_BASE::OnDeleteLayerItem ), NULL, this );
412 m_cornerSmoothingChoice->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PANEL_ZONE_PROPERTIES_BASE::OnCornerSmoothingSelection ), NULL, this );
413 m_cbRemoveIslands->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PANEL_ZONE_PROPERTIES_BASE::OnRemoveIslandsSelection ), NULL, this );
414
415}
const char * name
PANEL_ZONE_PROPERTIES_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)
virtual void OnZoneNameChanged(wxCommandEvent &event)
virtual void onHatched(wxCommandEvent &event)
virtual void OnAddLayerItem(wxCommandEvent &event)
virtual void OnDeleteLayerItem(wxCommandEvent &event)
virtual void OnRemoveIslandsSelection(wxCommandEvent &event)
virtual void OnCornerSmoothingSelection(wxCommandEvent &event)
A bitmap button widget that behaves like a standard dialog button except with an icon.
A modified version of the wxInfoBar class that allows us to:
Definition wx_infobar.h:77
#define _(s)