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
 Models available in the selected library file. More...
 

Public Types

enum  HOLDER_TYPE { DIALOG, FRAME, PANEL }
 

Public Member Functions

 DIALOG_SPICE_MODEL (wxWindow *aParent, SCH_COMPONENT &aComponent, std::vector< SCH_FIELD > *aSchFields)
 
 DIALOG_SPICE_MODEL (wxWindow *aParent, SCH_COMPONENT &aComponent, std::vector< LIB_FIELD > *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 () const
 
bool Show (bool show) override
 
bool Enable (bool enable) override
 
void OnPaint (wxPaintEvent &event)
 
void SetPosition (const wxPoint &aNewPosition)
 Force the position of the dialog to a new position. More...
 
EDA_UNITS GetUserUnits () const
 
HOLDER_TYPE GetType () const
 
KIWAYKiway () const
 Return a reference to the KIWAY that this object has an opportunity to participate in. More...
 
PROJECTPrj () const
 Return a reference to the PROJECT associated with this KIWAY. More...
 
void SetKiway (wxWindow *aDest, KIWAY *aKiway)
 It is only used for debugging, since "this" is not a wxWindow*. 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) const
 Convert an integer number of dialog units to pixels, horizontally. More...
 
int vertPixelsFromDU (int y) const
 Convert an integer number of dialog units to pixels, vertically. More...
 
void resetSize ()
 Clear the existing dialog size and position. More...
 
virtual void OnCharHook (wxKeyEvent &aEvt)
 

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_staticTextF1
 
wxStaticText * m_staticTextF2
 
wxStaticText * m_staticTextF3
 
wxStaticText * m_staticTextP1
 
wxStaticText * m_staticTextP2
 
wxStaticText * m_staticTextP3
 
wxStaticText * m_staticTextN1
 
wxStaticText * m_staticTextN2
 
wxStaticText * m_staticTextN3
 
wxStaticText * m_staticTextU1
 
wxStaticText * m_staticTextU2
 
wxStaticText * m_staticTextU3
 
wxStaticText * m_staticTextM1
 
wxStaticText * m_staticTextM2
 
wxStaticText * m_staticTextM3
 
wxStaticText * m_staticTextK1
 
wxStaticText * m_staticTextK2
 
wxStaticText * m_staticTextK3
 
wxStaticText * m_staticTextMeg1
 
wxStaticText * m_staticTextMeg2
 
wxStaticText * m_staticTextMeg3
 
wxStaticText * m_staticTextG1
 
wxStaticText * m_staticTextG2
 
wxStaticText * m_staticTextG3
 
wxStaticText * m_staticTextT1
 
wxStaticText * m_staticTextT2
 
wxStaticText * m_staticTextT3
 
wxPanel * m_model
 
wxStaticText * m_staticText7
 
wxTextCtrl * m_modelLibrary
 
wxButton * m_selectLibrary
 
wxStaticText * m_staticText5
 
wxComboBox * m_modelName
 
wxStaticText * m_staticText4
 
wxComboBox * m_modelType
 
wxStaticText * m_staticTextNote
 
wxStaticText * m_stInfoNote
 
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
 
wxStaticText * m_staticText138
 
wxTextCtrl * m_fmOffset
 
wxStaticText * m_staticText1311
 
wxStaticText * m_staticText141
 
wxTextCtrl * m_fmAmplitude
 
wxStaticText * m_staticText1321
 
wxStaticText * m_staticText151
 
wxTextCtrl * m_fmFcarrier
 
wxStaticText * m_staticText1331
 
wxStaticText * m_staticText161
 
wxTextCtrl * m_fmModIndex
 
wxStaticText * m_staticText1341
 
wxStaticText * m_staticText171
 
wxTextCtrl * m_fmFsignal
 
wxStaticText * m_staticText1351
 
wxStaticText * m_staticText181
 
wxTextCtrl * m_fmPhaseC
 
wxStaticText * m_staticText1361
 
wxStaticText * m_staticText201
 
wxTextCtrl * m_fmPhaseS
 
wxStaticText * m_staticText1371
 
wxPanel * m_pwrAm
 
wxStaticText * m_staticText1381
 
wxTextCtrl * m_amAmplitude
 
wxStaticText * m_staticText13111
 
wxStaticText * m_staticText1411
 
wxTextCtrl * m_amOffset
 
wxStaticText * m_staticText13211
 
wxStaticText * m_staticText1511
 
wxTextCtrl * m_amModulatingFreq
 
wxStaticText * m_staticText13311
 
wxStaticText * m_staticText1611
 
wxTextCtrl * m_amCarrierFreq
 
wxStaticText * m_staticText13411
 
wxStaticText * m_staticText1711
 
wxTextCtrl * m_amSignalDelay
 
wxStaticText * m_staticText13511
 
wxStaticText * m_staticText1811
 
wxTextCtrl * m_amPhase
 
wxStaticText * m_staticText13611
 
wxPanel * m_pwrTransNoise
 
wxPanel * m_pwrRandom
 
wxStaticText * m_staticText27111
 
wxChoice * m_rnType
 
wxStaticText * m_staticText26711
 
wxTextCtrl * m_rnTS
 
wxStaticText * m_staticText262111
 
wxStaticText * m_staticText28111
 
wxTextCtrl * m_rnTD
 
wxStaticText * m_staticText263111
 
wxStaticText * m_rnParam1Text
 
wxTextCtrl * m_rnParam1
 
wxStaticText * m_rnParam2Text
 
wxTextCtrl * m_rnParam2
 
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_useCalculatedSize
 
bool m_firstPaintEvent
 
wxWindow * m_initialFocusTarget
 
WX_EVENT_LOOPm_qmodal_loop
 
bool m_qmodal_showing
 
WDO_ENABLE_DISABLEm_qmodal_parent_disabler
 
EDA_BASE_FRAMEm_parentFrame
 
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
 Generate a string to describe power source parameters, basing on the current selection. More...
 
void loadLibrary (const wxString &aFilePath)
 Load a list of components (.model and .subckt) from a spice library file and add them to a combo box. More...
 
SCH_FIELDgetSchField (int aFieldType)
 Return or create a field in the edited schematic fields vector. More...
 
LIB_FIELDgetLibField (int aFieldType)
 
bool addPwlValue (const wxString &aTime, const wxString &aValue)
 Add 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 ()
 Initialize the internal settings. More...
 
void showPinOrderNote (int aModelType)
 Display a note info about pin order. More...
 
void onSelectLibrary (wxCommandEvent &event) override
 
void onModelSelected (wxCommandEvent &event) override
 
void onPwlAdd (wxCommandEvent &event) override
 
void onPwlRemove (wxCommandEvent &event) override
 
void onRandomSourceType (wxCommandEvent &event) override
 
void onTypeSelected (wxCommandEvent &event) override
 Edited component. More...
 

Private Attributes

SCH_COMPONENTm_component
 Fields from the component properties dialog. More...
 
std::vector< SCH_FIELD > * m_schfields
 
std::vector< LIB_FIELD > * m_libfields
 
bool m_useSchFields
 Temporary field values. More...
 
std::map< int, wxString > m_fieldsTmp
 
std::map< wxString, MODELm_models
 Column identifiers for PWL power source value list. More...
 
long m_pwlTimeCol
 
long m_pwlValueCol
 
SPICE_VALIDATOR m_spiceValidator
 
SPICE_VALIDATOR m_spiceEmptyValidator
 
wxTextValidator m_notEmptyValidator
 

Detailed Description

Definition at line 40 of file dialog_spice_model.h.

Member Enumeration Documentation

◆ HOLDER_TYPE

enum KIWAY_HOLDER::HOLDER_TYPE
inherited
Enumerator
DIALOG 
FRAME 
PANEL 

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,
std::vector< SCH_FIELD > *  aSchFields 
)

◆ DIALOG_SPICE_MODEL() [2/2]

DIALOG_SPICE_MODEL::DIALOG_SPICE_MODEL ( wxWindow *  aParent,
SCH_COMPONENT aComponent,
std::vector< LIB_FIELD > *  aLibFields 
)

Definition at line 116 of file dialog_spice_model.cpp.

117  :
118  DIALOG_SPICE_MODEL_BASE( aParent ),
119  m_component( aComponent ),
120  m_schfields( nullptr ),
121  m_libfields( aFields ),
122  m_useSchFields( false ),
123  m_spiceEmptyValidator( true ),
124  m_notEmptyValidator( wxFILTER_EMPTY )
125 {
126  Init();
127 }
void Init()
Initialize the internal settings.
SCH_COMPONENT & m_component
Fields from the component properties dialog.
std::vector< LIB_FIELD > * m_libfields
bool m_useSchFields
Temporary field values.
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(669, 861), long style=wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER)
std::vector< SCH_FIELD > * m_schfields
SPICE_VALIDATOR m_spiceEmptyValidator

References Init().

Member Function Documentation

◆ addPwlValue()

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

Add 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 980 of file dialog_spice_model.cpp.

981 {
982  // TODO execute validators
983  if( aTime.IsEmpty() || aValue.IsEmpty() )
984  return false;
985 
986  long idx = m_pwlValList->InsertItem( m_pwlTimeCol, aTime );
987  m_pwlValList->SetItem( idx, m_pwlValueCol, aValue );
988 
989  // There is no wxString::ToFloat, but we need to guarantee it fits in 4 bytes
990  double timeD;
991  float timeF;
992  m_pwlTime->GetValue().ToDouble( &timeD );
993  timeF = timeD;
994  long data;
995  std::memcpy( &data, &timeF, sizeof( timeF ) );
996 
997  // Store the time value, so the entries can be sorted
998  m_pwlValList->SetItemData( idx, data );
999 
1000  // Sort items by timestamp
1001  m_pwlValList->SortItems( comparePwlValues, -1 );
1002 
1003  return true;
1004 }
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 307 of file dialog_shim.cpp.

308 {
309  // so we can do logging of this state change:
310  return wxDialog::Enable( enable );
311 }

◆ EndQuasiModal()

void DIALOG_SHIM::EndQuasiModal ( int  retCode)
inherited

Definition at line 445 of file dialog_shim.cpp.

446 {
447  // Hook up validator and transfer data from controls handling so quasi-modal dialogs
448  // handle validation in the same way as other dialogs.
449  if( ( retCode == wxID_OK ) && ( !Validate() || !TransferDataFromWindow() ) )
450  return;
451 
452  SetReturnCode( retCode );
453 
454  if( !IsQuasiModal() )
455  {
456  wxFAIL_MSG( "either DIALOG_SHIM::EndQuasiModal called twice or ShowQuasiModal"
457  "wasn't called" );
458  return;
459  }
460 
461  if( m_qmodal_loop )
462  {
463  if( m_qmodal_loop->IsRunning() )
464  m_qmodal_loop->Exit( 0 );
465  else
466  m_qmodal_loop->ScheduleExit( 0 );
467 
469  }
470 
473 
474  Show( false );
475 }
bool IsQuasiModal() const
Definition: dialog_shim.h:107
WX_EVENT_LOOP * m_qmodal_loop
Definition: dialog_shim.h:212
#define NULL
bool Show(bool show) override
WDO_ENABLE_DISABLE * m_qmodal_parent_disabler
Definition: dialog_shim.h:215

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_LIB_SYMBOL_PROPERTIES::OnCancelButtonClick(), DIALOG_SYMBOL_PROPERTIES::OnCancelButtonClick(), DIALOG_LIB_EDIT_PIN_TABLE::OnClose(), DIALOG_PRINT_GENERIC::onCloseButton(), DIALOG_CHOOSE_FOOTPRINT::OnCloseTimer(), DIALOG_CHOOSE_SYMBOL::OnCloseTimer(), DIALOG_SHIM::OnCloseWindow(), DIALOG_SYMBOL_PROPERTIES::OnEditLibrarySymbol(), DIALOG_SYMBOL_PROPERTIES::OnEditSymbol(), DIALOG_SYMBOL_PROPERTIES::OnExchangeSymbol(), HTML_MESSAGE_BOX::OnOKButtonClick(), DIALOG_SYMBOL_PROPERTIES::OnUpdateSymbol(), DIALOG_CHOOSE_FOOTPRINT::OnUseBrowser(), DIALOG_CHOOSE_SYMBOL::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 after all widgets have been initialized, and therefore their size fixed. If TransferDataToWindow() is used to initialize widgets, at the end of TransferDataToWindow, or better yet, at end of a wxInitDialogEvent handler.

Definition at line 148 of file dialog_shim.cpp.

149 {
150  // must be called from the constructor of derived classes,
151  // when all widgets are initialized, and therefore their size fixed
152 
153  // SetSizeHints fixes the minimal size of sizers in the dialog
154  // (SetSizeHints calls Fit(), so no need to call it)
155  GetSizer()->SetSizeHints( this );
156 }

Referenced by DIALOG_3D_VIEW_OPTIONS::DIALOG_3D_VIEW_OPTIONS(), DIALOG_ANNOTATE::DIALOG_ANNOTATE(), DIALOG_BOARD_REANNOTATE::DIALOG_BOARD_REANNOTATE(), DIALOG_BOARD_SETUP::DIALOG_BOARD_SETUP(), DIALOG_BOM::DIALOG_BOM(), DIALOG_CHANGE_SYMBOLS::DIALOG_CHANGE_SYMBOLS(), DIALOG_CLEANUP_TRACKS_AND_VIAS::DIALOG_CLEANUP_TRACKS_AND_VIAS(), DIALOG_COPPER_ZONE::DIALOG_COPPER_ZONE(), DIALOG_DIMENSION_PROPERTIES::DIALOG_DIMENSION_PROPERTIES(), DIALOG_DRC::DIALOG_DRC(), DIALOG_EDIT_COMPONENTS_LIBID::DIALOG_EDIT_COMPONENTS_LIBID(), DIALOG_EDIT_LINE_STYLE::DIALOG_EDIT_LINE_STYLE(), 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_CHECKER::DIALOG_FOOTPRINT_CHECKER(), DIALOG_FOOTPRINT_PROPERTIES::DIALOG_FOOTPRINT_PROPERTIES(), DIALOG_FOOTPRINT_PROPERTIES_FP_EDITOR::DIALOG_FOOTPRINT_PROPERTIES_FP_EDITOR(), DIALOG_FOOTPRINT_WIZARD_LIST::DIALOG_FOOTPRINT_WIZARD_LIST(), 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_GRID_SETTINGS::DIALOG_GRID_SETTINGS(), DIALOG_GROUP_PROPERTIES::DIALOG_GROUP_PROPERTIES(), DIALOG_IMAGE_EDITOR::DIALOG_IMAGE_EDITOR(), DIALOG_IMPORTED_LAYERS::DIALOG_IMPORTED_LAYERS(), DIALOG_INSPECTOR::DIALOG_INSPECTOR(), DIALOG_JUNCTION_PROPS::DIALOG_JUNCTION_PROPS(), DIALOG_LABEL_EDITOR::DIALOG_LABEL_EDITOR(), DIALOG_LIB_EDIT_DRAW_ITEM::DIALOG_LIB_EDIT_DRAW_ITEM(), DIALOG_LIB_EDIT_TEXT::DIALOG_LIB_EDIT_TEXT(), DIALOG_LIB_NEW_COMPONENT::DIALOG_LIB_NEW_COMPONENT(), DIALOG_LIB_SYMBOL_PROPERTIES::DIALOG_LIB_SYMBOL_PROPERTIES(), DIALOG_LIST_HOTKEYS::DIALOG_LIST_HOTKEYS(), DIALOG_LOCKED_ITEMS_QUERY::DIALOG_LOCKED_ITEMS_QUERY(), DIALOG_MOVE_EXACT::DIALOG_MOVE_EXACT(), DIALOG_NET_INSPECTOR::DIALOG_NET_INSPECTOR(), 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_PIN_PROPERTIES::DIALOG_PIN_PROPERTIES(), 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_REGULATOR_FORM::DIALOG_REGULATOR_FORM(), DIALOG_RULE_AREA_PROPERTIES::DIALOG_RULE_AREA_PROPERTIES(), DIALOG_SCHEMATIC_SETUP::DIALOG_SCHEMATIC_SETUP(), DIALOG_SHEET_PIN_PROPERTIES::DIALOG_SHEET_PIN_PROPERTIES(), DIALOG_SHEET_PROPERTIES::DIALOG_SHEET_PROPERTIES(), DIALOG_SWAP_LAYERS::DIALOG_SWAP_LAYERS(), DIALOG_SYMBOL_PROPERTIES::DIALOG_SYMBOL_PROPERTIES(), 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_UNUSED_PAD_LAYERS::DIALOG_UNUSED_PAD_LAYERS(), DIALOG_UPDATE_FROM_PCB::DIALOG_UPDATE_FROM_PCB(), DIALOG_UPDATE_PCB::DIALOG_UPDATE_PCB(), DIALOG_UPDATE_SYMBOL_FIELDS::DIALOG_UPDATE_SYMBOL_FIELDS(), DLG_SELECT_3DMODEL::DLG_SELECT_3DMODEL(), DIALOG_CONSTRAINTS_REPORTER::FinishInitialization(), PAGED_DIALOG::finishInitialization(), DIALOG_EDIT_ONE_FIELD::init(), DIALOG_EDIT_LIBRARY_TABLES::InstallPanel(), NETLIST_DIALOG::NETLIST_DIALOG(), DIALOG_GRAPHIC_ITEM_PROPERTIES::OnInitDlg(), DIALOG_SHEET_PROPERTIES::OnInitDlg(), DIALOG_SYMBOL_PROPERTIES::OnInitDlg(), onInitDlg(), DIALOG_SIM_SETTINGS::onInitDlg(), DIALOG_SIGNAL_LIST::TransferDataToWindow(), DIALOG_BOARD_STATISTICS::TransferDataToWindow(), and DIALOG_COLOR_PICKER::TransferDataToWindow().

◆ generatePowerSource()

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

Generate 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 658 of file dialog_spice_model.cpp.

659 {
660  wxString acdc, trans;
661  wxWindow* page = m_powerNotebook->GetCurrentPage();
662  bool useTrans = true; // shall we use the transient command part?
663 
664  // Variables for generic processing
665  bool genericProcessing = false;
666  unsigned int genericReqParamsCount = 0;
667  std::vector<wxTextCtrl*> genericControls;
668 
670  // If SPICE_VALUE can be properly constructed, then it is a valid value
671  try
672  {
673  if( !empty( m_genDc ) )
674  acdc += wxString::Format( "dc %s ", SPICE_VALUE( m_genDc->GetValue() ).ToSpiceString() );
675  }
676  catch( ... )
677  {
678  DisplayError( NULL, wxT( "Invalid DC value" ) );
679  return false;
680  }
681 
682  try
683  {
684  if( !empty( m_genAcMag ) )
685  {
686  acdc += wxString::Format( "ac %s ", SPICE_VALUE( m_genAcMag->GetValue() ).ToSpiceString() );
687 
688  if( !empty( m_genAcPhase ) )
689  acdc += wxString::Format( "%s ", SPICE_VALUE( m_genAcPhase->GetValue() ).ToSpiceString() );
690  }
691  }
692  catch( ... )
693  {
694  DisplayError( NULL, wxT( "Invalid AC magnitude or phase" ) );
695  return false;
696  }
697 
699  if( page == m_pwrPulse )
700  {
701  if( !m_pwrPulse->Validate() )
702  return false;
703 
704  genericProcessing = true;
705  trans += "pulse(";
706  genericReqParamsCount = 2;
707  genericControls = { m_pulseInit, m_pulseNominal, m_pulseDelay,
709  }
710  else if( page == m_pwrSin )
711  {
712  if( !m_pwrSin->Validate() )
713  return false;
714 
715  genericProcessing = true;
716  trans += "sin(";
717  genericReqParamsCount = 2;
719  }
720  else if( page == m_pwrExp )
721  {
722  if( !m_pwrExp->Validate() )
723  return false;
724 
725  genericProcessing = true;
726  trans += "exp(";
727  genericReqParamsCount = 2;
728  genericControls = { m_expInit, m_expPulsed,
730  }
731  else if( page == m_pwrPwl )
732  {
733  if( m_pwlValList->GetItemCount() > 0 )
734  {
735  trans += "pwl(";
736 
737  for( int i = 0; i < m_pwlValList->GetItemCount(); ++i )
738  {
739  trans += wxString::Format( "%s %s ", m_pwlValList->GetItemText( i, m_pwlTimeCol ),
740  m_pwlValList->GetItemText( i, m_pwlValueCol ) );
741  }
742 
743  trans.Trim();
744  trans += ")";
745  }
746  }
747  else if( page == m_pwrFm )
748  {
749  if( !m_pwrFm->Validate() )
750  return false;
751 
752  genericProcessing = true;
753  trans += "sffm(";
754  genericReqParamsCount = 4;
757  }
758  else if( page == m_pwrAm )
759  {
760  if( !m_pwrAm->Validate() )
761  return false;
762 
763  genericProcessing = true;
764  trans += "am(";
765  genericReqParamsCount = 5;
768  }
769  else if( page == m_pwrRandom )
770  {
771  if( !m_pwrRandom->Validate() )
772  return false;
773 
774  // first parameter must be retrieved from drop-down list selection
775  trans += "trrandom(";
776  trans.Append( wxString::Format( wxT( "%i " ), ( m_rnType->GetSelection() + 1 ) ) );
777 
778  genericProcessing = true;
779  genericReqParamsCount = 4;
780  genericControls = { m_rnTS, m_rnTD, m_rnParam1, m_rnParam2 };
781  }
782  if( genericProcessing )
783  {
784  auto first_empty = std::find_if( genericControls.begin(), genericControls.end(), empty );
785  auto first_not_empty = std::find_if( genericControls.begin(), genericControls.end(),
786  []( const wxTextCtrl* c ){ return !empty( c ); } );
787 
788  if( std::distance( first_not_empty, genericControls.end() ) == 0 )
789  {
790  // all empty
791  useTrans = false;
792  }
793  else if( std::distance( genericControls.begin(), first_empty ) < (int)genericReqParamsCount )
794  {
795  DisplayError( nullptr,
796  wxString::Format( wxT( "You need to specify at least the "
797  "first %d parameters for the transient source" ),
798  genericReqParamsCount ) );
799 
800  return false;
801  }
802  else if( std::find_if_not( first_empty, genericControls.end(),
803  empty ) != genericControls.end() )
804  {
805  DisplayError( nullptr, wxT( "You cannot leave interleaved empty fields "
806  "when defining a transient source" ) );
807  return false;
808  }
809  else
810  {
811  std::for_each( genericControls.begin(), first_empty,
812  [&trans] ( wxTextCtrl* ctrl ) {
813  trans += wxString::Format( "%s ", ctrl->GetValue() );
814  } );
815  }
816 
817  trans.Trim();
818  trans += ")";
819  }
820 
821  aTarget = acdc;
822 
823  if( useTrans )
824  aTarget += trans;
825 
826  // Remove whitespaces from left and right side
827  aTarget.Trim( false );
828  aTarget.Trim( true );
829 
830  return true;
831 }
void DisplayError(wxWindow *aParent, const wxString &aText, int aDisplayTime)
Display an error or warning message box with aMessage.
Definition: confirm.cpp:252
static bool empty(const wxTextCtrl *aCtrl)
#define NULL
< Helper class to handle Spice way of expressing values (e.g. 10.5 Meg) Helper class to recognize Spi...
Definition: spice_value.h:34
static float distance(const SFVEC2UI &a, const SFVEC2UI &b)
void Format(OUTPUTFORMATTER *out, int aNestLevel, int aCtl, const CPTREE &aTree)
Output a PTREE into s-expression format via an OUTPUTFORMATTER derivative.
Definition: ptree.cpp:200

References DisplayError(), distance(), empty(), Format(), DIALOG_SPICE_MODEL_BASE::m_amAmplitude, DIALOG_SPICE_MODEL_BASE::m_amCarrierFreq, DIALOG_SPICE_MODEL_BASE::m_amModulatingFreq, DIALOG_SPICE_MODEL_BASE::m_amOffset, DIALOG_SPICE_MODEL_BASE::m_amPhase, DIALOG_SPICE_MODEL_BASE::m_amSignalDelay, 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_fmAmplitude, DIALOG_SPICE_MODEL_BASE::m_fmFcarrier, DIALOG_SPICE_MODEL_BASE::m_fmFsignal, DIALOG_SPICE_MODEL_BASE::m_fmModIndex, DIALOG_SPICE_MODEL_BASE::m_fmOffset, DIALOG_SPICE_MODEL_BASE::m_fmPhaseC, DIALOG_SPICE_MODEL_BASE::m_fmPhaseS, 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_pwrAm, DIALOG_SPICE_MODEL_BASE::m_pwrExp, DIALOG_SPICE_MODEL_BASE::m_pwrFm, DIALOG_SPICE_MODEL_BASE::m_pwrPulse, DIALOG_SPICE_MODEL_BASE::m_pwrPwl, DIALOG_SPICE_MODEL_BASE::m_pwrRandom, DIALOG_SPICE_MODEL_BASE::m_pwrSin, DIALOG_SPICE_MODEL_BASE::m_rnParam1, DIALOG_SPICE_MODEL_BASE::m_rnParam2, DIALOG_SPICE_MODEL_BASE::m_rnTD, DIALOG_SPICE_MODEL_BASE::m_rnTS, DIALOG_SPICE_MODEL_BASE::m_rnType, 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 956 of file dialog_spice_model.cpp.

957 {
958  const wxString& spiceField = NETLIST_EXPORTER_PSPICE::GetSpiceFieldName( (SPICE_FIELD) aFieldType );
959 
960  auto fieldIt = std::find_if( m_libfields->begin(), m_libfields->end(),
961  [&]( const LIB_FIELD& f )
962  {
963  return f.GetName() == spiceField;
964  } );
965 
966  // Found one, so return it
967  if( fieldIt != m_libfields->end() )
968  return *fieldIt;
969 
970  // Create a new field with requested name
971  LIB_FIELD new_field( m_libfields->size() );
972  m_libfields->front().Copy( &new_field );
973  new_field.SetName( spiceField );
974 
975  m_libfields->push_back( new_field );
976  return m_libfields->back();
977 }
std::vector< LIB_FIELD > * m_libfields
Field object used in symbol libraries.
Definition: lib_field.h:59
static const wxString & GetSpiceFieldName(SPICE_FIELD aField)
Return a string used for a particular component field related to Spice simulation.

References NETLIST_EXPORTER_PSPICE::GetSpiceFieldName(), and m_libfields.

Referenced by TransferDataFromWindow().

◆ getSchField()

SCH_FIELD & DIALOG_SPICE_MODEL::getSchField ( int  aFieldType)
private

Return or create a field in the edited schematic fields vector.

Parameters
aFieldTypeis an SPICE_FIELD enum value.
Returns
Requested field.

Definition at line 938 of file dialog_spice_model.cpp.

939 {
940  const wxString& spiceField = NETLIST_EXPORTER_PSPICE::GetSpiceFieldName( (SPICE_FIELD) aFieldType );
941 
942  auto fieldIt = std::find_if( m_schfields->begin(), m_schfields->end(), [&]( const SCH_FIELD& f ) {
943  return f.GetName() == spiceField;
944  } );
945 
946  // Found one, so return it
947  if( fieldIt != m_schfields->end() )
948  return *fieldIt;
949 
950  // Create a new field with requested name
951  m_schfields->emplace_back( wxPoint(), m_schfields->size(), &m_component, spiceField );
952  return m_schfields->back();
953 }
Instances are attached to a symbol or sheet and provide a place for the component's value,...
Definition: sch_field.h:50
SCH_COMPONENT & m_component
Fields from the component properties dialog.
static const wxString & GetSpiceFieldName(SPICE_FIELD aField)
Return a string used for a particular component field related to Spice simulation.
std::vector< SCH_FIELD > * m_schfields

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

Referenced by TransferDataFromWindow().

◆ GetType()

HOLDER_TYPE KIWAY_HOLDER::GetType ( ) const
inlineinherited

Definition at line 49 of file kiway_holder.h.

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

References KIWAY_HOLDER::m_type.

Referenced by DIALOG_SHIM::DIALOG_SHIM().

◆ GetUserUnits()

◆ horizPixelsFromDU()

int DIALOG_SHIM::horizPixelsFromDU ( int  x) const
protectedinherited

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

See SetSizeInDU or wxDialog documentation for more information.

Definition at line 166 of file dialog_shim.cpp.

167 {
168  wxSize sz( x, 0 );
169  return ConvertDialogToPixels( sz ).x;
170 }

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

◆ Init()

void DIALOG_SPICE_MODEL::Init ( )
private

Initialize the internal settings.

Definition at line 130 of file dialog_spice_model.cpp.

131 {
132  m_pasValue->SetValidator( m_spiceValidator );
133 
134  m_modelType->SetValidator( m_notEmptyValidator );
135  m_modelType->Clear();
136 
137  // Create a list of handled models
138  for( const auto& model : modelTypes )
139  m_modelType->Append( model.description );
140 
141  m_modelName->SetValidator( m_notEmptyValidator );
142 
143  m_genDc->SetValidator( m_spiceEmptyValidator );
144  m_genAcMag->SetValidator( m_spiceEmptyValidator );
145  m_genAcPhase->SetValidator( m_spiceEmptyValidator );
146 
147  m_pulseInit->SetValidator( m_spiceEmptyValidator );
148  m_pulseNominal->SetValidator( m_spiceEmptyValidator );
149  m_pulseDelay->SetValidator( m_spiceEmptyValidator );
150  m_pulseRise->SetValidator( m_spiceEmptyValidator );
151  m_pulseFall->SetValidator( m_spiceEmptyValidator );
152  m_pulseWidth->SetValidator( m_spiceEmptyValidator );
153  m_pulsePeriod->SetValidator( m_spiceEmptyValidator );
154 
155  m_sinOffset->SetValidator( m_spiceEmptyValidator );
156  m_sinAmplitude->SetValidator( m_spiceEmptyValidator );
157  m_sinFreq->SetValidator( m_spiceEmptyValidator );
158  m_sinDelay->SetValidator( m_spiceEmptyValidator );
159  m_sinDampFactor->SetValidator( m_spiceEmptyValidator );
160 
161  m_expInit->SetValidator( m_spiceEmptyValidator );
162  m_expPulsed->SetValidator( m_spiceEmptyValidator );
163  m_expRiseDelay->SetValidator( m_spiceEmptyValidator );
164  m_expRiseConst->SetValidator( m_spiceEmptyValidator );
165  m_expFallDelay->SetValidator( m_spiceEmptyValidator );
166  m_expFallConst->SetValidator( m_spiceEmptyValidator );
167 
168  m_fmOffset->SetValidator( m_spiceEmptyValidator );
169  m_fmAmplitude->SetValidator( m_spiceEmptyValidator );
170  m_fmFcarrier->SetValidator( m_spiceEmptyValidator );
171  m_fmModIndex->SetValidator( m_spiceEmptyValidator );
172  m_fmFsignal->SetValidator( m_spiceEmptyValidator );
173  m_fmPhaseC->SetValidator( m_spiceEmptyValidator );
174  m_fmPhaseS->SetValidator( m_spiceEmptyValidator );
175 
176  m_amAmplitude->SetValidator( m_spiceEmptyValidator );
177  m_amOffset->SetValidator( m_spiceEmptyValidator );
178  m_amModulatingFreq->SetValidator( m_spiceEmptyValidator );
179  m_amCarrierFreq->SetValidator( m_spiceEmptyValidator );
180  m_amSignalDelay->SetValidator( m_spiceEmptyValidator );
181  m_amPhase->SetValidator( m_spiceEmptyValidator );
182 
183  m_rnTS->SetValidator( m_spiceEmptyValidator );
184  m_rnTD->SetValidator( m_spiceEmptyValidator );
185  m_rnParam1->SetValidator( m_spiceEmptyValidator );
186  m_rnParam2->SetValidator( m_spiceEmptyValidator );
187 
188  m_pwlTimeCol = m_pwlValList->AppendColumn( "Time [s]", wxLIST_FORMAT_LEFT, 100 );
189  m_pwlValueCol = m_pwlValList->AppendColumn( "Value [V/A]", wxLIST_FORMAT_LEFT, 100 );
190 
191  m_sdbSizerOK->SetDefault();
192 
193  m_staticTextF1->SetLabel( wxS( "f" ) );
194  m_staticTextP1->SetLabel( wxS( "p" ) );
195  m_staticTextN1->SetLabel( wxS( "n" ) );
196  m_staticTextU1->SetLabel( wxS( "u" ) );
197  m_staticTextM1->SetLabel( wxS( "m" ) );
198  m_staticTextK1->SetLabel( wxS( "k" ) );
199  m_staticTextMeg1->SetLabel( wxS( "meg" ) );
200  m_staticTextG1->SetLabel( wxS( "g" ) );
201  m_staticTextT1->SetLabel( wxS( "t" ) );
202 
203  m_staticTextF2->SetLabel( wxS( "femto" ) );
204  m_staticTextP2->SetLabel( wxS( "pico" ) );
205  m_staticTextN2->SetLabel( wxS( "nano" ) );
206  m_staticTextU2->SetLabel( wxS( "micro" ) );
207  m_staticTextM2->SetLabel( wxS( "milli" ) );
208  m_staticTextK2->SetLabel( wxS( "kilo" ) );
209  m_staticTextMeg2->SetLabel( wxS( "mega" ) );
210  m_staticTextG2->SetLabel( wxS( "giga" ) );
211  m_staticTextT2->SetLabel( wxS( "terra" ) );
212 
213  m_staticTextF3->SetLabel( wxS( "1e-15" ) );
214  m_staticTextP3->SetLabel( wxS( "1e-12" ) );
215  m_staticTextN3->SetLabel( wxS( "1e-9" ) );
216  m_staticTextU3->SetLabel( wxS( "1e-6" ) );
217  m_staticTextM3->SetLabel( wxS( "1e-3" ) );
218  m_staticTextK3->SetLabel( wxS( "1e3" ) );
219  m_staticTextMeg3->SetLabel( wxS( "1e6" ) );
220  m_staticTextG3->SetLabel( wxS( "1e9" ) );
221  m_staticTextT3->SetLabel( wxS( "1e12" ) );
222 
223  // Hide pages that aren't fully implemented yet
224  // wxPanel::Hide() isn't enough on some platforms
225  m_powerNotebook->RemovePage( m_powerNotebook->FindPage( m_pwrTransNoise ) );
226  m_powerNotebook->RemovePage( m_powerNotebook->FindPage( m_pwrExtData ) );
227 }
SPICE_VALIDATOR m_spiceValidator
wxTextValidator m_notEmptyValidator
SPICE_VALIDATOR m_spiceEmptyValidator
static const std::vector< SPICE_MODEL_INFO > modelTypes

References DIALOG_SPICE_MODEL_BASE::m_amAmplitude, DIALOG_SPICE_MODEL_BASE::m_amCarrierFreq, DIALOG_SPICE_MODEL_BASE::m_amModulatingFreq, DIALOG_SPICE_MODEL_BASE::m_amOffset, DIALOG_SPICE_MODEL_BASE::m_amPhase, DIALOG_SPICE_MODEL_BASE::m_amSignalDelay, 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_fmAmplitude, DIALOG_SPICE_MODEL_BASE::m_fmFcarrier, DIALOG_SPICE_MODEL_BASE::m_fmFsignal, DIALOG_SPICE_MODEL_BASE::m_fmModIndex, DIALOG_SPICE_MODEL_BASE::m_fmOffset, DIALOG_SPICE_MODEL_BASE::m_fmPhaseC, DIALOG_SPICE_MODEL_BASE::m_fmPhaseS, 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_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_pwrExtData, DIALOG_SPICE_MODEL_BASE::m_pwrTransNoise, DIALOG_SPICE_MODEL_BASE::m_rnParam1, DIALOG_SPICE_MODEL_BASE::m_rnParam2, DIALOG_SPICE_MODEL_BASE::m_rnTD, DIALOG_SPICE_MODEL_BASE::m_rnTS, 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, DIALOG_SPICE_MODEL_BASE::m_staticTextF1, DIALOG_SPICE_MODEL_BASE::m_staticTextF2, DIALOG_SPICE_MODEL_BASE::m_staticTextF3, DIALOG_SPICE_MODEL_BASE::m_staticTextG1, DIALOG_SPICE_MODEL_BASE::m_staticTextG2, DIALOG_SPICE_MODEL_BASE::m_staticTextG3, DIALOG_SPICE_MODEL_BASE::m_staticTextK1, DIALOG_SPICE_MODEL_BASE::m_staticTextK2, DIALOG_SPICE_MODEL_BASE::m_staticTextK3, DIALOG_SPICE_MODEL_BASE::m_staticTextM1, DIALOG_SPICE_MODEL_BASE::m_staticTextM2, DIALOG_SPICE_MODEL_BASE::m_staticTextM3, DIALOG_SPICE_MODEL_BASE::m_staticTextMeg1, DIALOG_SPICE_MODEL_BASE::m_staticTextMeg2, DIALOG_SPICE_MODEL_BASE::m_staticTextMeg3, DIALOG_SPICE_MODEL_BASE::m_staticTextN1, DIALOG_SPICE_MODEL_BASE::m_staticTextN2, DIALOG_SPICE_MODEL_BASE::m_staticTextN3, DIALOG_SPICE_MODEL_BASE::m_staticTextP1, DIALOG_SPICE_MODEL_BASE::m_staticTextP2, DIALOG_SPICE_MODEL_BASE::m_staticTextP3, DIALOG_SPICE_MODEL_BASE::m_staticTextT1, DIALOG_SPICE_MODEL_BASE::m_staticTextT2, DIALOG_SPICE_MODEL_BASE::m_staticTextT3, DIALOG_SPICE_MODEL_BASE::m_staticTextU1, DIALOG_SPICE_MODEL_BASE::m_staticTextU2, DIALOG_SPICE_MODEL_BASE::m_staticTextU3, and modelTypes.

Referenced by DIALOG_SPICE_MODEL().

◆ IsCtrl()

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

Definition at line 125 of file dialog_shim.h.

126  {
127  return e.GetKeyCode() == aChar && e.ControlDown() && !e.AltDown() &&
128  !e.ShiftDown() && !e.MetaDown();
129  }

Referenced by DIALOG_TEXT_PROPERTIES::OnCharHook().

◆ IsQuasiModal()

◆ IsShiftCtrl()

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

Definition at line 131 of file dialog_shim.h.

132  {
133  return e.GetKeyCode() == aChar && e.ControlDown() && !e.AltDown() &&
134  e.ShiftDown() && !e.MetaDown();
135  }

Referenced by DIALOG_TEXT_PROPERTIES::OnCharHook().

◆ Kiway()

KIWAY& KIWAY_HOLDER::Kiway ( ) const
inlineinherited

Return 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:78

References KIWAY_HOLDER::m_kiway.

Referenced by PROJECT_TREE_ITEM::Activate(), FOOTPRINT_VIEWER_FRAME::AddFootprintToPCB(), PCB_BASE_EDIT_FRAME::AddLibrary(), SYMBOL_EDITOR_CONTROL::AddSymbolToSchematic(), CVPCB_MAINFRAME::BuildLibrariesListBox(), SYMBOL_EDIT_FRAME::canCloseWindow(), SCH_EDIT_FRAME::canCloseWindow(), KICAD_MANAGER_FRAME::CloseProject(), COMMON_CONTROL::ConfigurePaths(), DIALOG_CHOOSE_FOOTPRINT::ConstructRightPanel(), DIALOG_CHOOSE_SYMBOL::ConstructRightPanel(), PCB_BASE_FRAME::CreateAndShow3D_Frame(), FOOTPRINT_EDITOR_CONTROL::CreateFootprint(), 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(), BOARD_EDITOR_CONTROL::EditFpInFpEditor(), SCH_EDITOR_CONTROL::EditWithSymbolEditor(), BACK_ANNOTATE::FetchNetlistFromPCB(), DISPLAY_FOOTPRINTS_FRAME::GetFootprint(), KICAD_MANAGER_FRAME::ImportNonKiCadProject(), KICAD_MANAGER_FRAME::language_change(), KIWAY_PLAYER::language_change(), DIALOG_CHANGE_SYMBOLS::launchMatchIdSymbolBrowser(), DIALOG_CHANGE_SYMBOLS::launchNewIdSymbolBrowser(), LIB_TREE_MODEL_ADAPTER::LIB_TREE_MODEL_ADAPTER(), CVPCB_MAINFRAME::LoadFootprintFiles(), TEXT_BUTTON_SYMBOL_CHOOSER::OnButtonClick(), TEXT_BUTTON_FP_CHOOSER::OnButtonClick(), PL_EDITOR_FRAME::OnExit(), SCH_EDIT_FRAME::OnExit(), FOOTPRINT_EDIT_FRAME::OnExitKiCad(), FOOTPRINT_VIEWER_FRAME::OnExitKiCad(), SYMBOL_EDIT_FRAME::OnExitKiCad(), SAVE_AS_TRAVERSER::OnFile(), DIALOG_CHOOSE_SYMBOL::OnInitDialog(), SCH_EDIT_FRAME::OnOpenCvpcb(), SCH_EDIT_FRAME::OnOpenPcbnew(), EDA_BASE_FRAME::OnPreferences(), DIALOG_SYMBOL_REMAP::OnRemapSymbols(), DIALOG_EDIT_ONE_FIELD::OnTextValueSelectButtonClick(), KICAD_MANAGER_FRAME::OnUnarchiveFiles(), FOOTPRINT_EDIT_FRAME::OnUpdateLoadFootprintFromBoard(), SCH_EDIT_FRAME::OnUpdatePCB(), FOOTPRINT_EDIT_FRAME::OnUpdateSaveFootprintToBoard(), PANEL_PCBNEW_COLOR_SETTINGS::PANEL_PCBNEW_COLOR_SETTINGS(), SCH_BASE_FRAME::PickSymbolFromLibBrowser(), KIWAY_HOLDER::Prj(), SCH_EDIT_TOOL::Properties(), BACK_ANNOTATE::PushNewLinksToPCB(), CVPCB_MAINFRAME::ReadNetListAndFpFiles(), FOOTPRINT_VIEWER_FRAME::ReCreateFootprintList(), SCH_EDITOR_CONTROL::rescueProject(), EE_INSPECTION_TOOL::RunSimulation(), SYMBOL_EDIT_FRAME::Save(), CVPCB_MAINFRAME::SaveFootprintAssociation(), FOOTPRINT_EDIT_FRAME::SaveFootprintToBoard(), LIB_TREE_MODEL_ADAPTER::SavePinnedItems(), 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(), SCH_EDIT_FRAME::SetCrossProbeConnection(), SYMBOL_EDIT_FRAME::SetCurPart(), CVPCB_CONTROL::ShowFootprintViewer(), COMMON_CONTROL::ShowLibraryTable(), COMMON_CONTROL::ShowPlayer(), KICAD_MANAGER_CONTROL::ShowPlayer(), SCH_EDIT_FRAME::ShowSchematicSetupDialog(), SIM_PLOT_FRAME::SIM_PLOT_FRAME(), BOARD_EDITOR_CONTROL::UpdateSchematicFromPCB(), and DIALOG_EXCHANGE_FOOTPRINTS::ViewAndSelectFootprint().

◆ loadLibrary()

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

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

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

Definition at line 834 of file dialog_spice_model.cpp.

835 {
836  wxString curModel = m_modelName->GetValue();
837  m_models.clear();
838  wxFileName filePath( aFilePath );
839  bool in_subckt = false; // flag indicating that the parser is inside a .subckt section
840 
841  // Look for the file in the project path
842  if( !filePath.Exists() )
843  {
844  filePath.SetPath( Prj().GetProjectPath() + filePath.GetPath() );
845 
846  if( !filePath.Exists() )
847  return;
848  }
849 
850  // Display the library contents
851  wxWindowUpdateLocker updateLock( this );
852 
853  m_libraryContents->SetReadOnly( false );
854  m_libraryContents->Clear();
855  wxTextFile file;
856  file.Open( filePath.GetFullPath() );
857  int line_nr = 0;
858 
859  // Stores the libray content. It will be displayed after reading the full library
860  wxString fullText;
861 
862  // Process the file, looking for components
863  while( !file.Eof() )
864  {
865  const wxString& line = line_nr == 0 ? file.GetFirstLine() : file.GetNextLine();
866  fullText << line << '\n';
867 
868  wxStringTokenizer tokenizer( line );
869 
870  while( tokenizer.HasMoreTokens() )
871  {
872  wxString token = tokenizer.GetNextToken().Lower();
873 
874  // some subckts contain .model clauses inside,
875  // skip them as they are a part of the subckt, not another model
876  if( token == ".model" && !in_subckt )
877  {
878  wxString name = tokenizer.GetNextToken();
879 
880  if( name.IsEmpty() )
881  break;
882 
883  token = tokenizer.GetNextToken();
884  SPICE_PRIMITIVE type = MODEL::parseModelType( token );
885 
886  if( type != SP_UNKNOWN )
887  m_models.emplace( name, MODEL( line_nr, type ) );
888  }
889 
890  else if( token == ".subckt" )
891  {
892  wxASSERT( !in_subckt );
893  in_subckt = true;
894 
895  wxString name = tokenizer.GetNextToken();
896 
897  if( name.IsEmpty() )
898  break;
899 
900  m_models.emplace( name, MODEL( line_nr, SP_SUBCKT ) );
901  }
902 
903  else if( token == ".ends" )
904  {
905  wxASSERT( in_subckt );
906  in_subckt = false;
907  }
908  }
909 
910  ++line_nr;
911  }
912 
913  // display the full library content:
914  m_libraryContents->AppendText( fullText );
915  m_libraryContents->SetReadOnly( true );
916 
917  wxArrayString modelsList;
918 
919  // Refresh the model name combobox values
920  m_modelName->Clear();
921 
922  for( const auto& model : m_models )
923  {
924  m_modelName->Append( model.first );
925  modelsList.Add( model.first );
926  }
927 
928  m_modelName->AutoComplete( modelsList );
929 
930  // Restore the previous value or if there is none - pick the first one from the loaded library
931  if( !curModel.IsEmpty() )
932  m_modelName->SetValue( curModel );
933  else if( m_modelName->GetCount() > 0 )
934  m_modelName->SetSelection( 0 );
935 }
static SPICE_PRIMITIVE parseModelType(const wxString &aValue)
wxStyledTextCtrl * m_libraryContents
PROJECT & Prj() const
Return a reference to the PROJECT associated with this KIWAY.
const char * name
Definition: DXF_plotter.cpp:59
std::map< wxString, MODEL > m_models
Column identifiers for PWL power source value list.

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

Referenced by onSelectLibrary(), and TransferDataToWindow().

◆ OnCharHook()

void DIALOG_SHIM::OnCharHook ( wxKeyEvent &  aEvt)
protectedvirtualinherited

Reimplemented in DIALOG_CHOOSE_SYMBOL, HK_PROMPT_DIALOG, DIALOG_TEXT_PROPERTIES, and HTML_MESSAGE_BOX.

Definition at line 536 of file dialog_shim.cpp.

537 {
538  if( aEvt.GetKeyCode() == 'U' && aEvt.GetModifiers() == wxMOD_CONTROL )
539  {
540  if( m_parentFrame )
541  {
543  return;
544  }
545  }
546  // shift-return (Mac default) or Ctrl-Return (GTK) for OK
547  else if( aEvt.GetKeyCode() == WXK_RETURN && ( aEvt.ShiftDown() || aEvt.ControlDown() ) )
548  {
549  wxPostEvent( this, wxCommandEvent( wxEVT_COMMAND_BUTTON_CLICKED, wxID_OK ) );
550  return;
551  }
552  else if( aEvt.GetKeyCode() == WXK_TAB && !aEvt.ControlDown() )
553  {
554  wxWindow* currentWindow = wxWindow::FindFocus();
555  int currentIdx = -1;
556  int delta = aEvt.ShiftDown() ? -1 : 1;
557 
558  auto advance = [&]( int& idx )
559  {
560  // Wrap-around modulus
561  int size = m_tabOrder.size();
562  idx = ( ( idx + delta ) % size + size ) % size;
563  };
564 
565  for( size_t i = 0; i < m_tabOrder.size(); ++i )
566  {
567  if( m_tabOrder[i] == currentWindow )
568  {
569  currentIdx = (int) i;
570  break;
571  }
572  }
573 
574  if( currentIdx >= 0 )
575  {
576  advance( currentIdx );
577 
578  //todo: We don't currently have non-textentry dialog boxes but this will break if
579  // we add them.
580 #ifdef __APPLE__
581  while( dynamic_cast<wxTextEntry*>( m_tabOrder[ currentIdx ] ) == nullptr )
582  advance( currentIdx );
583 #endif
584 
585  m_tabOrder[ currentIdx ]->SetFocus();
586  return;
587  }
588  }
589 
590  aEvt.Skip();
591 }
std::vector< wxWindow * > m_tabOrder
Definition: dialog_shim.h:219
EDA_BASE_FRAME * m_parentFrame
Definition: dialog_shim.h:217
virtual void ToggleUserUnits()

References DIALOG_SHIM::m_parentFrame, DIALOG_SHIM::m_tabOrder, and EDA_BASE_FRAME::ToggleUserUnits().

◆ onInitDlg()

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

Reimplemented from DIALOG_SPICE_MODEL_BASE.

Definition at line 106 of file dialog_spice_model.h.

107  {
108  // Call the default wxDialog handler of a wxInitDialogEvent
110 
111  // Now all widgets have the size fixed, call FinishDialogSettings
113  }
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 1034 of file dialog_spice_model.cpp.

1035 {
1036  // autoselect the model type
1037  auto it = m_models.find( m_modelName->GetValue() );
1038 
1039  if( it != m_models.end() )
1040  {
1041  m_modelType->SetSelection( getModelTypeIdx( it->second.model ) );
1042 
1043  // scroll to the bottom, so the model definition is shown in the first line
1044  m_libraryContents->ShowPosition(
1045  m_libraryContents->XYToPosition( 0, m_libraryContents->GetNumberOfLines() ) );
1046  m_libraryContents->ShowPosition( m_libraryContents->XYToPosition( 0, it->second.line ) );
1047  }
1048  else
1049  {
1050  m_libraryContents->ShowPosition( 0 );
1051  }
1052 }
static int getModelTypeIdx(char aPrimitive)
wxStyledTextCtrl * m_libraryContents
std::map< wxString, MODEL > m_models
Column identifiers for PWL power source value list.

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 352 of file dialog_shim.cpp.

353 {
354  if( m_firstPaintEvent )
355  {
357 
358  selectAllInTextCtrls( GetChildren() );
359 
362  else
363  KIPLATFORM::UI::ForceFocus( this ); // Focus the dialog itself
364 
365  m_firstPaintEvent = false;
366  }
367 
368  event.Skip();
369 }
wxWindow * m_initialFocusTarget
Definition: dialog_shim.h:210
bool m_firstPaintEvent
Definition: dialog_shim.h:209
void ForceFocus(wxWindow *aWindow)
Pass the current focus to the window.
Definition: gtk/ui.cpp:44
void FixupCancelButtonCmdKeyCollision(wxWindow *aWindow)
Definition: gtk/ui.cpp:68
static void selectAllInTextCtrls(wxWindowList &children)

References KIPLATFORM::UI::FixupCancelButtonCmdKeyCollision(), KIPLATFORM::UI::ForceFocus(), 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 1063 of file dialog_spice_model.cpp.

1064 {
1065  addPwlValue( m_pwlTime->GetValue(), m_pwlValue->GetValue() );
1066 }
bool addPwlValue(const wxString &aTime, const wxString &aValue)
Add 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 1069 of file dialog_spice_model.cpp.

1070 {
1071  long idx = m_pwlValList->GetNextItem( -1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED );
1072  m_pwlValList->DeleteItem( idx );
1073 }

References DIALOG_SPICE_MODEL_BASE::m_pwlValList.

◆ onRandomSourceType()

void DIALOG_SPICE_MODEL::onRandomSourceType ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_SPICE_MODEL_BASE.

Definition at line 1076 of file dialog_spice_model.cpp.

1077 {
1078  switch( m_rnType->GetSelection() )
1079  {
1080  case TRRANDOM_UNIFORM:
1081  // uniform white noise
1082  m_rnParam1Text->SetLabel( _( "Range:" ) );
1083  m_rnParam2Text->SetLabel( _( "Offset:" ) );
1084  break;
1085 
1086  case TRRANDOM_GAUSSIAN:
1087  // Gaussian
1088  m_rnParam1Text->SetLabel( _( "Standard deviation:" ) );
1089  m_rnParam2Text->SetLabel( _( "Mean:" ) );
1090  break;
1091 
1092  case TRRANDOM_EXPONENTIAL:
1093  // exponential
1094  m_rnParam1Text->SetLabel( _( "Mean:" ) );
1095  m_rnParam2Text->SetLabel( _( "Offset:" ) );
1096  break;
1097 
1098  case TRRANDOM_POISSON:
1099  // Poisson
1100  m_rnParam1Text->SetLabel( _( "Lambda:" ) );
1101  m_rnParam2Text->SetLabel( _( "Offset:" ) );
1102  break;
1103 
1104  default:
1105  wxFAIL_MSG( _( "type of random generator for source is invalid" ) );
1106  break;
1107  }
1108 }
#define _(s)
Definition: 3d_actions.cpp:33

References _, DIALOG_SPICE_MODEL_BASE::m_rnParam1Text, DIALOG_SPICE_MODEL_BASE::m_rnParam2Text, DIALOG_SPICE_MODEL_BASE::m_rnType, TRRANDOM_EXPONENTIAL, TRRANDOM_GAUSSIAN, TRRANDOM_POISSON, and TRRANDOM_UNIFORM.

Referenced by parsePowerSource().

◆ onSelectLibrary()

void DIALOG_SPICE_MODEL::onSelectLibrary ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_SPICE_MODEL_BASE.

Definition at line 1007 of file dialog_spice_model.cpp.

1008 {
1009  wxString searchPath = wxFileName( m_modelLibrary->GetValue() ).GetPath();
1010 
1011  if( searchPath.IsEmpty() )
1012  searchPath = Prj().GetProjectPath();
1013 
1014  wxString wildcards = SpiceLibraryFileWildcard() + "|" + AllFilesWildcard();
1015  wxFileDialog openDlg( this, _( "Select library" ), searchPath, "", wildcards,
1016  wxFD_OPEN | wxFD_FILE_MUST_EXIST );
1017 
1018  if( openDlg.ShowModal() == wxID_CANCEL )
1019  return;
1020 
1021  wxFileName libPath( openDlg.GetPath() );
1022 
1023  // Try to convert the path to relative to project
1024  if( libPath.MakeRelativeTo( Prj().GetProjectPath() ) && !libPath.GetFullPath().StartsWith( ".." ) )
1025  m_modelLibrary->SetValue( libPath.GetFullPath() );
1026  else
1027  m_modelLibrary->SetValue( openDlg.GetPath() );
1028 
1029  loadLibrary( openDlg.GetPath() );
1030  m_modelName->Popup();
1031 }
virtual const wxString GetProjectPath() const
Return the full path of the project.
Definition: project.cpp:123
wxString AllFilesWildcard()
PROJECT & Prj() const
Return a reference to the PROJECT associated with this KIWAY.
void loadLibrary(const wxString &aFilePath)
Load a list of components (.model and .subckt) from a spice library file and add them to a combo box.
#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().

◆ onTypeSelected()

void DIALOG_SPICE_MODEL::onTypeSelected ( wxCommandEvent &  event)
overrideprivatevirtual

Edited component.

Reimplemented from DIALOG_SPICE_MODEL_BASE.

Definition at line 1055 of file dialog_spice_model.cpp.

1056 {
1057  int type = m_modelType->GetSelection();
1058  int primitive = type >= 0 ? modelTypes[type].type : SP_SUBCKT;
1059  showPinOrderNote( primitive );
1060 }
void showPinOrderNote(int aModelType)
Display a note info about pin order.
static const std::vector< SPICE_MODEL_INFO > modelTypes

References DIALOG_SPICE_MODEL_BASE::m_modelType, modelTypes, showPinOrderNote(), and SP_SUBCKT.

◆ 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 477 of file dialog_spice_model.cpp.

478 {
479  if( aModel.IsEmpty() )
480  return false;
481 
482  wxStringTokenizer tokenizer( aModel, " ()" );
483  wxString tkn = tokenizer.GetNextToken().Lower();
484 
485  while( tokenizer.HasMoreTokens() )
486  {
487  // Variables used for generic values processing (filling out wxTextCtrls in sequence)
488  bool genericProcessing = false;
489  unsigned int genericReqParamsCount = 0;
490  std::vector<wxTextCtrl*> genericControls;
491 
492  if( tkn == "dc" )
493  {
494  // There might be an optional "dc" or "trans" directive, skip it
495  if( tkn == "dc" || tkn == "trans" )
496  tkn = tokenizer.GetNextToken().Lower();
497 
498  // DC value
499  try
500  {
501  m_genDc->SetValue( SPICE_VALUE( tkn ).ToSpiceString() );
502  }
503  catch( ... )
504  {
505  return false;
506  }
507  }
508  else if( tkn == "ac" )
509  {
510  // AC magnitude
511  try
512  {
513  tkn = tokenizer.GetNextToken().Lower();
514  m_genAcMag->SetValue( SPICE_VALUE( tkn ).ToSpiceString() );
515  }
516  catch( ... )
517  {
518  return false;
519  }
520 
521  // AC phase (optional)
522  try
523  {
524  tkn = tokenizer.GetNextToken().Lower();
525  m_genAcPhase->SetValue( SPICE_VALUE( tkn ).ToSpiceString() );
526  }
527  catch( ... )
528  {
529  continue; // perhaps another directive
530  }
531  }
532  else if( tkn == "pulse" )
533  {
534  m_powerNotebook->SetSelection( m_powerNotebook->FindPage( m_pwrPulse ) );
535 
536  genericProcessing = true;
537  genericReqParamsCount = 2;
538  genericControls = { m_pulseInit, m_pulseNominal, m_pulseDelay,
540  }
541 
542 
543  else if( tkn == "sin" )
544  {
545  m_powerNotebook->SetSelection( m_powerNotebook->FindPage( m_pwrSin ) );
546 
547  genericProcessing = true;
548  genericReqParamsCount = 2;
550  }
551  else if( tkn == "exp" )
552  {
553  m_powerNotebook->SetSelection( m_powerNotebook->FindPage( m_pwrExp ) );
554 
555  genericProcessing = true;
556  genericReqParamsCount = 2;
557  genericControls = { m_expInit, m_expPulsed,
559  }
560  else if( tkn == "pwl" )
561  {
562  m_powerNotebook->SetSelection( m_powerNotebook->FindPage( m_pwrPwl ) );
563 
564  try
565  {
566  while( tokenizer.HasMoreTokens() )
567  {
568  tkn = tokenizer.GetNextToken();
569  SPICE_VALUE time( tkn );
570 
571  tkn = tokenizer.GetNextToken();
572  SPICE_VALUE value( tkn );
573 
574  addPwlValue( time.ToSpiceString(), value.ToSpiceString() );
575  }
576  }
577  catch( ... )
578  {
579  return false;
580  }
581  }
582  else if( tkn == "sffm" )
583  {
584  m_powerNotebook->SetSelection( m_powerNotebook->FindPage( m_pwrFm ) );
585 
586  genericProcessing = true;
587  genericReqParamsCount = 4;
590  }
591  else if( tkn == "am" )
592  {
593  m_powerNotebook->SetSelection( m_powerNotebook->FindPage( m_pwrAm ) );
594 
595  genericProcessing = true;
596  genericReqParamsCount = 5;
599  }
600  else if( tkn == "trrandom" )
601  {
602  m_powerNotebook->SetSelection( m_powerNotebook->FindPage( m_pwrRandom ) );
603 
604  // first token will configure drop-down list
605  if( !tokenizer.HasMoreTokens() )
606  return false;
607 
608  tkn = tokenizer.GetNextToken().Lower();
609  long type;
610  if( !tkn.ToLong( &type ) )
611  return false;
612 
613  m_rnType->SetSelection( type - 1 );
614  wxCommandEvent dummy;
616 
617  // remaining parameters can be handled in generic way
618  genericProcessing = true;
619  genericReqParamsCount = 4;
620  genericControls = { m_rnTS, m_rnTD, m_rnParam1, m_rnParam2 };
621  }
622  else
623  {
624  // Unhandled power source type
625  wxASSERT_MSG( false, "Unhandled power source type" );
626  return false;
627  }
628 
629  if( genericProcessing )
630  {
631  try
632  {
633  for( unsigned int i = 0; i < genericControls.size(); ++i )
634  {
635  // If there are no more tokens, let's check if we got at least required fields
636  if( !tokenizer.HasMoreTokens() )
637  return ( i >= genericReqParamsCount );
638 
639  tkn = tokenizer.GetNextToken().Lower();
640  genericControls[i]->SetValue( SPICE_VALUE( tkn ).ToSpiceString() );
641  }
642  }
643  catch( ... )
644  {
645  return false;
646  }
647  }
648 
649  // Get the next token now, so if any of the branches catches an exception, try to
650  // process it in another branch
651  tkn = tokenizer.GetNextToken().Lower();
652  }
653 
654  return true;
655 }
bool addPwlValue(const wxString &aTime, const wxString &aValue)
Add a value to the PWL values list.
static LIB_PART * dummy()
Used to draw a dummy shape when a LIB_PART is not found in library.
Definition: sch_symbol.cpp:69
void onRandomSourceType(wxCommandEvent &event) override
< Helper class to handle Spice way of expressing values (e.g. 10.5 Meg) Helper class to recognize Spi...
Definition: spice_value.h:34

References addPwlValue(), dummy(), DIALOG_SPICE_MODEL_BASE::m_amAmplitude, DIALOG_SPICE_MODEL_BASE::m_amCarrierFreq, DIALOG_SPICE_MODEL_BASE::m_amModulatingFreq, DIALOG_SPICE_MODEL_BASE::m_amOffset, DIALOG_SPICE_MODEL_BASE::m_amPhase, DIALOG_SPICE_MODEL_BASE::m_amSignalDelay, 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_fmAmplitude, DIALOG_SPICE_MODEL_BASE::m_fmFcarrier, DIALOG_SPICE_MODEL_BASE::m_fmFsignal, DIALOG_SPICE_MODEL_BASE::m_fmModIndex, DIALOG_SPICE_MODEL_BASE::m_fmOffset, DIALOG_SPICE_MODEL_BASE::m_fmPhaseC, DIALOG_SPICE_MODEL_BASE::m_fmPhaseS, 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_pwrAm, DIALOG_SPICE_MODEL_BASE::m_pwrExp, DIALOG_SPICE_MODEL_BASE::m_pwrFm, DIALOG_SPICE_MODEL_BASE::m_pwrPulse, DIALOG_SPICE_MODEL_BASE::m_pwrPwl, DIALOG_SPICE_MODEL_BASE::m_pwrRandom, DIALOG_SPICE_MODEL_BASE::m_pwrSin, DIALOG_SPICE_MODEL_BASE::m_rnParam1, DIALOG_SPICE_MODEL_BASE::m_rnParam2, DIALOG_SPICE_MODEL_BASE::m_rnTD, DIALOG_SPICE_MODEL_BASE::m_rnTS, DIALOG_SPICE_MODEL_BASE::m_rnType, 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, onRandomSourceType(), and SPICE_VALUE::ToSpiceString().

Referenced by TransferDataToWindow().

◆ Prj()

PROJECT & KIWAY_HOLDER::Prj ( ) const
inherited

Return 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
Return a reference to the KIWAY that this object has an opportunity to participate in.
Definition: kiway_holder.h:56
virtual PROJECT & Prj() const
Return the PROJECT associated with this KIWAY.
Definition: kiway.cpp:173

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

Referenced by PCB_BASE_EDIT_FRAME::AddLibrary(), SYMBOL_LIBRARY_MANAGER::addLibrary(), SYMBOL_EDIT_FRAME::addLibTableEntry(), SCH_EDIT_FRAME::AppendSchematic(), AskSaveBoardFileName(), DIALOG_SYMBOL_REMAP::backupProject(), CVPCB_MAINFRAME::buildEquivalenceList(), CVPCB_MAINFRAME::BuildLibrariesListBox(), DIALOG_FOOTPRINT_PROPERTIES_FP_EDITOR::Cfg3DPath(), DIALOG_FOOTPRINT_PROPERTIES::Cfg3DPath(), KICAD_MANAGER_FRAME::CloseProject(), DIALOG_GEN_FOOTPRINT_POSITION::CreateGerberFiles(), PCB_BASE_EDIT_FRAME::CreateNewLibrary(), DIALOG_PLOT_SCHEMATIC::createPlotFileName(), DIALOG_SYMBOL_REMAP::createProjectSymbolLibTable(), SCH_EDIT_FRAME::CreateScreens(), FOOTPRINT_EDIT_FRAME::DeleteFootprintFromLibrary(), DIALOG_ANNOTATE::DIALOG_ANNOTATE(), DIALOG_BOARD_REANNOTATE::DIALOG_BOARD_REANNOTATE(), DIALOG_BOARD_SETUP::DIALOG_BOARD_SETUP(), DIALOG_BOARD_STATISTICS::DIALOG_BOARD_STATISTICS(), DIALOG_CHANGE_SYMBOLS::DIALOG_CHANGE_SYMBOLS(), DIALOG_CHOOSE_FOOTPRINT::DIALOG_CHOOSE_FOOTPRINT(), DIALOG_CHOOSE_SYMBOL::DIALOG_CHOOSE_SYMBOL(), DIALOG_CONFIG_EQUFILES::DIALOG_CONFIG_EQUFILES(), DIALOG_EXCHANGE_FOOTPRINTS::DIALOG_EXCHANGE_FOOTPRINTS(), DIALOG_EXPORT_SVG::DIALOG_EXPORT_SVG(), DIALOG_FOOTPRINT_PROPERTIES::DIALOG_FOOTPRINT_PROPERTIES(), DIALOG_FOOTPRINT_PROPERTIES_FP_EDITOR::DIALOG_FOOTPRINT_PROPERTIES_FP_EDITOR(), DIALOG_GEN_FOOTPRINT_POSITION::DIALOG_GEN_FOOTPRINT_POSITION(), DIALOG_NETLIST::DIALOG_NETLIST(), DIALOG_PAGES_SETTINGS::DIALOG_PAGES_SETTINGS(), DIALOG_PLOT::DIALOG_PLOT(), DIALOG_PLOT_SCHEMATIC::DIALOG_PLOT_SCHEMATIC(), DIALOG_SCHEMATIC_SETUP::DIALOG_SCHEMATIC_SETUP(), DIALOG_SYMBOL_REMAP::DIALOG_SYMBOL_REMAP(), DIALOG_UPDATE_FROM_PCB::DIALOG_UPDATE_FROM_PCB(), DIALOG_UPDATE_PCB::DIALOG_UPDATE_PCB(), FOOTPRINT_PREVIEW_PANEL::DisplayFootprint(), SYMBOL_VIEWER_FRAME::DisplayLibInfos(), CVPCB_MAINFRAME::DisplayStatus(), PL_DRAW_PANEL_GAL::DisplayWorksheet(), PCB_EDIT_FRAME::doAutoSave(), SCH_EDIT_FRAME::doAutoSave(), PCB_BASE_EDIT_FRAME::doCloseWindow(), FOOTPRINT_EDIT_FRAME::doCloseWindow(), SCH_EDIT_FRAME::doCloseWindow(), FIELDS_GRID_TRICKS::doPopupSelection(), FIELDS_EDITOR_GRID_TRICKS::doPopupSelection(), KICAD_MANAGER_CONTROL::Execute(), PCB_EDIT_FRAME::Export_IDF3(), PCB_EDIT_FRAME::ExportFootprintsToLibrary(), BOARD_EDITOR_CONTROL::ExportNetlist(), DIALOG_EXPORT_SVG::ExportSVGFile(), SYMBOL_EDITOR_CONTROL::ExportSymbolAsSVG(), SYMBOL_EDITOR_CONTROL::ExportView(), PCB_EDIT_FRAME::ExportVRML_File(), BACK_ANNOTATE::FetchNetlistFromPCB(), PCB_EDIT_FRAME::Files_io_from_id(), PCB_EDIT_FRAME::GenD356File(), DIALOG_GENDRILL::GenDrillAndMapFiles(), FOOTPRINT_VIEWER_FRAME::getCurFootprintName(), SYMBOL_EDIT_FRAME::GetCurLib(), FOOTPRINT_VIEWER_FRAME::getCurNickname(), PCB_BASE_EDIT_FRAME::GetDesignRulesPath(), DISPLAY_FOOTPRINTS_FRAME::GetFootprint(), SCH_BASE_FRAME::GetLibPart(), DIALOG_SYMBOL_REMAP::getLibsNotInGlobalSymbolLibTable(), KICAD_MANAGER_FRAME::GetProjectFileName(), SYMBOL_VIEWER_FRAME::GetSelectedSymbol(), SCH_EDIT_FRAME::importFile(), SCH_EDITOR_CONTROL::ImportFPAssignments(), DIALOG_CONFIG_EQUFILES::Init(), FOOTPRINT_EDIT_FRAME::initLibraryTree(), SCH_EDIT_FRAME::KiwayMailIn(), SYMBOL_EDIT_FRAME::KiwayMailIn(), EDA_DRAW_FRAME::LibraryFileBrowser(), CVPCB_MAINFRAME::LoadFootprintFiles(), loadLibrary(), KICAD_MANAGER_FRAME::LoadProject(), SCH_EDIT_FRAME::LoadProject(), SCH_EDIT_FRAME::LoadProjectSettings(), PCB_EDIT_FRAME::LoadProjectSettings(), SIM_PLOT_FRAME::LoadSettings(), SCH_EDIT_FRAME::LoadSheetFromFile(), SYMBOL_EDIT_FRAME::LoadSymbolFromCurrentLib(), EDA_BASE_FRAME::LoadWindowState(), DIALOG_FOOTPRINT_PROPERTIES_FP_EDITOR::On3DModelCellChanged(), DIALOG_FOOTPRINT_PROPERTIES::On3DModelCellChanged(), FOOTPRINT_VIEWER_FRAME::OnActivate(), DIALOG_FOOTPRINT_PROPERTIES_FP_EDITOR::OnAdd3DModel(), DIALOG_FOOTPRINT_PROPERTIES::OnAdd3DModel(), DIALOG_BOARD_SETUP::OnAuxiliaryAction(), KICAD_MANAGER_FRAME::OnBrowseInFileExplorer(), TEXT_BUTTON_URL::OnButtonClick(), TEXT_BUTTON_FILE_BROWSER::OnButtonClick(), DIALOG_EDIT_COMPONENTS_LIBID::onClickOrphansButton(), DIALOG_GENDRILL::OnGenReportFile(), KICAD_MANAGER_FRAME::OnIdle(), SCH_EDIT_FRAME::OnImportProject(), DIALOG_CHOOSE_SYMBOL::OnInitDialog(), DIALOG_CONFIG_EQUFILES::OnOkClick(), SCH_EDIT_FRAME::OnOpenCvpcb(), KICAD_MANAGER_FRAME::OnOpenFileInTextEditor(), DIALOG_NETLIST::OnOpenNetlistClick(), SCH_EDIT_FRAME::OnOpenPcbnew(), DIALOG_EXPORT_SVG::OnOutputDirectoryBrowseClicked(), DIALOG_PLOT::OnOutputDirectoryBrowseClicked(), DIALOG_GEN_FOOTPRINT_POSITION::OnOutputDirectoryBrowseClicked(), DIALOG_PLOT_SCHEMATIC::OnOutputDirectoryBrowseClicked(), DIALOG_GENDRILL::OnOutputDirectoryBrowseClicked(), DIALOG_BOARD_SETUP::OnPageChange(), DIALOG_SYMBOL_REMAP::OnRemapSymbols(), DIALOG_BOM::OnRunGenerator(), FOOTPRINT_EDIT_FRAME::OnSaveFootprintAsPng(), DIALOG_ERC::OnSaveReport(), DIALOG_DRC::OnSaveReport(), DIALOG_LABEL_EDITOR::onScintillaCharAdded(), PROPERTIES_FRAME::onScintillaCharAdded(), DIALOG_SCH_EDIT_ONE_FIELD::onScintillaCharAdded(), onSelectLibrary(), SYMBOL_VIEWER_FRAME::OnSelectSymbol(), KICAD_MANAGER_FRAME::OnUnarchiveFiles(), SCH_EDIT_FRAME::OnUpdatePCB(), PCB_EDIT_FRAME::OpenProjectFiles(), SCH_EDIT_FRAME::OpenProjectFiles(), PANEL_PREV_3D::PANEL_PREV_3D(), SCH_EDITOR_CONTROL::Paste(), FOOTPRINT_EDITOR_CONTROL::PasteFootprint(), SCH_BASE_FRAME::PickSymbolFromLibTree(), DIALOG_PLOT::Plot(), DIALOG_PLOT_SCHEMATIC::Plot_1_Page_HPGL(), DIALOG_PLOT_SCHEMATIC::PlotOneSheetDXF(), DIALOG_CHOOSE_SYMBOL::PopulateFootprintSelector(), SCH_EDITOR_CONTROL::Print(), EDA_DRAW_FRAME::PrintDrawingSheet(), SCH_EDIT_FRAME::PrintPage(), KICAD_MANAGER_FRAME::PrintPrjInfo(), CVPCB_MAINFRAME::ReadNetListAndFpFiles(), PCB_EDIT_FRAME::RecreateCmpFileFromBoard(), FOOTPRINT_VIEWER_FRAME::ReCreateFootprintList(), SYMBOL_VIEWER_FRAME::ReCreateLibList(), FOOTPRINT_VIEWER_FRAME::ReCreateLibraryList(), SYMBOL_VIEWER_FRAME::ReCreateSymbolList(), EDA_3D_VIEWER::ReloadRequest(), DIALOG_SYMBOL_REMAP::remapSymbolToLibTable(), SYMBOL_EDIT_FRAME::replaceLibTableEntry(), SCH_EDITOR_CONTROL::RescueLegacyProject(), SCH_EDITOR_CONTROL::RescueSymbolLibTableProject(), FOOTPRINT_EDIT_FRAME::restoreLastFootprint(), FOOTPRINT_EDIT_FRAME::retainLastFootprint(), SCH_EDIT_FRAME::Save_File(), FOOTPRINT_EDITOR_CONTROL::SaveAs(), SCH_EDIT_FRAME::SaveEEFile(), FOOTPRINT_EDIT_FRAME::SaveFootprint(), FOOTPRINT_EDIT_FRAME::SaveFootprintAs(), FOOTPRINT_EDIT_FRAME::SaveFootprintInLibrary(), SYMBOL_EDIT_FRAME::saveLibrary(), SYMBOL_EDIT_FRAME::savePartAs(), PCB_EDIT_FRAME::SavePcbCopy(), PCB_EDIT_FRAME::SavePcbFile(), SCH_EDIT_FRAME::SaveProject(), PCB_EDIT_FRAME::SaveProjectSettings(), DIALOG_BOARD_STATISTICS::saveReportClicked(), SIM_PLOT_FRAME::SaveSettings(), EDA_BASE_FRAME::SaveSettings(), SCH_BASE_FRAME::saveSymbolLibTables(), FOOTPRINT_VIEWER_FRAME::SelectAndViewFootprint(), PCB_BASE_FRAME::SelectLibrary(), SYMBOL_EDIT_FRAME::SelectLibraryFromList(), PCB_BASE_EDIT_FRAME::selectLibTable(), SYMBOL_EDIT_FRAME::selectSymLibTable(), FOOTPRINT_VIEWER_FRAME::setCurFootprintName(), SYMBOL_EDIT_FRAME::SetCurLib(), FOOTPRINT_VIEWER_FRAME::setCurNickname(), SYMBOL_EDIT_FRAME::SetCurPart(), GERBVIEW_FRAME::SetPageSettings(), EE_INSPECTION_TOOL::ShowDatasheet(), DIALOG_CHOOSE_SYMBOL::ShowFootprintFor(), COMMON_CONTROL::ShowHelp(), SYMBOL_VIEWER_FRAME::ShowModal(), FOOTPRINT_VIEWER_FRAME::ShowModal(), SCH_EDIT_FRAME::ShowSchematicSetupDialog(), SIM_PLOT_FRAME::SIM_PLOT_FRAME(), SYMBOL_LIBRARY_MANAGER::symTable(), SYMBOL_TREE_SYNCHRONIZING_ADAPTER::Sync(), FOOTPRINT_EDIT_FRAME::SyncLibraryTree(), EDA_3D_VIEWER::takeScreenshot(), PANEL_SETUP_RULES::TransferDataFromWindow(), NETLIST_DIALOG::TransferDataFromWindow(), DIALOG_EDIT_COMPONENTS_LIBID::TransferDataFromWindow(), PANEL_SETUP_RULES::TransferDataToWindow(), DIALOG_FOOTPRINT_PROPERTIES_FP_EDITOR::TransferDataToWindow(), DIALOG_FOOTPRINT_PROPERTIES::TransferDataToWindow(), DIALOG_PAGES_SETTINGS::UpdatePageLayoutExample(), FOOTPRINT_VIEWER_FRAME::UpdateTitle(), FOOTPRINT_EDIT_FRAME::UpdateTitle(), SCH_EDIT_FRAME::UpdateTitle(), SCH_EDIT_FRAME::WriteNetListFile(), DIALOG_FOOTPRINT_PROPERTIES::~DIALOG_FOOTPRINT_PROPERTIES(), DIALOG_FOOTPRINT_PROPERTIES_FP_EDITOR::~DIALOG_FOOTPRINT_PROPERTIES_FP_EDITOR(), and SCH_EDIT_FRAME::~SCH_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 282 of file dialog_shim.cpp.

283 {
284  const char* hash_key;
285 
286  if( m_hash_key.size() )
287  {
288  // a special case like EDA_LIST_DIALOG, which has multiple uses.
289  hash_key = m_hash_key.c_str();
290  }
291  else
292  {
293  hash_key = typeid(*this).name();
294  }
295 
296  RECT_MAP::iterator it = class_map.find( hash_key );
297 
298  if( it == class_map.end() )
299  return;
300 
301  EDA_RECT rect = it->second;
302  rect.SetSize( 0, 0 );
303  class_map[ hash_key ] = rect;
304 }
std::string m_hash_key
Definition: dialog_shim.h:200
static RECT_MAP class_map
void SetSize(const wxSize &size)
Definition: eda_rect.h:139
Handle the component boundary box.
Definition: eda_rect.h:42

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

Referenced by DIALOG_LIB_SYMBOL_PROPERTIES::DIALOG_LIB_SYMBOL_PROPERTIES().

◆ 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 98 of file dialog_shim.h.

99  {
100  m_initialFocusTarget = aWindow;
101  }
wxWindow * m_initialFocusTarget
Definition: dialog_shim.h:210

References DIALOG_SHIM::m_initialFocusTarget.

Referenced by DIALOG_BOM::DIALOG_BOM(), DIALOG_CHOOSE_FOOTPRINT::DIALOG_CHOOSE_FOOTPRINT(), DIALOG_CHOOSE_SYMBOL::DIALOG_CHOOSE_SYMBOL(), DIALOG_CONFIGURE_PATHS::DIALOG_CONFIGURE_PATHS(), DIALOG_EDIT_LINE_STYLE::DIALOG_EDIT_LINE_STYLE(), DIALOG_FIELDS_EDITOR_GLOBAL::DIALOG_FIELDS_EDITOR_GLOBAL(), DIALOG_FIND::DIALOG_FIND(), DIALOG_FOOTPRINT_PROPERTIES::DIALOG_FOOTPRINT_PROPERTIES(), DIALOG_FOOTPRINT_PROPERTIES_FP_EDITOR::DIALOG_FOOTPRINT_PROPERTIES_FP_EDITOR(), DIALOG_FP_PLUGIN_OPTIONS::DIALOG_FP_PLUGIN_OPTIONS(), DIALOG_GRAPHIC_ITEM_PROPERTIES::DIALOG_GRAPHIC_ITEM_PROPERTIES(), DIALOG_GRID_SETTINGS::DIALOG_GRID_SETTINGS(), DIALOG_GROUP_PROPERTIES::DIALOG_GROUP_PROPERTIES(), DIALOG_IMPORT_GFX::DIALOG_IMPORT_GFX(), DIALOG_INSPECTION_REPORTER::DIALOG_INSPECTION_REPORTER(), DIALOG_JUNCTION_PROPS::DIALOG_JUNCTION_PROPS(), DIALOG_LABEL_EDITOR::DIALOG_LABEL_EDITOR(), DIALOG_LIB_EDIT_DRAW_ITEM::DIALOG_LIB_EDIT_DRAW_ITEM(), DIALOG_LIB_EDIT_TEXT::DIALOG_LIB_EDIT_TEXT(), DIALOG_PAD_PRIMITIVES_PROPERTIES::DIALOG_PAD_PRIMITIVES_PROPERTIES(), DIALOG_PAD_PROPERTIES::DIALOG_PAD_PROPERTIES(), DIALOG_PIN_PROPERTIES::DIALOG_PIN_PROPERTIES(), DIALOG_POSITION_RELATIVE::DIALOG_POSITION_RELATIVE(), DIALOG_SCH_FIND::DIALOG_SCH_FIND(), DIALOG_SHEET_PIN_PROPERTIES::DIALOG_SHEET_PIN_PROPERTIES(), DIALOG_TARGET_PROPERTIES::DIALOG_TARGET_PROPERTIES(), DIALOG_TEXT_PROPERTIES::DIALOG_TEXT_PROPERTIES(), DIALOG_TRACK_VIA_PROPERTIES::DIALOG_TRACK_VIA_PROPERTIES(), EDA_VIEW_SWITCHER::EDA_VIEW_SWITCHER(), HK_PROMPT_DIALOG::HK_PROMPT_DIALOG(), 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(), SYMBOL_EDIT_FRAME::savePartAs(), DIALOG_NON_COPPER_ZONES_EDITOR::TransferDataToWindow(), DIALOG_RULE_AREA_PROPERTIES::TransferDataToWindow(), DIALOG_COPPER_ZONE::TransferDataToWindow(), and WX_TEXT_ENTRY_DIALOG::WX_TEXT_ENTRY_DIALOG().

◆ SetKiway()

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

It is only used for debugging, since "this" is not a wxWindow*.

"this" is a KIWAY_HOLDER mix-in.

Parameters
aDestis the recipient of aKiway pointer.
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:78
const char * name
Definition: DXF_plotter.cpp:59

References KIWAY_HOLDER::m_kiway, and name.

Referenced by BM2CMP_FRAME::BM2CMP_FRAME(), PCB::IFACE::CreateWindow(), InvokePcbLibTableEditor(), InvokeSchEditSymbolLibTable(), PCB_CALCULATOR_FRAME::PCB_CALCULATOR_FRAME(), and SIM_PLOT_FRAME::SIM_PLOT_FRAME().

◆ SetPosition()

void DIALOG_SHIM::SetPosition ( const wxPoint &  aNewPosition)
inherited

Force the position of the dialog to a new position.

Parameters
aNewPositionis the new forced position

Definition at line 187 of file dialog_shim.cpp.

188 {
189  wxDialog::SetPosition( aNewPosition );
190 
191  // Now update the stored position:
192  const char* hash_key;
193 
194  if( m_hash_key.size() )
195  {
196  // a special case like EDA_LIST_DIALOG, which has multiple uses.
197  hash_key = m_hash_key.c_str();
198  }
199  else
200  {
201  hash_key = typeid(*this).name();
202  }
203 
204  RECT_MAP::iterator it = class_map.find( hash_key );
205 
206  if( it == class_map.end() )
207  return;
208 
209  EDA_RECT rect = it->second;
210  rect.SetOrigin( aNewPosition );
211 
212  class_map[ hash_key ] = rect;
213 }
void SetPosition(wxString aStr, const wxString &aDefaultMeasurementUnit, int *aX, int *aY, const wxString &aActualConversion)
std::string m_hash_key
Definition: dialog_shim.h:200
void SetOrigin(const wxPoint &pos)
Definition: eda_rect.h:126
static RECT_MAP class_map
Handle the component boundary box.
Definition: eda_rect.h:42

References class_map, DIALOG_SHIM::m_hash_key, EDA_RECT::SetOrigin(), and PCAD2KICAD::SetPosition().

Referenced by DIALOG_SCH_FIND::DIALOG_SCH_FIND(), and PCB_BASE_FRAME::SelectOneLayer().

◆ 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 159 of file dialog_shim.cpp.

160 {
161  wxSize sz( x, y );
162  SetSize( ConvertDialogToPixels( sz ) );
163 }

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 216 of file dialog_shim.cpp.

217 {
218  bool ret;
219  const char* hash_key;
220 
221  if( m_hash_key.size() )
222  {
223  // a special case like EDA_LIST_DIALOG, which has multiple uses.
224  hash_key = m_hash_key.c_str();
225  }
226  else
227  {
228  hash_key = typeid(*this).name();
229  }
230 
231  // Show or hide the window. If hiding, save current position and size.
232  // If showing, use previous position and size.
233  if( show )
234  {
235 #ifndef __WINDOWS__
236  wxDialog::Raise(); // Needed on OS X and some other window managers (i.e. Unity)
237 #endif
238  ret = wxDialog::Show( show );
239 
240  // classname is key, returns a zeroed out default EDA_RECT if none existed before.
241  EDA_RECT savedDialogRect = class_map[ hash_key ];
242 
243  if( savedDialogRect.GetSize().x != 0 && savedDialogRect.GetSize().y != 0 )
244  {
245  if( m_useCalculatedSize )
246  {
247  SetSize( savedDialogRect.GetPosition().x, savedDialogRect.GetPosition().y,
248  wxDialog::GetSize().x, wxDialog::GetSize().y, 0 );
249  }
250  else
251  {
252  SetSize( savedDialogRect.GetPosition().x, savedDialogRect.GetPosition().y,
253  std::max( wxDialog::GetSize().x, savedDialogRect.GetSize().x ),
254  std::max( wxDialog::GetSize().y, savedDialogRect.GetSize().y ),
255  0 );
256  }
257  }
258 
259  // Be sure that the dialog appears in a visible area
260  // (the dialog position might have been stored at the time when it was
261  // shown on another display)
262  if( wxDisplay::GetFromWindow( this ) == wxNOT_FOUND )
263  Centre();
264  }
265  else
266  {
267  // Save the dialog's position & size before hiding, using classname as key
268  class_map[ hash_key ] = EDA_RECT( wxDialog::GetPosition(), wxDialog::GetSize() );
269 
270 #ifdef __WXMAC__
271  if ( m_eventLoop )
272  m_eventLoop->Exit( GetReturnCode() ); // Needed for APP-MODAL dlgs on OSX
273 #endif
274 
275  ret = wxDialog::Show( show );
276  }
277 
278  return ret;
279 }
std::string m_hash_key
Definition: dialog_shim.h:200
static RECT_MAP class_map
const wxPoint GetPosition() const
Definition: eda_rect.h:107
Handle the component boundary box.
Definition: eda_rect.h:42
bool m_useCalculatedSize
Definition: dialog_shim.h:204
const wxSize GetSize() const
Definition: eda_rect.h:96

References class_map, EDA_RECT::GetPosition(), EDA_RECT::GetSize(), DIALOG_SHIM::m_hash_key, and DIALOG_SHIM::m_useCalculatedSize.

Referenced by FOOTPRINT_EDITOR_CONTROL::CheckFootprint(), DIALOG_SHIM::EndQuasiModal(), GROUP_TOOL::GroupProperties(), EE_INSPECTION_TOOL::NextMarker(), DRC_TOOL::NextMarker(), SCH_EDIT_FRAME::OnAnnotate(), DIALOG_DRC::OnDRCItemDClick(), DIALOG_ERC::OnERCItemDClick(), DIALOG_CLEANUP_GRAPHICS::OnLeftDClickItem(), DIALOG_CLEANUP_TRACKS_AND_VIAS::OnLeftDClickItem(), DIALOG_FOOTPRINT_CHECKER::OnLeftDClickItem(), GROUP_TOOL::PickNewMember(), POSITION_RELATIVE_TOOL::PositionRelative(), EE_INSPECTION_TOOL::PrevMarker(), DRC_TOOL::PrevMarker(), CVPCB_MAINFRAME::ReadNetListAndFpFiles(), EDA_VIEW_SWITCHER::Show(), DIALOG_PAD_PROPERTIES::Show(), DRC_TOOL::ShowDRCDialog(), EE_INSPECTION_TOOL::ShowERCDialog(), SCH_EDIT_FRAME::ShowFindReplaceDialog(), HTML_MESSAGE_BOX::ShowModeless(), DIALOG_SHIM::ShowQuasiModal(), DIALOG_POSITION_RELATIVE::UpdateAnchor(), and SCH_EDIT_FRAME::UpdateHierarchyNavigator().

◆ showPinOrderNote()

void DIALOG_SPICE_MODEL::showPinOrderNote ( int  aModelType)
private

Display a note info about pin order.

Definition at line 440 of file dialog_spice_model.cpp.

441 {
442  // Display a note info about pin order, according to aModelType
443  wxString msg;
444 
445  msg = _( "Symbol pin numbering don't always match the required SPICE pin order\n"
446  "Check the symbol and use \"Alternate node sequence\" to reorder the pins"
447  ", if necessary" );
448 
449  msg += '\n';
450 
451  switch( aModelType )
452  {
453  case SP_DIODE:
454  msg += _( "For a Diode, pin order is anode, cathode" );
455  break;
456 
457  case SP_BJT:
458  msg += _( "For a BJT, pin order is collector, base, emitter, substrate (optional)" );
459  break;
460 
461  case SP_MOSFET:
462  msg += _( "For a MOSFET, pin order is drain, gate, source" );
463  break;
464 
465  case SP_JFET:
466  msg += _( "For a JFET, pin order is drain, gate, source" );
467  break;
468 
469  default:
470  break;
471  }
472 
473  m_stInfoNote->SetLabel( msg );
474 }
#define _(s)
Definition: 3d_actions.cpp:33

References _, DIALOG_SPICE_MODEL_BASE::m_stInfoNote, SP_BJT, SP_DIODE, SP_JFET, and SP_MOSFET.

Referenced by onTypeSelected(), and TransferDataToWindow().

◆ ShowQuasiModal()

int DIALOG_SHIM::ShowQuasiModal ( )
inherited

Definition at line 395 of file dialog_shim.cpp.

396 {
397  // This is an exception safe way to zero a pointer before returning.
398  // Yes, even though DismissModal() clears this first normally, this is
399  // here in case there's an exception before the dialog is dismissed.
400  struct NULLER
401  {
402  void*& m_what;
403  NULLER( void*& aPtr ) : m_what( aPtr ) {}
404  ~NULLER() { m_what = 0; } // indeed, set it to NULL on destruction
405  } clear_this( (void*&) m_qmodal_loop );
406 
407  // release the mouse if it's currently captured as the window having it
408  // will be disabled when this dialog is shown -- but will still keep the
409  // capture making it impossible to do anything in the modal dialog itself
410  wxWindow* win = wxWindow::GetCapture();
411  if( win )
412  win->ReleaseMouse();
413 
414  // Get the optimal parent
415  wxWindow* parent = GetParentForModalDialog( GetParent(), GetWindowStyle() );
416 
417  wxASSERT_MSG( !m_qmodal_parent_disabler,
418  wxT( "Caller using ShowQuasiModal() twice on same window?" ) );
419 
420  // quasi-modal: disable only my "optimal" parent
422 
423  // Apple in its infinite wisdom will raise a disabled window before even passing
424  // us the event, so we have no way to stop it. Instead, we must set an order on
425  // the windows so that the quasi-modal will be pushed in front of the disabled
426  // window when it is raised.
428 
429  Show( true );
430 
431  m_qmodal_showing = true;
432 
433  WX_EVENT_LOOP event_loop;
434 
435  m_qmodal_loop = &event_loop;
436 
437  event_loop.Run();
438 
439  m_qmodal_showing = false;
440 
441  return GetReturnCode();
442 }
bool m_qmodal_showing
Definition: dialog_shim.h:214
#define WX_EVENT_LOOP
Definition: kiway_player.h:43
WX_EVENT_LOOP * m_qmodal_loop
Definition: dialog_shim.h:212
bool Show(bool show) override
WDO_ENABLE_DISABLE * m_qmodal_parent_disabler
Definition: dialog_shim.h:215
Toggle a window's "enable" status to disabled, then enabled on destruction.
Definition: dialog_shim.cpp:42
void ReparentQuasiModal(wxNonOwnedWindow *aWindow)
Move a window's parent to be the top-level window and force the window to be on top.
Definition: gtk/ui.cpp:62

References DIALOG_SHIM::m_qmodal_loop, DIALOG_SHIM::m_qmodal_parent_disabler, DIALOG_SHIM::m_qmodal_showing, KIPLATFORM::UI::ReparentQuasiModal(), DIALOG_SHIM::Show(), and WX_EVENT_LOOP.

Referenced by SCH_EDIT_TOOL::ChangeSymbols(), S3D::Configure3DPaths(), COMMON_CONTROL::ConfigurePaths(), MICROWAVE_TOOL::createFootprint(), MICROWAVE_TOOL::createMicrowaveInductor(), SCH_DRAWING_TOOLS::createNewText(), SYMBOL_EDITOR_EDIT_TOOL::editFieldProperties(), SCH_EDIT_TOOL::editFieldText(), SCH_EDITOR_CONTROL::EditSymbolFields(), SYMBOL_EDITOR_EDIT_TOOL::editSymbolProperties(), GLOBAL_EDIT_TOOL::EditTracksAndVias(), GLOBAL_EDIT_TOOL::ExchangeFootprints(), InvokeCopperZonesEditor(), InvokeDialogCreateBOM(), InvokeDialogEditComponentsLibId(), InvokeDialogRescueEach(), InvokeNonCopperZonesEditor(), SYMBOL_VIEWER_FRAME::OnSelectSymbol(), SCH_EDIT_FRAME::OpenProjectFiles(), SCH_EDIT_TOOL::Properties(), EDIT_TOOL::Properties(), SCH_EDITOR_CONTROL::RemapSymbols(), S3D::Select3DModel(), PCB_BASE_FRAME::SelectFootprintFromLibTree(), PCB_EDIT_FRAME::ShowBoardSetupDialog(), PCB_EDIT_FRAME::ShowDimensionPropertiesDialog(), PCB_EDIT_FRAME::ShowExchangeFootprintsDialog(), PCB_EDIT_FRAME::ShowFootprintPropertiesDialog(), PCB_BASE_EDIT_FRAME::ShowGraphicItemPropertiesDialog(), PCB_BASE_FRAME::ShowPadPropertiesDialog(), SCH_EDIT_FRAME::ShowSchematicSetupDialog(), and PCB_BASE_EDIT_FRAME::ShowTextPropertiesDialog().

◆ TransferDataFromWindow()

bool DIALOG_SPICE_MODEL::TransferDataFromWindow ( )
overrideprivatevirtual

Definition at line 230 of file dialog_spice_model.cpp.

231 {
232  if( !DIALOG_SPICE_MODEL_BASE::TransferDataFromWindow() )
233  return false;
234 
235  wxWindow* page = m_notebook->GetCurrentPage();
236 
237  // Passive
238  if( page == m_passive )
239  {
240  if( !m_disabled->GetValue() && !m_passive->Validate() )
241  return false;
242 
243  switch( m_pasType->GetSelection() )
244  {
245  case 0: m_fieldsTmp[SF_PRIMITIVE] = (char) SP_RESISTOR; break;
246  case 1: m_fieldsTmp[SF_PRIMITIVE] = (char) SP_CAPACITOR; break;
247  case 2: m_fieldsTmp[SF_PRIMITIVE] = (char) SP_INDUCTOR; break;
248 
249  default:
250  wxASSERT_MSG( false, "Unhandled passive type" );
251  return false;
252  break;
253  }
254 
255  m_fieldsTmp[SF_MODEL] = m_pasValue->GetValue();
256  }
257 
258 
259  // Model
260  else if( page == m_model )
261  {
262  if( !m_model->Validate() )
263  return false;
264 
265  int modelIdx = m_modelType->GetSelection();
266 
267  if( modelIdx > 0 && modelIdx < (int)modelTypes.size() )
268  m_fieldsTmp[SF_PRIMITIVE] = static_cast<char>( modelTypes[modelIdx].type );
269 
270  m_fieldsTmp[SF_MODEL] = m_modelName->GetValue();
271 
272  if( !empty( m_modelLibrary ) )
273  m_fieldsTmp[SF_LIB_FILE] = m_modelLibrary->GetValue();
274  }
275 
276  // Power source
277  else if( page == m_power )
278  {
279  wxString model;
280 
281  if( !generatePowerSource( model ) )
282  return false;
283 
284  m_fieldsTmp[SF_PRIMITIVE] = (char)( m_pwrType->GetSelection() ? SP_ISOURCE : SP_VSOURCE );
285  m_fieldsTmp[SF_MODEL] = model;
286  }
287 
288 
289  else
290  {
291  wxASSERT_MSG( false, "Unhandled model type" );
292  return false;
293  }
294 
295  m_fieldsTmp[SF_ENABLED] = !m_disabled->GetValue() ? "Y" : "N"; // note bool inversion
296  m_fieldsTmp[SF_NODE_SEQUENCE] = m_nodeSeqCheck->IsChecked() ? m_nodeSeqVal->GetValue() : "";
297 
298  // Apply the settings
299  for( int i = 0; i < SF_END; ++i )
300  {
301  if( m_fieldsTmp.count( (SPICE_FIELD) i ) > 0 && !m_fieldsTmp.at( i ).IsEmpty() )
302  {
303  if( m_useSchFields )
304  getSchField( i ).SetText( m_fieldsTmp[i] );
305  else
306  getLibField( i ).SetText( m_fieldsTmp[i] );
307  }
308  else
309  {
310  // Erase empty fields (having empty fields causes a warning in the properties dialog)
311  const wxString& spiceField = NETLIST_EXPORTER_PSPICE::GetSpiceFieldName( (SPICE_FIELD) i );
312 
313  if( m_useSchFields )
314  {
315  m_schfields->erase( std::remove_if( m_schfields->begin(), m_schfields->end(),
316  [&]( const SCH_FIELD& f )
317  {
318  return f.GetName() == spiceField;
319  } ),
320  m_schfields->end() );
321  }
322  else
323  {
324  m_libfields->erase( std::remove_if( m_libfields->begin(), m_libfields->end(),
325  [&]( const LIB_FIELD& f )
326  {
327  return f.GetName() == spiceField;
328  } ),
329  m_libfields->end() );
330  }
331  }
332  }
333 
334  return true;
335 }
Instances are attached to a symbol or sheet and provide a place for the component's value,...
Definition: sch_field.h:50
bool generatePowerSource(wxString &aTarget) const
Generate a string to describe power source parameters, basing on the current selection.
std::vector< LIB_FIELD > * m_libfields
bool m_useSchFields
Temporary field values.
Field object used in symbol libraries.
Definition: lib_field.h:59
static const wxString & GetSpiceFieldName(SPICE_FIELD aField)
Return 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:121
SCH_FIELD & getSchField(int aFieldType)
Return or create a field in the edited schematic fields vector.
std::map< int, wxString > m_fieldsTmp
std::vector< SCH_FIELD > * m_schfields
static const std::vector< SPICE_MODEL_INFO > modelTypes

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, 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 338 of file dialog_spice_model.cpp.

339 {
340  const auto& spiceFields = NETLIST_EXPORTER_PSPICE::GetSpiceFields();
341 
342  // Fill out the working buffer
343  for( unsigned int idx = 0; idx < spiceFields.size(); ++idx )
344  {
345  const wxString& spiceField = spiceFields[idx];
346 
349 
350  // Do not modify the existing value, just add missing fields with default values
351  if( m_useSchFields && m_schfields )
352  {
353  for( const auto& field : *m_schfields )
354  {
355  if( field.GetName() == spiceField && !field.GetText().IsEmpty() )
356  {
357  m_fieldsTmp[idx] = field.GetText();
358  break;
359  }
360  }
361  }
362  else if( m_libfields)
363  {
364  // TODO: There must be a good way to template out these repetitive calls
365  for( const LIB_FIELD& field : *m_libfields )
366  {
367  if( field.GetName() == spiceField && !field.GetText().IsEmpty() )
368  {
369  m_fieldsTmp[idx] = field.GetText();
370  break;
371  }
372  }
373  }
374  }
375 
376  // Analyze the component fields to fill out the dialog
377  unsigned int primitive = toupper( m_fieldsTmp[SF_PRIMITIVE][0] );
378 
379  switch( primitive )
380  {
381  case SP_RESISTOR:
382  case SP_CAPACITOR:
383  case SP_INDUCTOR:
384  m_notebook->SetSelection( m_notebook->FindPage( m_passive ) );
385  m_pasType->SetSelection( primitive == SP_RESISTOR ? 0
386  : primitive == SP_CAPACITOR ? 1
387  : primitive == SP_INDUCTOR ? 2
388  : -1 );
389  m_pasValue->SetValue( m_fieldsTmp[SF_MODEL] );
390  break;
391 
392  case SP_DIODE:
393  case SP_BJT:
394  case SP_MOSFET:
395  case SP_JFET:
396  case SP_SUBCKT:
397  m_notebook->SetSelection( m_notebook->FindPage( m_model ) );
398  m_modelType->SetSelection( getModelTypeIdx( primitive ) );
399  m_modelName->SetValue( m_fieldsTmp[SF_MODEL] );
400  m_modelLibrary->SetValue( m_fieldsTmp[SF_LIB_FILE] );
401 
402  if( !empty( m_modelLibrary ) )
403  {
404  const wxString& libFile = m_modelLibrary->GetValue();
405  m_fieldsTmp[SF_LIB_FILE] = libFile;
406  loadLibrary( libFile );
407  }
408  break;
409 
410  case SP_VSOURCE:
411  case SP_ISOURCE:
413  return false;
414 
415  m_notebook->SetSelection( m_notebook->FindPage( m_power ) );
416  m_pwrType->SetSelection( primitive == SP_ISOURCE ? 1 : 0 );
417  break;
418 
419  default:
420  //wxASSERT_MSG( false, "Unhandled Spice primitive type" );
421  break;
422  }
423 
425 
426  // Check if node sequence is different than the default one
429  {
430  m_nodeSeqCheck->SetValue( true );
432  }
433 
434  showPinOrderNote( primitive );
435 
436  return DIALOG_SPICE_MODEL_BASE::TransferDataToWindow();
437 }
SCH_COMPONENT & m_component
Fields from the component properties dialog.
std::vector< LIB_FIELD > * m_libfields
bool m_useSchFields
Temporary field values.
Field object used in symbol libraries.
Definition: lib_field.h:59
static bool StringToBool(const wxString &aStr)
Convert 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)
Retrieve the default value for a given field.
static bool empty(const wxTextCtrl *aCtrl)
void showPinOrderNote(int aModelType)
Display a note info about pin order.
std::map< int, wxString > m_fieldsTmp
void loadLibrary(const wxString &aFilePath)
Load a list of components (.model and .subckt) from a spice library file and add them to a combo box.
static const std::vector< wxString > & GetSpiceFields()
Return a vector of component field names related to Spice simulation.
std::vector< SCH_FIELD > * m_schfields

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, NET_ADJUST_INCLUDE_PATHS, NET_ADJUST_PASSIVE_VALS, parsePowerSource(), SF_ENABLED, SF_LIB_FILE, SF_MODEL, SF_NODE_SEQUENCE, SF_PRIMITIVE, showPinOrderNote(), 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 101 of file dialog_spice_model.h.

102  {
103  return true;
104  }

◆ vertPixelsFromDU()

int DIALOG_SHIM::vertPixelsFromDU ( int  y) const
protectedinherited

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

See SetSizeInDU or wxDialog documentation for more information.

Definition at line 173 of file dialog_shim.cpp.

174 {
175  wxSize sz( 0, y );
176  return ConvertDialogToPixels( sz ).y;
177 }

Referenced by DIALOG_CHOOSE_SYMBOL::DIALOG_CHOOSE_SYMBOL().

Member Data Documentation

◆ m_amAmplitude

wxTextCtrl* DIALOG_SPICE_MODEL_BASE::m_amAmplitude
protectedinherited

◆ m_amCarrierFreq

wxTextCtrl* DIALOG_SPICE_MODEL_BASE::m_amCarrierFreq
protectedinherited

◆ m_amModulatingFreq

wxTextCtrl* DIALOG_SPICE_MODEL_BASE::m_amModulatingFreq
protectedinherited

◆ m_amOffset

wxTextCtrl* DIALOG_SPICE_MODEL_BASE::m_amOffset
protectedinherited

◆ m_amPhase

wxTextCtrl* DIALOG_SPICE_MODEL_BASE::m_amPhase
protectedinherited

◆ m_amSignalDelay

wxTextCtrl* DIALOG_SPICE_MODEL_BASE::m_amSignalDelay
protectedinherited

◆ m_component

SCH_COMPONENT& DIALOG_SPICE_MODEL::m_component
private

Fields from the component properties dialog.

Definition at line 134 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

Definition at line 142 of file dialog_spice_model.h.

Referenced by TransferDataFromWindow(), and TransferDataToWindow().

◆ m_firstPaintEvent

bool DIALOG_SHIM::m_firstPaintEvent
protectedinherited

Definition at line 209 of file dialog_shim.h.

Referenced by DIALOG_SHIM::OnPaint().

◆ m_fmAmplitude

wxTextCtrl* DIALOG_SPICE_MODEL_BASE::m_fmAmplitude
protectedinherited

◆ m_fmFcarrier

wxTextCtrl* DIALOG_SPICE_MODEL_BASE::m_fmFcarrier
protectedinherited

◆ m_fmFsignal

wxTextCtrl* DIALOG_SPICE_MODEL_BASE::m_fmFsignal
protectedinherited

◆ m_fmModIndex

wxTextCtrl* DIALOG_SPICE_MODEL_BASE::m_fmModIndex
protectedinherited

◆ m_fmOffset

wxTextCtrl* DIALOG_SPICE_MODEL_BASE::m_fmOffset
protectedinherited

◆ m_fmPhaseC

wxTextCtrl* DIALOG_SPICE_MODEL_BASE::m_fmPhaseC
protectedinherited

◆ m_fmPhaseS

wxTextCtrl* DIALOG_SPICE_MODEL_BASE::m_fmPhaseS
protectedinherited

◆ 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 210 of file dialog_shim.h.

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

◆ m_libfields

std::vector<LIB_FIELD>* DIALOG_SPICE_MODEL::m_libfields
private

Definition at line 138 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

Column identifiers for PWL power source value list.

Definition at line 162 of file dialog_spice_model.h.

Referenced by loadLibrary(), and onModelSelected().

◆ m_modelType

◆ 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 169 of file dialog_spice_model.h.

Referenced by Init().

◆ m_parentFrame

EDA_BASE_FRAME* DIALOG_SHIM::m_parentFrame
protectedinherited

Definition at line 217 of file dialog_shim.h.

Referenced by DIALOG_SHIM::OnCharHook().

◆ 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

Definition at line 165 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 165 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 212 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 214 of file dialog_shim.h.

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

◆ m_rnParam1

wxTextCtrl* DIALOG_SPICE_MODEL_BASE::m_rnParam1
protectedinherited

◆ m_rnParam1Text

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_rnParam1Text
protectedinherited

◆ m_rnParam2

wxTextCtrl* DIALOG_SPICE_MODEL_BASE::m_rnParam2
protectedinherited

◆ m_rnParam2Text

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_rnParam2Text
protectedinherited

◆ m_rnTD

wxTextCtrl* DIALOG_SPICE_MODEL_BASE::m_rnTD
protectedinherited

◆ m_rnTS

wxTextCtrl* DIALOG_SPICE_MODEL_BASE::m_rnTS
protectedinherited

◆ m_rnType

◆ m_schfields

std::vector<SCH_FIELD>* DIALOG_SPICE_MODEL::m_schfields
private

Definition at line 137 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 168 of file dialog_spice_model.h.

Referenced by Init().

◆ m_spiceValidator

SPICE_VALIDATOR DIALOG_SPICE_MODEL::m_spiceValidator
private

Definition at line 167 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_staticText1311

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText1311
protectedinherited

◆ m_staticText13111

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText13111
protectedinherited

◆ m_staticText132

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText132
protectedinherited

◆ m_staticText1321

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText1321
protectedinherited

◆ m_staticText13211

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText13211
protectedinherited

◆ m_staticText133

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText133
protectedinherited

◆ m_staticText1331

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText1331
protectedinherited

◆ m_staticText13311

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText13311
protectedinherited

◆ m_staticText134

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText134
protectedinherited

◆ m_staticText1341

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText1341
protectedinherited

◆ m_staticText13411

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText13411
protectedinherited

◆ m_staticText135

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText135
protectedinherited

◆ m_staticText1351

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText1351
protectedinherited

◆ m_staticText13511

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText13511
protectedinherited

◆ m_staticText136

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText136
protectedinherited

◆ m_staticText1361

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText1361
protectedinherited

◆ m_staticText13611

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText13611
protectedinherited

◆ m_staticText137

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText137
protectedinherited

◆ m_staticText1371

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText1371
protectedinherited

◆ m_staticText138

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText138
protectedinherited

◆ m_staticText1381

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText1381
protectedinherited

◆ m_staticText14

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText14
protectedinherited

◆ m_staticText141

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText141
protectedinherited

◆ m_staticText1411

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText1411
protectedinherited

◆ m_staticText15

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText15
protectedinherited

◆ m_staticText151

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText151
protectedinherited

◆ m_staticText1511

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText1511
protectedinherited

◆ m_staticText16

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText16
protectedinherited

◆ m_staticText161

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText161
protectedinherited

◆ m_staticText1611

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText1611
protectedinherited

◆ m_staticText17

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText17
protectedinherited

◆ m_staticText171

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText171
protectedinherited

◆ m_staticText1711

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText1711
protectedinherited

◆ m_staticText18

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText18
protectedinherited

◆ m_staticText181

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText181
protectedinherited

◆ m_staticText1811

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText1811
protectedinherited

◆ m_staticText20

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText20
protectedinherited

◆ m_staticText201

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText201
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_staticText262111

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText262111
protectedinherited

◆ m_staticText263

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText263
protectedinherited

◆ m_staticText263111

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText263111
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_staticText26711

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText26711
protectedinherited

◆ m_staticText27

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText27
protectedinherited

◆ m_staticText27111

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText27111
protectedinherited

◆ m_staticText28

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText28
protectedinherited

◆ m_staticText28111

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText28111
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_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_staticText4

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText4
protectedinherited

◆ m_staticText5

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText5
protectedinherited

◆ m_staticText62

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText62
protectedinherited

◆ m_staticText7

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticText7
protectedinherited

◆ m_staticTextF1

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticTextF1
protectedinherited

◆ m_staticTextF2

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticTextF2
protectedinherited

◆ m_staticTextF3

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticTextF3
protectedinherited

◆ m_staticTextG1

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticTextG1
protectedinherited

◆ m_staticTextG2

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticTextG2
protectedinherited

◆ m_staticTextG3

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticTextG3
protectedinherited

◆ m_staticTextK1

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticTextK1
protectedinherited

◆ m_staticTextK2

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticTextK2
protectedinherited

◆ m_staticTextK3

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticTextK3
protectedinherited

◆ m_staticTextM1

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticTextM1
protectedinherited

◆ m_staticTextM2

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticTextM2
protectedinherited

◆ m_staticTextM3

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticTextM3
protectedinherited

◆ m_staticTextMeg1

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticTextMeg1
protectedinherited

◆ m_staticTextMeg2

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticTextMeg2
protectedinherited

◆ m_staticTextMeg3

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticTextMeg3
protectedinherited

◆ m_staticTextN1

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticTextN1
protectedinherited

◆ m_staticTextN2

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticTextN2
protectedinherited

◆ m_staticTextN3

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticTextN3
protectedinherited

◆ m_staticTextNote

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticTextNote
protectedinherited

◆ m_staticTextP1

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticTextP1
protectedinherited

◆ m_staticTextP2

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticTextP2
protectedinherited

◆ m_staticTextP3

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticTextP3
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_staticTextT1

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticTextT1
protectedinherited

◆ m_staticTextT2

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticTextT2
protectedinherited

◆ m_staticTextT3

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticTextT3
protectedinherited

◆ m_staticTextU1

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticTextU1
protectedinherited

◆ m_staticTextU2

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticTextU2
protectedinherited

◆ m_staticTextU3

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_staticTextU3
protectedinherited

◆ m_stInfoNote

wxStaticText* DIALOG_SPICE_MODEL_BASE::m_stInfoNote
protectedinherited

◆ m_tabOrder

◆ m_units

◆ m_useCalculatedSize

bool DIALOG_SHIM::m_useCalculatedSize
protectedinherited

◆ m_useSchFields

bool DIALOG_SPICE_MODEL::m_useSchFields
private

Temporary field values.

Definition at line 139 of file dialog_spice_model.h.

Referenced by TransferDataFromWindow(), and TransferDataToWindow().


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