KiCad PCB EDA Suite
dialog_edit_footprint_for_fp_editor_base.cpp
Go to the documentation of this file.
1 // C++ code generated with wxFormBuilder (version Oct 26 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_FP_EDITOR_BASE::DIALOG_FOOTPRINT_FP_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, _("Unconstrained") );
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  wxFlexGridSizer* fgSizerFPID;
105  fgSizerFPID = new wxFlexGridSizer( 4, 2, 3, 0 );
106  fgSizerFPID->AddGrowableCol( 1 );
107  fgSizerFPID->SetFlexibleDirection( wxBOTH );
108  fgSizerFPID->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
109 
110  wxStaticText* staticFPNameLabel;
111  staticFPNameLabel = new wxStaticText( m_PanelGeneral, wxID_ANY, _("Footprint name:"), wxDefaultPosition, wxDefaultSize, 0 );
112  staticFPNameLabel->Wrap( -1 );
113  fgSizerFPID->Add( staticFPNameLabel, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT, 5 );
114 
115  m_FootprintNameCtrl = new wxTextCtrl( m_PanelGeneral, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
116  fgSizerFPID->Add( m_FootprintNameCtrl, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 );
117 
118  wxStaticText* staticDescriptionLabel;
119  staticDescriptionLabel = new wxStaticText( m_PanelGeneral, wxID_ANY, _("Description:"), wxDefaultPosition, wxDefaultSize, 0 );
120  staticDescriptionLabel->Wrap( -1 );
121  fgSizerFPID->Add( staticDescriptionLabel, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
122 
123  m_DocCtrl = new wxTextCtrl( m_PanelGeneral, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
124  fgSizerFPID->Add( m_DocCtrl, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 );
125 
126  staticKeywordsLabel = new wxStaticText( m_PanelGeneral, wxID_ANY, _("Keywords:"), wxDefaultPosition, wxDefaultSize, 0 );
127  staticKeywordsLabel->Wrap( -1 );
128  fgSizerFPID->Add( staticKeywordsLabel, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
129 
130  m_KeywordCtrl = new wxTextCtrl( m_PanelGeneral, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
131  fgSizerFPID->Add( m_KeywordCtrl, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 );
132 
133 
134  m_PanelPropertiesBoxSizer->Add( fgSizerFPID, 0, wxEXPAND|wxALL, 5 );
135 
136  wxBoxSizer* bSizerProperties;
137  bSizerProperties = new wxBoxSizer( wxHORIZONTAL );
138 
139  wxString m_AutoPlaceCtrlChoices[] = { _("Free"), _("Lock footprint") };
140  int m_AutoPlaceCtrlNChoices = sizeof( m_AutoPlaceCtrlChoices ) / sizeof( wxString );
141  m_AutoPlaceCtrl = new wxRadioBox( m_PanelGeneral, wxID_ANY, _("Move and Place"), wxDefaultPosition, wxDefaultSize, m_AutoPlaceCtrlNChoices, m_AutoPlaceCtrlChoices, 1, wxRA_SPECIFY_COLS );
142  m_AutoPlaceCtrl->SetSelection( 0 );
143  bSizerProperties->Add( m_AutoPlaceCtrl, 1, wxTOP|wxRIGHT|wxLEFT, 5 );
144 
145  m_sizerAP = new wxStaticBoxSizer( new wxStaticBox( m_PanelGeneral, wxID_ANY, _("Auto-placement Rules") ), wxVERTICAL );
146 
147  m_sizerAllow90 = new wxBoxSizer( wxVERTICAL );
148 
149  m_allow90Label = new wxStaticText( m_sizerAP->GetStaticBox(), wxID_ANY, _("Allow 90 degree rotated placement:"), wxDefaultPosition, wxDefaultSize, 0 );
150  m_allow90Label->Wrap( -1 );
151  m_allow90Label->SetFont( wxFont( 11, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) );
152 
153  m_sizerAllow90->Add( m_allow90Label, 0, 0, 5 );
154 
155  m_CostRot90Ctrl = new wxSlider( m_sizerAP->GetStaticBox(), wxID_ANY, 0, 0, 10, wxDefaultPosition, wxDefaultSize, wxSL_HORIZONTAL|wxSL_LABELS );
156  m_sizerAllow90->Add( m_CostRot90Ctrl, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 );
157 
158 
159  m_sizerAP->Add( m_sizerAllow90, 0, wxEXPAND, 5 );
160 
161 
162  m_sizerAP->Add( 0, 8, 1, wxEXPAND, 5 );
163 
164  m_sizerAllow180 = new wxBoxSizer( wxVERTICAL );
165 
166  m_allow180Label = new wxStaticText( m_sizerAP->GetStaticBox(), wxID_ANY, _("Allow 180 degree rotated placement:"), wxDefaultPosition, wxDefaultSize, 0 );
167  m_allow180Label->Wrap( -1 );
168  m_allow180Label->SetFont( wxFont( 11, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) );
169 
170  m_sizerAllow180->Add( m_allow180Label, 0, 0, 5 );
171 
172  m_CostRot180Ctrl = new wxSlider( m_sizerAP->GetStaticBox(), wxID_ANY, 0, 0, 10, wxDefaultPosition, wxDefaultSize, wxSL_HORIZONTAL|wxSL_LABELS );
173  m_sizerAllow180->Add( m_CostRot180Ctrl, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
174 
175 
176  m_sizerAP->Add( m_sizerAllow180, 0, wxEXPAND, 5 );
177 
178 
179  bSizerProperties->Add( m_sizerAP, 1, wxEXPAND|wxTOP, 5 );
180 
181  wxString m_AttributsCtrlChoices[] = { _("Through hole"), _("Surface mount"), _("Virtual") };
182  int m_AttributsCtrlNChoices = sizeof( m_AttributsCtrlChoices ) / sizeof( wxString );
183  m_AttributsCtrl = new wxRadioBox( m_PanelGeneral, wxID_ANY, _("Fabrication Attributes"), wxDefaultPosition, wxDefaultSize, m_AttributsCtrlNChoices, m_AttributsCtrlChoices, 1, wxRA_SPECIFY_COLS );
184  m_AttributsCtrl->SetSelection( 1 );
185  bSizerProperties->Add( m_AttributsCtrl, 1, wxTOP|wxRIGHT|wxLEFT, 5 );
186 
187 
188  m_PanelPropertiesBoxSizer->Add( bSizerProperties, 0, wxEXPAND|wxTOP|wxBOTTOM, 5 );
189 
190 
191  m_PanelGeneral->SetSizer( m_PanelPropertiesBoxSizer );
192  m_PanelGeneral->Layout();
193  m_PanelPropertiesBoxSizer->Fit( m_PanelGeneral );
194  m_NoteBook->AddPage( m_PanelGeneral, _("General"), true );
195  m_PanelClearances = new wxPanel( m_NoteBook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
196  wxBoxSizer* bSizerPanelClearances;
197  bSizerPanelClearances = new wxBoxSizer( wxVERTICAL );
198 
199  wxStaticBoxSizer* sbSizerLocalProperties;
200  sbSizerLocalProperties = new wxStaticBoxSizer( new wxStaticBox( m_PanelClearances, wxID_ANY, _("Clearances") ), wxVERTICAL );
201 
202  m_staticTextInfo = new wxStaticText( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, _("Set values to 0 to use netclass values."), wxDefaultPosition, wxDefaultSize, 0 );
203  m_staticTextInfo->Wrap( -1 );
204  m_staticTextInfo->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) );
205 
206  sbSizerLocalProperties->Add( m_staticTextInfo, 0, wxRIGHT, 10 );
207 
208  m_staticTextInfoValPos = new wxStaticText( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, _("Positive clearance means area bigger than the pad (usual for mask clearance)."), wxDefaultPosition, wxDefaultSize, 0 );
209  m_staticTextInfoValPos->Wrap( -1 );
210  m_staticTextInfoValPos->SetFont( wxFont( 12, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_ITALIC, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) );
211 
212  sbSizerLocalProperties->Add( m_staticTextInfoValPos, 0, wxTOP|wxRIGHT, 10 );
213 
214  m_staticTextInfoValNeg = new wxStaticText( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, _("Negative clearance means area smaller than the pad (usual for paste clearance)."), wxDefaultPosition, wxDefaultSize, 0 );
215  m_staticTextInfoValNeg->Wrap( -1 );
216  m_staticTextInfoValNeg->SetFont( wxFont( 12, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_ITALIC, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) );
217 
218  sbSizerLocalProperties->Add( m_staticTextInfoValNeg, 0, wxBOTTOM|wxRIGHT, 10 );
219 
220  wxFlexGridSizer* fgSizerClearances;
221  fgSizerClearances = new wxFlexGridSizer( 5, 3, 0, 0 );
222  fgSizerClearances->AddGrowableCol( 1 );
223  fgSizerClearances->SetFlexibleDirection( wxBOTH );
224  fgSizerClearances->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
225 
226  m_NetClearanceLabel = new wxStaticText( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, _("Pad clearance:"), wxDefaultPosition, wxDefaultSize, 0 );
227  m_NetClearanceLabel->Wrap( -1 );
228  m_NetClearanceLabel->SetToolTip( _("This is the local net clearance for all pads of this footprint.\nIf 0, the Netclass values are used.\nThis value can be overridden on a pad-by-pad basis in the Local\nClearance and Settings tab of Pad Properties.") );
229 
230  fgSizerClearances->Add( m_NetClearanceLabel, 0, wxALIGN_CENTER_VERTICAL, 5 );
231 
232  m_NetClearanceCtrl = new wxTextCtrl( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
233  fgSizerClearances->Add( m_NetClearanceCtrl, 1, wxEXPAND|wxALL, 5 );
234 
235  m_NetClearanceUnits = new wxStaticText( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, _("unit"), wxDefaultPosition, wxDefaultSize, 0 );
236  m_NetClearanceUnits->Wrap( -1 );
237  fgSizerClearances->Add( m_NetClearanceUnits, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
238 
239  m_SolderMaskMarginLabel = new wxStaticText( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, _("Solder mask clearance:"), wxDefaultPosition, wxDefaultSize, 0 );
240  m_SolderMaskMarginLabel->Wrap( -1 );
241  m_SolderMaskMarginLabel->SetToolTip( _("This is the local clearance between pads and the solder mask for \nthis footprint.\nIf 0, the global value is used.\nThis value can be overridden on a pad-by-pad basis in the Local\nClearance and Settings tab of Pad Properties.") );
242 
243  fgSizerClearances->Add( m_SolderMaskMarginLabel, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
244 
245  m_SolderMaskMarginCtrl = new wxTextCtrl( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
246  fgSizerClearances->Add( m_SolderMaskMarginCtrl, 1, wxALL|wxEXPAND, 5 );
247 
248  m_SolderMaskMarginUnits = new wxStaticText( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, _("unit"), wxDefaultPosition, wxDefaultSize, 0 );
249  m_SolderMaskMarginUnits->Wrap( -1 );
250  fgSizerClearances->Add( m_SolderMaskMarginUnits, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
251 
252  m_SolderPasteMarginLabel = new wxStaticText( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, _("Solder paste absolute clearance:"), wxDefaultPosition, wxDefaultSize, 0 );
253  m_SolderPasteMarginLabel->Wrap( -1 );
254  m_SolderPasteMarginLabel->SetToolTip( _("This is the local clearance between pads and the solder paste for\nthis footprint.\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.\nThis value can be overridden on a pad-by-pad basis in the Local\nClearance and Settings tab of Pad Properties.") );
255 
256  fgSizerClearances->Add( m_SolderPasteMarginLabel, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
257 
258  m_SolderPasteMarginCtrl = new wxTextCtrl( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
259  fgSizerClearances->Add( m_SolderPasteMarginCtrl, 1, wxEXPAND|wxLEFT|wxRIGHT, 5 );
260 
261  m_SolderPasteMarginUnits = new wxStaticText( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, _("unit"), wxDefaultPosition, wxDefaultSize, 0 );
262  m_SolderPasteMarginUnits->Wrap( -1 );
263  fgSizerClearances->Add( m_SolderPasteMarginUnits, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
264 
265  m_staticTextRatio = new wxStaticText( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, _("Solder paste relative clearance:"), wxDefaultPosition, wxDefaultSize, 0 );
266  m_staticTextRatio->Wrap( -1 );
267  m_staticTextRatio->SetToolTip( _("This is the local clearance ratio in percent between pads and the\nsolder paste for this footprint.\nA value of 10 means the clearance value is 10 percent of the pad size.\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.\nThis value can be overridden on a pad-by-pad basis in the Local\nClearance and Settings tab of Pad Properties.") );
268 
269  fgSizerClearances->Add( m_staticTextRatio, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
270 
271  m_SolderPasteMarginRatioCtrl = new TEXT_CTRL_EVAL( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
272  fgSizerClearances->Add( m_SolderPasteMarginRatioCtrl, 1, wxALL|wxEXPAND, 5 );
273 
274  m_SolderPasteRatioMarginUnits = new wxStaticText( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, _("%"), wxDefaultPosition, wxDefaultSize, 0 );
275  m_SolderPasteRatioMarginUnits->Wrap( -1 );
276  fgSizerClearances->Add( m_SolderPasteRatioMarginUnits, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
277 
278 
279  sbSizerLocalProperties->Add( fgSizerClearances, 1, wxEXPAND, 5 );
280 
281  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 );
282  m_staticTextInfoCopper->Wrap( -1 );
283  m_staticTextInfoCopper->SetFont( wxFont( 12, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) );
284 
285  sbSizerLocalProperties->Add( m_staticTextInfoCopper, 0, wxEXPAND|wxTOP|wxRIGHT, 10 );
286 
287  m_staticTextInfoPaste = new wxStaticText( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, _("Note: solder paste clearances (absolute and relative) are added to determine the final clearance."), wxDefaultPosition, wxDefaultSize, 0 );
288  m_staticTextInfoPaste->Wrap( -1 );
289  m_staticTextInfoPaste->SetFont( wxFont( 12, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) );
290 
291  sbSizerLocalProperties->Add( m_staticTextInfoPaste, 0, wxBOTTOM|wxRIGHT, 5 );
292 
293 
294  bSizerPanelClearances->Add( sbSizerLocalProperties, 0, wxEXPAND|wxALL, 10 );
295 
296  wxStaticBoxSizer* sbSizer5;
297  sbSizer5 = new wxStaticBoxSizer( new wxStaticBox( m_PanelClearances, wxID_ANY, _("Connection to Copper Zones") ), wxHORIZONTAL );
298 
299  m_staticText16 = new wxStaticText( sbSizer5->GetStaticBox(), wxID_ANY, _("Pad connection to zones:"), wxDefaultPosition, wxDefaultSize, 0 );
300  m_staticText16->Wrap( -1 );
301  sbSizer5->Add( m_staticText16, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT, 5 );
302 
303  wxString m_ZoneConnectionChoiceChoices[] = { _("Use zone setting"), _("Solid"), _("Thermal relief"), _("None") };
304  int m_ZoneConnectionChoiceNChoices = sizeof( m_ZoneConnectionChoiceChoices ) / sizeof( wxString );
305  m_ZoneConnectionChoice = new wxChoice( sbSizer5->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_ZoneConnectionChoiceNChoices, m_ZoneConnectionChoiceChoices, 0 );
306  m_ZoneConnectionChoice->SetSelection( 0 );
307  sbSizer5->Add( m_ZoneConnectionChoice, 1, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
308 
309 
310  bSizerPanelClearances->Add( sbSizer5, 0, wxALL|wxEXPAND, 10 );
311 
312 
313  m_PanelClearances->SetSizer( bSizerPanelClearances );
314  m_PanelClearances->Layout();
315  bSizerPanelClearances->Fit( m_PanelClearances );
316  m_NoteBook->AddPage( m_PanelClearances, _("Local Clearance and Settings"), false );
317  m_Panel3D = new wxPanel( m_NoteBook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
318  bSizerMain3D = new wxBoxSizer( wxVERTICAL );
319 
320  wxStaticBoxSizer* sbSizer3;
321  sbSizer3 = new wxStaticBoxSizer( new wxStaticBox( m_Panel3D, wxID_ANY, wxEmptyString ), wxVERTICAL );
322 
323  m_modelsGrid = new WX_GRID( sbSizer3->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, wxBORDER_SIMPLE );
324 
325  // Grid
326  m_modelsGrid->CreateGrid( 3, 2 );
327  m_modelsGrid->EnableEditing( true );
328  m_modelsGrid->EnableGridLines( false );
329  m_modelsGrid->EnableDragGridSize( false );
330  m_modelsGrid->SetMargins( 0, 0 );
331 
332  // Columns
333  m_modelsGrid->SetColSize( 0, 650 );
334  m_modelsGrid->SetColSize( 1, 65 );
335  m_modelsGrid->EnableDragColMove( false );
336  m_modelsGrid->EnableDragColSize( false );
338  m_modelsGrid->SetColLabelValue( 0, _("3D Model(s)") );
339  m_modelsGrid->SetColLabelValue( 1, _("Preview") );
340  m_modelsGrid->SetColLabelAlignment( wxALIGN_LEFT, wxALIGN_CENTER );
341 
342  // Rows
343  m_modelsGrid->EnableDragRowSize( false );
344  m_modelsGrid->SetRowLabelSize( 0 );
345  m_modelsGrid->SetRowLabelAlignment( wxALIGN_CENTER, wxALIGN_CENTER );
346 
347  // Label Appearance
348 
349  // Cell Defaults
350  m_modelsGrid->SetDefaultCellAlignment( wxALIGN_LEFT, wxALIGN_TOP );
351  sbSizer3->Add( m_modelsGrid, 1, wxEXPAND|wxRIGHT, 5 );
352 
353  wxBoxSizer* bSizer3DButtons;
354  bSizer3DButtons = new wxBoxSizer( wxHORIZONTAL );
355 
356  m_button3DShapeAdd = new wxBitmapButton( sbSizer3->GetStaticBox(), wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 30,29 ), wxBU_AUTODRAW|0 );
357  bSizer3DButtons->Add( m_button3DShapeAdd, 0, wxTOP|wxBOTTOM, 5 );
358 
359  m_button3DShapeBrowse = new wxBitmapButton( sbSizer3->GetStaticBox(), wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 30,29 ), wxBU_AUTODRAW|0 );
360  bSizer3DButtons->Add( m_button3DShapeBrowse, 0, wxALL, 5 );
361 
362 
363  bSizer3DButtons->Add( 0, 0, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 );
364 
365  m_button3DShapeRemove = new wxBitmapButton( sbSizer3->GetStaticBox(), wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 30,29 ), wxBU_AUTODRAW|0 );
366  bSizer3DButtons->Add( m_button3DShapeRemove, 0, wxTOP|wxBOTTOM, 5 );
367 
368 
369  bSizer3DButtons->Add( 0, 0, 1, wxEXPAND, 5 );
370 
371  m_buttonConfig3DPaths = new wxButton( sbSizer3->GetStaticBox(), wxID_ANY, _("Configure Paths..."), wxDefaultPosition, wxDefaultSize, 0 );
372  bSizer3DButtons->Add( m_buttonConfig3DPaths, 0, wxALL, 5 );
373 
374 
375  sbSizer3->Add( bSizer3DButtons, 0, wxEXPAND, 5 );
376 
377 
378  bSizerMain3D->Add( sbSizer3, 5, wxEXPAND|wxRIGHT|wxLEFT, 5 );
379 
380  bLowerSizer3D = new wxBoxSizer( wxHORIZONTAL );
381 
382 
383  bSizerMain3D->Add( bLowerSizer3D, 10, wxEXPAND, 5 );
384 
385 
386  m_Panel3D->SetSizer( bSizerMain3D );
387  m_Panel3D->Layout();
388  bSizerMain3D->Fit( m_Panel3D );
389  m_NoteBook->AddPage( m_Panel3D, _("3D Settings"), false );
390 
391  m_GeneralBoxSizer->Add( m_NoteBook, 1, wxEXPAND|wxRIGHT|wxLEFT, 5 );
392 
393  wxBoxSizer* bSizer16;
394  bSizer16 = new wxBoxSizer( wxHORIZONTAL );
395 
396  m_sdbSizerStdButtons = new wxStdDialogButtonSizer();
397  m_sdbSizerStdButtonsOK = new wxButton( this, wxID_OK );
399  m_sdbSizerStdButtonsCancel = new wxButton( this, wxID_CANCEL );
401  m_sdbSizerStdButtons->Realize();
402 
403  bSizer16->Add( m_sdbSizerStdButtons, 1, wxEXPAND|wxALL, 5 );
404 
405 
406  m_GeneralBoxSizer->Add( bSizer16, 0, wxEXPAND, 5 );
407 
408 
409  this->SetSizer( m_GeneralBoxSizer );
410  this->Layout();
411  m_GeneralBoxSizer->Fit( this );
412 
413  // Connect Events
414  this->Connect( wxEVT_INIT_DIALOG, wxInitDialogEventHandler( DIALOG_FOOTPRINT_FP_EDITOR_BASE::OnInitDlg ) );
415  this->Connect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( DIALOG_FOOTPRINT_FP_EDITOR_BASE::OnUpdateUI ) );
416  m_itemsGrid->Connect( wxEVT_SIZE, wxSizeEventHandler( DIALOG_FOOTPRINT_FP_EDITOR_BASE::OnGridSize ), NULL, this );
417  m_bpAdd->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FOOTPRINT_FP_EDITOR_BASE::OnAddField ), NULL, this );
418  m_bpDelete->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FOOTPRINT_FP_EDITOR_BASE::OnDeleteField ), NULL, this );
419  m_FootprintNameCtrl->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_FOOTPRINT_FP_EDITOR_BASE::OnFootprintNameText ), NULL, this );
420  m_modelsGrid->Connect( wxEVT_GRID_CELL_CHANGED, wxGridEventHandler( DIALOG_FOOTPRINT_FP_EDITOR_BASE::On3DModelCellChanged ), NULL, this );
421  m_modelsGrid->Connect( wxEVT_GRID_SELECT_CELL, wxGridEventHandler( DIALOG_FOOTPRINT_FP_EDITOR_BASE::On3DModelSelected ), NULL, this );
422  m_button3DShapeAdd->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FOOTPRINT_FP_EDITOR_BASE::OnAdd3DRow ), NULL, this );
423  m_button3DShapeBrowse->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FOOTPRINT_FP_EDITOR_BASE::OnAdd3DModel ), NULL, this );
424  m_button3DShapeRemove->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FOOTPRINT_FP_EDITOR_BASE::OnRemove3DModel ), NULL, this );
425  m_buttonConfig3DPaths->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FOOTPRINT_FP_EDITOR_BASE::Cfg3DPath ), NULL, this );
426 }
427 
429 {
430  // Disconnect Events
431  this->Disconnect( wxEVT_INIT_DIALOG, wxInitDialogEventHandler( DIALOG_FOOTPRINT_FP_EDITOR_BASE::OnInitDlg ) );
432  this->Disconnect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( DIALOG_FOOTPRINT_FP_EDITOR_BASE::OnUpdateUI ) );
433  m_itemsGrid->Disconnect( wxEVT_SIZE, wxSizeEventHandler( DIALOG_FOOTPRINT_FP_EDITOR_BASE::OnGridSize ), NULL, this );
434  m_bpAdd->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FOOTPRINT_FP_EDITOR_BASE::OnAddField ), NULL, this );
435  m_bpDelete->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FOOTPRINT_FP_EDITOR_BASE::OnDeleteField ), NULL, this );
436  m_FootprintNameCtrl->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_FOOTPRINT_FP_EDITOR_BASE::OnFootprintNameText ), NULL, this );
437  m_modelsGrid->Disconnect( wxEVT_GRID_CELL_CHANGED, wxGridEventHandler( DIALOG_FOOTPRINT_FP_EDITOR_BASE::On3DModelCellChanged ), NULL, this );
438  m_modelsGrid->Disconnect( wxEVT_GRID_SELECT_CELL, wxGridEventHandler( DIALOG_FOOTPRINT_FP_EDITOR_BASE::On3DModelSelected ), NULL, this );
439  m_button3DShapeAdd->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FOOTPRINT_FP_EDITOR_BASE::OnAdd3DRow ), NULL, this );
440  m_button3DShapeBrowse->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FOOTPRINT_FP_EDITOR_BASE::OnAdd3DModel ), NULL, this );
441  m_button3DShapeRemove->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FOOTPRINT_FP_EDITOR_BASE::OnRemove3DModel ), NULL, this );
442  m_buttonConfig3DPaths->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FOOTPRINT_FP_EDITOR_BASE::Cfg3DPath ), NULL, this );
443 
444 }
virtual void OnInitDlg(wxInitDialogEvent &event)
Dialog helper object to sit in the inheritance tree between wxDialog and any class written by wxFormB...
Definition: dialog_shim.h:84
virtual void OnRemove3DModel(wxCommandEvent &event)
#define NULL
DIALOG_FOOTPRINT_FP_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)
wxTextCtrl wrapper to handle math expression evaluation.
#define _(s)
Definition: 3d_actions.cpp:31
virtual void OnFootprintNameText(wxCommandEvent &event)
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