KiCad PCB EDA Suite
dialog_spice_model_base.cpp
Go to the documentation of this file.
1 // C++ code generated with wxFormBuilder (version Jul 17 2016)
3 // http://www.wxformbuilder.org/
4 //
5 // PLEASE DO "NOT" EDIT THIS FILE!
7 
9 
11 
12 DIALOG_SPICE_MODEL_BASE::DIALOG_SPICE_MODEL_BASE( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : DIALOG_SHIM( parent, id, title, pos, size, style )
13 {
14  this->SetSizeHints( wxSize( -1,-1 ), wxDefaultSize );
15 
16  wxBoxSizer* bSizer1;
17  bSizer1 = new wxBoxSizer( wxVERTICAL );
18 
19  m_notebook = new wxNotebook( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
20  m_passive = new wxPanel( m_notebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
21  wxBoxSizer* bSizer41;
22  bSizer41 = new wxBoxSizer( wxVERTICAL );
23 
24  wxFlexGridSizer* fgSizer1;
25  fgSizer1 = new wxFlexGridSizer( 0, 3, 0, 0 );
26  fgSizer1->AddGrowableCol( 1 );
27  fgSizer1->SetFlexibleDirection( wxBOTH );
28  fgSizer1->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
29 
30  m_staticText2 = new wxStaticText( m_passive, wxID_ANY, _("Type"), wxDefaultPosition, wxDefaultSize, 0 );
31  m_staticText2->Wrap( -1 );
32  fgSizer1->Add( m_staticText2, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
33 
34  m_pasType = new wxComboBox( m_passive, wxID_ANY, _("Resistor"), wxDefaultPosition, wxDefaultSize, 0, NULL, wxCB_READONLY );
35  m_pasType->Append( _("Resistor") );
36  m_pasType->Append( _("Capacitor") );
37  m_pasType->Append( _("Inductor") );
38  m_pasType->SetSelection( 0 );
39  fgSizer1->Add( m_pasType, 0, wxALL|wxEXPAND, 5 );
40 
41  m_staticText62 = new wxStaticText( m_passive, wxID_ANY, _("Passive type"), wxDefaultPosition, wxDefaultSize, 0 );
42  m_staticText62->Wrap( -1 );
43  fgSizer1->Add( m_staticText62, 0, wxALL, 5 );
44 
45  m_staticText3 = new wxStaticText( m_passive, wxID_ANY, _("Value"), wxDefaultPosition, wxDefaultSize, 0 );
46  m_staticText3->Wrap( -1 );
47  fgSizer1->Add( m_staticText3, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
48 
49  m_pasValue = new wxTextCtrl( m_passive, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
50  m_pasValue->SetMinSize( wxSize( 200,-1 ) );
51 
52  fgSizer1->Add( m_pasValue, 0, wxALL|wxEXPAND, 5 );
53 
54  m_staticText63 = new wxStaticText( m_passive, wxID_ANY, _("Spice value in simulation"), wxDefaultPosition, wxDefaultSize, 0 );
55  m_staticText63->Wrap( -1 );
56  fgSizer1->Add( m_staticText63, 0, wxALL, 5 );
57 
58 
59  bSizer41->Add( fgSizer1, 0, wxEXPAND|wxALL, 5 );
60 
61  m_staticline1 = new wxStaticLine( m_passive, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
62  bSizer41->Add( m_staticline1, 0, wxEXPAND | wxALL, 5 );
63 
64  wxBoxSizer* bSizer5;
65  bSizer5 = new wxBoxSizer( wxVERTICAL );
66 
67  m_staticText32 = new wxStaticText( m_passive, wxID_ANY, _("In Spice values,the decimal separator is the point.\nValues can use Spice unit symbols."), wxDefaultPosition, wxDefaultSize, 0 );
68  m_staticText32->Wrap( -1 );
69  bSizer5->Add( m_staticText32, 0, wxALL, 5 );
70 
71  m_staticText321 = new wxStaticText( m_passive, wxID_ANY, _("Spice unit symbols in values (case insensitive):"), wxDefaultPosition, wxDefaultSize, 0 );
72  m_staticText321->Wrap( -1 );
73  bSizer5->Add( m_staticText321, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
74 
75  wxFlexGridSizer* fgSizerUnitSymbols;
76  fgSizerUnitSymbols = new wxFlexGridSizer( 0, 3, 0, 0 );
77  fgSizerUnitSymbols->AddGrowableCol( 1 );
78  fgSizerUnitSymbols->SetFlexibleDirection( wxBOTH );
79  fgSizerUnitSymbols->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
80 
81  m_staticText341 = new wxStaticText( m_passive, wxID_ANY, _("f"), wxDefaultPosition, wxDefaultSize, 0 );
82  m_staticText341->Wrap( -1 );
83  fgSizerUnitSymbols->Add( m_staticText341, 0, wxALL, 5 );
84 
85  m_staticText_femto = new wxStaticText( m_passive, wxID_ANY, _("femto"), wxDefaultPosition, wxDefaultSize, 0 );
86  m_staticText_femto->Wrap( -1 );
87  fgSizerUnitSymbols->Add( m_staticText_femto, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5 );
88 
89  m_staticText36 = new wxStaticText( m_passive, wxID_ANY, _("1e-15"), wxDefaultPosition, wxDefaultSize, 0 );
90  m_staticText36->Wrap( -1 );
91  fgSizerUnitSymbols->Add( m_staticText36, 0, wxALL, 5 );
92 
93  m_staticText37 = new wxStaticText( m_passive, wxID_ANY, _("p"), wxDefaultPosition, wxDefaultSize, 0 );
94  m_staticText37->Wrap( -1 );
95  fgSizerUnitSymbols->Add( m_staticText37, 0, wxALL, 5 );
96 
97  m_staticText38 = new wxStaticText( m_passive, wxID_ANY, _("pico"), wxDefaultPosition, wxDefaultSize, 0 );
98  m_staticText38->Wrap( -1 );
99  fgSizerUnitSymbols->Add( m_staticText38, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5 );
100 
101  m_staticText39 = new wxStaticText( m_passive, wxID_ANY, _("1e-12"), wxDefaultPosition, wxDefaultSize, 0 );
102  m_staticText39->Wrap( -1 );
103  fgSizerUnitSymbols->Add( m_staticText39, 0, wxALL, 5 );
104 
105  m_staticText40 = new wxStaticText( m_passive, wxID_ANY, _("n"), wxDefaultPosition, wxDefaultSize, 0 );
106  m_staticText40->Wrap( -1 );
107  fgSizerUnitSymbols->Add( m_staticText40, 0, wxALL, 5 );
108 
109  m_staticText41 = new wxStaticText( m_passive, wxID_ANY, _("nano"), wxDefaultPosition, wxDefaultSize, 0 );
110  m_staticText41->Wrap( -1 );
111  fgSizerUnitSymbols->Add( m_staticText41, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5 );
112 
113  m_staticText42 = new wxStaticText( m_passive, wxID_ANY, _("1e-9"), wxDefaultPosition, wxDefaultSize, 0 );
114  m_staticText42->Wrap( -1 );
115  fgSizerUnitSymbols->Add( m_staticText42, 0, wxALL, 5 );
116 
117  m_staticText43 = new wxStaticText( m_passive, wxID_ANY, _("u"), wxDefaultPosition, wxDefaultSize, 0 );
118  m_staticText43->Wrap( -1 );
119  fgSizerUnitSymbols->Add( m_staticText43, 0, wxALL, 5 );
120 
121  m_staticText44 = new wxStaticText( m_passive, wxID_ANY, _("micro"), wxDefaultPosition, wxDefaultSize, 0 );
122  m_staticText44->Wrap( -1 );
123  fgSizerUnitSymbols->Add( m_staticText44, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5 );
124 
125  m_staticText46 = new wxStaticText( m_passive, wxID_ANY, _("1e-6"), wxDefaultPosition, wxDefaultSize, 0 );
126  m_staticText46->Wrap( -1 );
127  fgSizerUnitSymbols->Add( m_staticText46, 0, wxALL, 5 );
128 
129  m_staticText47 = new wxStaticText( m_passive, wxID_ANY, _("m"), wxDefaultPosition, wxDefaultSize, 0 );
130  m_staticText47->Wrap( -1 );
131  fgSizerUnitSymbols->Add( m_staticText47, 0, wxALL, 5 );
132 
133  m_staticText48 = new wxStaticText( m_passive, wxID_ANY, _("milli"), wxDefaultPosition, wxDefaultSize, 0 );
134  m_staticText48->Wrap( -1 );
135  fgSizerUnitSymbols->Add( m_staticText48, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5 );
136 
137  m_staticText45 = new wxStaticText( m_passive, wxID_ANY, _("1e-3"), wxDefaultPosition, wxDefaultSize, 0 );
138  m_staticText45->Wrap( -1 );
139  fgSizerUnitSymbols->Add( m_staticText45, 0, wxALL, 5 );
140 
141  m_staticText49 = new wxStaticText( m_passive, wxID_ANY, _("k"), wxDefaultPosition, wxDefaultSize, 0 );
142  m_staticText49->Wrap( -1 );
143  fgSizerUnitSymbols->Add( m_staticText49, 0, wxALL, 5 );
144 
145  m_staticText50 = new wxStaticText( m_passive, wxID_ANY, _("kilo"), wxDefaultPosition, wxDefaultSize, 0 );
146  m_staticText50->Wrap( -1 );
147  fgSizerUnitSymbols->Add( m_staticText50, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5 );
148 
149  m_staticText51 = new wxStaticText( m_passive, wxID_ANY, _("1e3"), wxDefaultPosition, wxDefaultSize, 0 );
150  m_staticText51->Wrap( -1 );
151  fgSizerUnitSymbols->Add( m_staticText51, 0, wxALL, 5 );
152 
153  m_staticText52 = new wxStaticText( m_passive, wxID_ANY, _("meg"), wxDefaultPosition, wxDefaultSize, 0 );
154  m_staticText52->Wrap( -1 );
155  fgSizerUnitSymbols->Add( m_staticText52, 0, wxALL, 5 );
156 
157  m_staticText53 = new wxStaticText( m_passive, wxID_ANY, _("mega"), wxDefaultPosition, wxDefaultSize, 0 );
158  m_staticText53->Wrap( -1 );
159  fgSizerUnitSymbols->Add( m_staticText53, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5 );
160 
161  m_staticText54 = new wxStaticText( m_passive, wxID_ANY, _("1e6"), wxDefaultPosition, wxDefaultSize, 0 );
162  m_staticText54->Wrap( -1 );
163  fgSizerUnitSymbols->Add( m_staticText54, 0, wxALL, 5 );
164 
165  m_staticText55 = new wxStaticText( m_passive, wxID_ANY, _("g"), wxDefaultPosition, wxDefaultSize, 0 );
166  m_staticText55->Wrap( -1 );
167  fgSizerUnitSymbols->Add( m_staticText55, 0, wxALL, 5 );
168 
169  m_staticText56 = new wxStaticText( m_passive, wxID_ANY, _("giga"), wxDefaultPosition, wxDefaultSize, 0 );
170  m_staticText56->Wrap( -1 );
171  fgSizerUnitSymbols->Add( m_staticText56, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5 );
172 
173  m_staticText57 = new wxStaticText( m_passive, wxID_ANY, _("1e9"), wxDefaultPosition, wxDefaultSize, 0 );
174  m_staticText57->Wrap( -1 );
175  fgSizerUnitSymbols->Add( m_staticText57, 0, wxALL, 5 );
176 
177  m_staticText58 = new wxStaticText( m_passive, wxID_ANY, _("t"), wxDefaultPosition, wxDefaultSize, 0 );
178  m_staticText58->Wrap( -1 );
179  fgSizerUnitSymbols->Add( m_staticText58, 0, wxALL, 5 );
180 
181  m_staticText59 = new wxStaticText( m_passive, wxID_ANY, _("tera"), wxDefaultPosition, wxDefaultSize, 0 );
182  m_staticText59->Wrap( -1 );
183  fgSizerUnitSymbols->Add( m_staticText59, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5 );
184 
185  m_staticText60 = new wxStaticText( m_passive, wxID_ANY, _("1e12"), wxDefaultPosition, wxDefaultSize, 0 );
186  m_staticText60->Wrap( -1 );
187  fgSizerUnitSymbols->Add( m_staticText60, 0, wxALL, 5 );
188 
189 
190  bSizer5->Add( fgSizerUnitSymbols, 1, wxEXPAND, 5 );
191 
192 
193  bSizer41->Add( bSizer5, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
194 
195 
196  m_passive->SetSizer( bSizer41 );
197  m_passive->Layout();
198  bSizer41->Fit( m_passive );
199  m_notebook->AddPage( m_passive, _("Passive"), false );
200  m_model = new wxPanel( m_notebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
201  wxBoxSizer* bSizer6;
202  bSizer6 = new wxBoxSizer( wxVERTICAL );
203 
204  wxFlexGridSizer* fgSizer3;
205  fgSizer3 = new wxFlexGridSizer( 0, 2, 0, 0 );
206  fgSizer3->AddGrowableCol( 1 );
207  fgSizer3->SetFlexibleDirection( wxBOTH );
208  fgSizer3->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
209 
210  m_staticText7 = new wxStaticText( m_model, wxID_ANY, _("Library"), wxDefaultPosition, wxDefaultSize, 0 );
211  m_staticText7->Wrap( -1 );
212  fgSizer3->Add( m_staticText7, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
213 
214  wxBoxSizer* bSizer7;
215  bSizer7 = new wxBoxSizer( wxHORIZONTAL );
216 
217  m_modelLibrary = new wxTextCtrl( m_model, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY );
218  bSizer7->Add( m_modelLibrary, 1, wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 5 );
219 
220  m_selectLibrary = new wxButton( m_model, wxID_ANY, _("Select file..."), wxDefaultPosition, wxDefaultSize, 0 );
221  bSizer7->Add( m_selectLibrary, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
222 
223 
224  fgSizer3->Add( bSizer7, 1, wxEXPAND, 5 );
225 
226  m_staticText5 = new wxStaticText( m_model, wxID_ANY, _("Model"), wxDefaultPosition, wxDefaultSize, 0 );
227  m_staticText5->Wrap( -1 );
228  fgSizer3->Add( m_staticText5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
229 
230  m_modelName = new wxComboBox( m_model, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, wxCB_SORT );
231  fgSizer3->Add( m_modelName, 0, wxALL|wxEXPAND, 5 );
232 
233  m_staticText4 = new wxStaticText( m_model, wxID_ANY, _("Type"), wxDefaultPosition, wxDefaultSize, 0 );
234  m_staticText4->Wrap( -1 );
235  fgSizer3->Add( m_staticText4, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
236 
237  m_modelType = new wxComboBox( m_model, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, wxCB_READONLY );
238  m_modelType->Append( _("Subcircuit") );
239  m_modelType->Append( _("BJT") );
240  m_modelType->Append( _("MOSFET") );
241  m_modelType->Append( _("Diode") );
242  fgSizer3->Add( m_modelType, 0, wxALL|wxEXPAND, 5 );
243 
244 
245  bSizer6->Add( fgSizer3, 0, wxEXPAND, 5 );
246 
247  m_libraryContents = new wxTextCtrl( m_model, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_DONTWRAP|wxTE_MULTILINE|wxTE_READONLY );
248  m_libraryContents->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_TELETYPE, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) );
249 
250  bSizer6->Add( m_libraryContents, 1, wxALL|wxEXPAND, 5 );
251 
252 
253  m_model->SetSizer( bSizer6 );
254  m_model->Layout();
255  bSizer6->Fit( m_model );
256  m_notebook->AddPage( m_model, _("Model"), true );
257  m_power = new wxPanel( m_notebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
258  m_power->SetMinSize( wxSize( 650,-1 ) );
259 
260  wxBoxSizer* bSizer4;
261  bSizer4 = new wxBoxSizer( wxVERTICAL );
262 
263  wxStaticBoxSizer* sbSizer1;
264  sbSizer1 = new wxStaticBoxSizer( new wxStaticBox( m_power, wxID_ANY, _("DC/AC analysis") ), wxVERTICAL );
265 
266  wxFlexGridSizer* fgSizer6;
267  fgSizer6 = new wxFlexGridSizer( 0, 4, 0, 0 );
268  fgSizer6->AddGrowableCol( 1 );
269  fgSizer6->AddGrowableCol( 3 );
270  fgSizer6->SetFlexibleDirection( wxBOTH );
271  fgSizer6->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
272 
273  m_staticText10 = new wxStaticText( sbSizer1->GetStaticBox(), wxID_ANY, _("DC [V/A]"), wxDefaultPosition, wxDefaultSize, 0 );
274  m_staticText10->Wrap( -1 );
275  fgSizer6->Add( m_staticText10, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
276 
277  m_genDc = new wxTextCtrl( sbSizer1->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
278  m_genDc->SetMinSize( wxSize( 60,-1 ) );
279 
280  fgSizer6->Add( m_genDc, 0, wxALL|wxEXPAND, 5 );
281 
282 
283  fgSizer6->Add( 0, 0, 1, wxEXPAND, 5 );
284 
285 
286  fgSizer6->Add( 0, 0, 1, wxEXPAND, 5 );
287 
288  m_staticText11 = new wxStaticText( sbSizer1->GetStaticBox(), wxID_ANY, _("AC magnitude [V/A]"), wxDefaultPosition, wxDefaultSize, 0 );
289  m_staticText11->Wrap( -1 );
290  fgSizer6->Add( m_staticText11, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
291 
292  m_genAcMag = new wxTextCtrl( sbSizer1->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
293  m_genAcMag->SetMinSize( wxSize( 60,-1 ) );
294 
295  fgSizer6->Add( m_genAcMag, 0, wxALL|wxEXPAND, 5 );
296 
297  m_staticText12 = new wxStaticText( sbSizer1->GetStaticBox(), wxID_ANY, _("AC phase [rad]"), wxDefaultPosition, wxDefaultSize, 0 );
298  m_staticText12->Wrap( -1 );
299  fgSizer6->Add( m_staticText12, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
300 
301  m_genAcPhase = new wxTextCtrl( sbSizer1->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
302  m_genAcPhase->SetMinSize( wxSize( 60,-1 ) );
303 
304  fgSizer6->Add( m_genAcPhase, 0, wxALL|wxEXPAND, 5 );
305 
306 
307  sbSizer1->Add( fgSizer6, 1, wxEXPAND, 5 );
308 
309 
310  bSizer4->Add( sbSizer1, 0, wxALL|wxEXPAND, 5 );
311 
312  wxStaticBoxSizer* sbSizer3;
313  sbSizer3 = new wxStaticBoxSizer( new wxStaticBox( m_power, wxID_ANY, _("Transient analysis") ), wxVERTICAL );
314 
315  m_powerNotebook = new wxNotebook( sbSizer3->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
316  m_pwrPulse = new wxPanel( m_powerNotebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
317  wxFlexGridSizer* fgSizer7;
318  fgSizer7 = new wxFlexGridSizer( 0, 2, 0, 0 );
319  fgSizer7->AddGrowableCol( 1 );
320  fgSizer7->SetFlexibleDirection( wxBOTH );
321  fgSizer7->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
322 
323  m_staticText13 = new wxStaticText( m_pwrPulse, wxID_ANY, _("Initial value [V/A]"), wxDefaultPosition, wxDefaultSize, 0 );
324  m_staticText13->Wrap( -1 );
325  fgSizer7->Add( m_staticText13, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
326 
327  m_pulseInit = new wxTextCtrl( m_pwrPulse, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
328  m_pulseInit->SetMinSize( wxSize( 100,-1 ) );
329 
330  fgSizer7->Add( m_pulseInit, 0, wxALL|wxEXPAND, 5 );
331 
332  m_staticText14 = new wxStaticText( m_pwrPulse, wxID_ANY, _("Pulsed value [V/A]"), wxDefaultPosition, wxDefaultSize, 0 );
333  m_staticText14->Wrap( -1 );
334  fgSizer7->Add( m_staticText14, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
335 
336  m_pulseNominal = new wxTextCtrl( m_pwrPulse, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
337  fgSizer7->Add( m_pulseNominal, 0, wxALL|wxEXPAND, 5 );
338 
339  m_staticText15 = new wxStaticText( m_pwrPulse, wxID_ANY, _("Delay time [s]"), wxDefaultPosition, wxDefaultSize, 0 );
340  m_staticText15->Wrap( -1 );
341  fgSizer7->Add( m_staticText15, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
342 
343  m_pulseDelay = new wxTextCtrl( m_pwrPulse, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
344  fgSizer7->Add( m_pulseDelay, 0, wxALL|wxEXPAND, 5 );
345 
346  m_staticText16 = new wxStaticText( m_pwrPulse, wxID_ANY, _("Rise time [s]"), wxDefaultPosition, wxDefaultSize, 0 );
347  m_staticText16->Wrap( -1 );
348  fgSizer7->Add( m_staticText16, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
349 
350  m_pulseRise = new wxTextCtrl( m_pwrPulse, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
351  fgSizer7->Add( m_pulseRise, 0, wxALL|wxEXPAND, 5 );
352 
353  m_staticText17 = new wxStaticText( m_pwrPulse, wxID_ANY, _("Fall time [s]"), wxDefaultPosition, wxDefaultSize, 0 );
354  m_staticText17->Wrap( -1 );
355  fgSizer7->Add( m_staticText17, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
356 
357  m_pulseFall = new wxTextCtrl( m_pwrPulse, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
358  fgSizer7->Add( m_pulseFall, 0, wxALL|wxEXPAND, 5 );
359 
360  m_staticText18 = new wxStaticText( m_pwrPulse, wxID_ANY, _("Pulse width [s]"), wxDefaultPosition, wxDefaultSize, 0 );
361  m_staticText18->Wrap( -1 );
362  fgSizer7->Add( m_staticText18, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
363 
364  m_pulseWidth = new wxTextCtrl( m_pwrPulse, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
365  fgSizer7->Add( m_pulseWidth, 0, wxALL|wxEXPAND, 5 );
366 
367  m_staticText20 = new wxStaticText( m_pwrPulse, wxID_ANY, _("Period [s]"), wxDefaultPosition, wxDefaultSize, 0 );
368  m_staticText20->Wrap( -1 );
369  fgSizer7->Add( m_staticText20, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
370 
371  m_pulsePeriod = new wxTextCtrl( m_pwrPulse, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
372  fgSizer7->Add( m_pulsePeriod, 0, wxALL|wxEXPAND, 5 );
373 
374 
375  m_pwrPulse->SetSizer( fgSizer7 );
376  m_pwrPulse->Layout();
377  fgSizer7->Fit( m_pwrPulse );
378  m_powerNotebook->AddPage( m_pwrPulse, _("Pulse"), true );
379  m_pwrSin = new wxPanel( m_powerNotebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
380  wxFlexGridSizer* fgSizer8;
381  fgSizer8 = new wxFlexGridSizer( 0, 2, 0, 0 );
382  fgSizer8->AddGrowableCol( 1 );
383  fgSizer8->SetFlexibleDirection( wxBOTH );
384  fgSizer8->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
385 
386  m_staticText21 = new wxStaticText( m_pwrSin, wxID_ANY, _("DC offset [V/A]"), wxDefaultPosition, wxDefaultSize, 0 );
387  m_staticText21->Wrap( -1 );
388  fgSizer8->Add( m_staticText21, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
389 
390  m_sinOffset = new wxTextCtrl( m_pwrSin, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
391  m_sinOffset->SetMinSize( wxSize( 100,-1 ) );
392 
393  fgSizer8->Add( m_sinOffset, 0, wxALL|wxEXPAND, 5 );
394 
395  m_staticText22 = new wxStaticText( m_pwrSin, wxID_ANY, _("Amplitude [V/A]"), wxDefaultPosition, wxDefaultSize, 0 );
396  m_staticText22->Wrap( -1 );
397  fgSizer8->Add( m_staticText22, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
398 
399  m_sinAmplitude = new wxTextCtrl( m_pwrSin, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
400  fgSizer8->Add( m_sinAmplitude, 0, wxALL|wxEXPAND, 5 );
401 
402  m_staticText23 = new wxStaticText( m_pwrSin, wxID_ANY, _("Frequency [Hz]"), wxDefaultPosition, wxDefaultSize, 0 );
403  m_staticText23->Wrap( -1 );
404  fgSizer8->Add( m_staticText23, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
405 
406  m_sinFreq = new wxTextCtrl( m_pwrSin, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
407  fgSizer8->Add( m_sinFreq, 0, wxALL|wxEXPAND, 5 );
408 
409  m_staticText24 = new wxStaticText( m_pwrSin, wxID_ANY, _("Delay [s]"), wxDefaultPosition, wxDefaultSize, 0 );
410  m_staticText24->Wrap( -1 );
411  fgSizer8->Add( m_staticText24, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
412 
413  m_sinDelay = new wxTextCtrl( m_pwrSin, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
414  fgSizer8->Add( m_sinDelay, 0, wxALL|wxEXPAND, 5 );
415 
416  m_staticText25 = new wxStaticText( m_pwrSin, wxID_ANY, _("Damping factor [1/s]"), wxDefaultPosition, wxDefaultSize, 0 );
417  m_staticText25->Wrap( -1 );
418  fgSizer8->Add( m_staticText25, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
419 
420  m_sinDampFactor = new wxTextCtrl( m_pwrSin, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
421  fgSizer8->Add( m_sinDampFactor, 0, wxALL|wxEXPAND, 5 );
422 
423 
424  m_pwrSin->SetSizer( fgSizer8 );
425  m_pwrSin->Layout();
426  fgSizer8->Fit( m_pwrSin );
427  m_powerNotebook->AddPage( m_pwrSin, _("Sinusoidal"), false );
428  m_pwrExp = new wxPanel( m_powerNotebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
429  wxFlexGridSizer* fgSizer9;
430  fgSizer9 = new wxFlexGridSizer( 0, 2, 0, 0 );
431  fgSizer9->AddGrowableCol( 1 );
432  fgSizer9->SetFlexibleDirection( wxBOTH );
433  fgSizer9->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
434 
435  m_staticText26 = new wxStaticText( m_pwrExp, wxID_ANY, _("Initial value [V/A]"), wxDefaultPosition, wxDefaultSize, 0 );
436  m_staticText26->Wrap( -1 );
437  fgSizer9->Add( m_staticText26, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
438 
439  m_expInit = new wxTextCtrl( m_pwrExp, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
440  m_expInit->SetMinSize( wxSize( 100,-1 ) );
441 
442  fgSizer9->Add( m_expInit, 0, wxALL|wxEXPAND, 5 );
443 
444  m_staticText27 = new wxStaticText( m_pwrExp, wxID_ANY, _("Pulsed value [V/A]"), wxDefaultPosition, wxDefaultSize, 0 );
445  m_staticText27->Wrap( -1 );
446  fgSizer9->Add( m_staticText27, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
447 
448  m_expPulsed = new wxTextCtrl( m_pwrExp, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
449  fgSizer9->Add( m_expPulsed, 0, wxALL|wxEXPAND, 5 );
450 
451  m_staticText28 = new wxStaticText( m_pwrExp, wxID_ANY, _("Rise delay time [s]"), wxDefaultPosition, wxDefaultSize, 0 );
452  m_staticText28->Wrap( -1 );
453  fgSizer9->Add( m_staticText28, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
454 
455  m_expRiseDelay = new wxTextCtrl( m_pwrExp, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
456  fgSizer9->Add( m_expRiseDelay, 0, wxALL|wxEXPAND, 5 );
457 
458  m_staticText29 = new wxStaticText( m_pwrExp, wxID_ANY, _("Rise time constant [s]"), wxDefaultPosition, wxDefaultSize, 0 );
459  m_staticText29->Wrap( -1 );
460  fgSizer9->Add( m_staticText29, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
461 
462  m_expRiseConst = new wxTextCtrl( m_pwrExp, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
463  fgSizer9->Add( m_expRiseConst, 0, wxALL|wxEXPAND, 5 );
464 
465  m_staticText30 = new wxStaticText( m_pwrExp, wxID_ANY, _("Fall delay time [s]"), wxDefaultPosition, wxDefaultSize, 0 );
466  m_staticText30->Wrap( -1 );
467  fgSizer9->Add( m_staticText30, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
468 
469  m_expFallDelay = new wxTextCtrl( m_pwrExp, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
470  fgSizer9->Add( m_expFallDelay, 0, wxALL|wxEXPAND, 5 );
471 
472  m_staticText31 = new wxStaticText( m_pwrExp, wxID_ANY, _("Fall time constant [s]"), wxDefaultPosition, wxDefaultSize, 0 );
473  m_staticText31->Wrap( -1 );
474  fgSizer9->Add( m_staticText31, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
475 
476  m_expFallConst = new wxTextCtrl( m_pwrExp, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
477  fgSizer9->Add( m_expFallConst, 0, wxALL|wxEXPAND, 5 );
478 
479 
480  m_pwrExp->SetSizer( fgSizer9 );
481  m_pwrExp->Layout();
482  fgSizer9->Fit( m_pwrExp );
483  m_powerNotebook->AddPage( m_pwrExp, _("Exponential"), false );
484  m_pwrPwl = new wxPanel( m_powerNotebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
485  m_pwrPwl->SetToolTip( _("Piece-wise linear") );
486 
487  wxFlexGridSizer* fgSizer15;
488  fgSizer15 = new wxFlexGridSizer( 0, 2, 0, 0 );
489  fgSizer15->AddGrowableCol( 0 );
490  fgSizer15->AddGrowableRow( 1 );
491  fgSizer15->SetFlexibleDirection( wxBOTH );
492  fgSizer15->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_ALL );
493 
494  wxFlexGridSizer* fgSizer10;
495  fgSizer10 = new wxFlexGridSizer( 0, 2, 0, 0 );
496  fgSizer10->AddGrowableCol( 1 );
497  fgSizer10->SetFlexibleDirection( wxBOTH );
498  fgSizer10->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
499 
500  m_staticText34 = new wxStaticText( m_pwrPwl, wxID_ANY, _("Time [s]"), wxDefaultPosition, wxDefaultSize, 0 );
501  m_staticText34->Wrap( -1 );
502  fgSizer10->Add( m_staticText34, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
503 
504  m_pwlTime = new wxTextCtrl( m_pwrPwl, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
505  m_pwlTime->SetMinSize( wxSize( 100,-1 ) );
506 
507  fgSizer10->Add( m_pwlTime, 0, wxALL|wxEXPAND, 5 );
508 
509  m_staticText35 = new wxStaticText( m_pwrPwl, wxID_ANY, _("Value [V/A]"), wxDefaultPosition, wxDefaultSize, 0 );
510  m_staticText35->Wrap( -1 );
511  fgSizer10->Add( m_staticText35, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
512 
513  m_pwlValue = new wxTextCtrl( m_pwrPwl, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
514  fgSizer10->Add( m_pwlValue, 0, wxALL|wxEXPAND, 5 );
515 
516 
517  fgSizer15->Add( fgSizer10, 1, wxEXPAND, 5 );
518 
519  m_pwlAddButton = new wxButton( m_pwrPwl, wxID_ANY, _("Add"), wxDefaultPosition, wxDefaultSize, 0 );
520  fgSizer15->Add( m_pwlAddButton, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
521 
522  m_pwlValList = new wxListCtrl( m_pwrPwl, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLC_REPORT|wxLC_SINGLE_SEL );
523  m_pwlValList->SetMinSize( wxSize( 200,-1 ) );
524 
525  fgSizer15->Add( m_pwlValList, 0, wxALL|wxEXPAND, 5 );
526 
527  m_pwlRemoveBtn = new wxButton( m_pwrPwl, wxID_ANY, _("Remove"), wxDefaultPosition, wxDefaultSize, 0 );
528  fgSizer15->Add( m_pwlRemoveBtn, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
529 
530 
531  m_pwrPwl->SetSizer( fgSizer15 );
532  m_pwrPwl->Layout();
533  fgSizer15->Fit( m_pwrPwl );
534  m_powerNotebook->AddPage( m_pwrPwl, _("Piece-wise Linear"), false );
535  m_pwrFm = new wxPanel( m_powerNotebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
536  m_pwrFm->Hide();
537 
538  m_powerNotebook->AddPage( m_pwrFm, _("FM"), false );
539  m_pwrAm = new wxPanel( m_powerNotebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
540  m_pwrAm->Hide();
541 
542  m_powerNotebook->AddPage( m_pwrAm, _("AM"), false );
543  m_pwrTransNoise = new wxPanel( m_powerNotebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
544  m_pwrTransNoise->Hide();
545 
546  m_powerNotebook->AddPage( m_pwrTransNoise, _("Transient noise"), false );
547  m_pwrRandom = new wxPanel( m_powerNotebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
548  m_pwrRandom->Hide();
549 
550  m_powerNotebook->AddPage( m_pwrRandom, _("Random"), false );
551  m_pwrExtData = new wxPanel( m_powerNotebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
552  m_pwrExtData->Hide();
553 
554  m_powerNotebook->AddPage( m_pwrExtData, _("External data"), false );
555 
556  sbSizer3->Add( m_powerNotebook, 0, wxEXPAND | wxALL, 5 );
557 
558 
559  bSizer4->Add( sbSizer3, 0, wxALL|wxEXPAND, 5 );
560 
561  wxString m_pwrTypeChoices[] = { _("Voltage"), _("Current") };
562  int m_pwrTypeNChoices = sizeof( m_pwrTypeChoices ) / sizeof( wxString );
563  m_pwrType = new wxRadioBox( m_power, wxID_ANY, _("Source type"), wxDefaultPosition, wxDefaultSize, m_pwrTypeNChoices, m_pwrTypeChoices, 1, wxRA_SPECIFY_ROWS );
564  m_pwrType->SetSelection( 0 );
565  bSizer4->Add( m_pwrType, 0, wxALL|wxEXPAND, 5 );
566 
567 
568  m_power->SetSizer( bSizer4 );
569  m_power->Layout();
570  bSizer4->Fit( m_power );
571  m_notebook->AddPage( m_power, _("Source"), false );
572 
573  bSizer1->Add( m_notebook, 1, wxEXPAND | wxALL, 5 );
574 
575  m_staticline2 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
576  bSizer1->Add( m_staticline2, 0, wxEXPAND | wxALL, 5 );
577 
578  m_disabled = new wxCheckBox( this, wxID_ANY, _("Disable component for simulation"), wxDefaultPosition, wxDefaultSize, 0 );
579  bSizer1->Add( m_disabled, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
580 
581  wxBoxSizer* bSizer2;
582  bSizer2 = new wxBoxSizer( wxHORIZONTAL );
583 
584  m_nodeSeqCheck = new wxCheckBox( this, wxID_ANY, _("Alternate node sequence:"), wxDefaultPosition, wxDefaultSize, 0 );
585  bSizer2->Add( m_nodeSeqCheck, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
586 
587  m_nodeSeqVal = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
588  m_nodeSeqVal->SetMinSize( wxSize( 200,-1 ) );
589 
590  bSizer2->Add( m_nodeSeqVal, 1, wxALL, 5 );
591 
592 
593  bSizer1->Add( bSizer2, 0, wxEXPAND, 5 );
594 
595  m_staticline3 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
596  bSizer1->Add( m_staticline3, 0, wxEXPAND | wxALL, 5 );
597 
598  m_sdbSizer = new wxStdDialogButtonSizer();
599  m_sdbSizerOK = new wxButton( this, wxID_OK );
600  m_sdbSizer->AddButton( m_sdbSizerOK );
601  m_sdbSizerCancel = new wxButton( this, wxID_CANCEL );
602  m_sdbSizer->AddButton( m_sdbSizerCancel );
603  m_sdbSizer->Realize();
604 
605  bSizer1->Add( m_sdbSizer, 0, wxALL|wxEXPAND, 5 );
606 
607 
608  this->SetSizer( bSizer1 );
609  this->Layout();
610 
611  this->Centre( wxBOTH );
612 
613  // Connect Events
614  this->Connect( wxEVT_INIT_DIALOG, wxInitDialogEventHandler( DIALOG_SPICE_MODEL_BASE::onInitDlg ) );
615  m_selectLibrary->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_SPICE_MODEL_BASE::onSelectLibrary ), NULL, this );
616  m_modelName->Connect( wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler( DIALOG_SPICE_MODEL_BASE::onModelSelected ), NULL, this );
617  m_modelName->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_SPICE_MODEL_BASE::onModelSelected ), NULL, this );
618  m_pwlAddButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_SPICE_MODEL_BASE::onPwlAdd ), NULL, this );
619  m_pwlRemoveBtn->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_SPICE_MODEL_BASE::onPwlRemove ), NULL, this );
620 }
621 
623 {
624  // Disconnect Events
625  this->Disconnect( wxEVT_INIT_DIALOG, wxInitDialogEventHandler( DIALOG_SPICE_MODEL_BASE::onInitDlg ) );
626  m_selectLibrary->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_SPICE_MODEL_BASE::onSelectLibrary ), NULL, this );
627  m_modelName->Disconnect( wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler( DIALOG_SPICE_MODEL_BASE::onModelSelected ), NULL, this );
628  m_modelName->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_SPICE_MODEL_BASE::onModelSelected ), NULL, this );
629  m_pwlAddButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_SPICE_MODEL_BASE::onPwlAdd ), NULL, this );
630  m_pwlRemoveBtn->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_SPICE_MODEL_BASE::onPwlRemove ), NULL, this );
631 
632 }
virtual void onModelSelected(wxCommandEvent &event)
Class DIALOG_SHIM may sit in the inheritance tree between wxDialog and any class written by wxFormBui...
Definition: dialog_shim.h:60
wxStdDialogButtonSizer * m_sdbSizer
virtual void onInitDlg(wxInitDialogEvent &event)
DIALOG_SPICE_MODEL_BASE(wxWindow *parent, wxWindowID id=wxID_ANY, const wxString &title=_("Spice Model Editor"), const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxSize(640, 582), long style=wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER)
virtual void onPwlAdd(wxCommandEvent &event)
virtual void onSelectLibrary(wxCommandEvent &event)
virtual void onPwlRemove(wxCommandEvent &event)