KiCad PCB EDA Suite
DIALOG_SPICE_MODEL Class Reference

#include <dialog_spice_model.h>

Inheritance diagram for DIALOG_SPICE_MODEL:
DIALOG_SPICE_MODEL_BASE DIALOG_SHIM KIWAY_HOLDER

Classes

struct  MODEL
 

Public Types

enum  HOLDER_TYPE { DIALOG, FRAME, PANEL, SCREEN }
 

Public Member Functions

 DIALOG_SPICE_MODEL (wxWindow *aParent, SCH_COMPONENT &aComponent, SCH_FIELDS *aSchFields)
 
 DIALOG_SPICE_MODEL (wxWindow *aParent, SCH_COMPONENT &aComponent, LIB_FIELDS *aLibFields)
 
void SetInitialFocus (wxWindow *aWindow)
 Sets the window (usually a wxTextCtrl) that should be focused when the dialog is shown. More...
 
int ShowQuasiModal ()
 
void EndQuasiModal (int retCode)
 
bool IsQuasiModal ()
 
bool Show (bool show) override
 
bool Enable (bool enable) override
 
void OnPaint (wxPaintEvent &event)
 
EDA_UNITS GetUserUnits () const
 
HOLDER_TYPE GetType ()
 
KIWAYKiway () const
 Function Kiway returns a reference to the KIWAY that this object has an opportunity to participate in. More...
 
PROJECTPrj () const
 Function Prj returns a reference to the PROJECT "associated with" this KIWAY. More...
 
void SetKiway (wxWindow *aDest, KIWAY *aKiway)
 Function SetKiway. More...
 

Static Public Member Functions

static bool IsCtrl (int aChar, const wxKeyEvent &e)
 
static bool IsShiftCtrl (int aChar, const wxKeyEvent &e)
 

Protected Member Functions

void FinishDialogSettings ()
 In all dialogs, we must call the same functions to fix minimal dlg size, the default position and perhaps some others to fix a few issues depending on Windows Managers this helper function does these calls. More...
 
void SetSizeInDU (int x, int y)
 Set the dialog to the given dimensions in "dialog units". More...
 
int HorizPixelsFromDU (int x)
 Convert an integer number of dialog units to pixels, horizontally. More...
 
int VertPixelsFromDU (int y)
 Convert an integer number of dialog units to pixels, vertically. More...
 
void ResetSize ()
 Clear the existing dialog size and position. More...
 

Protected Attributes

wxNotebook * m_notebook
 
wxPanel * m_passive
 
wxStaticText * m_staticTextPtype
 
wxComboBox * m_pasType
 
wxStaticText * m_staticText62
 
wxStaticText * m_staticTextPvalue
 
wxTextCtrl * m_pasValue
 
wxStaticText * m_staticTextSpVal
 
wxStaticLine * m_staticline1
 
wxStaticText * m_staticText32
 
wxStaticText * m_staticText321
 
wxStaticText * m_staticText341
 
wxStaticText * m_staticText_femto
 
wxStaticText * m_staticText36
 
wxStaticText * m_staticText37
 
wxStaticText * m_staticText38
 
wxStaticText * m_staticText39
 
wxStaticText * m_staticText40
 
wxStaticText * m_staticText41
 
wxStaticText * m_staticText42
 
wxStaticText * m_staticText43
 
wxStaticText * m_staticText44
 
wxStaticText * m_staticText46
 
wxStaticText * m_staticText47
 
wxStaticText * m_staticText48
 
wxStaticText * m_staticText45
 
wxStaticText * m_staticText49
 
wxStaticText * m_staticText50
 
wxStaticText * m_staticText51
 
wxStaticText * m_staticText52
 
wxStaticText * m_staticText53
 
wxStaticText * m_staticText54
 
wxStaticText * m_staticText55
 
wxStaticText * m_staticText56
 
wxStaticText * m_staticText57
 
wxStaticText * m_staticText58
 
wxStaticText * m_staticText59
 
wxStaticText * m_staticText60
 
wxPanel * m_model
 
wxStaticText * m_staticText7
 
wxTextCtrl * m_modelLibrary
 
wxButton * m_selectLibrary
 
wxStaticText * m_staticText5
 
wxComboBox * m_modelName
 
wxStaticText * m_staticText4
 
wxComboBox * m_modelType
 
wxStyledTextCtrl * m_libraryContents
 
wxPanel * m_power
 
wxStaticText * m_staticText10
 
wxTextCtrl * m_genDc
 
wxStaticText * m_staticText113
 
wxStaticText * m_staticText11
 
wxTextCtrl * m_genAcMag
 
wxStaticText * m_staticText111
 
wxStaticText * m_staticText12
 
wxTextCtrl * m_genAcPhase
 
wxStaticText * m_staticText112
 
wxNotebook * m_powerNotebook
 
wxPanel * m_pwrPulse
 
wxStaticText * m_staticText13
 
wxTextCtrl * m_pulseInit
 
wxStaticText * m_staticText131
 
wxStaticText * m_staticText14
 
wxTextCtrl * m_pulseNominal
 
wxStaticText * m_staticText132
 
wxStaticText * m_staticText15
 
wxTextCtrl * m_pulseDelay
 
wxStaticText * m_staticText133
 
wxStaticText * m_staticText16
 
wxTextCtrl * m_pulseRise
 
wxStaticText * m_staticText134
 
wxStaticText * m_staticText17
 
wxTextCtrl * m_pulseFall
 
wxStaticText * m_staticText135
 
wxStaticText * m_staticText18
 
wxTextCtrl * m_pulseWidth
 
wxStaticText * m_staticText136
 
wxStaticText * m_staticText20
 
wxTextCtrl * m_pulsePeriod
 
wxStaticText * m_staticText137
 
wxPanel * m_pwrSin
 
wxStaticText * m_staticText21
 
wxTextCtrl * m_sinOffset
 
wxStaticText * m_staticText211
 
wxStaticText * m_staticText22
 
wxTextCtrl * m_sinAmplitude
 
wxStaticText * m_staticText212
 
wxStaticText * m_staticText23
 
wxTextCtrl * m_sinFreq
 
wxStaticText * m_staticText213
 
wxStaticText * m_staticText24
 
wxTextCtrl * m_sinDelay
 
wxStaticText * m_staticText214
 
wxStaticText * m_staticText25
 
wxTextCtrl * m_sinDampFactor
 
wxStaticText * m_staticText215
 
wxPanel * m_pwrExp
 
wxStaticText * m_staticText26
 
wxTextCtrl * m_expInit
 
wxStaticText * m_staticText261
 
wxStaticText * m_staticText27
 
wxTextCtrl * m_expPulsed
 
wxStaticText * m_staticText262
 
wxStaticText * m_staticText28
 
wxTextCtrl * m_expRiseDelay
 
wxStaticText * m_staticText263
 
wxStaticText * m_staticText29
 
wxTextCtrl * m_expRiseConst
 
wxStaticText * m_staticText264
 
wxStaticText * m_staticText30
 
wxTextCtrl * m_expFallDelay
 
wxStaticText * m_staticText265
 
wxStaticText * m_staticText31
 
wxTextCtrl * m_expFallConst
 
wxStaticText * m_staticText266
 
wxPanel * m_pwrPwl
 
wxStaticText * m_staticText34
 
wxTextCtrl * m_pwlTime
 
wxStaticText * m_staticText342
 
wxStaticText * m_staticText35
 
wxTextCtrl * m_pwlValue
 
wxStaticText * m_staticText343
 
wxButton * m_pwlAddButton
 
wxListCtrl * m_pwlValList
 
wxButton * m_pwlRemoveBtn
 
wxPanel * m_pwrFm
 
wxPanel * m_pwrAm
 
wxPanel * m_pwrTransNoise
 
wxPanel * m_pwrRandom
 
wxPanel * m_pwrExtData
 
wxRadioBox * m_pwrType
 
wxStaticLine * m_staticline2
 
wxCheckBox * m_disabled
 
wxCheckBox * m_nodeSeqCheck
 
wxTextCtrl * m_nodeSeqVal
 
wxStaticLine * m_staticline3
 
wxStdDialogButtonSizer * m_sdbSizer
 
wxButton * m_sdbSizerOK
 
wxButton * m_sdbSizerCancel
 
EDA_UNITS m_units
 
std::string m_hash_key
 
bool m_firstPaintEvent
 
wxWindow * m_initialFocusTarget
 
WX_EVENT_LOOPm_qmodal_loop
 
bool m_qmodal_showing
 
WDO_ENABLE_DISABLEm_qmodal_parent_disabler
 
std::vector< wxWindow * > m_tabOrder
 

Private Member Functions

bool parsePowerSource (const wxString &aModel)
 Parse a string describing a power source, so appropriate settings are checked in the dialog. More...
 
bool generatePowerSource (wxString &aTarget) const
 Generates a string to describe power source parameters, basing on the current selection. More...
 
void loadLibrary (const wxString &aFilePath)
 Loads a list of components (.model and .subckt) from a spice library file and adds them to a combo box. More...
 
SCH_FIELDgetSchField (int aFieldType)
 Returns or creates a field in the edited schematic fields vector. More...
 
LIB_FIELDgetLibField (int aFieldType)
 
bool addPwlValue (const wxString &aTime, const wxString &aValue)
 Adds a value to the PWL values list. More...
 
virtual bool TransferDataFromWindow () override
 
virtual bool TransferDataToWindow () override
 
virtual bool Validate () override
 
virtual void onInitDlg (wxInitDialogEvent &event) override
 
void Init ()
 Initializes the internal settings. More...
 
void onSelectLibrary (wxCommandEvent &event) override
 
void onModelSelected (wxCommandEvent &event) override
 
void onPwlAdd (wxCommandEvent &event) override
 
void onPwlRemove (wxCommandEvent &event) override
 

Private Attributes

SCH_COMPONENTm_component
 

Edited component

More...
 
SCH_FIELDSm_schfields
 

Fields from the component properties dialog

More...
 
LIB_FIELDSm_libfields
 
bool m_useSchFields
 
std::map< int, wxString > m_fieldsTmp
 

Temporary field values

More...
 
std::map< wxString, MODELm_models
 

Models available in the selected library file

More...
 
long m_pwlTimeCol
 

Column identifiers for PWL power source value list

More...
 
long m_pwlValueCol
 
SPICE_VALIDATOR m_spiceValidator
 
SPICE_VALIDATOR m_spiceEmptyValidator
 
wxTextValidator m_notEmptyValidator
 

Detailed Description

Definition at line 38 of file dialog_spice_model.h.

Member Enumeration Documentation

◆ HOLDER_TYPE

enum KIWAY_HOLDER::HOLDER_TYPE
inherited
Enumerator
DIALOG 
FRAME 
PANEL 
SCREEN 

Definition at line 42 of file kiway_holder.h.

Constructor & Destructor Documentation

◆ DIALOG_SPICE_MODEL() [1/2]

DIALOG_SPICE_MODEL::DIALOG_SPICE_MODEL ( wxWindow *  aParent,
SCH_COMPONENT aComponent,
SCH_FIELDS aSchFields 
)

Definition at line 97 of file dialog_spice_model.cpp.

98  : DIALOG_SPICE_MODEL_BASE( aParent ), m_component( aComponent ), m_schfields( aFields ),
99  m_libfields( nullptr ), m_useSchFields( true ),
100  m_spiceEmptyValidator( true ), m_notEmptyValidator( wxFILTER_EMPTY )
101 {
102  Init();
103 }
void Init()
Initializes the internal settings.
SCH_COMPONENT & m_component
Edited component
SCH_FIELDS * m_schfields
Fields from the component properties dialog
wxTextValidator m_notEmptyValidator
DIALOG_SPICE_MODEL_BASE(wxWindow *parent, wxWindowID id=wxID_ANY, const wxString &title=_("Spice Model Editor"), const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxSize(494, 604), long style=wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER)
SPICE_VALIDATOR m_spiceEmptyValidator

References Init().

◆ DIALOG_SPICE_MODEL() [2/2]

DIALOG_SPICE_MODEL::DIALOG_SPICE_MODEL ( wxWindow *  aParent,
SCH_COMPONENT aComponent,
LIB_FIELDS aLibFields 
)

Definition at line 106 of file dialog_spice_model.cpp.

107  : DIALOG_SPICE_MODEL_BASE( aParent ), m_component( aComponent ), m_schfields( nullptr ),
108  m_libfields( aFields ), m_useSchFields( false ),
109  m_spiceEmptyValidator( true ), m_notEmptyValidator( wxFILTER_EMPTY )
110 {
111  Init();
112 }
void Init()
Initializes the internal settings.
SCH_COMPONENT & m_component
Edited component
SCH_FIELDS * m_schfields
Fields from the component properties dialog
wxTextValidator m_notEmptyValidator
DIALOG_SPICE_MODEL_BASE(wxWindow *parent, wxWindowID id=wxID_ANY, const wxString &title=_("Spice Model Editor"), const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxSize(494, 604), long style=wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER)
SPICE_VALIDATOR m_spiceEmptyValidator

References Init().

Member Function Documentation

◆ addPwlValue()

bool DIALOG_SPICE_MODEL::addPwlValue ( const wxString &  aTime,
const wxString &  aValue 
)
private

Adds a value to the PWL values list.

Parameters
aTimeis the time value.
aValueis the source value at the given time.
Returns
True if request has completed successfully, false if the data is invalid.

Definition at line 800 of file dialog_spice_model.cpp.

801 {
802  // TODO execute validators
803  if( aTime.IsEmpty() || aValue.IsEmpty() )
804  return false;
805 
806  long idx = m_pwlValList->InsertItem( m_pwlTimeCol, aTime );
807  m_pwlValList->SetItem( idx, m_pwlValueCol, aValue );
808 
809  // There is no wxString::ToFloat, but we need to guarantee it fits in 4 bytes
810  double timeD;
811  float timeF;
812  m_pwlTime->GetValue().ToDouble( &timeD );
813  timeF = timeD;
814  long data;
815  std::memcpy( &data, &timeF, sizeof( timeF ) );
816 
817  // Store the time value, so the entries can be sorted
818  m_pwlValList->SetItemData( idx, data );
819 
820  // Sort items by timestamp
821  m_pwlValList->SortItems( comparePwlValues, -1 );
822 
823  return true;
824 }
long m_pwlTimeCol
Column identifiers for PWL power source value list
static int wxCALLBACK comparePwlValues(wxIntPtr aItem1, wxIntPtr aItem2, wxIntPtr WXUNUSED(aSortData))

References comparePwlValues(), DIALOG_SPICE_MODEL_BASE::m_pwlTime, m_pwlTimeCol, DIALOG_SPICE_MODEL_BASE::m_pwlValList, and m_pwlValueCol.

Referenced by onPwlAdd(), and parsePowerSource().

◆ Enable()

bool DIALOG_SHIM::Enable ( bool  enable)
overrideinherited

Definition at line 262 of file dialog_shim.cpp.

263 {
264  // so we can do logging of this state change:
265 
266 #if 0 && defined(DEBUG)
267  const char* type_id = typeid( *this ).name();
268  printf( "DIALOG_SHIM %s: %s\n", type_id, enable ? "enabled" : "disabled" );
269  fflush(0); //Needed on msys2 to immediately print the message
270 #endif
271 
272  return wxDialog::Enable( enable );
273 }

◆ EndQuasiModal()

void DIALOG_SHIM::EndQuasiModal ( int  retCode)
inherited

Definition at line 419 of file dialog_shim.cpp.

420 {
421  // Hook up validator and transfer data from controls handling so quasi-modal dialogs
422  // handle validation in the same way as other dialogs.
423  if( ( retCode == wxID_OK ) && ( !Validate() || !TransferDataFromWindow() ) )
424  return;
425 
426  SetReturnCode( retCode );
427 
428  if( !IsQuasiModal() )
429  {
430  wxFAIL_MSG( "either DIALOG_SHIM::EndQuasiModal called twice or ShowQuasiModal"
431  "wasn't called" );
432  return;
433  }
434 
435  if( m_qmodal_loop )
436  {
437  if( m_qmodal_loop->IsRunning() )
438  m_qmodal_loop->Exit( 0 );
439  else
440  m_qmodal_loop->ScheduleExit( 0 );
441 
443  }
444 
447 
448  Show( false );
449 }
WX_EVENT_LOOP * m_qmodal_loop
Definition: dialog_shim.h:205
#define NULL
bool IsQuasiModal()
Definition: dialog_shim.h:124
bool Show(bool show) override
WDO_ENABLE_DISABLE * m_qmodal_parent_disabler
Definition: dialog_shim.h:208

References DIALOG_SHIM::IsQuasiModal(), DIALOG_SHIM::m_qmodal_loop, DIALOG_SHIM::m_qmodal_parent_disabler, NULL, and DIALOG_SHIM::Show().

Referenced by HK_PROMPT_DIALOG::EndFlexible(), DIALOG_SHIM::OnButton(), DIALOG_EDIT_COMPONENTS_LIBID::onCancel(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::OnCancelButtonClick(), DIALOG_EDIT_COMPONENT_IN_LIBRARY::OnCancelButtonClick(), DIALOG_LIB_EDIT_PIN_TABLE::OnClose(), DIALOG_PRINT_GENERIC::onCloseButton(), DIALOG_CHOOSE_FOOTPRINT::OnCloseTimer(), DIALOG_CHOOSE_COMPONENT::OnCloseTimer(), DIALOG_SHIM::OnCloseWindow(), HTML_MESSAGE_BOX::OnOKButtonClick(), DIALOG_CHOOSE_FOOTPRINT::OnUseBrowser(), DIALOG_CHOOSE_COMPONENT::OnUseBrowser(), and DIALOG_SHIM::~DIALOG_SHIM().

◆ FinishDialogSettings()

void DIALOG_SHIM::FinishDialogSettings ( )
protectedinherited

In all dialogs, we must call the same functions to fix minimal dlg size, the default position and perhaps some others to fix a few issues depending on Windows Managers this helper function does these calls.

FinishDialogSettings must be called from derived classes, when all widgets are initialized, and therefore their size fixed. If TransferDataToWindow() is used to initialize widgets, at end of TransferDataToWindow, or better at end of a wxInitDialogEvent handler

In any case, the best way is to call it in a wxInitDialogEvent handler after calling TransfertDataToWindow(), which is the default wxInitDialogEvent handler wxDialog

Definition at line 137 of file dialog_shim.cpp.

138 {
139  // must be called from the constructor of derived classes,
140  // when all widgets are initialized, and therefore their size fixed
141 
142  // SetSizeHints fixes the minimal size of sizers in the dialog
143  // (SetSizeHints calls Fit(), so no need to call it)
144  GetSizer()->SetSizeHints( this );
145 
146  // the default position, when calling the first time the dlg
147  Center();
148 }

References PCAD2KICAD::Center.

Referenced by DIALOG_3D_VIEW_OPTIONS::DIALOG_3D_VIEW_OPTIONS(), DIALOG_ANNOTATE::DIALOG_ANNOTATE(), DIALOG_BOARD_SETUP::DIALOG_BOARD_SETUP(), DIALOG_BOM::DIALOG_BOM(), DIALOG_COPPER_ZONE::DIALOG_COPPER_ZONE(), DIALOG_DRC::DIALOG_DRC(), DIALOG_EDIT_COMPONENT_IN_LIBRARY::DIALOG_EDIT_COMPONENT_IN_LIBRARY(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::DIALOG_EDIT_COMPONENT_IN_SCHEMATIC(), DIALOG_EDIT_COMPONENTS_LIBID::DIALOG_EDIT_COMPONENTS_LIBID(), DIALOG_EDIT_LINE_STYLE::DIALOG_EDIT_LINE_STYLE(), DIALOG_EDIT_SHEET_PIN::DIALOG_EDIT_SHEET_PIN(), DIALOG_EDITOR_DATA::DIALOG_EDITOR_DATA(), DIALOG_ENUM_PADS::DIALOG_ENUM_PADS(), DIALOG_ERC::DIALOG_ERC(), DIALOG_EXCHANGE_FOOTPRINTS::DIALOG_EXCHANGE_FOOTPRINTS(), DIALOG_EXPORT_3DFILE::DIALOG_EXPORT_3DFILE(), DIALOG_EXPORT_IDF3::DIALOG_EXPORT_IDF3(), DIALOG_EXPORT_STEP::DIALOG_EXPORT_STEP(), DIALOG_EXPORT_SVG::DIALOG_EXPORT_SVG(), DIALOG_FIELDS_EDITOR_GLOBAL::DIALOG_FIELDS_EDITOR_GLOBAL(), DIALOG_FOOTPRINT_BOARD_EDITOR::DIALOG_FOOTPRINT_BOARD_EDITOR(), DIALOG_FOOTPRINT_FP_EDITOR::DIALOG_FOOTPRINT_FP_EDITOR(), DIALOG_FOOTPRINT_WIZARD_LIST::DIALOG_FOOTPRINT_WIZARD_LIST(), DIALOG_FOOTPRINTS_DISPLAY_OPTIONS::DIALOG_FOOTPRINTS_DISPLAY_OPTIONS(), DIALOG_FP_BROWSER_DISPLAY_OPTIONS::DIALOG_FP_BROWSER_DISPLAY_OPTIONS(), DIALOG_GENCAD_EXPORT_OPTIONS::DIALOG_GENCAD_EXPORT_OPTIONS(), DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS::DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS(), DIALOG_GLOBAL_EDIT_TRACKS_AND_VIAS::DIALOG_GLOBAL_EDIT_TRACKS_AND_VIAS(), DIALOG_GLOBAL_LIB_TABLE_CONFIG::DIALOG_GLOBAL_LIB_TABLE_CONFIG(), DIALOG_IMAGE_EDITOR::DIALOG_IMAGE_EDITOR(), DIALOG_KEEPOUT_AREA_PROPERTIES::DIALOG_KEEPOUT_AREA_PROPERTIES(), DIALOG_LABEL_EDITOR::DIALOG_LABEL_EDITOR(), DIALOG_LIB_EDIT_DRAW_ITEM::DIALOG_LIB_EDIT_DRAW_ITEM(), DIALOG_LIB_EDIT_PIN::DIALOG_LIB_EDIT_PIN(), DIALOG_LIB_EDIT_TEXT::DIALOG_LIB_EDIT_TEXT(), DIALOG_LIB_NEW_COMPONENT::DIALOG_LIB_NEW_COMPONENT(), DIALOG_LIST_HOTKEYS::DIALOG_LIST_HOTKEYS(), DIALOG_MOVE_EXACT::DIALOG_MOVE_EXACT(), DIALOG_NETLIST::DIALOG_NETLIST(), DIALOG_NON_COPPER_ZONES_EDITOR::DIALOG_NON_COPPER_ZONES_EDITOR(), DIALOG_PAD_PRIMITIVE_POLY_PROPS::DIALOG_PAD_PRIMITIVE_POLY_PROPS(), DIALOG_PAD_PRIMITIVES_PROPERTIES::DIALOG_PAD_PRIMITIVES_PROPERTIES(), DIALOG_PAD_PROPERTIES::DIALOG_PAD_PROPERTIES(), DIALOG_PASTE_SPECIAL::DIALOG_PASTE_SPECIAL(), DIALOG_PLOT_SCHEMATIC::DIALOG_PLOT_SCHEMATIC(), DIALOG_POSITION_RELATIVE::DIALOG_POSITION_RELATIVE(), DIALOG_PRINT_GENERIC::DIALOG_PRINT_GENERIC(), DIALOG_PRINT_USING_PRINTER::DIALOG_PRINT_USING_PRINTER(), DIALOG_PUSH_PAD_PROPERTIES::DIALOG_PUSH_PAD_PROPERTIES(), DIALOG_SCH_SHEET_PROPS::DIALOG_SCH_SHEET_PROPS(), DIALOG_SCHEMATIC_SETUP::DIALOG_SCHEMATIC_SETUP(), DIALOG_SELECT_NET_FROM_LIST::DIALOG_SELECT_NET_FROM_LIST(), DIALOG_SET_GRID::DIALOG_SET_GRID(), DIALOG_SWAP_LAYERS::DIALOG_SWAP_LAYERS(), DIALOG_TARGET_PROPERTIES::DIALOG_TARGET_PROPERTIES(), DIALOG_TEXT_PROPERTIES::DIALOG_TEXT_PROPERTIES(), DIALOG_TRACK_VIA_PROPERTIES::DIALOG_TRACK_VIA_PROPERTIES(), DIALOG_TRACK_VIA_SIZE::DIALOG_TRACK_VIA_SIZE(), DIALOG_UPDATE_FROM_PCB::DIALOG_UPDATE_FROM_PCB(), DIALOG_UPDATE_PCB::DIALOG_UPDATE_PCB(), PAGED_DIALOG::finishInitialization(), DIALOG_EDIT_ONE_FIELD::init(), DIALOG_EDIT_LIBRARY_TABLES::InstallPanel(), NETLIST_DIALOG::NETLIST_DIALOG(), DIALOG_GRAPHIC_ITEM_PROPERTIES::OnInitDlg(), DIALOG_SCH_SHEET_PROPS::OnInitDlg(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::OnInitDlg(), DIALOG_SIM_SETTINGS::onInitDlg(), onInitDlg(), DIALOG_SIGNAL_LIST::TransferDataToWindow(), DIALOG_UPDATE_FIELDS::TransferDataToWindow(), DIALOG_COLOR_PICKER::TransferDataToWindow(), and DIALOG_BOARD_STATISTICS::TransferDataToWindow().

◆ generatePowerSource()

bool DIALOG_SPICE_MODEL::generatePowerSource ( wxString &  aTarget) const
private

Generates a string to describe power source parameters, basing on the current selection.

If there are missing fields, it will not modify the target string.

Parameters
aTargetis the destination for the generated string.
Returns
True if the string was saved successfully.

DC / AC section

Transient section

Definition at line 509 of file dialog_spice_model.cpp.

510 {
511  wxString acdc, trans;
512  wxWindow* page = m_powerNotebook->GetCurrentPage();
513  bool useTrans = true; // shall we use the transient command part?
514 
515  // Variables for generic processing
516  bool genericProcessing = false;
517  unsigned int genericReqParamsCount = 0;
518  std::vector<wxTextCtrl*> genericControls;
519 
521  // If SPICE_VALUE can be properly constructed, then it is a valid value
522  try
523  {
524  if( !empty( m_genDc ) )
525  acdc += wxString::Format( "dc %s ", SPICE_VALUE( m_genDc->GetValue() ).ToSpiceString() );
526  }
527  catch( ... )
528  {
529  DisplayError( NULL, wxT( "Invalid DC value" ) );
530  return false;
531  }
532 
533  try
534  {
535  if( !empty( m_genAcMag ) )
536  {
537  acdc += wxString::Format( "ac %s ", SPICE_VALUE( m_genAcMag->GetValue() ).ToSpiceString() );
538 
539  if( !empty( m_genAcPhase ) )
540  acdc += wxString::Format( "%s ", SPICE_VALUE( m_genAcPhase->GetValue() ).ToSpiceString() );
541  }
542  }
543  catch( ... )
544  {
545  DisplayError( NULL, wxT( "Invalid AC magnitude or phase" ) );
546  return false;
547  }
548 
550  if( page == m_pwrPulse )
551  {
552  if( !m_pwrPulse->Validate() )
553  return false;
554 
555  genericProcessing = true;
556  trans += "pulse";
557  genericReqParamsCount = 2;
558  genericControls = { m_pulseInit, m_pulseNominal, m_pulseDelay,
560  }
561 
562 
563  else if( page == m_pwrSin )
564  {
565  if( !m_pwrSin->Validate() )
566  return false;
567 
568  genericProcessing = true;
569  trans += "sin";
570  genericReqParamsCount = 2;
572  }
573 
574 
575  else if( page == m_pwrExp )
576  {
577  if( !m_pwrExp->Validate() )
578  return false;
579 
580  genericProcessing = true;
581  trans += "exp";
582  genericReqParamsCount = 2;
583  genericControls = { m_expInit, m_expPulsed,
585  }
586 
587 
588  else if( page == m_pwrPwl )
589  {
590  if( m_pwlValList->GetItemCount() > 0 )
591  {
592  trans += "pwl(";
593 
594  for( int i = 0; i < m_pwlValList->GetItemCount(); ++i )
595  {
596  trans += wxString::Format( "%s %s ", m_pwlValList->GetItemText( i, m_pwlTimeCol ),
597  m_pwlValList->GetItemText( i, m_pwlValueCol ) );
598  }
599 
600  trans.Trim();
601  trans += ")";
602  }
603  }
604 
605  if( genericProcessing )
606  {
607  trans += "(";
608 
609  auto first_empty = std::find_if( genericControls.begin(), genericControls.end(), empty );
610  auto first_not_empty = std::find_if( genericControls.begin(), genericControls.end(),
611  []( const wxTextCtrl* c ){ return !empty( c ); } );
612 
613  if( std::distance( first_not_empty, genericControls.end() ) == 0 )
614  {
615  // all empty
616  useTrans = false;
617  }
618  else if( std::distance( genericControls.begin(), first_empty ) < (int)genericReqParamsCount )
619  {
620  DisplayError( nullptr,
621  wxString::Format( wxT( "You need to specify at least the "
622  "first %d parameters for the transient source" ),
623  genericReqParamsCount ) );
624 
625  return false;
626  }
627  else if( std::find_if_not( first_empty, genericControls.end(),
628  empty ) != genericControls.end() )
629  {
630  DisplayError( nullptr, wxT( "You cannot leave interleaved empty fields "
631  "when defining a transient source" ) );
632  return false;
633  }
634  else
635  {
636  std::for_each( genericControls.begin(), first_empty,
637  [&trans] ( wxTextCtrl* ctrl ) {
638  trans += wxString::Format( "%s ", ctrl->GetValue() );
639  } );
640  }
641 
642  trans.Trim();
643  trans += ")";
644  }
645 
646  aTarget = acdc;
647 
648  if( useTrans )
649  aTarget += trans;
650 
651  // Remove whitespaces from left and right side
652  aTarget.Trim( false );
653  aTarget.Trim( true );
654 
655  return true;
656 }
void DisplayError(wxWindow *aParent, const wxString &aText, int aDisplayTime)
Display an error or warning message box with aMessage.
Definition: confirm.cpp:239
long m_pwlTimeCol
Column identifiers for PWL power source value list
static bool empty(const wxTextCtrl *aCtrl)
#define NULL
Helper class to handle Spice way of expressing values (e.g. 10.5 Meg)
Definition: spice_value.h:32
void Format(OUTPUTFORMATTER *out, int aNestLevel, int aCtl, CPTREE &aTree)
Function Format outputs a PTREE into s-expression format via an OUTPUTFORMATTER derivative.
Definition: ptree.cpp:205
static float distance(const SFVEC2UI &a, const SFVEC2UI &b)

References DisplayError(), distance(), empty(), Format(), DIALOG_SPICE_MODEL_BASE::m_expFallConst, DIALOG_SPICE_MODEL_BASE::m_expFallDelay, DIALOG_SPICE_MODEL_BASE::m_expInit, DIALOG_SPICE_MODEL_BASE::m_expPulsed, DIALOG_SPICE_MODEL_BASE::m_expRiseConst, DIALOG_SPICE_MODEL_BASE::m_expRiseDelay, DIALOG_SPICE_MODEL_BASE::m_genAcMag, DIALOG_SPICE_MODEL_BASE::m_genAcPhase, DIALOG_SPICE_MODEL_BASE::m_genDc, DIALOG_SPICE_MODEL_BASE::m_powerNotebook, DIALOG_SPICE_MODEL_BASE::m_pulseDelay, DIALOG_SPICE_MODEL_BASE::m_pulseFall, DIALOG_SPICE_MODEL_BASE::m_pulseInit, DIALOG_SPICE_MODEL_BASE::m_pulseNominal, DIALOG_SPICE_MODEL_BASE::m_pulsePeriod, DIALOG_SPICE_MODEL_BASE::m_pulseRise, DIALOG_SPICE_MODEL_BASE::m_pulseWidth, m_pwlTimeCol, DIALOG_SPICE_MODEL_BASE::m_pwlValList, m_pwlValueCol, DIALOG_SPICE_MODEL_BASE::m_pwrExp, DIALOG_SPICE_MODEL_BASE::m_pwrPulse, DIALOG_SPICE_MODEL_BASE::m_pwrPwl, DIALOG_SPICE_MODEL_BASE::m_pwrSin, DIALOG_SPICE_MODEL_BASE::m_sinAmplitude, DIALOG_SPICE_MODEL_BASE::m_sinDampFactor, DIALOG_SPICE_MODEL_BASE::m_sinDelay, DIALOG_SPICE_MODEL_BASE::m_sinFreq, DIALOG_SPICE_MODEL_BASE::m_sinOffset, and NULL.

Referenced by TransferDataFromWindow().

◆ getLibField()

LIB_FIELD & DIALOG_SPICE_MODEL::getLibField ( int  aFieldType)
private

Definition at line 778 of file dialog_spice_model.cpp.

779 {
780  const wxString& spiceField = NETLIST_EXPORTER_PSPICE::GetSpiceFieldName( (SPICE_FIELD) aFieldType );
781 
782  auto fieldIt = std::find_if( m_libfields->begin(), m_libfields->end(), [&]( const LIB_FIELD& f ) {
783  return f.GetName( NATIVE_FIELD_NAME ) == spiceField;
784  } );
785 
786  // Found one, so return it
787  if( fieldIt != m_libfields->end() )
788  return *fieldIt;
789 
790  // Create a new field with requested name
791  LIB_FIELD new_field( m_libfields->size() );
792  m_libfields->front().Copy( &new_field );
793  new_field.SetName( spiceField );
794 
795  m_libfields->push_back( new_field );
796  return m_libfields->back();
797 }
Field object used in symbol libraries.
Definition: lib_field.h:59
static const wxString & GetSpiceFieldName(SPICE_FIELD aField)
Returns a string used for a particular component field related to Spice simulation.
#define NATIVE_FIELD_NAME
Definition: lib_field.h:125

References NETLIST_EXPORTER_PSPICE::GetSpiceFieldName(), m_libfields, and NATIVE_FIELD_NAME.

Referenced by TransferDataFromWindow().

◆ getSchField()

SCH_FIELD & DIALOG_SPICE_MODEL::getSchField ( int  aFieldType)
private

Returns or creates a field in the edited schematic fields vector.

Parameters
aFieldTypeis an SPICE_FIELD enum value.
Returns
Requested field.

Definition at line 760 of file dialog_spice_model.cpp.

761 {
762  const wxString& spiceField = NETLIST_EXPORTER_PSPICE::GetSpiceFieldName( (SPICE_FIELD) aFieldType );
763 
764  auto fieldIt = std::find_if( m_schfields->begin(), m_schfields->end(), [&]( const SCH_FIELD& f ) {
765  return f.GetName() == spiceField;
766  } );
767 
768  // Found one, so return it
769  if( fieldIt != m_schfields->end() )
770  return *fieldIt;
771 
772  // Create a new field with requested name
773  m_schfields->emplace_back( wxPoint(), m_schfields->size(), &m_component, spiceField );
774  return m_schfields->back();
775 }
SCH_FIELD instances are attached to a component and provide a place for the component's value,...
Definition: sch_field.h:52
SCH_COMPONENT & m_component
Edited component
static const wxString & GetSpiceFieldName(SPICE_FIELD aField)
Returns a string used for a particular component field related to Spice simulation.
SCH_FIELDS * m_schfields
Fields from the component properties dialog

References NETLIST_EXPORTER_PSPICE::GetSpiceFieldName(), m_component, and m_schfields.

Referenced by TransferDataFromWindow().

◆ GetType()

HOLDER_TYPE KIWAY_HOLDER::GetType ( )
inlineinherited

Definition at line 49 of file kiway_holder.h.

49 { return m_type; }
HOLDER_TYPE m_type
Definition: kiway_holder.h:82

References KIWAY_HOLDER::m_type.

Referenced by DIALOG_SHIM::DIALOG_SHIM().

◆ GetUserUnits()

◆ HorizPixelsFromDU()

int DIALOG_SHIM::HorizPixelsFromDU ( int  x)
protectedinherited

Convert an integer number of dialog units to pixels, horizontally.

See SetSizeInDU or wxDialog documentation for more information.

Definition at line 158 of file dialog_shim.cpp.

159 {
160  wxSize sz( x, 0 );
161  return ConvertDialogToPixels( sz ).x;
162 }

Referenced by DIALOG_CHOOSE_COMPONENT::DIALOG_CHOOSE_COMPONENT(), and DIALOG_CHOOSE_FOOTPRINT::DIALOG_CHOOSE_FOOTPRINT().

◆ Init()

void DIALOG_SPICE_MODEL::Init ( )
private

Initializes the internal settings.

Definition at line 115 of file dialog_spice_model.cpp.

116 {
117  m_pasValue->SetValidator( m_spiceValidator );
118 
119  m_modelType->SetValidator( m_notEmptyValidator );
120  m_modelType->Clear();
121 
122  // Create a list of handled models
123  for( const auto& model : modelTypes )
124  m_modelType->Append( model.description );
125 
126  m_modelName->SetValidator( m_notEmptyValidator );
127 
128  m_genDc->SetValidator( m_spiceEmptyValidator );
129  m_genAcMag->SetValidator( m_spiceEmptyValidator );
130  m_genAcPhase->SetValidator( m_spiceEmptyValidator );
131 
132  m_pulseInit->SetValidator( m_spiceEmptyValidator );
133  m_pulseNominal->SetValidator( m_spiceEmptyValidator );
134  m_pulseDelay->SetValidator( m_spiceEmptyValidator );
135  m_pulseRise->SetValidator( m_spiceEmptyValidator );
136  m_pulseFall->SetValidator( m_spiceEmptyValidator );
137  m_pulseWidth->SetValidator( m_spiceEmptyValidator );
138  m_pulsePeriod->SetValidator( m_spiceEmptyValidator );
139 
140  m_sinOffset->SetValidator( m_spiceEmptyValidator );
141  m_sinAmplitude->SetValidator( m_spiceEmptyValidator );
142  m_sinFreq->SetValidator( m_spiceEmptyValidator );
143  m_sinDelay->SetValidator( m_spiceEmptyValidator );
144  m_sinDampFactor->SetValidator( m_spiceEmptyValidator );
145 
146  m_expInit->SetValidator( m_spiceEmptyValidator );
147  m_expPulsed->SetValidator( m_spiceEmptyValidator );
148  m_expRiseDelay->SetValidator( m_spiceEmptyValidator );
149  m_expRiseConst->SetValidator( m_spiceEmptyValidator );
150  m_expFallDelay->SetValidator( m_spiceEmptyValidator );
151  m_expFallConst->SetValidator( m_spiceEmptyValidator );
152 
153  m_pwlTimeCol = m_pwlValList->AppendColumn( "Time [s]", wxLIST_FORMAT_LEFT, 100 );
154  m_pwlValueCol = m_pwlValList->AppendColumn( "Value [V/A]", wxLIST_FORMAT_LEFT, 100 );
155 
156  m_sdbSizerOK->SetDefault();
157 }
SPICE_VALIDATOR m_spiceValidator
long m_pwlTimeCol
Column identifiers for PWL power source value list
wxTextValidator m_notEmptyValidator
SPICE_VALIDATOR m_spiceEmptyValidator
static const std::vector< SPICE_MODEL_INFO > modelTypes

References DIALOG_SPICE_MODEL_BASE::m_expFallConst, DIALOG_SPICE_MODEL_BASE::m_expFallDelay, DIALOG_SPICE_MODEL_BASE::m_expInit, DIALOG_SPICE_MODEL_BASE::m_expPulsed, DIALOG_SPICE_MODEL_BASE::m_expRiseConst, DIALOG_SPICE_MODEL_BASE::m_expRiseDelay, DIALOG_SPICE_MODEL_BASE::m_genAcMag, DIALOG_SPICE_MODEL_BASE::m_genAcPhase, DIALOG_SPICE_MODEL_BASE::m_genDc, DIALOG_SPICE_MODEL_BASE::m_modelName, DIALOG_SPICE_MODEL_BASE::m_modelType, m_notEmptyValidator, DIALOG_SPICE_MODEL_BASE::m_pasValue, DIALOG_SPICE_MODEL_BASE::m_pulseDelay, DIALOG_SPICE_MODEL_BASE::m_pulseFall, DIALOG_SPICE_MODEL_BASE::m_pulseInit, DIALOG_SPICE_MODEL_BASE::m_pulseNominal, DIALOG_SPICE_MODEL_BASE::m_pulsePeriod, DIALOG_SPICE_MODEL_BASE::m_pulseRise, DIALOG_SPICE_MODEL_BASE::m_pulseWidth, m_pwlTimeCol, DIALOG_SPICE_MODEL_BASE::m_pwlValList, m_pwlValueCol, DIALOG_SPICE_MODEL_BASE::m_sdbSizerOK, DIALOG_SPICE_MODEL_BASE::m_sinAmplitude, DIALOG_SPICE_MODEL_BASE::m_sinDampFactor, DIALOG_SPICE_MODEL_BASE::m_sinDelay, DIALOG_SPICE_MODEL_BASE::m_sinFreq, DIALOG_SPICE_MODEL_BASE::m_sinOffset, m_spiceEmptyValidator, m_spiceValidator, and modelTypes.

Referenced by DIALOG_SPICE_MODEL().

◆ IsCtrl()

static bool DIALOG_SHIM::IsCtrl ( int  aChar,
const wxKeyEvent &  e 
)
inlinestaticinherited

Definition at line 137 of file dialog_shim.h.

138  {
139  return e.GetKeyCode() == aChar && e.ControlDown() && !e.AltDown() &&
140  !e.ShiftDown() && !e.MetaDown();
141  }

Referenced by DIALOG_TEXT_PROPERTIES::OnCharHook(), and DIALOG_LABEL_EDITOR::OnCharHook().

◆ IsQuasiModal()

◆ IsShiftCtrl()

static bool DIALOG_SHIM::IsShiftCtrl ( int  aChar,
const wxKeyEvent &  e 
)
inlinestaticinherited

Definition at line 143 of file dialog_shim.h.

144  {
145  return e.GetKeyCode() == aChar && e.ControlDown() && !e.AltDown() &&
146  e.ShiftDown() && !e.MetaDown();
147  }

Referenced by DIALOG_TEXT_PROPERTIES::OnCharHook(), and DIALOG_LABEL_EDITOR::OnCharHook().

◆ Kiway()

KIWAY& KIWAY_HOLDER::Kiway ( ) const
inlineinherited

Function Kiway returns a reference to the KIWAY that this object has an opportunity to participate in.

A KIWAY_HOLDER is not necessarily a KIWAY_PLAYER.

Definition at line 56 of file kiway_holder.h.

57  {
58  wxASSERT( m_kiway ); // smoke out bugs in Debug build, then Release runs fine.
59  return *m_kiway;
60  }
KIWAY * m_kiway
Definition: kiway_holder.h:81

References KIWAY_HOLDER::m_kiway.

Referenced by TREEPROJECT_ITEM::Activate(), FOOTPRINT_VIEWER_FRAME::AddFootprintToPCB(), PCB_BASE_EDIT_FRAME::AddLibrary(), LIB_CONTROL::AddSymbolToSchematic(), CVPCB_MAINFRAME::BuildLIBRARY_LISTBOX(), COMMON_CONTROL::ConfigurePaths(), DIALOG_CHOOSE_FOOTPRINT::ConstructRightPanel(), DIALOG_CHOOSE_COMPONENT::ConstructRightPanel(), PCB_BASE_FRAME::CreateAndShow3D_Frame(), SCH_EDIT_FRAME::CreateScreens(), CVPCB_MAINFRAME::CVPCB_MAINFRAME(), DIALOG_RESCUE_EACH::DIALOG_RESCUE_EACH(), DIALOG_SHIM::DIALOG_SHIM(), CVPCB_MAINFRAME::DisplayStatus(), FIELDS_GRID_TRICKS::doPopupSelection(), FIELDS_EDITOR_GRID_TRICKS::doPopupSelection(), EDIT_TOOL::EditFpInFpEditor(), SCH_EDITOR_CONTROL::EditWithLibEdit(), BACK_ANNOTATE::FetchNetlistFromPCB(), DISPLAY_FOOTPRINTS_FRAME::Get_Module(), LIB_MANAGER::GetBufferedPart(), LIB_MANAGER::getLibraryBuffer(), FOOTPRINT_EDIT_FRAME::GetPlotSettings(), PCB_EDIT_FRAME::importFile(), SCH_EDIT_FRAME::importFile(), SCH_EDIT_FRAME::InitSheet(), KICAD_MANAGER_FRAME::language_change(), KIWAY_PLAYER::language_change(), LIB_TREE_MODEL_ADAPTER::LIB_TREE_MODEL_ADAPTER(), CVPCB_MAINFRAME::LoadFootprintFiles(), KICAD_MANAGER_FRAME::LoadProject(), SCH_EDIT_FRAME::LoadSheetFromFile(), TEXT_BUTTON_SYMBOL_CHOOSER::OnButtonClick(), TEXT_BUTTON_FP_CHOOSER::OnButtonClick(), KICAD_MANAGER_FRAME::OnCloseWindow(), SCH_EDIT_FRAME::OnCloseWindow(), SCH_EDIT_FRAME::OnExit(), FOOTPRINT_EDIT_FRAME::OnExitKiCad(), FOOTPRINT_VIEWER_FRAME::OnExitKiCad(), LIB_EDIT_FRAME::OnExitKiCad(), SAVE_AS_TRAVERSER::OnFile(), KICAD_MANAGER_FRAME::OnImportEagleFiles(), DIALOG_CHOOSE_COMPONENT::OnInitDialog(), SCH_EDIT_FRAME::OnOpenCvpcb(), SCH_EDIT_FRAME::OnOpenPcbnew(), EDA_BASE_FRAME::OnPreferences(), DIALOG_SYMBOL_REMAP::OnRemapSymbols(), DIALOG_EDIT_ONE_FIELD::OnTextValueSelectButtonClick(), FOOTPRINT_EDIT_FRAME::OnUpdateInsertModuleInBoard(), FOOTPRINT_EDIT_FRAME::OnUpdateLoadModuleFromBoard(), SCH_EDIT_FRAME::OnUpdatePCB(), SCH_EDIT_FRAME::OpenProjectFiles(), SCH_EDITOR_CONTROL::Paste(), KIWAY_HOLDER::Prj(), CVPCB_MAINFRAME::ReadNetListAndFpFiles(), FOOTPRINT_VIEWER_FRAME::ReCreateFootprintList(), LIB_EDIT_FRAME::refreshSchematic(), SCH_EDIT_FRAME::rescueProject(), EE_INSPECTION_TOOL::RunSimulation(), SCH_EDIT_FRAME::SaveEEFile(), CVPCB_MAINFRAME::SaveFootprintAssociation(), FOOTPRINT_EDIT_FRAME::SaveFootprintToBoard(), LIB_TREE_MODEL_ADAPTER::SavePinnedItems(), SCH_BASE_FRAME::SelectComponentFromLibBrowser(), SCH_EDIT_FRAME::SendCrossProbeClearHighlight(), SCH_EDIT_FRAME::SendCrossProbeNetName(), PCB_EDIT_FRAME::SendCrossProbeNetName(), CVPCB_MAINFRAME::SendMessageToEESCHEMA(), PCB_EDIT_FRAME::SendMessageToEESCHEMA(), SCH_EDIT_FRAME::SendMessageToPCBNEW(), SCH_EDIT_FRAME::sendNetlistToCvpcb(), FOOTPRINT_EDIT_FRAME::SetPlotSettings(), CVPCB_CONTROL::ShowFootprintViewer(), COMMON_CONTROL::ShowLibraryTable(), COMMON_CONTROL::ShowPlayer(), KICAD_MANAGER_CONTROL::ShowPlayer(), SIM_PLOT_FRAME::SIM_PLOT_FRAME(), DIALOG_SCH_SHEET_PROPS::TransferDataFromWindow(), LIB_MANAGER::UpdatePart(), PCB_EDITOR_CONTROL::UpdateSchematicFromPCB(), and DIALOG_EXCHANGE_FOOTPRINTS::ViewAndSelectFootprint().

◆ loadLibrary()

void DIALOG_SPICE_MODEL::loadLibrary ( const wxString &  aFilePath)
private

Loads a list of components (.model and .subckt) from a spice library file and adds them to a combo box.

Parameters
aComboBoxis the target combo box
aFilePathis path to the library file

Definition at line 659 of file dialog_spice_model.cpp.

660 {
661  wxString curModel = m_modelName->GetValue();
662  m_models.clear();
663  wxFileName filePath( aFilePath );
664  bool in_subckt = false; // flag indicating that the parser is inside a .subckt section
665 
666  // Look for the file in the project path
667  if( !filePath.Exists() )
668  {
669  filePath.SetPath( Prj().GetProjectPath() + filePath.GetPath() );
670 
671  if( !filePath.Exists() )
672  return;
673  }
674 
675  // Display the library contents
676  wxWindowUpdateLocker updateLock( this );
677  m_libraryContents->Clear();
678  wxTextFile file;
679  file.Open( filePath.GetFullPath() );
680  int line_nr = 0;
681 
682  // Stores the libray content. It will be displayed after reading the full library
683  wxString fullText;
684 
685  // Process the file, looking for components
686  while( !file.Eof() )
687  {
688  const wxString& line = line_nr == 0 ? file.GetFirstLine() : file.GetNextLine();
689  fullText << line << '\n';
690 
691  wxStringTokenizer tokenizer( line );
692 
693  while( tokenizer.HasMoreTokens() )
694  {
695  wxString token = tokenizer.GetNextToken().Lower();
696 
697  // some subckts contain .model clauses inside,
698  // skip them as they are a part of the subckt, not another model
699  if( token == ".model" && !in_subckt )
700  {
701  wxString name = tokenizer.GetNextToken();
702 
703  if( name.IsEmpty() )
704  break;
705 
706  token = tokenizer.GetNextToken();
707  SPICE_PRIMITIVE type = MODEL::parseModelType( token );
708 
709  if( type != SP_UNKNOWN )
710  m_models.emplace( name, MODEL( line_nr, type ) );
711  }
712 
713  else if( token == ".subckt" )
714  {
715  wxASSERT( !in_subckt );
716  in_subckt = true;
717 
718  wxString name = tokenizer.GetNextToken();
719 
720  if( name.IsEmpty() )
721  break;
722 
723  m_models.emplace( name, MODEL( line_nr, SP_SUBCKT ) );
724  }
725 
726  else if( token == ".ends" )
727  {
728  wxASSERT( in_subckt );
729  in_subckt = false;
730  }
731  }
732 
733  ++line_nr;
734  }
735 
736  // display the full library content:
737  m_libraryContents->AppendText( fullText );
738 
739  wxArrayString modelsList;
740 
741  // Refresh the model name combobox values
742  m_modelName->Clear();
743 
744  for( const auto& model : m_models )
745  {
746  m_modelName->Append( model.first );
747  modelsList.Add( model.first );
748  }
749 
750  m_modelName->AutoComplete( modelsList );
751 
752  // Restore the previous value or if there is none - pick the first one from the loaded library
753  if( !curModel.IsEmpty() )
754  m_modelName->SetValue( curModel );
755  else if( m_modelName->GetCount() > 0 )
756  m_modelName->SetSelection( 0 );
757 }
static SPICE_PRIMITIVE parseModelType(const wxString &aValue)
Convert string to model
wxStyledTextCtrl * m_libraryContents
PROJECT & Prj() const
Function Prj returns a reference to the PROJECT "associated with" this KIWAY.
const char * name
Definition: DXF_plotter.cpp:60
SPICE_PRIMITIVE
Basic Spice component primitives
std::map< wxString, MODEL > m_models
Models available in the selected library file

References DIALOG_SPICE_MODEL_BASE::m_libraryContents, DIALOG_SPICE_MODEL_BASE::m_modelName, m_models, name, DIALOG_SPICE_MODEL::MODEL::parseModelType(), KIWAY_HOLDER::Prj(), SP_SUBCKT, and SP_UNKNOWN.

Referenced by onSelectLibrary(), and TransferDataToWindow().

◆ onInitDlg()

virtual void DIALOG_SPICE_MODEL::onInitDlg ( wxInitDialogEvent &  event)
inlineoverrideprivatevirtual

Reimplemented from DIALOG_SPICE_MODEL_BASE.

Definition at line 96 of file dialog_spice_model.h.

97  {
98  // Call the default wxDialog handler of a wxInitDialogEvent
100 
101  // Now all widgets have the size fixed, call FinishDialogSettings
103  }
void FinishDialogSettings()
In all dialogs, we must call the same functions to fix minimal dlg size, the default position and per...
virtual bool TransferDataToWindow() override

References DIALOG_SHIM::FinishDialogSettings(), and TransferDataToWindow().

◆ onModelSelected()

void DIALOG_SPICE_MODEL::onModelSelected ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_SPICE_MODEL_BASE.

Definition at line 854 of file dialog_spice_model.cpp.

855 {
856  // autoselect the model type
857  auto it = m_models.find( m_modelName->GetValue() );
858 
859  if( it != m_models.end() )
860  {
861  m_modelType->SetSelection( getModelTypeIdx( it->second.model ) );
862 
863  // scroll to the bottom, so the model definition is shown in the first line
864  m_libraryContents->ShowPosition(
865  m_libraryContents->XYToPosition( 0, m_libraryContents->GetNumberOfLines() ) );
866  m_libraryContents->ShowPosition( m_libraryContents->XYToPosition( 0, it->second.line ) );
867  }
868  else
869  {
870  m_libraryContents->ShowPosition( 0 );
871  }
872 }
static int getModelTypeIdx(char aPrimitive)
wxStyledTextCtrl * m_libraryContents
std::map< wxString, MODEL > m_models
Models available in the selected library file

References getModelTypeIdx(), DIALOG_SPICE_MODEL_BASE::m_libraryContents, DIALOG_SPICE_MODEL_BASE::m_modelName, m_models, and DIALOG_SPICE_MODEL_BASE::m_modelType.

◆ OnPaint()

void DIALOG_SHIM::OnPaint ( wxPaintEvent &  event)
inherited

Definition at line 320 of file dialog_shim.cpp.

321 {
322  if( m_firstPaintEvent )
323  {
324 #ifdef __WXMAC__
325  fixOSXCancelButtonIssue( this );
326 #endif
327 
328  selectAllInTextCtrls( GetChildren() );
329 
331  m_initialFocusTarget->SetFocus();
332  else
333  SetFocus(); // Focus the dialog itself
334 
335  m_firstPaintEvent = false;
336  }
337 
338  event.Skip();
339 }
wxWindow * m_initialFocusTarget
Definition: dialog_shim.h:203
bool m_firstPaintEvent
Definition: dialog_shim.h:202
static void selectAllInTextCtrls(wxWindowList &children)

References DIALOG_SHIM::m_firstPaintEvent, DIALOG_SHIM::m_initialFocusTarget, and selectAllInTextCtrls().

Referenced by DIALOG_SHIM::DIALOG_SHIM().

◆ onPwlAdd()

void DIALOG_SPICE_MODEL::onPwlAdd ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_SPICE_MODEL_BASE.

Definition at line 875 of file dialog_spice_model.cpp.

876 {
877  addPwlValue( m_pwlTime->GetValue(), m_pwlValue->GetValue() );
878 }
bool addPwlValue(const wxString &aTime, const wxString &aValue)
Adds a value to the PWL values list.

References addPwlValue(), DIALOG_SPICE_MODEL_BASE::m_pwlTime, and DIALOG_SPICE_MODEL_BASE::m_pwlValue.

◆ onPwlRemove()

void DIALOG_SPICE_MODEL::onPwlRemove ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_SPICE_MODEL_BASE.

Definition at line 881 of file dialog_spice_model.cpp.

882 {
883  long idx = m_pwlValList->GetNextItem( -1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED );
884  m_pwlValList->DeleteItem( idx );
885 }

References DIALOG_SPICE_MODEL_BASE::m_pwlValList.

◆ onSelectLibrary()

void DIALOG_SPICE_MODEL::onSelectLibrary ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_SPICE_MODEL_BASE.

Definition at line 827 of file dialog_spice_model.cpp.

828 {
829  wxString searchPath = wxFileName( m_modelLibrary->GetValue() ).GetPath();
830 
831  if( searchPath.IsEmpty() )
832  searchPath = Prj().GetProjectPath();
833 
834  wxString wildcards = SpiceLibraryFileWildcard() + "|" + AllFilesWildcard();
835  wxFileDialog openDlg( this, _( "Select library" ), searchPath, "", wildcards,
836  wxFD_OPEN | wxFD_FILE_MUST_EXIST );
837 
838  if( openDlg.ShowModal() == wxID_CANCEL )
839  return;
840 
841  wxFileName libPath( openDlg.GetPath() );
842 
843  // Try to convert the path to relative to project
844  if( libPath.MakeRelativeTo( Prj().GetProjectPath() ) && !libPath.GetFullPath().StartsWith( ".." ) )
845  m_modelLibrary->SetValue( libPath.GetFullPath() );
846  else
847  m_modelLibrary->SetValue( openDlg.GetPath() );
848 
849  loadLibrary( openDlg.GetPath() );
850  m_modelName->Popup();
851 }
VTBL_ENTRY const wxString GetProjectPath() const
Function GetProjectPath returns the full path of the project.
Definition: project.cpp:102
wxString AllFilesWildcard()
PROJECT & Prj() const
Function Prj returns a reference to the PROJECT "associated with" this KIWAY.
void loadLibrary(const wxString &aFilePath)
Loads a list of components (.model and .subckt) from a spice library file and adds them to a combo bo...
#define _(s)
Definition: 3d_actions.cpp:33
wxString SpiceLibraryFileWildcard()

References _, AllFilesWildcard(), PROJECT::GetProjectPath(), loadLibrary(), DIALOG_SPICE_MODEL_BASE::m_modelLibrary, DIALOG_SPICE_MODEL_BASE::m_modelName, KIWAY_HOLDER::Prj(), and SpiceLibraryFileWildcard().

◆ parsePowerSource()

bool DIALOG_SPICE_MODEL::parsePowerSource ( const wxString &  aModel)
private

Parse a string describing a power source, so appropriate settings are checked in the dialog.

Parameters
aModelcontains the string to be parse (e.g. sin(0 1 10k))
Returns
True if the input string was parsed without errors.

Definition at line 357 of file dialog_spice_model.cpp.

358 {
359  if( aModel.IsEmpty() )
360  return false;
361 
362  wxStringTokenizer tokenizer( aModel, " ()" );
363  wxString tkn = tokenizer.GetNextToken().Lower();
364 
365  while( tokenizer.HasMoreTokens() )
366  {
367  // Variables used for generic values processing (filling out wxTextCtrls in sequence)
368  bool genericProcessing = false;
369  unsigned int genericReqParamsCount = 0;
370  std::vector<wxTextCtrl*> genericControls;
371 
372  if( tkn == "dc" )
373  {
374  // There might be an optional "dc" or "trans" directive, skip it
375  if( tkn == "dc" || tkn == "trans" )
376  tkn = tokenizer.GetNextToken().Lower();
377 
378  // DC value
379  try
380  {
381  m_genDc->SetValue( SPICE_VALUE( tkn ).ToSpiceString() );
382  }
383  catch( ... )
384  {
385  return false;
386  }
387  }
388 
389 
390  else if( tkn == "ac" )
391  {
392  // AC magnitude
393  try
394  {
395  tkn = tokenizer.GetNextToken().Lower();
396  m_genAcMag->SetValue( SPICE_VALUE( tkn ).ToSpiceString() );
397  }
398  catch( ... )
399  {
400  return false;
401  }
402 
403  // AC phase (optional)
404  try
405  {
406  tkn = tokenizer.GetNextToken().Lower();
407  m_genAcPhase->SetValue( SPICE_VALUE( tkn ).ToSpiceString() );
408  }
409  catch( ... )
410  {
411  continue; // perhaps another directive
412  }
413  }
414 
415 
416  else if( tkn == "pulse" )
417  {
418  m_powerNotebook->SetSelection( m_powerNotebook->FindPage( m_pwrPulse ) );
419 
420  genericProcessing = true;
421  genericReqParamsCount = 2;
422  genericControls = { m_pulseInit, m_pulseNominal, m_pulseDelay,
424  }
425 
426 
427  else if( tkn == "sin" )
428  {
429  m_powerNotebook->SetSelection( m_powerNotebook->FindPage( m_pwrSin ) );
430 
431  genericProcessing = true;
432  genericReqParamsCount = 2;
434  }
435 
436 
437  else if( tkn == "exp" )
438  {
439  m_powerNotebook->SetSelection( m_powerNotebook->FindPage( m_pwrExp ) );
440 
441  genericProcessing = true;
442  genericReqParamsCount = 2;
443  genericControls = { m_expInit, m_expPulsed,
445  }
446 
447 
448  else if( tkn == "pwl" )
449  {
450  m_powerNotebook->SetSelection( m_powerNotebook->FindPage( m_pwrPwl ) );
451 
452  try
453  {
454  while( tokenizer.HasMoreTokens() )
455  {
456  tkn = tokenizer.GetNextToken();
457  SPICE_VALUE time( tkn );
458 
459  tkn = tokenizer.GetNextToken();
460  SPICE_VALUE value( tkn );
461 
462  addPwlValue( time.ToSpiceString(), value.ToSpiceString() );
463  }
464  }
465  catch( ... )
466  {
467  return false;
468  }
469  }
470 
471 
472  else
473  {
474  // Unhandled power source type
475  wxASSERT_MSG( false, "Unhandled power source type" );
476  return false;
477  }
478 
479 
480  if( genericProcessing )
481  {
482  try
483  {
484  for( unsigned int i = 0; i < genericControls.size(); ++i )
485  {
486  // If there are no more tokens, let's check if we got at least required fields
487  if( !tokenizer.HasMoreTokens() )
488  return ( i >= genericReqParamsCount );
489 
490  tkn = tokenizer.GetNextToken().Lower();
491  genericControls[i]->SetValue( SPICE_VALUE( tkn ).ToSpiceString() );
492  }
493  }
494  catch( ... )
495  {
496  return false;
497  }
498  }
499 
500  // Get the next token now, so if any of the branches catches an exception, try to
501  // process it in another branch
502  tkn = tokenizer.GetNextToken().Lower();
503  }
504 
505  return true;
506 }
bool addPwlValue(const wxString &aTime, const wxString &aValue)
Adds a value to the PWL values list.
Helper class to handle Spice way of expressing values (e.g. 10.5 Meg)
Definition: spice_value.h:32

References addPwlValue(), DIALOG_SPICE_MODEL_BASE::m_expFallConst, DIALOG_SPICE_MODEL_BASE::m_expFallDelay, DIALOG_SPICE_MODEL_BASE::m_expInit, DIALOG_SPICE_MODEL_BASE::m_expPulsed, DIALOG_SPICE_MODEL_BASE::m_expRiseConst, DIALOG_SPICE_MODEL_BASE::m_expRiseDelay, DIALOG_SPICE_MODEL_BASE::m_genAcMag, DIALOG_SPICE_MODEL_BASE::m_genAcPhase, DIALOG_SPICE_MODEL_BASE::m_genDc, DIALOG_SPICE_MODEL_BASE::m_powerNotebook, DIALOG_SPICE_MODEL_BASE::m_pulseDelay, DIALOG_SPICE_MODEL_BASE::m_pulseFall, DIALOG_SPICE_MODEL_BASE::m_pulseInit, DIALOG_SPICE_MODEL_BASE::m_pulseNominal, DIALOG_SPICE_MODEL_BASE::m_pulsePeriod, DIALOG_SPICE_MODEL_BASE::m_pulseRise, DIALOG_SPICE_MODEL_BASE::m_pulseWidth, DIALOG_SPICE_MODEL_BASE::m_pwrExp, DIALOG_SPICE_MODEL_BASE::m_pwrPulse, DIALOG_SPICE_MODEL_BASE::m_pwrPwl, DIALOG_SPICE_MODEL_BASE::m_pwrSin, DIALOG_SPICE_MODEL_BASE::m_sinAmplitude, DIALOG_SPICE_MODEL_BASE::m_sinDampFactor, DIALOG_SPICE_MODEL_BASE::m_sinDelay, DIALOG_SPICE_MODEL_BASE::m_sinFreq, DIALOG_SPICE_MODEL_BASE::m_sinOffset, and SPICE_VALUE::ToSpiceString().

Referenced by TransferDataToWindow().

◆ Prj()

PROJECT & KIWAY_HOLDER::Prj ( ) const
inherited

Function Prj returns a reference to the PROJECT "associated with" this KIWAY.

Definition at line 35 of file kiway_holder.cpp.

36 {
37  return Kiway().Prj();
38 }
KIWAY & Kiway() const
Function Kiway returns a reference to the KIWAY that this object has an opportunity to participate in...
Definition: kiway_holder.h:56
VTBL_ENTRY PROJECT & Prj() const
Function Prj returns the PROJECT associated with this KIWAY.
Definition: kiway.cpp:171

References KIWAY_HOLDER::Kiway(), and KIWAY::Prj().

Referenced by PCB_BASE_EDIT_FRAME::AddLibrary(), LIB_MANAGER::addLibrary(), LIB_CONTROL::AddSymbolToSchematic(), SCH_EDIT_FRAME::AppendSchematic(), PCB_EDIT_FRAME::ArchiveModulesOnBoard(), DIALOG_SYMBOL_REMAP::backupProject(), CVPCB_MAINFRAME::BuildLIBRARY_LISTBOX(), DIALOG_FOOTPRINT_FP_EDITOR::Cfg3DPath(), DIALOG_FOOTPRINT_BOARD_EDITOR::Cfg3DPath(), PCB_BASE_EDIT_FRAME::CreateNewLibrary(), KICAD_MANAGER_FRAME::CreateNewProject(), DIALOG_PLOT_SCHEMATIC::createPlotFileName(), DIALOG_SYMBOL_REMAP::createProjectSymbolLibTable(), FOOTPRINT_EDIT_FRAME::DeleteModuleFromLibrary(), DIALOG_BOARD_STATISTICS::DIALOG_BOARD_STATISTICS(), DIALOG_CHOOSE_COMPONENT::DIALOG_CHOOSE_COMPONENT(), DIALOG_CHOOSE_FOOTPRINT::DIALOG_CHOOSE_FOOTPRINT(), DIALOG_CONFIG_EQUFILES::DIALOG_CONFIG_EQUFILES(), DIALOG_FOOTPRINT_BOARD_EDITOR::DIALOG_FOOTPRINT_BOARD_EDITOR(), DIALOG_FOOTPRINT_FP_EDITOR::DIALOG_FOOTPRINT_FP_EDITOR(), DIALOG_PAGES_SETTINGS::DIALOG_PAGES_SETTINGS(), DIALOG_SYMBOL_REMAP::DIALOG_SYMBOL_REMAP(), LIB_VIEW_FRAME::DisplayLibInfos(), CVPCB_MAINFRAME::DisplayStatus(), PCB_EDIT_FRAME::doAutoSave(), KICAD_MANAGER_CONTROL::Execute(), PCB_EDIT_FRAME::Export_IDF3(), LIB_CONTROL::ExportSymbolAsSVG(), LIB_CONTROL::ExportView(), PCB_EDIT_FRAME::ExportVRML_File(), PCB_EDIT_FRAME::Files_io_from_id(), PCB_EDIT_FRAME::GenD356File(), DISPLAY_FOOTPRINTS_FRAME::Get_Module(), FOOTPRINT_VIEWER_FRAME::getCurFootprintName(), LIB_EDIT_FRAME::GetCurLib(), FOOTPRINT_VIEWER_FRAME::getCurNickname(), SCH_BASE_FRAME::GetLibPart(), DIALOG_SYMBOL_REMAP::getLibsNotInGlobalSymbolLibTable(), KICAD_MANAGER_FRAME::GetProjectFileName(), LIB_VIEW_FRAME::GetSelectedSymbol(), FP_THREAD_IFACE::GetTable(), PCB_EDIT_FRAME::importFile(), SCH_EDIT_FRAME::importFile(), SCH_EDITOR_CONTROL::ImportFPAssignments(), FOOTPRINT_EDIT_FRAME::initLibraryTree(), LIB_EDIT_FRAME::KiwayMailIn(), EDA_DRAW_FRAME::LibraryFileBrowser(), LIB_EDIT_FRAME::LoadComponentFromCurrentLib(), CVPCB_MAINFRAME::LoadFootprintFiles(), loadLibrary(), LIB_EDIT_FRAME::LoadOneSymbol(), KICAD_MANAGER_FRAME::LoadProject(), SCH_EDIT_FRAME::LoadProject(), SCH_EDIT_FRAME::LoadProjectFile(), CVPCB_MAINFRAME::LoadProjectFile(), PCB_EDIT_FRAME::LoadProjectSettings(), SCH_EDIT_FRAME::LoadSheetFromFile(), DIALOG_FOOTPRINT_FP_EDITOR::On3DModelCellChanged(), DIALOG_FOOTPRINT_BOARD_EDITOR::On3DModelCellChanged(), FOOTPRINT_VIEWER_FRAME::OnActivate(), DIALOG_FOOTPRINT_FP_EDITOR::OnAdd3DModel(), DIALOG_FOOTPRINT_BOARD_EDITOR::OnAdd3DModel(), KICAD_MANAGER_FRAME::OnBrowseInFileExplorer(), DIALOG_EDIT_COMPONENTS_LIBID::onClickOrphansButton(), SCH_EDIT_FRAME::OnCloseWindow(), DIALOG_GENDRILL::OnGenReportFile(), SCH_EDIT_FRAME::OnImportProject(), DIALOG_CHOOSE_COMPONENT::OnInitDialog(), SCH_EDIT_FRAME::OnOpenCvpcb(), KICAD_MANAGER_FRAME::OnOpenFileInTextEditor(), DIALOG_NETLIST::OnOpenNetlistClick(), SCH_EDIT_FRAME::OnOpenPcbnew(), DIALOG_EXPORT_SVG::OnOutputDirectoryBrowseClicked(), DIALOG_PLOT::OnOutputDirectoryBrowseClicked(), DIALOG_PLOT_SCHEMATIC::OnOutputDirectoryBrowseClicked(), DIALOG_GEN_FOOTPRINT_POSITION::OnOutputDirectoryBrowseClicked(), DIALOG_GENDRILL::OnOutputDirectoryBrowseClicked(), DIALOG_SYMBOL_REMAP::OnRemapSymbols(), DIALOG_BOM::OnRunGenerator(), FOOTPRINT_EDIT_FRAME::OnSaveFootprintAsPng(), DIALOG_ERC::OnSaveReport(), DIALOG_DRC::OnSaveReport(), onSelectLibrary(), LIB_VIEW_FRAME::OnSelectSymbol(), KICAD_MANAGER_FRAME::OnUnarchiveFiles(), SCH_EDIT_FRAME::OnUpdatePCB(), SCH_EDIT_FRAME::OpenProjectFiles(), PCB_EDIT_FRAME::OpenProjectFiles(), PANEL_PREV_3D::PANEL_PREV_3D(), SCH_EDITOR_CONTROL::Paste(), MODULE_EDITOR_TOOLS::PasteFootprint(), PCB_BASE_EDIT_FRAME::PCB_BASE_EDIT_FRAME(), SCH_DRAWING_TOOLS::PlaceComponent(), DIALOG_CHOOSE_COMPONENT::PopulateFootprintSelector(), SCH_EDIT_FRAME::Print(), SCH_EDIT_FRAME::PrintPage(), CVPCB_MAINFRAME::ReadNetListAndFpFiles(), PCB_EDIT_FRAME::RecreateCmpFileFromBoard(), FOOTPRINT_VIEWER_FRAME::ReCreateFootprintList(), FOOTPRINT_VIEWER_FRAME::ReCreateLibraryList(), LIB_VIEW_FRAME::ReCreateListCmp(), LIB_VIEW_FRAME::ReCreateListLib(), EDA_3D_VIEWER::ReloadRequest(), DIALOG_SYMBOL_REMAP::remapSymbolToLibTable(), SCH_EDIT_FRAME::RescueLegacyProject(), SCH_EDIT_FRAME::RescueSymbolLibTableProject(), FOOTPRINT_EDIT_FRAME::restoreLastFootprint(), FOOTPRINT_EDIT_FRAME::retainLastFootprint(), SCH_EDIT_FRAME::SaveEEFile(), FOOTPRINT_EDIT_FRAME::SaveFootprint(), FOOTPRINT_EDIT_FRAME::SaveFootprintAs(), FOOTPRINT_EDIT_FRAME::SaveFootprintInLibrary(), LIB_EDIT_FRAME::saveLibrary(), LIB_EDIT_FRAME::SaveOneSymbol(), LIB_EDIT_FRAME::savePartAs(), SCH_EDIT_FRAME::SaveProject(), CVPCB_MAINFRAME::SaveProjectFile(), SCH_EDIT_FRAME::SaveProjectSettings(), PCB_EDIT_FRAME::SaveProjectSettings(), DIALOG_BOARD_STATISTICS::saveReportClicked(), SCH_BASE_FRAME::saveSymbolLibTables(), FOOTPRINT_VIEWER_FRAME::SelectAndViewFootprint(), SCH_BASE_FRAME::SelectCompFromLibTree(), PCB_BASE_FRAME::SelectLibrary(), LIB_EDIT_FRAME::SelectLibraryFromList(), LIB_EDIT_FRAME::selectSymLibTable(), FOOTPRINT_VIEWER_FRAME::setCurFootprintName(), LIB_EDIT_FRAME::SetCurLib(), FOOTPRINT_VIEWER_FRAME::setCurNickname(), LIB_EDIT_FRAME::SetCurPart(), KICAD_MANAGER_FRAME::SetProjectFileName(), EE_INSPECTION_TOOL::ShowDatasheet(), DIALOG_CHOOSE_COMPONENT::ShowFootprintFor(), LIB_VIEW_FRAME::ShowModal(), FOOTPRINT_VIEWER_FRAME::ShowModal(), SIM_PLOT_FRAME::SIM_PLOT_FRAME(), LIB_MANAGER::symTable(), SYMBOL_TREE_SYNCHRONIZING_ADAPTER::Sync(), FOOTPRINT_EDIT_FRAME::SyncLibraryTree(), EDA_3D_VIEWER::takeScreenshot(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::TransferDataFromWindow(), NETLIST_DIALOG::TransferDataFromWindow(), DIALOG_FOOTPRINT_FP_EDITOR::TransferDataToWindow(), DIALOG_FOOTPRINT_BOARD_EDITOR::TransferDataToWindow(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::UpdateFieldsFromLibrary(), SIM_PLOT_FRAME::updateNetlistExporter(), SCH_SCREEN::UpdateSymbolLinks(), FOOTPRINT_VIEWER_FRAME::UpdateTitle(), FOOTPRINT_EDIT_FRAME::updateTitle(), SCH_EDIT_FRAME::UpdateTitle(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::Validate(), SCH_EDIT_FRAME::WriteNetListFile(), DIALOG_FOOTPRINT_BOARD_EDITOR::~DIALOG_FOOTPRINT_BOARD_EDITOR(), DIALOG_FOOTPRINT_FP_EDITOR::~DIALOG_FOOTPRINT_FP_EDITOR(), and PCB_BASE_EDIT_FRAME::~PCB_BASE_EDIT_FRAME().

◆ ResetSize()

void DIALOG_SHIM::ResetSize ( )
protectedinherited

Clear the existing dialog size and position.

This will cause the dialog size to be clear so the next time the dialog is shown the sizers will layout the dialog accordingly. This useful when there are dialog windows that size changes due to layout dependency hidden controls.

Definition at line 237 of file dialog_shim.cpp.

238 {
239  const char* hash_key;
240 
241  if( m_hash_key.size() )
242  {
243  // a special case like EDA_LIST_DIALOG, which has multiple uses.
244  hash_key = m_hash_key.c_str();
245  }
246  else
247  {
248  hash_key = typeid(*this).name();
249  }
250 
251  RECT_MAP::iterator it = class_map.find( hash_key );
252 
253  if( it == class_map.end() )
254  return;
255 
256  EDA_RECT rect = it->second;
257  rect.SetSize( 0, 0 );
258  class_map[ hash_key ] = rect;
259 }
std::string m_hash_key
Definition: dialog_shim.h:197
static RECT_MAP class_map
void SetSize(const wxSize &size)
Definition: eda_rect.h:144
EDA_RECT handles the component boundary box.
Definition: eda_rect.h:44

References class_map, DIALOG_SHIM::m_hash_key, and EDA_RECT::SetSize().

Referenced by DIALOG_EDIT_COMPONENT_IN_LIBRARY::DIALOG_EDIT_COMPONENT_IN_LIBRARY().

◆ SetInitialFocus()

void DIALOG_SHIM::SetInitialFocus ( wxWindow *  aWindow)
inlineinherited

Sets the window (usually a wxTextCtrl) that should be focused when the dialog is shown.

Definition at line 115 of file dialog_shim.h.

116  {
117  m_initialFocusTarget = aWindow;
118  }
wxWindow * m_initialFocusTarget
Definition: dialog_shim.h:203

References DIALOG_SHIM::m_initialFocusTarget.

Referenced by DIALOG_BOM::DIALOG_BOM(), DIALOG_CHOOSE_COMPONENT::DIALOG_CHOOSE_COMPONENT(), DIALOG_CHOOSE_FOOTPRINT::DIALOG_CHOOSE_FOOTPRINT(), DIALOG_CONFIGURE_PATHS::DIALOG_CONFIGURE_PATHS(), DIALOG_EDIT_LINE_STYLE::DIALOG_EDIT_LINE_STYLE(), DIALOG_EDIT_SHEET_PIN::DIALOG_EDIT_SHEET_PIN(), DIALOG_FIELDS_EDITOR_GLOBAL::DIALOG_FIELDS_EDITOR_GLOBAL(), DIALOG_FIND::DIALOG_FIND(), DIALOG_FOOTPRINT_BOARD_EDITOR::DIALOG_FOOTPRINT_BOARD_EDITOR(), DIALOG_FOOTPRINT_FP_EDITOR::DIALOG_FOOTPRINT_FP_EDITOR(), DIALOG_FP_PLUGIN_OPTIONS::DIALOG_FP_PLUGIN_OPTIONS(), DIALOG_GRAPHIC_ITEM_PROPERTIES::DIALOG_GRAPHIC_ITEM_PROPERTIES(), DIALOG_IMPORT_GFX::DIALOG_IMPORT_GFX(), DIALOG_LABEL_EDITOR::DIALOG_LABEL_EDITOR(), DIALOG_LIB_EDIT_DRAW_ITEM::DIALOG_LIB_EDIT_DRAW_ITEM(), DIALOG_LIB_EDIT_PIN::DIALOG_LIB_EDIT_PIN(), DIALOG_LIB_EDIT_TEXT::DIALOG_LIB_EDIT_TEXT(), DIALOG_PAD_PRIMITIVES_PROPERTIES::DIALOG_PAD_PRIMITIVES_PROPERTIES(), DIALOG_PAD_PROPERTIES::DIALOG_PAD_PROPERTIES(), DIALOG_POSITION_RELATIVE::DIALOG_POSITION_RELATIVE(), DIALOG_SCH_FIND::DIALOG_SCH_FIND(), DIALOG_SET_GRID::DIALOG_SET_GRID(), DIALOG_TARGET_PROPERTIES::DIALOG_TARGET_PROPERTIES(), DIALOG_TEXT_PROPERTIES::DIALOG_TEXT_PROPERTIES(), DIALOG_TRACK_VIA_PROPERTIES::DIALOG_TRACK_VIA_PROPERTIES(), DIALOG_EDIT_ONE_FIELD::init(), DIALOG_EXCHANGE_FOOTPRINTS::OnMatchAllClicked(), DIALOG_EXCHANGE_FOOTPRINTS::OnMatchIDClicked(), DIALOG_EXCHANGE_FOOTPRINTS::OnMatchRefClicked(), DIALOG_EXCHANGE_FOOTPRINTS::OnMatchSelectedClicked(), DIALOG_EXCHANGE_FOOTPRINTS::OnMatchValueClicked(), PANEL_FP_LIB_TABLE::PANEL_FP_LIB_TABLE(), PANEL_SYM_LIB_TABLE::PANEL_SYM_LIB_TABLE(), FOOTPRINT_EDIT_FRAME::SaveFootprintAs(), LIB_EDIT_FRAME::savePartAs(), DIALOG_NON_COPPER_ZONES_EDITOR::TransferDataToWindow(), DIALOG_KEEPOUT_AREA_PROPERTIES::TransferDataToWindow(), and DIALOG_COPPER_ZONE::TransferDataToWindow().

◆ SetKiway()

void KIWAY_HOLDER::SetKiway ( wxWindow *  aDest,
KIWAY aKiway 
)
inherited

Function SetKiway.

Parameters
aDestis the recipient of aKiway pointer. It is only used for debugging, since "this" is not a wxWindow*. "this" is a KIWAY_HOLDER mix-in.
aKiwayis often from a parent window, or from KIFACE::CreateWindow().

Definition at line 42 of file kiway_holder.cpp.

43 {
44 #if defined(DEBUG)
45  // offer a trap point for debugging most any window
46  wxASSERT( aDest );
47  if( !strcmp( typeid(aDest).name(), "DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB" ) )
48  {
49  int breakhere=1;
50  (void) breakhere;
51  }
52 #endif
53 
54  (void) aDest;
55 
56  m_kiway = aKiway;
57 }
KIWAY * m_kiway
Definition: kiway_holder.h:81
const char * name
Definition: DXF_plotter.cpp:60

References KIWAY_HOLDER::m_kiway, and name.

Referenced by BM2CMP_FRAME::BM2CMP_FRAME(), InvokePcbLibTableEditor(), PCB_CALCULATOR_FRAME::PCB_CALCULATOR_FRAME(), and SIM_PLOT_FRAME::SIM_PLOT_FRAME().

◆ SetSizeInDU()

void DIALOG_SHIM::SetSizeInDU ( int  x,
int  y 
)
protectedinherited

Set the dialog to the given dimensions in "dialog units".

These are units equivalent to 4* the average character width and 8* the average character height, allowing a dialog to be sized in a way that scales it with the system font.

Definition at line 151 of file dialog_shim.cpp.

152 {
153  wxSize sz( x, y );
154  SetSize( ConvertDialogToPixels( sz ) );
155 }

Referenced by DIALOG_RESCUE_EACH::DIALOG_RESCUE_EACH(), HTML_MESSAGE_BOX::HTML_MESSAGE_BOX(), and HTML_MESSAGE_BOX::SetDialogSizeInDU().

◆ Show()

bool DIALOG_SHIM::Show ( bool  show)
overrideinherited

Definition at line 178 of file dialog_shim.cpp.

179 {
180  bool ret;
181  const char* hash_key;
182 
183  if( m_hash_key.size() )
184  {
185  // a special case like EDA_LIST_DIALOG, which has multiple uses.
186  hash_key = m_hash_key.c_str();
187  }
188  else
189  {
190  hash_key = typeid(*this).name();
191  }
192 
193  // Show or hide the window. If hiding, save current position and size.
194  // If showing, use previous position and size.
195  if( show )
196  {
197 #ifndef __WINDOWS__
198  wxDialog::Raise(); // Needed on OS X and some other window managers (i.e. Unity)
199 #endif
200  ret = wxDialog::Show( show );
201 
202  // classname is key, returns a zeroed out default EDA_RECT if none existed before.
203  EDA_RECT savedDialogRect = class_map[ hash_key ];
204 
205  if( savedDialogRect.GetSize().x != 0 && savedDialogRect.GetSize().y != 0 )
206  {
207  SetSize( savedDialogRect.GetPosition().x,
208  savedDialogRect.GetPosition().y,
209  std::max( wxDialog::GetSize().x, savedDialogRect.GetSize().x ),
210  std::max( wxDialog::GetSize().y, savedDialogRect.GetSize().y ),
211  0 );
212  }
213 
214  // Be sure that the dialog appears in a visible area
215  // (the dialog position might have been stored at the time when it was
216  // shown on another display)
217  if( wxDisplay::GetFromWindow( this ) == wxNOT_FOUND )
218  Centre();
219  }
220  else
221  {
222  // Save the dialog's position & size before hiding, using classname as key
223  class_map[ hash_key ] = EDA_RECT( wxDialog::GetPosition(), wxDialog::GetSize() );
224 
225 #ifdef __WXMAC__
226  if ( m_eventLoop )
227  m_eventLoop->Exit( GetReturnCode() ); // Needed for APP-MODAL dlgs on OSX
228 #endif
229 
230  ret = wxDialog::Show( show );
231  }
232 
233  return ret;
234 }
std::string m_hash_key
Definition: dialog_shim.h:197
static RECT_MAP class_map
const wxPoint GetPosition() const
Definition: eda_rect.h:115
EDA_RECT handles the component boundary box.
Definition: eda_rect.h:44
const wxSize GetSize() const
Definition: eda_rect.h:103

References class_map, EDA_RECT::GetPosition(), EDA_RECT::GetSize(), DIALOG_SHIM::m_hash_key, wxPoint::x, and wxPoint::y.

Referenced by DIALOG_SHIM::EndQuasiModal(), InvokeDialogERC(), SCH_EDIT_FRAME::OnAnnotate(), DIALOG_DRC::OnDRCItemDClick(), DIALOG_ERC::OnERCItemDClick(), DIALOG_CLEANUP_TRACKS_AND_VIAS::OnLeftDClickItem(), POSITION_RELATIVE_TOOL::PositionRelative(), CVPCB_MAINFRAME::ReadNetListAndFpFiles(), DRC::ShowDRCDialog(), SCH_EDIT_FRAME::ShowFindReplaceDialog(), DIALOG_SHIM::ShowQuasiModal(), DIALOG_POSITION_RELATIVE::UpdateAnchor(), and SCH_EDIT_FRAME::UpdateHierarchyNavigator().

◆ ShowQuasiModal()

int DIALOG_SHIM::ShowQuasiModal ( )
inherited

Definition at line 365 of file dialog_shim.cpp.

366 {
367  // This is an exception safe way to zero a pointer before returning.
368  // Yes, even though DismissModal() clears this first normally, this is
369  // here in case there's an exception before the dialog is dismissed.
370  struct NULLER
371  {
372  void*& m_what;
373  NULLER( void*& aPtr ) : m_what( aPtr ) {}
374  ~NULLER() { m_what = 0; } // indeed, set it to NULL on destruction
375  } clear_this( (void*&) m_qmodal_loop );
376 
377  // release the mouse if it's currently captured as the window having it
378  // will be disabled when this dialog is shown -- but will still keep the
379  // capture making it impossible to do anything in the modal dialog itself
380  wxWindow* win = wxWindow::GetCapture();
381  if( win )
382  win->ReleaseMouse();
383 
384  // Get the optimal parent
385  wxWindow* parent = GetParentForModalDialog( GetParent(), GetWindowStyle() );
386 
387  // Show the optimal parent
388  DBG( if( parent ) printf( "%s: optimal parent: %s\n", __func__, typeid(*parent).name() );)
389 
390  wxASSERT_MSG( !m_qmodal_parent_disabler,
391  wxT( "Caller using ShowQuasiModal() twice on same window?" ) );
392 
393  // quasi-modal: disable only my "optimal" parent
395 
396 #ifdef __WXMAC__
397  // Apple in its infinite wisdom will raise a disabled window before even passing
398  // us the event, so we have no way to stop it. Instead, we must set an order on
399  // the windows so that the quasi-modal will be pushed in front of the disabled
400  // window when it is raised.
401  ReparentQuasiModal();
402 #endif
403  Show( true );
404 
405  m_qmodal_showing = true;
406 
407  WX_EVENT_LOOP event_loop;
408 
409  m_qmodal_loop = &event_loop;
410 
411  event_loop.Run();
412 
413  m_qmodal_showing = false;
414 
415  return GetReturnCode();
416 }
bool m_qmodal_showing
Definition: dialog_shim.h:207
#define WX_EVENT_LOOP
Definition: kiway_player.h:41
WX_EVENT_LOOP * m_qmodal_loop
Definition: dialog_shim.h:205
bool Show(bool show) override
WDO_ENABLE_DISABLE * m_qmodal_parent_disabler
Definition: dialog_shim.h:208
Toggle a window's "enable" status to disabled, then enabled on destruction.
Definition: dialog_shim.cpp:35
#define DBG(x)
Definition: fctsys.h:33

References DBG, DIALOG_SHIM::m_qmodal_loop, DIALOG_SHIM::m_qmodal_parent_disabler, DIALOG_SHIM::m_qmodal_showing, DIALOG_SHIM::Show(), and WX_EVENT_LOOP.

Referenced by PCB_EDIT_FRAME::DoShowBoardSetupDialog(), SCH_EDIT_FRAME::DoShowSchematicSetupDialog(), LIB_EDIT_TOOL::editFieldProperties(), SCH_EDITOR_CONTROL::EditSymbolFields(), LIB_EDIT_TOOL::editSymbolProperties(), GLOBAL_EDIT_TOOL::EditTracksAndVias(), GLOBAL_EDIT_TOOL::ExchangeFootprints(), PCB_EDIT_FRAME::InstallExchangeModuleFrame(), PCB_BASE_FRAME::InstallPadOptionsFrame(), InvokeDialogEditComponentsLibId(), InvokeDialogRescueEach(), InvokeDialogUpdateFields(), SCH_EDIT_FRAME::OnRemapSymbols(), LIB_VIEW_FRAME::OnSelectSymbol(), SCH_EDIT_FRAME::OpenProjectFiles(), SCH_EDIT_TOOL::Properties(), EDIT_TOOL::Properties(), SCH_BASE_FRAME::SelectCompFromLibTree(), and PCB_BASE_FRAME::SelectFootprintFromLibTree().

◆ TransferDataFromWindow()

bool DIALOG_SPICE_MODEL::TransferDataFromWindow ( )
overrideprivatevirtual

Definition at line 160 of file dialog_spice_model.cpp.

161 {
162  if( !DIALOG_SPICE_MODEL_BASE::TransferDataFromWindow() )
163  return false;
164 
165  wxWindow* page = m_notebook->GetCurrentPage();
166 
167  // Passive
168  if( page == m_passive )
169  {
170  if( !m_passive->Validate() )
171  return false;
172 
173  switch( m_pasType->GetSelection() )
174  {
175  case 0: m_fieldsTmp[SF_PRIMITIVE] = (char) SP_RESISTOR; break;
176  case 1: m_fieldsTmp[SF_PRIMITIVE] = (char) SP_CAPACITOR; break;
177  case 2: m_fieldsTmp[SF_PRIMITIVE] = (char) SP_INDUCTOR; break;
178 
179  default:
180  wxASSERT_MSG( false, "Unhandled passive type" );
181  return false;
182  break;
183  }
184 
185  m_fieldsTmp[SF_MODEL] = m_pasValue->GetValue();
186  }
187 
188 
189  // Model
190  else if( page == m_model )
191  {
192  if( !m_model->Validate() )
193  return false;
194 
195  int modelIdx = m_modelType->GetSelection();
196 
197  if( modelIdx > 0 && modelIdx < (int)modelTypes.size() )
198  m_fieldsTmp[SF_PRIMITIVE] = static_cast<char>( modelTypes[modelIdx].type );
199 
200  m_fieldsTmp[SF_MODEL] = m_modelName->GetValue();
201 
202  if( !empty( m_modelLibrary ) )
203  m_fieldsTmp[SF_LIB_FILE] = m_modelLibrary->GetValue();
204  }
205 
206  // Power source
207  else if( page == m_power )
208  {
209  wxString model;
210 
211  if( !generatePowerSource( model ) )
212  return false;
213 
214  m_fieldsTmp[SF_PRIMITIVE] = (char)( m_pwrType->GetSelection() ? SP_ISOURCE : SP_VSOURCE );
215  m_fieldsTmp[SF_MODEL] = model;
216  }
217 
218 
219  else
220  {
221  wxASSERT_MSG( false, "Unhandled model type" );
222  return false;
223  }
224 
225  m_fieldsTmp[SF_ENABLED] = !m_disabled->GetValue() ? "Y" : "N"; // note bool inversion
226  m_fieldsTmp[SF_NODE_SEQUENCE] = m_nodeSeqCheck->IsChecked() ? m_nodeSeqVal->GetValue() : "";
227 
228  // Apply the settings
229  for( int i = 0; i < SF_END; ++i )
230  {
231  if( m_fieldsTmp.count( (SPICE_FIELD) i ) > 0 && !m_fieldsTmp.at( i ).IsEmpty() )
232  {
233  if( m_useSchFields )
234  getSchField( i ).SetText( m_fieldsTmp[i] );
235  else
236  getLibField( i ).SetText( m_fieldsTmp[i] );
237  }
238  else
239  {
240  // Erase empty fields (having empty fields causes a warning in the properties dialog)
241  const wxString& spiceField = NETLIST_EXPORTER_PSPICE::GetSpiceFieldName( (SPICE_FIELD) i );
242 
243  if( m_useSchFields )
244  m_schfields->erase( std::remove_if( m_schfields->begin(), m_schfields->end(),
245  [&]( const SCH_FIELD& f )
246  { return f.GetName() == spiceField; } ), m_schfields->end() );
247  else
248  m_libfields->erase( std::remove_if( m_libfields->begin(), m_libfields->end(),
249  [&]( const LIB_FIELD& f ) { return f.GetName( NATIVE_FIELD_NAME ) == spiceField; } ), m_libfields->end() );
250  }
251  }
252 
253  return true;
254 }
SCH_FIELD instances are attached to a component and provide a place for the component's value,...
Definition: sch_field.h:52
bool generatePowerSource(wxString &aTarget) const
Generates a string to describe power source parameters, basing on the current selection.
Field object used in symbol libraries.
Definition: lib_field.h:59
static const wxString & GetSpiceFieldName(SPICE_FIELD aField)
Returns a string used for a particular component field related to Spice simulation.
LIB_FIELD & getLibField(int aFieldType)
static bool empty(const wxTextCtrl *aCtrl)
virtual void SetText(const wxString &aText)
Definition: eda_text.cpp:111
SCH_FIELDS * m_schfields
Fields from the component properties dialog
SCH_FIELD & getSchField(int aFieldType)
Returns or creates a field in the edited schematic fields vector.
std::map< int, wxString > m_fieldsTmp
Temporary field values
static const std::vector< SPICE_MODEL_INFO > modelTypes
#define NATIVE_FIELD_NAME
Definition: lib_field.h:125

References empty(), generatePowerSource(), getLibField(), getSchField(), NETLIST_EXPORTER_PSPICE::GetSpiceFieldName(), DIALOG_SPICE_MODEL_BASE::m_disabled, m_fieldsTmp, m_libfields, DIALOG_SPICE_MODEL_BASE::m_model, DIALOG_SPICE_MODEL_BASE::m_modelLibrary, DIALOG_SPICE_MODEL_BASE::m_modelName, DIALOG_SPICE_MODEL_BASE::m_modelType, DIALOG_SPICE_MODEL_BASE::m_nodeSeqCheck, DIALOG_SPICE_MODEL_BASE::m_nodeSeqVal, DIALOG_SPICE_MODEL_BASE::m_notebook, DIALOG_SPICE_MODEL_BASE::m_passive, DIALOG_SPICE_MODEL_BASE::m_pasType, DIALOG_SPICE_MODEL_BASE::m_pasValue, DIALOG_SPICE_MODEL_BASE::m_power, DIALOG_SPICE_MODEL_BASE::m_pwrType, m_schfields, m_useSchFields, modelTypes, NATIVE_FIELD_NAME, EDA_TEXT::SetText(), SF_ENABLED, SF_END, SF_LIB_FILE, SF_MODEL, SF_NODE_SEQUENCE, SF_PRIMITIVE, SP_CAPACITOR, SP_INDUCTOR, SP_ISOURCE, SP_RESISTOR, and SP_VSOURCE.

◆ TransferDataToWindow()

bool DIALOG_SPICE_MODEL::TransferDataToWindow ( )
overrideprivatevirtual

Definition at line 257 of file dialog_spice_model.cpp.

258 {
259  const auto& spiceFields = NETLIST_EXPORTER_PSPICE::GetSpiceFields();
260 
261  // Fill out the working buffer
262  for( unsigned int idx = 0; idx < spiceFields.size(); ++idx )
263  {
264  const wxString& spiceField = spiceFields[idx];
265 
268 
269  // Do not modify the existing value, just add missing fields with default values
270  if( m_useSchFields && m_schfields )
271  {
272  for( const auto& field : *m_schfields )
273  {
274  if( field.GetName() == spiceField && !field.GetText().IsEmpty() )
275  {
276  m_fieldsTmp[idx] = field.GetText();
277  break;
278  }
279  }
280  }
281  else if( m_libfields)
282  {
283  // TODO: There must be a good way to template out these repetitive calls
284  for( const LIB_FIELD& field : *m_libfields )
285  {
286  if( field.GetName( NATIVE_FIELD_NAME ) == spiceField && !field.GetText().IsEmpty() )
287  {
288  m_fieldsTmp[idx] = field.GetText();
289  break;
290  }
291  }
292  }
293  }
294 
295  // Analyze the component fields to fill out the dialog
296  char primitive = toupper( m_fieldsTmp[SF_PRIMITIVE][0] );
297 
298  switch( primitive )
299  {
300  case SP_RESISTOR:
301  case SP_CAPACITOR:
302  case SP_INDUCTOR:
303  m_notebook->SetSelection( m_notebook->FindPage( m_passive ) );
304  m_pasType->SetSelection( primitive == SP_RESISTOR ? 0
305  : primitive == SP_CAPACITOR ? 1
306  : primitive == SP_INDUCTOR ? 2
307  : -1 );
308  m_pasValue->SetValue( m_fieldsTmp[SF_MODEL] );
309  break;
310 
311  case SP_DIODE:
312  case SP_BJT:
313  case SP_MOSFET:
314  case SP_JFET:
315  case SP_SUBCKT:
316  m_notebook->SetSelection( m_notebook->FindPage( m_model ) );
317  m_modelType->SetSelection( getModelTypeIdx( primitive ) );
318  m_modelName->SetValue( m_fieldsTmp[SF_MODEL] );
319  m_modelLibrary->SetValue( m_fieldsTmp[SF_LIB_FILE] );
320 
321  if( !empty( m_modelLibrary ) )
322  {
323  const wxString& libFile = m_modelLibrary->GetValue();
324  m_fieldsTmp[SF_LIB_FILE] = libFile;
325  loadLibrary( libFile );
326  }
327  break;
328 
329  case SP_VSOURCE:
330  case SP_ISOURCE:
332  return false;
333 
334  m_notebook->SetSelection( m_notebook->FindPage( m_power ) );
335  m_pwrType->SetSelection( primitive == SP_ISOURCE ? 1 : 0 );
336  break;
337 
338  default:
339  //wxASSERT_MSG( false, "Unhandled Spice primitive type" );
340  break;
341  }
342 
344 
345  // Check if node sequence is different than the default one
348  {
349  m_nodeSeqCheck->SetValue( true );
351  }
352 
353  return DIALOG_SPICE_MODEL_BASE::TransferDataToWindow();
354 }
SCH_COMPONENT & m_component
Edited component
Field object used in symbol libraries.
Definition: lib_field.h:59
static bool StringToBool(const wxString &aStr)
Convertes typical boolean string values (no/yes, true/false, 1/0) to a boolean value.
bool parsePowerSource(const wxString &aModel)
Parse a string describing a power source, so appropriate settings are checked in the dialog.
static int getModelTypeIdx(char aPrimitive)
static wxString GetSpiceFieldDefVal(SPICE_FIELD aField, SCH_COMPONENT *aComponent, unsigned aCtl)
Retrieves the default value for a given field.
static bool empty(const wxTextCtrl *aCtrl)
SCH_FIELDS * m_schfields
Fields from the component properties dialog
std::map< int, wxString > m_fieldsTmp
Temporary field values
void loadLibrary(const wxString &aFilePath)
Loads a list of components (.model and .subckt) from a spice library file and adds them to a combo bo...
static const std::vector< wxString > & GetSpiceFields()
Returns a vector of component field names related to Spice simulation.
#define NATIVE_FIELD_NAME
Definition: lib_field.h:125

References empty(), getModelTypeIdx(), NETLIST_EXPORTER_PSPICE::GetSpiceFieldDefVal(), NETLIST_EXPORTER_PSPICE::GetSpiceFields(), loadLibrary(), m_component, DIALOG_SPICE_MODEL_BASE::m_disabled, m_fieldsTmp, m_libfields, DIALOG_SPICE_MODEL_BASE::m_model, DIALOG_SPICE_MODEL_BASE::m_modelLibrary, DIALOG_SPICE_MODEL_BASE::m_modelName, DIALOG_SPICE_MODEL_BASE::m_modelType, DIALOG_SPICE_MODEL_BASE::m_nodeSeqCheck, DIALOG_SPICE_MODEL_BASE::m_nodeSeqVal, DIALOG_SPICE_MODEL_BASE::m_notebook, DIALOG_SPICE_MODEL_BASE::m_passive, DIALOG_SPICE_MODEL_BASE::m_pasType, DIALOG_SPICE_MODEL_BASE::m_pasValue, DIALOG_SPICE_MODEL_BASE::m_power, DIALOG_SPICE_MODEL_BASE::m_pwrType, m_schfields, m_useSchFields, NATIVE_FIELD_NAME, NET_ADJUST_INCLUDE_PATHS, NET_ADJUST_PASSIVE_VALS, parsePowerSource(), SF_ENABLED, SF_LIB_FILE, SF_MODEL, SF_NODE_SEQUENCE, SF_PRIMITIVE, SP_BJT, SP_CAPACITOR, SP_DIODE, SP_INDUCTOR, SP_ISOURCE, SP_JFET, SP_MOSFET, SP_RESISTOR, SP_SUBCKT, SP_VSOURCE, and NETLIST_EXPORTER_PSPICE::StringToBool().

Referenced by onInitDlg().

◆ Validate()

virtual bool DIALOG_SPICE_MODEL::Validate ( )
inlineoverrideprivatevirtual

Definition at line 91 of file dialog_spice_model.h.

92  {
93  return true;
94  }

◆ VertPixelsFromDU()

int DIALOG_SHIM::VertPixelsFromDU ( int  y)
protectedinherited

Convert an integer number of dialog units to pixels, vertically.

See SetSizeInDU or wxDialog documentation for more information.

Definition at line 165 of file dialog_shim.cpp.

166 {
167  wxSize sz( 0, y );
168  return ConvertDialogToPixels( sz ).y;
169 }

Referenced by DIALOG_CHOOSE_COMPONENT::DIALOG_CHOOSE_COMPONENT().

Member Data Documentation

◆ m_component

SCH_COMPONENT& DIALOG_SPICE_MODEL::m_component
private

Edited component

Definition at line 117 of file dialog_spice_model.h.

Referenced by getSchField(), and TransferDataToWindow().

◆ m_disabled

wxCheckBox* DIALOG_SPICE_MODEL_BASE::m_disabled
protectedinherited

◆ m_expFallConst

wxTextCtrl* DIALOG_SPICE_MODEL_BASE::m_expFallConst
protectedinherited

◆ m_expFallDelay

wxTextCtrl* DIALOG_SPICE_MODEL_BASE::m_expFallDelay
protectedinherited

◆ m_expInit

wxTextCtrl* DIALOG_SPICE_MODEL_BASE::m_expInit
protectedinherited

◆ m_expPulsed

wxTextCtrl* DIALOG_SPICE_MODEL_BASE::m_expPulsed
protectedinherited

◆ m_expRiseConst

wxTextCtrl* DIALOG_SPICE_MODEL_BASE::m_expRiseConst
protectedinherited

◆ m_expRiseDelay

wxTextCtrl* DIALOG_SPICE_MODEL_BASE::m_expRiseDelay
protectedinherited

◆ m_fieldsTmp

std::map<int, wxString> DIALOG_SPICE_MODEL::m_fieldsTmp
private

Temporary field values

Definition at line 125 of file dialog_spice_model.h.

Referenced by TransferDataFromWindow(), and TransferDataToWindow().

◆ m_firstPaintEvent

bool DIALOG_SHIM::m_firstPaintEvent
protectedinherited

Definition at line 202 of file dialog_shim.h.

Referenced by DIALOG_SHIM::OnPaint().

◆ m_genAcMag

wxTextCtrl* DIALOG_SPICE_MODEL_BASE::m_genAcMag
protectedinherited

◆ m_genAcPhase

wxTextCtrl* DIALOG_SPICE_MODEL_BASE::m_genAcPhase
protectedinherited

◆ m_genDc

wxTextCtrl* DIALOG_SPICE_MODEL_BASE::m_genDc
protectedinherited

◆ m_hash_key

◆ m_initialFocusTarget

wxWindow* DIALOG_SHIM::m_initialFocusTarget
protectedinherited

Definition at line 203 of file dialog_shim.h.

Referenced by DIALOG_SHIM::OnPaint(), and DIALOG_SHIM::SetInitialFocus().

◆ m_libfields

LIB_FIELDS* DIALOG_SPICE_MODEL::m_libfields
private

Definition at line 121 of file dialog_spice_model.h.

Referenced by getLibField(), TransferDataFromWindow(), and TransferDataToWindow().

◆ m_libraryContents

wxStyledTextCtrl* DIALOG_SPICE_MODEL_BASE::m_libraryContents
protectedinherited

◆ m_model

wxPanel* DIALOG_SPICE_MODEL_BASE::m_model
protectedinherited

◆ m_modelLibrary

wxTextCtrl* DIALOG_SPICE_MODEL_BASE::m_modelLibrary
protectedinherited

◆ m_modelName

◆ m_models

std::map<wxString, MODEL> DIALOG_SPICE_MODEL::m_models
private

Models available in the selected library file

Definition at line 145 of file dialog_spice_model.h.

Referenced by loadLibrary(), and onModelSelected().

◆ m_modelType

wxComboBox* DIALOG_SPICE_MODEL_BASE::m_modelType
protectedinherited

◆ m_nodeSeqCheck

wxCheckBox* DIALOG_SPICE_MODEL_BASE::m_nodeSeqCheck
protectedinherited

◆ m_nodeSeqVal

wxTextCtrl* DIALOG_SPICE_MODEL_BASE::m_nodeSeqVal
protectedinherited

◆ m_notebook

wxNotebook* DIALOG_SPICE_MODEL_BASE::m_notebook
protectedinherited

◆ m_notEmptyValidator

wxTextValidator DIALOG_SPICE_MODEL::m_notEmptyValidator
private

Definition at line 152 of file dialog_spice_model.h.

Referenced by Init().

◆ m_passive

wxPanel* DIALOG_SPICE_MODEL_BASE::m_passive
protectedinherited

◆ m_pasType

wxComboBox* DIALOG_SPICE_MODEL_BASE::m_pasType
protectedinherited

◆ m_pasValue

wxTextCtrl* DIALOG_SPICE_MODEL_BASE::m_pasValue
protectedinherited

◆ m_power

wxPanel* DIALOG_SPICE_MODEL_BASE::m_power
protectedinherited

◆ m_powerNotebook

wxNotebook* DIALOG_SPICE_MODEL_BASE::m_powerNotebook
protectedinherited

◆ m_pulseDelay

wxTextCtrl* DIALOG_SPICE_MODEL_BASE::m_pulseDelay
protectedinherited

◆ m_pulseFall

wxTextCtrl* DIALOG_SPICE_MODEL_BASE::m_pulseFall
protectedinherited

◆ m_pulseInit

wxTextCtrl* DIALOG_SPICE_MODEL_BASE::m_pulseInit
protectedinherited

◆ m_pulseNominal

wxTextCtrl* DIALOG_SPICE_MODEL_BASE::m_pulseNominal
protectedinherited

◆ m_pulsePeriod

wxTextCtrl* DIALOG_SPICE_MODEL_BASE::m_pulsePeriod
protectedinherited

◆ m_pulseRise

wxTextCtrl* DIALOG_SPICE_MODEL_BASE::m_pulseRise
protectedinherited

◆ m_pulseWidth

wxTextCtrl* DIALOG_SPICE_MODEL_BASE::m_pulseWidth
protectedinherited

◆ m_pwlAddButton

wxButton* DIALOG_SPICE_MODEL_BASE::m_pwlAddButton
protectedinherited

◆ m_pwlRemoveBtn

wxButton* DIALOG_SPICE_MODEL_BASE::m_pwlRemoveBtn
protectedinherited

◆ m_pwlTime

wxTextCtrl* DIALOG_SPICE_MODEL_BASE::m_pwlTime
protectedinherited

◆ m_pwlTimeCol

long DIALOG_SPICE_MODEL::m_pwlTimeCol
private

Column identifiers for PWL power source value list

Definition at line 148 of file dialog_spice_model.h.

Referenced by addPwlValue(), generatePowerSource(), and Init().

◆ m_pwlValList

wxListCtrl* DIALOG_SPICE_MODEL_BASE::m_pwlValList
protectedinherited

◆ m_pwlValue

wxTextCtrl* DIALOG_SPICE_MODEL_BASE::m_pwlValue
protectedinherited

◆ m_pwlValueCol

long DIALOG_SPICE_MODEL::m_pwlValueCol
private

Definition at line 148 of file dialog_spice_model.h.

Referenced by addPwlValue(), generatePowerSource(), and Init().

◆ m_pwrAm

wxPanel* DIALOG_SPICE_MODEL_BASE::m_pwrAm
protectedinherited

◆ m_pwrExp

wxPanel* DIALOG_SPICE_MODEL_BASE::m_pwrExp
protectedinherited

◆ m_pwrExtData

wxPanel* DIALOG_SPICE_MODEL_BASE::m_pwrExtData
protectedinherited

◆ m_pwrFm

wxPanel* DIALOG_SPICE_MODEL_BASE::m_pwrFm
protectedinherited

◆ m_pwrPulse

wxPanel* DIALOG_SPICE_MODEL_BASE::m_pwrPulse
protectedinherited

◆ m_pwrPwl

wxPanel* DIALOG_SPICE_MODEL_BASE::m_pwrPwl
protectedinherited

◆ m_pwrRandom

wxPanel* DIALOG_SPICE_MODEL_BASE::m_pwrRandom
protectedinherited

◆ m_pwrSin

wxPanel* DIALOG_SPICE_MODEL_BASE::m_pwrSin
protectedinherited

◆ m_pwrTransNoise

wxPanel* DIALOG_SPICE_MODEL_BASE::m_pwrTransNoise
protectedinherited

◆ m_pwrType

wxRadioBox* DIALOG_SPICE_MODEL_BASE::m_pwrType
protectedinherited

◆ m_qmodal_loop

WX_EVENT_LOOP* DIALOG_SHIM::m_qmodal_loop
protectedinherited

Definition at line 205 of file dialog_shim.h.

Referenced by DIALOG_SHIM::EndQuasiModal(), and DIALOG_SHIM::ShowQuasiModal().

◆ m_qmodal_parent_disabler

WDO_ENABLE_DISABLE* DIALOG_SHIM::m_qmodal_parent_disabler
protectedinherited

◆ m_qmodal_showing

bool DIALOG_SHIM::m_qmodal_showing
protectedinherited

Definition at line 207 of file dialog_shim.h.

Referenced by DIALOG_SHIM::IsQuasiModal(), and DIALOG_SHIM::ShowQuasiModal().

◆ m_schfields

SCH_FIELDS* DIALOG_SPICE_MODEL::m_schfields
private

Fields from the component properties dialog

Definition at line 120 of file dialog_spice_model.h.

Referenced by getSchField(), TransferDataFromWindow(), and TransferDataToWindow().

◆ m_sdbSizer

wxStdDialogButtonSizer* DIALOG_SPICE_MODEL_BASE::m_sdbSizer
protectedinherited

◆ m_sdbSizerCancel

wxButton* DIALOG_SPICE_MODEL_BASE::m_sdbSizerCancel
protectedinherited

◆ m_sdbSizerOK

wxButton* DIALOG_SPICE_MODEL_BASE::m_sdbSizerOK
protectedinherited

◆ m_selectLibrary

wxButton* DIALOG_SPICE_MODEL_BASE::m_selectLibrary
protectedinherited

◆ m_sinAmplitude

wxTextCtrl* DIALOG_SPICE_MODEL_BASE::m_sinAmplitude
protectedinherited

◆ m_sinDampFactor

wxTextCtrl* DIALOG_SPICE_MODEL_BASE::m_sinDampFactor
protectedinherited

◆ m_sinDelay

wxTextCtrl* DIALOG_SPICE_MODEL_BASE::m_sinDelay
protectedinherited

◆ m_sinFreq

wxTextCtrl* DIALOG_SPICE_MODEL_BASE::m_sinFreq
protectedinherited

◆ m_sinOffset

wxTextCtrl* DIALOG_SPICE_MODEL_BASE::m_sinOffset
protectedinherited

◆ m_spiceEmptyValidator

SPICE_VALIDATOR DIALOG_SPICE_MODEL::m_spiceEmptyValidator
private

Definition at line 151 of file dialog_spice_model.h.

Referenced by Init().

◆ m_spiceValidator

SPICE_VALIDATOR DIALOG_SPICE_MODEL::m_spiceValidator
private

Definition at line 150 of file dialog_spice_model.h.

Referenced by Init().

◆ m_staticline1

wxStaticLine* DIALOG_SPICE_MODEL_BASE::m_staticline1
protectedinherited

◆ m_staticline2

wxStaticLine* DIALOG_SPICE_MODEL_BASE::m_staticline2
protectedinherited

◆ m_staticline3

wxStaticLine* DIALOG_SPICE_MODEL_BASE::m_staticline3
protectedinherited

◆ m_staticText10

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText10
protectedinherited

◆ m_staticText11

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText11
protectedinherited

◆ m_staticText111

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText111
protectedinherited

◆ m_staticText112

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText112
protectedinherited

◆ m_staticText113

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText113
protectedinherited

◆ m_staticText12

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText12
protectedinherited

◆ m_staticText13

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText13
protectedinherited

◆ m_staticText131

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText131
protectedinherited

◆ m_staticText132

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText132
protectedinherited

◆ m_staticText133

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText133
protectedinherited

◆ m_staticText134

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText134
protectedinherited

◆ m_staticText135

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText135
protectedinherited

◆ m_staticText136

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText136
protectedinherited

◆ m_staticText137

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText137
protectedinherited

◆ m_staticText14

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText14
protectedinherited

◆ m_staticText15

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText15
protectedinherited

◆ m_staticText16

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText16
protectedinherited

◆ m_staticText17

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText17
protectedinherited

◆ m_staticText18

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText18
protectedinherited

◆ m_staticText20

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText20
protectedinherited

◆ m_staticText21

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText21
protectedinherited

◆ m_staticText211

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText211
protectedinherited

◆ m_staticText212

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText212
protectedinherited

◆ m_staticText213

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText213
protectedinherited

◆ m_staticText214

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText214
protectedinherited

◆ m_staticText215

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText215
protectedinherited

◆ m_staticText22

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText22
protectedinherited

◆ m_staticText23

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText23
protectedinherited

◆ m_staticText24

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText24
protectedinherited

◆ m_staticText25

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText25
protectedinherited

◆ m_staticText26

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText26
protectedinherited

◆ m_staticText261

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText261
protectedinherited

◆ m_staticText262

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText262
protectedinherited

◆ m_staticText263

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText263
protectedinherited

◆ m_staticText264

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText264
protectedinherited

◆ m_staticText265

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText265
protectedinherited

◆ m_staticText266

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText266
protectedinherited

◆ m_staticText27

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText27
protectedinherited

◆ m_staticText28

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText28
protectedinherited

◆ m_staticText29

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText29
protectedinherited

◆ m_staticText30

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText30
protectedinherited

◆ m_staticText31

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText31
protectedinherited

◆ m_staticText32

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText32
protectedinherited

◆ m_staticText321

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText321
protectedinherited

◆ m_staticText34

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText34
protectedinherited

◆ m_staticText341

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText341
protectedinherited

◆ m_staticText342

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText342
protectedinherited

◆ m_staticText343

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText343
protectedinherited

◆ m_staticText35

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText35
protectedinherited

◆ m_staticText36

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText36
protectedinherited

◆ m_staticText37

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText37
protectedinherited

◆ m_staticText38

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText38
protectedinherited

◆ m_staticText39

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText39
protectedinherited

◆ m_staticText4

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText4
protectedinherited

◆ m_staticText40

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText40
protectedinherited

◆ m_staticText41

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText41
protectedinherited

◆ m_staticText42

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText42
protectedinherited

◆ m_staticText43

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText43
protectedinherited

◆ m_staticText44

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText44
protectedinherited

◆ m_staticText45

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText45
protectedinherited

◆ m_staticText46

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText46
protectedinherited

◆ m_staticText47

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText47
protectedinherited

◆ m_staticText48

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText48
protectedinherited

◆ m_staticText49

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText49
protectedinherited

◆ m_staticText5

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText5
protectedinherited

◆ m_staticText50

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText50
protectedinherited

◆ m_staticText51

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText51
protectedinherited

◆ m_staticText52

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText52
protectedinherited

◆ m_staticText53

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText53
protectedinherited

◆ m_staticText54

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText54
protectedinherited

◆ m_staticText55

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText55
protectedinherited

◆ m_staticText56

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText56
protectedinherited

◆ m_staticText57

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText57
protectedinherited

◆ m_staticText58

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText58
protectedinherited

◆ m_staticText59

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText59
protectedinherited

◆ m_staticText60

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText60
protectedinherited

◆ m_staticText62

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText62
protectedinherited

◆ m_staticText7

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText7
protectedinherited

◆ m_staticText_femto

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText_femto
protectedinherited

◆ m_staticTextPtype

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticTextPtype
protectedinherited

◆ m_staticTextPvalue

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticTextPvalue
protectedinherited

◆ m_staticTextSpVal

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticTextSpVal
protectedinherited

◆ m_tabOrder

◆ m_units

◆ m_useSchFields

bool DIALOG_SPICE_MODEL::m_useSchFields
private

Definition at line 122 of file dialog_spice_model.h.

Referenced by TransferDataFromWindow(), and TransferDataToWindow().


The documentation for this class was generated from the following files: