KiCad PCB EDA Suite
dialog_edit_footprint_for_BoardEditor_base.cpp
Go to the documentation of this file.
1 // C++ code generated with wxFormBuilder (version Nov 10 2018)
3 // http://www.wxformbuilder.org/
4 //
5 // PLEASE DO *NOT* EDIT THIS FILE!
7 
9 #include "widgets/wx_grid.h"
10 
12 
14 
15 DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::DIALOG_FOOTPRINT_BOARD_EDITOR_BASE( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : DIALOG_SHIM( parent, id, title, pos, size, style )
16 {
17  this->SetSizeHints( wxDefaultSize, wxDefaultSize );
18 
19  m_GeneralBoxSizer = new wxBoxSizer( wxVERTICAL );
20 
21  m_NoteBook = new wxNotebook( this, ID_NOTEBOOK, wxDefaultPosition, wxDefaultSize, 0 );
22  m_PanelGeneral = new wxPanel( m_NoteBook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
23  wxBoxSizer* m_PanelPropertiesBoxSizer;
24  m_PanelPropertiesBoxSizer = new wxBoxSizer( wxVERTICAL );
25 
26  wxStaticBoxSizer* sbSizerTexts;
27  sbSizerTexts = new wxStaticBoxSizer( new wxStaticBox( m_PanelGeneral, wxID_ANY, wxEmptyString ), wxVERTICAL );
28 
29  m_itemsGrid = new WX_GRID( sbSizerTexts->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxSize( -1,-1 ), 0 );
30 
31  // Grid
32  m_itemsGrid->CreateGrid( 2, 11 );
33  m_itemsGrid->EnableEditing( true );
34  m_itemsGrid->EnableGridLines( true );
35  m_itemsGrid->EnableDragGridSize( false );
36  m_itemsGrid->SetMargins( 0, 0 );
37 
38  // Columns
39  m_itemsGrid->SetColSize( 0, 124 );
40  m_itemsGrid->SetColSize( 1, 60 );
41  m_itemsGrid->SetColSize( 2, 110 );
42  m_itemsGrid->SetColSize( 3, 110 );
43  m_itemsGrid->SetColSize( 4, 110 );
44  m_itemsGrid->SetColSize( 5, 60 );
45  m_itemsGrid->SetColSize( 6, 110 );
46  m_itemsGrid->SetColSize( 7, 110 );
47  m_itemsGrid->SetColSize( 8, 110 );
48  m_itemsGrid->SetColSize( 9, 110 );
49  m_itemsGrid->SetColSize( 10, 110 );
50  m_itemsGrid->EnableDragColMove( false );
51  m_itemsGrid->EnableDragColSize( true );
53  m_itemsGrid->SetColLabelValue( 0, _("Text Items") );
54  m_itemsGrid->SetColLabelValue( 1, _("Show") );
55  m_itemsGrid->SetColLabelValue( 2, _("Width") );
56  m_itemsGrid->SetColLabelValue( 3, _("Height") );
57  m_itemsGrid->SetColLabelValue( 4, _("Thickness") );
58  m_itemsGrid->SetColLabelValue( 5, _("Italic") );
59  m_itemsGrid->SetColLabelValue( 6, _("Layer") );
60  m_itemsGrid->SetColLabelValue( 7, _("Orientation") );
61  m_itemsGrid->SetColLabelValue( 8, _("Keep Upright") );
62  m_itemsGrid->SetColLabelValue( 9, _("X Offset") );
63  m_itemsGrid->SetColLabelValue( 10, _("Y Offset") );
64  m_itemsGrid->SetColLabelAlignment( wxALIGN_CENTER, wxALIGN_CENTER );
65 
66  // Rows
67  m_itemsGrid->EnableDragRowSize( false );
68  m_itemsGrid->SetRowLabelSize( 100 );
69  m_itemsGrid->SetRowLabelValue( 0, _("Reference") );
70  m_itemsGrid->SetRowLabelValue( 1, _("Value") );
71  m_itemsGrid->SetRowLabelAlignment( wxALIGN_LEFT, wxALIGN_CENTER );
72 
73  // Label Appearance
74  m_itemsGrid->SetLabelFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
75 
76  // Cell Defaults
77  m_itemsGrid->SetDefaultCellAlignment( wxALIGN_LEFT, wxALIGN_TOP );
78  m_itemsGrid->SetMinSize( wxSize( 800,140 ) );
79 
80  sbSizerTexts->Add( m_itemsGrid, 1, wxEXPAND|wxBOTTOM, 5 );
81 
82  wxBoxSizer* bButtonSize;
83  bButtonSize = new wxBoxSizer( wxHORIZONTAL );
84 
85  m_bpAdd = new wxBitmapButton( sbSizerTexts->GetStaticBox(), wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW|0 );
86  m_bpAdd->SetMinSize( wxSize( 30,29 ) );
87 
88  bButtonSize->Add( m_bpAdd, 0, wxRIGHT, 5 );
89 
90 
91  bButtonSize->Add( 0, 0, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 );
92 
93  m_bpDelete = new wxBitmapButton( sbSizerTexts->GetStaticBox(), wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW|0 );
94  m_bpDelete->SetMinSize( wxSize( 30,29 ) );
95 
96  bButtonSize->Add( m_bpDelete, 0, wxRIGHT|wxLEFT, 5 );
97 
98 
99  sbSizerTexts->Add( bButtonSize, 0, wxEXPAND, 5 );
100 
101 
102  m_PanelPropertiesBoxSizer->Add( sbSizerTexts, 1, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
103 
104  wxBoxSizer* bSizerProperties;
105  bSizerProperties = new wxBoxSizer( wxHORIZONTAL );
106 
107  bSizerLeft = new wxBoxSizer( wxVERTICAL );
108 
109 
110  bSizerLeft->Add( 0, 0, 0, wxEXPAND|wxTOP, 5 );
111 
112  wxFlexGridSizer* fgSizerPos;
113  fgSizerPos = new wxFlexGridSizer( 2, 3, 4, 0 );
114  fgSizerPos->AddGrowableCol( 1 );
115  fgSizerPos->AddGrowableRow( 0 );
116  fgSizerPos->AddGrowableRow( 1 );
117  fgSizerPos->SetFlexibleDirection( wxHORIZONTAL );
118  fgSizerPos->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
119 
120  m_XPosLabel = new wxStaticText( m_PanelGeneral, wxID_ANY, _("Position X:"), wxDefaultPosition, wxDefaultSize, 0 );
121  m_XPosLabel->Wrap( -1 );
122  fgSizerPos->Add( m_XPosLabel, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
123 
124  m_ModPositionX = new wxTextCtrl( m_PanelGeneral, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
125  fgSizerPos->Add( m_ModPositionX, 1, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
126 
127  m_XPosUnit = new wxStaticText( m_PanelGeneral, wxID_ANY, _("unit"), wxDefaultPosition, wxDefaultSize, 0 );
128  m_XPosUnit->Wrap( -1 );
129  fgSizerPos->Add( m_XPosUnit, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT, 5 );
130 
131  m_YPosLabel = new wxStaticText( m_PanelGeneral, wxID_ANY, _("Position Y:"), wxDefaultPosition, wxDefaultSize, 0 );
132  m_YPosLabel->Wrap( -1 );
133  fgSizerPos->Add( m_YPosLabel, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
134 
135  m_ModPositionY = new wxTextCtrl( m_PanelGeneral, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
136  fgSizerPos->Add( m_ModPositionY, 1, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
137 
138  m_YPosUnit = new wxStaticText( m_PanelGeneral, wxID_ANY, _("unit"), wxDefaultPosition, wxDefaultSize, 0 );
139  m_YPosUnit->Wrap( -1 );
140  fgSizerPos->Add( m_YPosUnit, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT, 5 );
141 
142 
143  bSizerLeft->Add( fgSizerPos, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
144 
145 
146  bSizerLeft->Add( 0, 0, 0, wxEXPAND|wxTOP|wxBOTTOM, 3 );
147 
148  wxStaticBoxSizer* sbOrientationSizer;
149  sbOrientationSizer = new wxStaticBoxSizer( new wxStaticBox( m_PanelGeneral, wxID_ANY, _("Orientation") ), wxVERTICAL );
150 
151  wxGridBagSizer* gbSizer1;
152  gbSizer1 = new wxGridBagSizer( 4, 0 );
153  gbSizer1->SetFlexibleDirection( wxBOTH );
154  gbSizer1->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
155 
156  m_Orient0 = new wxRadioButton( sbOrientationSizer->GetStaticBox(), wxID_ANY, _("0.0"), wxDefaultPosition, wxDefaultSize, 0 );
157  gbSizer1->Add( m_Orient0, wxGBPosition( 0, 0 ), wxGBSpan( 1, 2 ), 0, 5 );
158 
159  m_Orient90 = new wxRadioButton( sbOrientationSizer->GetStaticBox(), wxID_ANY, _("90.0"), wxDefaultPosition, wxDefaultSize, 0 );
160  gbSizer1->Add( m_Orient90, wxGBPosition( 1, 0 ), wxGBSpan( 1, 2 ), 0, 5 );
161 
162  m_Orient270 = new wxRadioButton( sbOrientationSizer->GetStaticBox(), wxID_ANY, _("-90.0"), wxDefaultPosition, wxDefaultSize, 0 );
163  gbSizer1->Add( m_Orient270, wxGBPosition( 2, 0 ), wxGBSpan( 1, 2 ), 0, 5 );
164 
165  m_Orient180 = new wxRadioButton( sbOrientationSizer->GetStaticBox(), wxID_ANY, _("180.0"), wxDefaultPosition, wxDefaultSize, 0 );
166  gbSizer1->Add( m_Orient180, wxGBPosition( 3, 0 ), wxGBSpan( 1, 2 ), 0, 5 );
167 
168  m_OrientOther = new wxRadioButton( sbOrientationSizer->GetStaticBox(), wxID_ANY, _("Other:"), wxDefaultPosition, wxDefaultSize, 0 );
169  gbSizer1->Add( m_OrientOther, wxGBPosition( 4, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
170 
171  m_OrientValueCtrl = new wxTextCtrl( sbOrientationSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
172  gbSizer1->Add( m_OrientValueCtrl, wxGBPosition( 4, 1 ), wxGBSpan( 1, 1 ), wxRIGHT|wxLEFT|wxEXPAND, 5 );
173 
174 
175  gbSizer1->AddGrowableCol( 1 );
176 
177  sbOrientationSizer->Add( gbSizer1, 1, wxEXPAND, 5 );
178 
179 
180  bSizerLeft->Add( sbOrientationSizer, 1, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
181 
182  wxBoxSizer* bSizerBoardSize;
183  bSizerBoardSize = new wxBoxSizer( wxHORIZONTAL );
184 
185  m_BoardSideLabel = new wxStaticText( m_PanelGeneral, wxID_ANY, _("Board side:"), wxDefaultPosition, wxDefaultSize, 0 );
186  m_BoardSideLabel->Wrap( -1 );
187  bSizerBoardSize->Add( m_BoardSideLabel, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
188 
189  wxString m_BoardSideCtrlChoices[] = { _("Front"), _("Back") };
190  int m_BoardSideCtrlNChoices = sizeof( m_BoardSideCtrlChoices ) / sizeof( wxString );
191  m_BoardSideCtrl = new wxChoice( m_PanelGeneral, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_BoardSideCtrlNChoices, m_BoardSideCtrlChoices, 0 );
192  m_BoardSideCtrl->SetSelection( 0 );
193  bSizerBoardSize->Add( m_BoardSideCtrl, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
194 
195 
196  bSizerLeft->Add( bSizerBoardSize, 0, wxEXPAND|wxALL, 5 );
197 
198 
199  bSizerProperties->Add( bSizerLeft, 1, wxEXPAND, 5 );
200 
201  wxBoxSizer* bSizerMiddle;
202  bSizerMiddle = new wxBoxSizer( wxVERTICAL );
203 
204  wxString m_AutoPlaceCtrlChoices[] = { _("Free"), _("Lock pads"), _("Lock footprint") };
205  int m_AutoPlaceCtrlNChoices = sizeof( m_AutoPlaceCtrlChoices ) / sizeof( wxString );
206  m_AutoPlaceCtrl = new wxRadioBox( m_PanelGeneral, wxID_ANY, _("Move and Place"), wxDefaultPosition, wxDefaultSize, m_AutoPlaceCtrlNChoices, m_AutoPlaceCtrlChoices, 1, wxRA_SPECIFY_COLS );
207  m_AutoPlaceCtrl->SetSelection( 0 );
208  bSizerMiddle->Add( m_AutoPlaceCtrl, 1, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
209 
210  m_sizerAP = new wxStaticBoxSizer( new wxStaticBox( m_PanelGeneral, wxID_ANY, _("Auto-placement Rules") ), wxVERTICAL );
211 
212  m_sizerAllow90 = new wxBoxSizer( wxVERTICAL );
213 
214  m_allow90Label = new wxStaticText( m_sizerAP->GetStaticBox(), wxID_ANY, _("Allow 90 degree rotated placement:"), wxDefaultPosition, wxDefaultSize, 0 );
215  m_allow90Label->Wrap( -1 );
216  m_allow90Label->SetFont( wxFont( 11, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) );
217 
218  m_sizerAllow90->Add( m_allow90Label, 0, 0, 5 );
219 
220  m_CostRot90Ctrl = new wxSlider( m_sizerAP->GetStaticBox(), wxID_ANY, 0, 0, 10, wxDefaultPosition, wxDefaultSize, wxSL_HORIZONTAL|wxSL_LABELS );
221  m_sizerAllow90->Add( m_CostRot90Ctrl, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 );
222 
223 
224  m_sizerAP->Add( m_sizerAllow90, 0, wxEXPAND, 5 );
225 
226 
227  m_sizerAP->Add( 0, 8, 1, wxEXPAND, 5 );
228 
229  m_sizerAllow180 = new wxBoxSizer( wxVERTICAL );
230 
231  m_allow180Label = new wxStaticText( m_sizerAP->GetStaticBox(), wxID_ANY, _("Allow 180 degree rotated placement:"), wxDefaultPosition, wxDefaultSize, 0 );
232  m_allow180Label->Wrap( -1 );
233  m_allow180Label->SetFont( wxFont( 11, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) );
234 
235  m_sizerAllow180->Add( m_allow180Label, 0, 0, 5 );
236 
237  m_CostRot180Ctrl = new wxSlider( m_sizerAP->GetStaticBox(), wxID_ANY, 0, 0, 10, wxDefaultPosition, wxDefaultSize, wxSL_HORIZONTAL|wxSL_LABELS );
238  m_sizerAllow180->Add( m_CostRot180Ctrl, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
239 
240 
241  m_sizerAP->Add( m_sizerAllow180, 0, wxEXPAND, 5 );
242 
243 
244  bSizerMiddle->Add( m_sizerAP, 0, wxEXPAND|wxALL, 5 );
245 
246 
247  bSizerProperties->Add( bSizerMiddle, 1, wxEXPAND|wxTOP, 5 );
248 
249  wxBoxSizer* bSizerRight;
250  bSizerRight = new wxBoxSizer( wxVERTICAL );
251 
252  wxBoxSizer* bButtonsSizer;
253  bButtonsSizer = new wxBoxSizer( wxVERTICAL );
254 
255  m_buttonUpdate = new wxButton( m_PanelGeneral, ID_MODULE_PROPERTIES_UPDATE, _("Update Footprint from Library..."), wxDefaultPosition, wxDefaultSize, 0 );
256  bButtonsSizer->Add( m_buttonUpdate, 0, wxALL|wxEXPAND, 5 );
257 
258  m_buttonExchange = new wxButton( m_PanelGeneral, ID_MODULE_PROPERTIES_EXCHANGE, _("Change Footprint..."), wxDefaultPosition, wxDefaultSize, 0 );
259  bButtonsSizer->Add( m_buttonExchange, 0, wxEXPAND|wxALL, 5 );
260 
261  m_buttonModuleEditor = new wxButton( m_PanelGeneral, ID_EDIT_FOOTPRINT, _("Edit Footprint..."), wxDefaultPosition, wxDefaultSize, 0 );
262  bButtonsSizer->Add( m_buttonModuleEditor, 0, wxEXPAND|wxALL, 5 );
263 
264 
265  bButtonsSizer->Add( 0, 15, 1, wxEXPAND, 5 );
266 
267  m_button5 = new wxButton( m_PanelGeneral, ID_EDIT_LIBRARY_FOOTPRINT, _("Edit Library Footprint..."), wxDefaultPosition, wxDefaultSize, 0 );
268  bButtonsSizer->Add( m_button5, 0, wxALL|wxEXPAND, 5 );
269 
270 
271  bSizerRight->Add( bButtonsSizer, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
272 
273 
274  bSizerRight->Add( 0, 0, 1, wxEXPAND, 5 );
275 
276  wxString m_AttributsCtrlChoices[] = { _("Through hole"), _("Surface mount"), _("Virtual") };
277  int m_AttributsCtrlNChoices = sizeof( m_AttributsCtrlChoices ) / sizeof( wxString );
278  m_AttributsCtrl = new wxRadioBox( m_PanelGeneral, wxID_ANY, _("Fabrication Attributes"), wxDefaultPosition, wxDefaultSize, m_AttributsCtrlNChoices, m_AttributsCtrlChoices, 1, wxRA_SPECIFY_COLS );
279  m_AttributsCtrl->SetSelection( 0 );
280  bSizerRight->Add( m_AttributsCtrl, 0, wxALL|wxEXPAND, 5 );
281 
282 
283  bSizerProperties->Add( bSizerRight, 1, wxEXPAND|wxTOP, 5 );
284 
285 
286  m_PanelPropertiesBoxSizer->Add( bSizerProperties, 0, wxEXPAND, 5 );
287 
288 
289  m_PanelGeneral->SetSizer( m_PanelPropertiesBoxSizer );
290  m_PanelGeneral->Layout();
291  m_PanelPropertiesBoxSizer->Fit( m_PanelGeneral );
292  m_NoteBook->AddPage( m_PanelGeneral, _("General"), true );
293  m_PanelClearances = new wxPanel( m_NoteBook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
294  wxBoxSizer* bSizerPanelClearances;
295  bSizerPanelClearances = new wxBoxSizer( wxVERTICAL );
296 
297  wxStaticBoxSizer* sbSizerLocalProperties;
298  sbSizerLocalProperties = new wxStaticBoxSizer( new wxStaticBox( m_PanelClearances, wxID_ANY, _("Clearances") ), wxVERTICAL );
299 
300  m_staticTextInfo = new wxStaticText( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, _("Set values to 0 to use Board Setup values."), wxDefaultPosition, wxDefaultSize, 0 );
301  m_staticTextInfo->Wrap( -1 );
302  m_staticTextInfo->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) );
303 
304  sbSizerLocalProperties->Add( m_staticTextInfo, 0, wxRIGHT, 10 );
305 
306  m_staticTextInfoValPos = new wxStaticText( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, _("Positive clearance means area bigger than the pad (usual for mask clearance)."), wxDefaultPosition, wxDefaultSize, 0 );
307  m_staticTextInfoValPos->Wrap( -1 );
308  m_staticTextInfoValPos->SetFont( wxFont( 12, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_ITALIC, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) );
309 
310  sbSizerLocalProperties->Add( m_staticTextInfoValPos, 0, wxTOP|wxRIGHT, 10 );
311 
312  m_staticTextInfoValNeg = new wxStaticText( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, _("Negative clearance means area smaller than the pad (usual for paste clearance)."), wxDefaultPosition, wxDefaultSize, 0 );
313  m_staticTextInfoValNeg->Wrap( -1 );
314  m_staticTextInfoValNeg->SetFont( wxFont( 12, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_ITALIC, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) );
315 
316  sbSizerLocalProperties->Add( m_staticTextInfoValNeg, 0, wxBOTTOM|wxRIGHT, 10 );
317 
318  wxFlexGridSizer* fgSizerClearances;
319  fgSizerClearances = new wxFlexGridSizer( 5, 3, 0, 0 );
320  fgSizerClearances->AddGrowableCol( 1 );
321  fgSizerClearances->SetFlexibleDirection( wxBOTH );
322  fgSizerClearances->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
323 
324  m_NetClearanceLabel = new wxStaticText( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, _("Pad clearance:"), wxDefaultPosition, wxDefaultSize, 0 );
325  m_NetClearanceLabel->Wrap( -1 );
326  m_NetClearanceLabel->SetToolTip( _("This is the local net clearance for all pad of this footprint\nIf 0, the Netclass values are used\nThis value can be superseded by a pad local value.") );
327 
328  fgSizerClearances->Add( m_NetClearanceLabel, 0, wxALIGN_CENTER_VERTICAL, 5 );
329 
330  m_NetClearanceCtrl = new wxTextCtrl( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
331  fgSizerClearances->Add( m_NetClearanceCtrl, 1, wxEXPAND|wxALL, 5 );
332 
333  m_NetClearanceUnits = new wxStaticText( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, _("unit"), wxDefaultPosition, wxDefaultSize, 0 );
334  m_NetClearanceUnits->Wrap( -1 );
335  fgSizerClearances->Add( m_NetClearanceUnits, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
336 
337  m_SolderMaskMarginLabel = new wxStaticText( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, _("Solder mask clearance:"), wxDefaultPosition, wxDefaultSize, 0 );
338  m_SolderMaskMarginLabel->Wrap( -1 );
339  m_SolderMaskMarginLabel->SetToolTip( _("This is the local clearance between pads and the solder mask for this footprint.\nThis value can be superseded by a pad local value.\nIf 0, the global value is used.") );
340 
341  fgSizerClearances->Add( m_SolderMaskMarginLabel, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
342 
343  m_SolderMaskMarginCtrl = new wxTextCtrl( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
344  fgSizerClearances->Add( m_SolderMaskMarginCtrl, 1, wxALL|wxEXPAND, 5 );
345 
346  m_SolderMaskMarginUnits = new wxStaticText( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, _("unit"), wxDefaultPosition, wxDefaultSize, 0 );
347  m_SolderMaskMarginUnits->Wrap( -1 );
348  fgSizerClearances->Add( m_SolderMaskMarginUnits, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
349 
350  m_SolderPasteMarginLabel = new wxStaticText( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, _("Solder paste clearance:"), wxDefaultPosition, wxDefaultSize, 0 );
351  m_SolderPasteMarginLabel->Wrap( -1 );
352  m_SolderPasteMarginLabel->SetToolTip( _("This is the local clearance between pads and the solder paste for this footprint.\nThis value can be superseded by a pad local values.\nThe final clearance value is the sum of this value and the clearance value ratio.\nA negative value means a smaller mask size than pad size.") );
353 
354  fgSizerClearances->Add( m_SolderPasteMarginLabel, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
355 
356  m_SolderPasteMarginCtrl = new wxTextCtrl( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
357  fgSizerClearances->Add( m_SolderPasteMarginCtrl, 1, wxEXPAND|wxLEFT|wxRIGHT, 5 );
358 
359  m_SolderPasteMarginUnits = new wxStaticText( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, _("unit"), wxDefaultPosition, wxDefaultSize, 0 );
360  m_SolderPasteMarginUnits->Wrap( -1 );
361  fgSizerClearances->Add( m_SolderPasteMarginUnits, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
362 
363  m_staticTextRatio = new wxStaticText( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, _("Solder paste ratio clearance:"), wxDefaultPosition, wxDefaultSize, 0 );
364  m_staticTextRatio->Wrap( -1 );
365  m_staticTextRatio->SetToolTip( _("This is the local clearance ratio in percent between pads and the solder paste for this footprint.\nA value of 10 means the clearance value is 10 percent of the pad size.\nThis value can be superseded by a pad local value.\nThe final clearance value is the sum of this value and the clearance value.\nA negative value means a smaller mask size than pad size.") );
366 
367  fgSizerClearances->Add( m_staticTextRatio, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
368 
369  m_SolderPasteMarginRatioCtrl = new TEXT_CTRL_EVAL( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
370  fgSizerClearances->Add( m_SolderPasteMarginRatioCtrl, 1, wxALL|wxEXPAND, 5 );
371 
372  m_SolderPasteRatioMarginUnits = new wxStaticText( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, _("%"), wxDefaultPosition, wxDefaultSize, 0 );
373  m_SolderPasteRatioMarginUnits->Wrap( -1 );
374  fgSizerClearances->Add( m_SolderPasteRatioMarginUnits, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
375 
376 
377  sbSizerLocalProperties->Add( fgSizerClearances, 1, wxEXPAND, 5 );
378 
379  m_staticTextInfoCopper = new wxStaticText( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, _("Note: solder mask and paste values are used only for pads on copper layers."), wxDefaultPosition, wxDefaultSize, 0 );
380  m_staticTextInfoCopper->Wrap( -1 );
381  m_staticTextInfoCopper->SetFont( wxFont( 12, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) );
382 
383  sbSizerLocalProperties->Add( m_staticTextInfoCopper, 0, wxEXPAND|wxTOP|wxBOTTOM|wxRIGHT, 10 );
384 
385 
386  bSizerPanelClearances->Add( sbSizerLocalProperties, 0, wxEXPAND|wxALL, 10 );
387 
388  wxStaticBoxSizer* sbSizerZoneConnection;
389  sbSizerZoneConnection = new wxStaticBoxSizer( new wxStaticBox( m_PanelClearances, wxID_ANY, _("Connection to Copper Zones") ), wxHORIZONTAL );
390 
391  m_staticText16 = new wxStaticText( sbSizerZoneConnection->GetStaticBox(), wxID_ANY, _("Pad connection to zones:"), wxDefaultPosition, wxDefaultSize, 0 );
392  m_staticText16->Wrap( -1 );
393  sbSizerZoneConnection->Add( m_staticText16, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT, 5 );
394 
395  wxString m_ZoneConnectionChoiceChoices[] = { _("Use zone setting"), _("Solid"), _("Thermal relief"), _("None") };
396  int m_ZoneConnectionChoiceNChoices = sizeof( m_ZoneConnectionChoiceChoices ) / sizeof( wxString );
397  m_ZoneConnectionChoice = new wxChoice( sbSizerZoneConnection->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_ZoneConnectionChoiceNChoices, m_ZoneConnectionChoiceChoices, 0 );
398  m_ZoneConnectionChoice->SetSelection( 0 );
399  sbSizerZoneConnection->Add( m_ZoneConnectionChoice, 1, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
400 
401 
402  bSizerPanelClearances->Add( sbSizerZoneConnection, 0, wxALL|wxEXPAND, 10 );
403 
404 
405  m_PanelClearances->SetSizer( bSizerPanelClearances );
406  m_PanelClearances->Layout();
407  bSizerPanelClearances->Fit( m_PanelClearances );
408  m_NoteBook->AddPage( m_PanelClearances, _("Local Clearance and Settings"), false );
409  m_Panel3D = new wxPanel( m_NoteBook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
410  bSizerMain3D = new wxBoxSizer( wxVERTICAL );
411 
412  wxStaticBoxSizer* sbSizer3;
413  sbSizer3 = new wxStaticBoxSizer( new wxStaticBox( m_Panel3D, wxID_ANY, wxEmptyString ), wxVERTICAL );
414 
415  m_modelsGrid = new WX_GRID( sbSizer3->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
416 
417  // Grid
418  m_modelsGrid->CreateGrid( 3, 2 );
419  m_modelsGrid->EnableEditing( true );
420  m_modelsGrid->EnableGridLines( true );
421  m_modelsGrid->EnableDragGridSize( false );
422  m_modelsGrid->SetMargins( 0, 0 );
423 
424  // Columns
425  m_modelsGrid->SetColSize( 0, 650 );
426  m_modelsGrid->SetColSize( 1, 65 );
427  m_modelsGrid->EnableDragColMove( false );
428  m_modelsGrid->EnableDragColSize( false );
430  m_modelsGrid->SetColLabelValue( 0, _("3D Model(s)") );
431  m_modelsGrid->SetColLabelValue( 1, _("Preview") );
432  m_modelsGrid->SetColLabelAlignment( wxALIGN_CENTER, wxALIGN_CENTER );
433 
434  // Rows
435  m_modelsGrid->EnableDragRowSize( false );
436  m_modelsGrid->SetRowLabelSize( 0 );
437  m_modelsGrid->SetRowLabelAlignment( wxALIGN_CENTER, wxALIGN_CENTER );
438 
439  // Label Appearance
440 
441  // Cell Defaults
442  m_modelsGrid->SetDefaultCellAlignment( wxALIGN_LEFT, wxALIGN_TOP );
443  m_modelsGrid->SetMinSize( wxSize( -1,86 ) );
444 
445  sbSizer3->Add( m_modelsGrid, 1, wxEXPAND|wxRIGHT, 5 );
446 
447  wxBoxSizer* bSizer3DButtons;
448  bSizer3DButtons = new wxBoxSizer( wxHORIZONTAL );
449 
450  m_buttonAdd = new wxBitmapButton( sbSizer3->GetStaticBox(), wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), wxBU_AUTODRAW|0 );
451  m_buttonAdd->SetMinSize( wxSize( 30,29 ) );
452 
453  bSizer3DButtons->Add( m_buttonAdd, 0, wxALIGN_CENTER_VERTICAL, 5 );
454 
455  m_buttonBrowse = new wxBitmapButton( sbSizer3->GetStaticBox(), wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), wxBU_AUTODRAW|0 );
456  m_buttonBrowse->SetMinSize( wxSize( 30,29 ) );
457 
458  bSizer3DButtons->Add( m_buttonBrowse, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
459 
460 
461  bSizer3DButtons->Add( 0, 0, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 );
462 
463  m_buttonRemove = new wxBitmapButton( sbSizer3->GetStaticBox(), wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), wxBU_AUTODRAW|0 );
464  m_buttonRemove->SetMinSize( wxSize( 30,29 ) );
465 
466  bSizer3DButtons->Add( m_buttonRemove, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
467 
468 
469  bSizer3DButtons->Add( 0, 0, 1, wxEXPAND, 5 );
470 
471  m_button8 = new wxButton( sbSizer3->GetStaticBox(), wxID_ANY, _("Configure Paths..."), wxDefaultPosition, wxDefaultSize, 0 );
472  bSizer3DButtons->Add( m_button8, 0, wxALL|wxEXPAND, 5 );
473 
474 
475  sbSizer3->Add( bSizer3DButtons, 0, wxEXPAND, 5 );
476 
477 
478  bSizerMain3D->Add( sbSizer3, 5, wxEXPAND|wxRIGHT|wxLEFT, 5 );
479 
480  bLowerSizer3D = new wxBoxSizer( wxHORIZONTAL );
481 
482 
483  bSizerMain3D->Add( bLowerSizer3D, 10, wxEXPAND, 5 );
484 
485 
486  m_Panel3D->SetSizer( bSizerMain3D );
487  m_Panel3D->Layout();
488  bSizerMain3D->Fit( m_Panel3D );
489  m_NoteBook->AddPage( m_Panel3D, _("3D Settings"), false );
490 
491  m_GeneralBoxSizer->Add( m_NoteBook, 1, wxEXPAND|wxRIGHT|wxLEFT, 5 );
492 
493  wxBoxSizer* bSizerButtons;
494  bSizerButtons = new wxBoxSizer( wxHORIZONTAL );
495 
496  wxFlexGridSizer* fgSizerSymbolRef;
497  fgSizerSymbolRef = new wxFlexGridSizer( 2, 2, 1, 0 );
498  fgSizerSymbolRef->SetFlexibleDirection( wxBOTH );
499  fgSizerSymbolRef->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
500 
501  m_libraryIDLabel = new wxStaticText( this, wxID_ANY, _("Library reference:"), wxDefaultPosition, wxDefaultSize, 0 );
502  m_libraryIDLabel->Wrap( -1 );
503  m_libraryIDLabel->SetFont( wxFont( 11, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) );
504 
505  fgSizerSymbolRef->Add( m_libraryIDLabel, 0, wxBOTTOM|wxRIGHT|wxLEFT, 3 );
506 
507  m_staticLibraryID = new wxStaticText( this, wxID_ANY, _("MyLabel"), wxDefaultPosition, wxDefaultSize, 0 );
508  m_staticLibraryID->Wrap( -1 );
509  m_staticLibraryID->SetFont( wxFont( 11, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) );
510 
511  fgSizerSymbolRef->Add( m_staticLibraryID, 0, wxBOTTOM, 3 );
512 
513 
514  bSizerButtons->Add( fgSizerSymbolRef, 1, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT, 10 );
515 
516  m_sdbSizerStdButtons = new wxStdDialogButtonSizer();
517  m_sdbSizerStdButtonsOK = new wxButton( this, wxID_OK );
519  m_sdbSizerStdButtonsCancel = new wxButton( this, wxID_CANCEL );
521  m_sdbSizerStdButtons->Realize();
522 
523  bSizerButtons->Add( m_sdbSizerStdButtons, 0, wxEXPAND|wxALL, 5 );
524 
525 
526  m_GeneralBoxSizer->Add( bSizerButtons, 0, wxEXPAND|wxLEFT, 5 );
527 
528 
529  this->SetSizer( m_GeneralBoxSizer );
530  this->Layout();
531  m_GeneralBoxSizer->Fit( this );
532 
533  // Connect Events
534  this->Connect( wxEVT_INIT_DIALOG, wxInitDialogEventHandler( DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::OnInitDlg ) );
535  this->Connect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::OnUpdateUI ) );
536  m_itemsGrid->Connect( wxEVT_SIZE, wxSizeEventHandler( DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::OnGridSize ), NULL, this );
537  m_bpAdd->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::OnAddField ), NULL, this );
538  m_bpDelete->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::OnDeleteField ), NULL, this );
539  m_Orient0->Connect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::ModuleOrientEvent ), NULL, this );
540  m_Orient90->Connect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::ModuleOrientEvent ), NULL, this );
541  m_Orient270->Connect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::ModuleOrientEvent ), NULL, this );
542  m_Orient180->Connect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::ModuleOrientEvent ), NULL, this );
543  m_OrientOther->Connect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::ModuleOrientEvent ), NULL, this );
544  m_OrientValueCtrl->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::OnOtherOrientation ), NULL, this );
545  m_buttonUpdate->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::UpdateModule ), NULL, this );
546  m_buttonExchange->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::ExchangeModule ), NULL, this );
547  m_buttonModuleEditor->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::EditFootprint ), NULL, this );
548  m_button5->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::EditLibraryFootprint ), NULL, this );
549  m_modelsGrid->Connect( wxEVT_GRID_CELL_CHANGED, wxGridEventHandler( DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::On3DModelCellChanged ), NULL, this );
550  m_modelsGrid->Connect( wxEVT_GRID_SELECT_CELL, wxGridEventHandler( DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::On3DModelSelected ), NULL, this );
551  m_buttonAdd->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::OnAdd3DRow ), NULL, this );
552  m_buttonBrowse->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::OnAdd3DModel ), NULL, this );
553  m_buttonRemove->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::OnRemove3DModel ), NULL, this );
554  m_button8->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::Cfg3DPath ), NULL, this );
555 }
556 
558 {
559  // Disconnect Events
560  this->Disconnect( wxEVT_INIT_DIALOG, wxInitDialogEventHandler( DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::OnInitDlg ) );
561  this->Disconnect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::OnUpdateUI ) );
562  m_itemsGrid->Disconnect( wxEVT_SIZE, wxSizeEventHandler( DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::OnGridSize ), NULL, this );
563  m_bpAdd->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::OnAddField ), NULL, this );
564  m_bpDelete->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::OnDeleteField ), NULL, this );
565  m_Orient0->Disconnect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::ModuleOrientEvent ), NULL, this );
566  m_Orient90->Disconnect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::ModuleOrientEvent ), NULL, this );
567  m_Orient270->Disconnect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::ModuleOrientEvent ), NULL, this );
568  m_Orient180->Disconnect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::ModuleOrientEvent ), NULL, this );
569  m_OrientOther->Disconnect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::ModuleOrientEvent ), NULL, this );
570  m_OrientValueCtrl->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::OnOtherOrientation ), NULL, this );
571  m_buttonUpdate->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::UpdateModule ), NULL, this );
572  m_buttonExchange->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::ExchangeModule ), NULL, this );
573  m_buttonModuleEditor->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::EditFootprint ), NULL, this );
574  m_button5->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::EditLibraryFootprint ), NULL, this );
575  m_modelsGrid->Disconnect( wxEVT_GRID_CELL_CHANGED, wxGridEventHandler( DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::On3DModelCellChanged ), NULL, this );
576  m_modelsGrid->Disconnect( wxEVT_GRID_SELECT_CELL, wxGridEventHandler( DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::On3DModelSelected ), NULL, this );
577  m_buttonAdd->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::OnAdd3DRow ), NULL, this );
578  m_buttonBrowse->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::OnAdd3DModel ), NULL, this );
579  m_buttonRemove->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::OnRemove3DModel ), NULL, this );
580  m_button8->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::Cfg3DPath ), NULL, this );
581 
582 }
Class DIALOG_SHIM may sit in the inheritance tree between wxDialog and any class written by wxFormBui...
Definition: dialog_shim.h:83
wxTextCtrl wrapper to handle math expression evaluation.
DIALOG_FOOTPRINT_BOARD_EDITOR_BASE(wxWindow *parent, wxWindowID id=wxID_ANY, const wxString &title=_("Footprint Properties"), const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxSize(-1,-1), long style=wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER)
void SetColLabelSize(int aHeight)
Hide wxGrid's SetColLabelSize() method with one which makes sure the size is tall enough for the syst...
Definition: wx_grid.cpp:47