Disentangle IBIS model controls from built-in model controls.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/13855
This commit is contained in:
parent
79590c6372
commit
c80eb44900
|
@ -89,7 +89,9 @@ DIALOG_SIM_MODEL<T_symbol, T_field>::DIALOG_SIM_MODEL( wxWindow* aParent, T_symb
|
|||
return StrNumCmp( lhs->GetNumber(), rhs->GetNumber(), true ) < 0;
|
||||
} );
|
||||
|
||||
m_typeChoice->Clear();
|
||||
m_waveformChoice->Clear();
|
||||
m_deviceChoice->Clear();
|
||||
m_deviceTypeChoice->Clear();
|
||||
|
||||
m_scintillaTricksCode = new SCINTILLA_TRICKS( m_codePreview, wxT( "{}" ), false );
|
||||
m_scintillaTricksSubckt = new SCINTILLA_TRICKS( m_subckt, wxT( "()" ), false );
|
||||
|
@ -253,7 +255,7 @@ bool DIALOG_SIM_MODEL<T_symbol, T_field>::TransferDataToWindow()
|
|||
auto kibisLibrary = static_cast<const SIM_LIBRARY_KIBIS*>( library() );
|
||||
|
||||
kibismodel->ChangePin( *kibisLibrary, strs.first );
|
||||
m_ibisPinCombobox->SetSelection( static_cast<int>( i ) );
|
||||
m_pinCombobox->SetSelection( static_cast<int>( i ) );
|
||||
break;
|
||||
}
|
||||
i++;
|
||||
|
@ -261,9 +263,9 @@ bool DIALOG_SIM_MODEL<T_symbol, T_field>::TransferDataToWindow()
|
|||
|
||||
if( i < static_cast<int>( kibismodel->GetIbisPins().size() ) )
|
||||
{
|
||||
onIbisPinCombobox( dummyEvent ); // refresh list of models
|
||||
onPinCombobox( dummyEvent ); // refresh list of models
|
||||
|
||||
m_ibisModelCombobox->SetStringSelection(
|
||||
m_pinModelCombobox->SetStringSelection(
|
||||
SIM_MODEL::GetFieldValue( &m_fields, SIM_LIBRARY_KIBIS::MODEL_FIELD ) );
|
||||
}
|
||||
|
||||
|
@ -364,11 +366,11 @@ bool DIALOG_SIM_MODEL<T_symbol, T_field>::TransferDataFromWindow()
|
|||
if( ibismodel )
|
||||
{
|
||||
std::string pins;
|
||||
std::string modelName = std::string( m_ibisModelCombobox->GetValue().c_str() );
|
||||
std::string modelName = std::string( m_pinModelCombobox->GetValue().c_str() );
|
||||
std::string differential;
|
||||
|
||||
if( m_ibisPinCombobox->GetSelection() >= 0 )
|
||||
pins = ibismodel->GetIbisPins().at( m_ibisPinCombobox->GetSelection() ).first;
|
||||
if( m_pinCombobox->GetSelection() >= 0 )
|
||||
pins = ibismodel->GetIbisPins().at( m_pinCombobox->GetSelection() ).first;
|
||||
|
||||
if( ibismodel->CanDifferential() && m_differentialCheckbox->GetValue() )
|
||||
differential = "1";
|
||||
|
@ -426,10 +428,38 @@ void DIALOG_SIM_MODEL<T_symbol, T_field>::updateIbisWidgets( SIM_MODEL* aModel )
|
|||
SIM_MODEL_KIBIS* modelkibis = isIbisLoaded() ? dynamic_cast<SIM_MODEL_KIBIS*>( aModel )
|
||||
: nullptr;
|
||||
|
||||
m_ibisModelCombobox->Show( isIbisLoaded() );
|
||||
m_ibisPinCombobox->Show( isIbisLoaded() );
|
||||
m_ibisModelLabel->Show( isIbisLoaded() );
|
||||
m_ibisPinLabel->Show( isIbisLoaded() );
|
||||
m_pinLabel->Show( isIbisLoaded() );
|
||||
m_pinCombobox->Show( isIbisLoaded() );
|
||||
m_pinModelLabel->Show( isIbisLoaded() );
|
||||
m_pinModelCombobox->Show( isIbisLoaded() );
|
||||
m_waveformLabel->Show( isIbisLoaded() );
|
||||
m_waveformChoice->Show( isIbisLoaded() );
|
||||
|
||||
if( aModel != m_prevModel )
|
||||
{
|
||||
m_waveformChoice->Clear();
|
||||
|
||||
if( isIbisLoaded() )
|
||||
{
|
||||
for( SIM_MODEL::TYPE type : { SIM_MODEL::TYPE::KIBIS_DEVICE,
|
||||
SIM_MODEL::TYPE::KIBIS_DRIVER_DC,
|
||||
SIM_MODEL::TYPE::KIBIS_DRIVER_RECT,
|
||||
SIM_MODEL::TYPE::KIBIS_DRIVER_PRBS } )
|
||||
{
|
||||
SIM_MODEL::DEVICE_T deviceType = SIM_MODEL::TypeInfo( type ).deviceType;
|
||||
const std::string& deviceTypeDesc = SIM_MODEL::DeviceInfo( deviceType ).description;
|
||||
|
||||
if( deviceType == aModel->GetDeviceType()
|
||||
|| deviceTypeDesc == aModel->GetDeviceInfo().description )
|
||||
{
|
||||
m_waveformChoice->Append( SIM_MODEL::TypeInfo( type ).description );
|
||||
|
||||
if( type == aModel->GetType() )
|
||||
m_waveformChoice->SetSelection( m_waveformChoice->GetCount() - 1 );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
m_differentialCheckbox->Show( isIbisLoaded() && modelkibis && modelkibis->CanDifferential() );
|
||||
m_modelNameLabel->SetLabel( isIbisLoaded() ? _( "Component:" ) : _( "Model:" ) );
|
||||
|
@ -442,45 +472,48 @@ void DIALOG_SIM_MODEL<T_symbol, T_field>::updateBuiltinModelWidgets( SIM_MODEL*
|
|||
// Change the Type choice to match the current device type.
|
||||
if( aModel != m_prevModel )
|
||||
{
|
||||
m_deviceChoice->Clear();
|
||||
m_deviceTypeChoice->Clear();
|
||||
|
||||
if( m_rbLibraryModel->GetValue() )
|
||||
{
|
||||
m_deviceTypeChoice->Append( aModel->GetDeviceInfo().description );
|
||||
m_deviceTypeChoice->SetSelection( 0 );
|
||||
}
|
||||
else
|
||||
if( m_rbBuiltinModel->GetValue() )
|
||||
{
|
||||
for( SIM_MODEL::DEVICE_T deviceType : SIM_MODEL::DEVICE_T_ITERATOR() )
|
||||
{
|
||||
if( !SIM_MODEL::DeviceInfo( deviceType ).showInMenu )
|
||||
continue;
|
||||
|
||||
m_deviceTypeChoice->Append( SIM_MODEL::DeviceInfo( deviceType ).description );
|
||||
m_deviceChoice->Append( SIM_MODEL::DeviceInfo( deviceType ).description );
|
||||
|
||||
if( equivalent( deviceType, aModel->GetDeviceType() ) )
|
||||
m_deviceTypeChoice->SetSelection( m_deviceTypeChoice->GetCount() - 1 );
|
||||
m_deviceChoice->SetSelection( m_deviceChoice->GetCount() - 1 );
|
||||
}
|
||||
}
|
||||
|
||||
m_typeChoice->Clear();
|
||||
|
||||
for( SIM_MODEL::TYPE type : SIM_MODEL::TYPE_ITERATOR() )
|
||||
{
|
||||
if( type == SIM_MODEL::TYPE::KIBIS_DEVICE
|
||||
|| type == SIM_MODEL::TYPE::KIBIS_DRIVER_DC
|
||||
|| type == SIM_MODEL::TYPE::KIBIS_DRIVER_RECT
|
||||
|| type == SIM_MODEL::TYPE::KIBIS_DRIVER_PRBS )
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
SIM_MODEL::DEVICE_T deviceType = SIM_MODEL::TypeInfo( type ).deviceType;
|
||||
const std::string& deviceTypeDesc = SIM_MODEL::DeviceInfo( deviceType ).description;
|
||||
|
||||
if( deviceType == aModel->GetDeviceType()
|
||||
|| SIM_MODEL::DeviceInfo( deviceType ).description == aModel->GetDeviceInfo().description )
|
||||
|| deviceTypeDesc == aModel->GetDeviceInfo().description )
|
||||
{
|
||||
m_typeChoice->Append( SIM_MODEL::TypeInfo( type ).description );
|
||||
m_deviceTypeChoice->Append( SIM_MODEL::TypeInfo( type ).description );
|
||||
|
||||
if( type == aModel->GetType() )
|
||||
m_typeChoice->SetSelection( m_typeChoice->GetCount() - 1 );
|
||||
m_deviceTypeChoice->SetSelection( m_deviceTypeChoice->GetCount() - 1 );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
m_typeChoice->Enable( !m_rbLibraryModel->GetValue() || isIbisLoaded() );
|
||||
m_deviceTypeChoice->Enable( !m_rbLibraryModel->GetValue() );
|
||||
|
||||
if( dynamic_cast<SIM_MODEL_RAW_SPICE*>( aModel ) )
|
||||
m_modelNotebook->SetSelection( 1 );
|
||||
|
@ -760,10 +793,10 @@ bool DIALOG_SIM_MODEL<T_symbol, T_field>::loadLibrary( const wxString& aLibraryP
|
|||
if( isIbisLoaded() )
|
||||
{
|
||||
wxArrayString emptyArray;
|
||||
m_ibisModelCombobox->Set( emptyArray );
|
||||
m_ibisPinCombobox->Set( emptyArray );
|
||||
m_ibisModelCombobox->SetSelection( -1 );
|
||||
m_ibisPinCombobox->SetSelection( -1 );
|
||||
m_pinModelCombobox->Set( emptyArray );
|
||||
m_pinCombobox->Set( emptyArray );
|
||||
m_pinModelCombobox->SetSelection( -1 );
|
||||
m_pinCombobox->SetSelection( -1 );
|
||||
}
|
||||
|
||||
m_prevLibrary = aLibraryPath;
|
||||
|
@ -1039,15 +1072,17 @@ void DIALOG_SIM_MODEL<T_symbol, T_field>::onRadioButton( wxCommandEvent& aEvent
|
|||
m_browseButton->Enable( fromLibrary );
|
||||
m_modelNameLabel->Enable( fromLibrary );
|
||||
m_modelNameChoice->Enable( fromLibrary );
|
||||
m_ibisPinLabel->Enable( fromLibrary );
|
||||
m_ibisPinCombobox->Enable( fromLibrary );
|
||||
m_pinLabel->Enable( fromLibrary );
|
||||
m_pinCombobox->Enable( fromLibrary );
|
||||
m_differentialCheckbox->Enable( fromLibrary );
|
||||
m_ibisModelLabel->Enable( fromLibrary );
|
||||
m_ibisModelCombobox->Enable( fromLibrary );
|
||||
m_pinModelLabel->Enable( fromLibrary );
|
||||
m_pinModelCombobox->Enable( fromLibrary );
|
||||
m_waveformLabel->Enable( fromLibrary );
|
||||
m_waveformChoice->Enable( fromLibrary );
|
||||
|
||||
m_staticTextDevType->Enable( !fromLibrary );
|
||||
m_deviceTypeChoice->Enable( !fromLibrary );
|
||||
m_staticTextSpiceType->Enable( !fromLibrary );
|
||||
m_deviceLabel->Enable( !fromLibrary );
|
||||
m_deviceChoice->Enable( !fromLibrary );
|
||||
m_deviceTypeLabel->Enable( !fromLibrary );
|
||||
|
||||
m_prevModel = nullptr; // Ensure the Model panel will be rebuild after updating other params.
|
||||
updateWidgets();
|
||||
|
@ -1129,10 +1164,10 @@ void DIALOG_SIM_MODEL<T_symbol, T_field>::onModelNameChoice( wxCommandEvent& aEv
|
|||
for( std::pair<wxString, wxString> strs : modelkibis->GetIbisPins() )
|
||||
pinLabels.Add( strs.first + wxT( " - " ) + strs.second );
|
||||
|
||||
m_ibisPinCombobox->Set( pinLabels );
|
||||
m_pinCombobox->Set( pinLabels );
|
||||
|
||||
wxArrayString emptyArray;
|
||||
m_ibisModelCombobox->Set( emptyArray );
|
||||
m_pinModelCombobox->Set( emptyArray );
|
||||
}
|
||||
|
||||
updateWidgets();
|
||||
|
@ -1140,16 +1175,14 @@ void DIALOG_SIM_MODEL<T_symbol, T_field>::onModelNameChoice( wxCommandEvent& aEv
|
|||
|
||||
|
||||
template <typename T_symbol, typename T_field>
|
||||
void DIALOG_SIM_MODEL<T_symbol, T_field>::onIbisPinCombobox( wxCommandEvent& aEvent )
|
||||
void DIALOG_SIM_MODEL<T_symbol, T_field>::onPinCombobox( wxCommandEvent& aEvent )
|
||||
{
|
||||
if( isIbisLoaded() )
|
||||
{
|
||||
wxArrayString modelLabels;
|
||||
|
||||
SIM_MODEL_KIBIS& ibisModel = static_cast<SIM_MODEL_KIBIS&>( curModel() );
|
||||
|
||||
std::vector<std::pair<std::string, std::string>> strs = ibisModel.GetIbisPins();
|
||||
std::string pinNumber = strs.at( m_ibisPinCombobox->GetSelection() ).first;
|
||||
std::string pinNumber = strs.at( m_pinCombobox->GetSelection() ).first;
|
||||
|
||||
const SIM_LIBRARY_KIBIS* ibisLibrary = dynamic_cast<const SIM_LIBRARY_KIBIS*>( library() );
|
||||
|
||||
|
@ -1160,51 +1193,48 @@ void DIALOG_SIM_MODEL<T_symbol, T_field>::onIbisPinCombobox( wxCommandEvent& aEv
|
|||
for( wxString modelName : ibisModel.GetIbisModels() )
|
||||
modelLabels.Add( modelName );
|
||||
|
||||
m_ibisModelCombobox->Set( modelLabels );
|
||||
}
|
||||
m_pinModelCombobox->Set( modelLabels );
|
||||
|
||||
if( m_pinModelCombobox->GetCount() == 1 )
|
||||
m_pinModelCombobox->SetSelection( 0 );
|
||||
else
|
||||
m_pinModelCombobox->SetSelection( -1 );
|
||||
|
||||
updateWidgets();
|
||||
}
|
||||
|
||||
|
||||
template <typename T_symbol, typename T_field>
|
||||
void DIALOG_SIM_MODEL<T_symbol, T_field>::onIbisPinComboboxTextEnter( wxCommandEvent& aEvent )
|
||||
void DIALOG_SIM_MODEL<T_symbol, T_field>::onPinComboboxTextEnter( wxCommandEvent& aEvent )
|
||||
{
|
||||
m_ibisPinCombobox->SetSelection(
|
||||
m_ibisPinCombobox->FindString( m_ibisPinCombobox->GetValue() ) );
|
||||
m_pinCombobox->SetSelection( m_pinCombobox->FindString( m_pinCombobox->GetValue() ) );
|
||||
|
||||
onIbisPinCombobox( aEvent );
|
||||
onPinModelCombobox( aEvent );
|
||||
}
|
||||
|
||||
|
||||
template <typename T_symbol, typename T_field>
|
||||
void DIALOG_SIM_MODEL<T_symbol, T_field>::onIbisModelCombobox( wxCommandEvent& aEvent )
|
||||
void DIALOG_SIM_MODEL<T_symbol, T_field>::onPinModelCombobox( wxCommandEvent& aEvent )
|
||||
{
|
||||
updateWidgets();
|
||||
}
|
||||
|
||||
|
||||
template <typename T_symbol, typename T_field>
|
||||
void DIALOG_SIM_MODEL<T_symbol, T_field>::onIbisModelComboboxTextEnter( wxCommandEvent& aEvent )
|
||||
void DIALOG_SIM_MODEL<T_symbol, T_field>::onPinModelComboboxTextEnter( wxCommandEvent& aEvent )
|
||||
{
|
||||
m_ibisModelCombobox->SetSelection(
|
||||
m_ibisModelCombobox->FindString( m_ibisModelCombobox->GetValue() ) );
|
||||
|
||||
onIbisPinCombobox( aEvent );
|
||||
m_pinModelCombobox->SetSelection( m_pinModelCombobox->FindString( m_pinModelCombobox->GetValue() ) );
|
||||
}
|
||||
|
||||
template <typename T_symbol, typename T_field>
|
||||
void DIALOG_SIM_MODEL<T_symbol, T_field>::onDifferentialCheckbox( wxCommandEvent& aEvent )
|
||||
{
|
||||
if( isIbisLoaded() )
|
||||
{
|
||||
SIM_MODEL_KIBIS* modelkibis = dynamic_cast<SIM_MODEL_KIBIS*>( &curModel() );
|
||||
|
||||
wxCHECK( modelkibis, /* void */ );
|
||||
|
||||
bool diff = m_differentialCheckbox->GetValue() && modelkibis->CanDifferential();
|
||||
modelkibis->SwitchSingleEndedDiff( diff );
|
||||
}
|
||||
|
||||
updateWidgets();
|
||||
}
|
||||
|
@ -1215,7 +1245,7 @@ void DIALOG_SIM_MODEL<T_symbol, T_field>::onDeviceTypeChoice( wxCommandEvent& aE
|
|||
{
|
||||
for( SIM_MODEL::DEVICE_T deviceType : SIM_MODEL::DEVICE_T_ITERATOR() )
|
||||
{
|
||||
if( SIM_MODEL::DeviceInfo( deviceType ).description == m_deviceTypeChoice->GetStringSelection() )
|
||||
if( SIM_MODEL::DeviceInfo( deviceType ).description == m_deviceChoice->GetStringSelection() )
|
||||
{
|
||||
m_curModelType = m_curModelTypeOfDeviceType.at( deviceType );
|
||||
break;
|
||||
|
@ -1227,21 +1257,18 @@ void DIALOG_SIM_MODEL<T_symbol, T_field>::onDeviceTypeChoice( wxCommandEvent& aE
|
|||
|
||||
|
||||
template <typename T_symbol, typename T_field>
|
||||
void DIALOG_SIM_MODEL<T_symbol, T_field>::onTypeChoice( wxCommandEvent& aEvent )
|
||||
void DIALOG_SIM_MODEL<T_symbol, T_field>::onWaveformChoice( wxCommandEvent& aEvent )
|
||||
{
|
||||
SIM_MODEL::DEVICE_T deviceType = curModel().GetDeviceType();
|
||||
wxString typeDescription = m_typeChoice->GetString( m_typeChoice->GetSelection() );
|
||||
wxString typeDescription = m_waveformChoice->GetStringSelection();
|
||||
|
||||
for( SIM_MODEL::TYPE type : SIM_MODEL::TYPE_ITERATOR() )
|
||||
for( SIM_MODEL::TYPE type : { SIM_MODEL::TYPE::KIBIS_DEVICE,
|
||||
SIM_MODEL::TYPE::KIBIS_DRIVER_DC,
|
||||
SIM_MODEL::TYPE::KIBIS_DRIVER_RECT,
|
||||
SIM_MODEL::TYPE::KIBIS_DRIVER_PRBS } )
|
||||
{
|
||||
if( equivalent( deviceType, SIM_MODEL::TypeInfo( type ).deviceType )
|
||||
&& typeDescription == SIM_MODEL::TypeInfo( type ).description )
|
||||
{
|
||||
if( isIbisLoaded()
|
||||
&& ( type == SIM_MODEL::TYPE::KIBIS_DEVICE
|
||||
|| type == SIM_MODEL::TYPE::KIBIS_DRIVER_DC
|
||||
|| type == SIM_MODEL::TYPE::KIBIS_DRIVER_RECT
|
||||
|| type == SIM_MODEL::TYPE::KIBIS_DRIVER_PRBS ) )
|
||||
{
|
||||
int idx = m_modelNameChoice->GetSelection();
|
||||
|
||||
|
@ -1251,15 +1278,34 @@ void DIALOG_SIM_MODEL<T_symbol, T_field>::onTypeChoice( wxCommandEvent& aEvent )
|
|||
|
||||
try
|
||||
{
|
||||
m_libraryModelsMgr.GetModels()[idx].get().ReadDataFields( &m_fields,
|
||||
m_sortedPartPins );
|
||||
m_libraryModelsMgr.GetModels()[idx].get().ReadDataFields( &m_fields, m_sortedPartPins );
|
||||
}
|
||||
catch( IO_ERROR& err )
|
||||
{
|
||||
DisplayErrorMessage( this, err.What() );
|
||||
}
|
||||
|
||||
m_curModelType = type;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
m_curModelTypeOfDeviceType.at( deviceType ) = m_curModelType;
|
||||
updateWidgets();
|
||||
}
|
||||
|
||||
|
||||
template <typename T_symbol, typename T_field>
|
||||
void DIALOG_SIM_MODEL<T_symbol, T_field>::onTypeChoice( wxCommandEvent& aEvent )
|
||||
{
|
||||
SIM_MODEL::DEVICE_T deviceType = curModel().GetDeviceType();
|
||||
wxString typeDescription = m_deviceTypeChoice->GetStringSelection();
|
||||
|
||||
for( SIM_MODEL::TYPE type : SIM_MODEL::TYPE_ITERATOR() )
|
||||
{
|
||||
if( equivalent( deviceType, SIM_MODEL::TypeInfo( type ).deviceType )
|
||||
&& typeDescription == SIM_MODEL::TypeInfo( type ).description )
|
||||
{
|
||||
m_curModelType = type;
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
* This program source code file is part of KiCad, a free EDA CAD application.
|
||||
*
|
||||
* Copyright (C) 2022 Mikolaj Wielgus
|
||||
* Copyright (C) 2022 KiCad Developers, see AUTHORS.txt for contributors.
|
||||
* Copyright (C) 2022-2023 KiCad Developers, see AUTHORS.txt for contributors.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
|
@ -97,11 +97,12 @@ private:
|
|||
void onLibraryPathTextKillFocus( wxFocusEvent& aEvent ) override;
|
||||
void onBrowseButtonClick( wxCommandEvent& aEvent ) override;
|
||||
void onModelNameChoice( wxCommandEvent& aEvent ) override;
|
||||
void onIbisPinCombobox( wxCommandEvent& event ) override;
|
||||
void onIbisPinComboboxTextEnter( wxCommandEvent& event ) override;
|
||||
void onIbisModelCombobox( wxCommandEvent& event ) override;
|
||||
void onIbisModelComboboxTextEnter( wxCommandEvent& event ) override;
|
||||
void onPinCombobox( wxCommandEvent& event ) override;
|
||||
void onPinComboboxTextEnter( wxCommandEvent& event ) override;
|
||||
void onPinModelCombobox( wxCommandEvent& event ) override;
|
||||
void onPinModelComboboxTextEnter( wxCommandEvent& event ) override;
|
||||
void onDeviceTypeChoice( wxCommandEvent& aEvent ) override;
|
||||
void onWaveformChoice( wxCommandEvent& aEvent ) override;
|
||||
void onTypeChoice( wxCommandEvent& aEvent ) override;
|
||||
void onPageChanging( wxNotebookEvent& event ) override;
|
||||
void onPinAssignmentsGridCellChange( wxGridEvent& aEvent ) override;
|
||||
|
|
|
@ -63,32 +63,31 @@ DIALOG_SIM_MODEL_BASE::DIALOG_SIM_MODEL_BASE( wxWindow* parent, wxWindowID id, c
|
|||
|
||||
gbSizer1->Add( 0, 0, wxGBPosition( 1, 3 ), wxGBSpan( 1, 1 ), wxEXPAND, 5 );
|
||||
|
||||
m_ibisPinLabel = new wxStaticText( m_modelPanel, wxID_ANY, _("Pin:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_ibisPinLabel->Wrap( -1 );
|
||||
m_ibisPinLabel->Hide();
|
||||
m_pinLabel = new wxStaticText( m_modelPanel, wxID_ANY, _("Pin:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_pinLabel->Wrap( -1 );
|
||||
gbSizer1->Add( m_pinLabel, wxGBPosition( 2, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
|
||||
|
||||
gbSizer1->Add( m_ibisPinLabel, wxGBPosition( 2, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
|
||||
|
||||
m_ibisPinCombobox = new wxComboBox( m_modelPanel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, wxTE_PROCESS_ENTER );
|
||||
m_ibisPinCombobox->Hide();
|
||||
|
||||
gbSizer1->Add( m_ibisPinCombobox, wxGBPosition( 2, 1 ), wxGBSpan( 1, 1 ), wxEXPAND|wxTOP|wxBOTTOM, 2 );
|
||||
m_pinCombobox = new wxComboBox( m_modelPanel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, wxTE_PROCESS_ENTER );
|
||||
gbSizer1->Add( m_pinCombobox, wxGBPosition( 2, 1 ), wxGBSpan( 1, 1 ), wxEXPAND|wxTOP|wxBOTTOM, 2 );
|
||||
|
||||
m_differentialCheckbox = new wxCheckBox( m_modelPanel, wxID_ANY, _("Differential"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_differentialCheckbox->Hide();
|
||||
|
||||
gbSizer1->Add( m_differentialCheckbox, wxGBPosition( 2, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 40 );
|
||||
|
||||
m_ibisModelLabel = new wxStaticText( m_modelPanel, wxID_ANY, _("Model:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_ibisModelLabel->Wrap( -1 );
|
||||
m_ibisModelLabel->Hide();
|
||||
m_pinModelLabel = new wxStaticText( m_modelPanel, wxID_ANY, _("Pin model:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_pinModelLabel->Wrap( -1 );
|
||||
gbSizer1->Add( m_pinModelLabel, wxGBPosition( 3, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
|
||||
|
||||
gbSizer1->Add( m_ibisModelLabel, wxGBPosition( 3, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
|
||||
m_pinModelCombobox = new wxComboBox( m_modelPanel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, wxTE_PROCESS_ENTER );
|
||||
gbSizer1->Add( m_pinModelCombobox, wxGBPosition( 3, 1 ), wxGBSpan( 1, 1 ), wxEXPAND|wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 1 );
|
||||
|
||||
m_ibisModelCombobox = new wxComboBox( m_modelPanel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, wxTE_PROCESS_ENTER );
|
||||
m_ibisModelCombobox->Hide();
|
||||
m_waveformLabel = new wxStaticText( m_modelPanel, wxID_ANY, _("Waveform:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_waveformLabel->Wrap( -1 );
|
||||
gbSizer1->Add( m_waveformLabel, wxGBPosition( 4, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
|
||||
|
||||
gbSizer1->Add( m_ibisModelCombobox, wxGBPosition( 3, 1 ), wxGBSpan( 1, 1 ), wxEXPAND|wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 1 );
|
||||
wxArrayString m_waveformChoiceChoices;
|
||||
m_waveformChoice = new wxChoice( m_modelPanel, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_waveformChoiceChoices, 0 );
|
||||
m_waveformChoice->SetSelection( 0 );
|
||||
gbSizer1->Add( m_waveformChoice, wxGBPosition( 4, 1 ), wxGBSpan( 1, 1 ), wxEXPAND|wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 2 );
|
||||
|
||||
|
||||
gbSizer1->AddGrowableCol( 1 );
|
||||
|
@ -107,24 +106,24 @@ DIALOG_SIM_MODEL_BASE::DIALOG_SIM_MODEL_BASE( wxWindow* parent, wxWindowID id, c
|
|||
fgSizer16->SetFlexibleDirection( wxBOTH );
|
||||
fgSizer16->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
|
||||
|
||||
m_staticTextDevType = new wxStaticText( m_modelPanel, wxID_ANY, _("Device:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_staticTextDevType->Wrap( -1 );
|
||||
fgSizer16->Add( m_staticTextDevType, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
|
||||
m_deviceLabel = new wxStaticText( m_modelPanel, wxID_ANY, _("Device:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_deviceLabel->Wrap( -1 );
|
||||
fgSizer16->Add( m_deviceLabel, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
|
||||
|
||||
wxArrayString m_deviceChoiceChoices;
|
||||
m_deviceChoice = new wxChoice( m_modelPanel, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_deviceChoiceChoices, 0 );
|
||||
m_deviceChoice->SetSelection( 0 );
|
||||
fgSizer16->Add( m_deviceChoice, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT, 10 );
|
||||
|
||||
m_deviceTypeLabel = new wxStaticText( m_modelPanel, wxID_ANY, _("Device type:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_deviceTypeLabel->Wrap( -1 );
|
||||
fgSizer16->Add( m_deviceTypeLabel, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
|
||||
|
||||
wxArrayString m_deviceTypeChoiceChoices;
|
||||
m_deviceTypeChoice = new wxChoice( m_modelPanel, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_deviceTypeChoiceChoices, 0 );
|
||||
m_deviceTypeChoice->SetSelection( 0 );
|
||||
fgSizer16->Add( m_deviceTypeChoice, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT, 10 );
|
||||
|
||||
m_staticTextSpiceType = new wxStaticText( m_modelPanel, wxID_ANY, _("Type:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_staticTextSpiceType->Wrap( -1 );
|
||||
fgSizer16->Add( m_staticTextSpiceType, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
|
||||
|
||||
wxArrayString m_typeChoiceChoices;
|
||||
m_typeChoice = new wxChoice( m_modelPanel, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_typeChoiceChoices, 0 );
|
||||
m_typeChoice->SetSelection( 0 );
|
||||
fgSizer16->Add( m_typeChoice, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT, 10 );
|
||||
|
||||
|
||||
bSizerMargins->Add( fgSizer16, 0, wxEXPAND|wxLEFT, 24 );
|
||||
|
||||
|
@ -336,24 +335,25 @@ DIALOG_SIM_MODEL_BASE::DIALOG_SIM_MODEL_BASE( wxWindow* parent, wxWindowID id, c
|
|||
m_browseButton->Connect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( DIALOG_SIM_MODEL_BASE::onBrowseButtonUpdate ), NULL, this );
|
||||
m_modelNameLabel->Connect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( DIALOG_SIM_MODEL_BASE::onModelNameLabelUpdate ), NULL, this );
|
||||
m_modelNameChoice->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_SIM_MODEL_BASE::onModelNameChoice ), NULL, this );
|
||||
m_ibisPinLabel->Connect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( DIALOG_SIM_MODEL_BASE::onIbisPinLabelUpdate ), NULL, this );
|
||||
m_ibisPinCombobox->Connect( wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler( DIALOG_SIM_MODEL_BASE::onIbisPinCombobox ), NULL, this );
|
||||
m_ibisPinCombobox->Connect( wxEVT_KILL_FOCUS, wxFocusEventHandler( DIALOG_SIM_MODEL_BASE::onModelNameComboboxKillFocus ), NULL, this );
|
||||
m_ibisPinCombobox->Connect( wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler( DIALOG_SIM_MODEL_BASE::onIbisPinComboboxTextEnter ), NULL, this );
|
||||
m_ibisPinCombobox->Connect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( DIALOG_SIM_MODEL_BASE::onModelNameComboboxUpdate ), NULL, this );
|
||||
m_pinLabel->Connect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( DIALOG_SIM_MODEL_BASE::onIbisPinLabelUpdate ), NULL, this );
|
||||
m_pinCombobox->Connect( wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler( DIALOG_SIM_MODEL_BASE::onPinCombobox ), NULL, this );
|
||||
m_pinCombobox->Connect( wxEVT_KILL_FOCUS, wxFocusEventHandler( DIALOG_SIM_MODEL_BASE::onModelNameComboboxKillFocus ), NULL, this );
|
||||
m_pinCombobox->Connect( wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler( DIALOG_SIM_MODEL_BASE::onPinComboboxTextEnter ), NULL, this );
|
||||
m_pinCombobox->Connect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( DIALOG_SIM_MODEL_BASE::onModelNameComboboxUpdate ), NULL, this );
|
||||
m_differentialCheckbox->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_SIM_MODEL_BASE::onDifferentialCheckbox ), NULL, this );
|
||||
m_differentialCheckbox->Connect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( DIALOG_SIM_MODEL_BASE::onOverrideCheckboxUpdate ), NULL, this );
|
||||
m_ibisModelLabel->Connect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( DIALOG_SIM_MODEL_BASE::onIbisModelLabelUpdate ), NULL, this );
|
||||
m_ibisModelCombobox->Connect( wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler( DIALOG_SIM_MODEL_BASE::onIbisModelCombobox ), NULL, this );
|
||||
m_ibisModelCombobox->Connect( wxEVT_KILL_FOCUS, wxFocusEventHandler( DIALOG_SIM_MODEL_BASE::onModelNameComboboxKillFocus ), NULL, this );
|
||||
m_ibisModelCombobox->Connect( wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler( DIALOG_SIM_MODEL_BASE::onIbisModelComboboxTextEnter ), NULL, this );
|
||||
m_ibisModelCombobox->Connect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( DIALOG_SIM_MODEL_BASE::onModelNameComboboxUpdate ), NULL, this );
|
||||
m_pinModelLabel->Connect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( DIALOG_SIM_MODEL_BASE::onIbisModelLabelUpdate ), NULL, this );
|
||||
m_pinModelCombobox->Connect( wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler( DIALOG_SIM_MODEL_BASE::onPinModelCombobox ), NULL, this );
|
||||
m_pinModelCombobox->Connect( wxEVT_KILL_FOCUS, wxFocusEventHandler( DIALOG_SIM_MODEL_BASE::onModelNameComboboxKillFocus ), NULL, this );
|
||||
m_pinModelCombobox->Connect( wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler( DIALOG_SIM_MODEL_BASE::onPinModelComboboxTextEnter ), NULL, this );
|
||||
m_pinModelCombobox->Connect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( DIALOG_SIM_MODEL_BASE::onModelNameComboboxUpdate ), NULL, this );
|
||||
m_waveformChoice->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_SIM_MODEL_BASE::onWaveformChoice ), NULL, this );
|
||||
m_rbBuiltinModel->Connect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( DIALOG_SIM_MODEL_BASE::onRadioButton ), NULL, this );
|
||||
m_staticTextDevType->Connect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( DIALOG_SIM_MODEL_BASE::onDeviceTypeLabelUpdate ), NULL, this );
|
||||
m_deviceTypeChoice->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_SIM_MODEL_BASE::onDeviceTypeChoice ), NULL, this );
|
||||
m_deviceTypeChoice->Connect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( DIALOG_SIM_MODEL_BASE::onDeviceTypeChoiceUpdate ), NULL, this );
|
||||
m_staticTextSpiceType->Connect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( DIALOG_SIM_MODEL_BASE::onTypeLabelUpdate ), NULL, this );
|
||||
m_typeChoice->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_SIM_MODEL_BASE::onTypeChoice ), NULL, this );
|
||||
m_deviceLabel->Connect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( DIALOG_SIM_MODEL_BASE::onDeviceTypeLabelUpdate ), NULL, this );
|
||||
m_deviceChoice->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_SIM_MODEL_BASE::onDeviceTypeChoice ), NULL, this );
|
||||
m_deviceChoice->Connect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( DIALOG_SIM_MODEL_BASE::onDeviceTypeChoiceUpdate ), NULL, this );
|
||||
m_deviceTypeLabel->Connect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( DIALOG_SIM_MODEL_BASE::onTypeLabelUpdate ), NULL, this );
|
||||
m_deviceTypeChoice->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_SIM_MODEL_BASE::onTypeChoice ), NULL, this );
|
||||
m_modelNotebook->Connect( wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING, wxNotebookEventHandler( DIALOG_SIM_MODEL_BASE::onPageChanging ), NULL, this );
|
||||
m_paramGridMgr->Connect( wxEVT_SIZE, wxSizeEventHandler( DIALOG_SIM_MODEL_BASE::onSizeParamGrid ), NULL, this );
|
||||
m_pinAssignmentsGrid->Connect( wxEVT_GRID_CELL_CHANGED, wxGridEventHandler( DIALOG_SIM_MODEL_BASE::onPinAssignmentsGridCellChange ), NULL, this );
|
||||
|
@ -371,24 +371,25 @@ DIALOG_SIM_MODEL_BASE::~DIALOG_SIM_MODEL_BASE()
|
|||
m_browseButton->Disconnect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( DIALOG_SIM_MODEL_BASE::onBrowseButtonUpdate ), NULL, this );
|
||||
m_modelNameLabel->Disconnect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( DIALOG_SIM_MODEL_BASE::onModelNameLabelUpdate ), NULL, this );
|
||||
m_modelNameChoice->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_SIM_MODEL_BASE::onModelNameChoice ), NULL, this );
|
||||
m_ibisPinLabel->Disconnect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( DIALOG_SIM_MODEL_BASE::onIbisPinLabelUpdate ), NULL, this );
|
||||
m_ibisPinCombobox->Disconnect( wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler( DIALOG_SIM_MODEL_BASE::onIbisPinCombobox ), NULL, this );
|
||||
m_ibisPinCombobox->Disconnect( wxEVT_KILL_FOCUS, wxFocusEventHandler( DIALOG_SIM_MODEL_BASE::onModelNameComboboxKillFocus ), NULL, this );
|
||||
m_ibisPinCombobox->Disconnect( wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler( DIALOG_SIM_MODEL_BASE::onIbisPinComboboxTextEnter ), NULL, this );
|
||||
m_ibisPinCombobox->Disconnect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( DIALOG_SIM_MODEL_BASE::onModelNameComboboxUpdate ), NULL, this );
|
||||
m_pinLabel->Disconnect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( DIALOG_SIM_MODEL_BASE::onIbisPinLabelUpdate ), NULL, this );
|
||||
m_pinCombobox->Disconnect( wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler( DIALOG_SIM_MODEL_BASE::onPinCombobox ), NULL, this );
|
||||
m_pinCombobox->Disconnect( wxEVT_KILL_FOCUS, wxFocusEventHandler( DIALOG_SIM_MODEL_BASE::onModelNameComboboxKillFocus ), NULL, this );
|
||||
m_pinCombobox->Disconnect( wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler( DIALOG_SIM_MODEL_BASE::onPinComboboxTextEnter ), NULL, this );
|
||||
m_pinCombobox->Disconnect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( DIALOG_SIM_MODEL_BASE::onModelNameComboboxUpdate ), NULL, this );
|
||||
m_differentialCheckbox->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_SIM_MODEL_BASE::onDifferentialCheckbox ), NULL, this );
|
||||
m_differentialCheckbox->Disconnect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( DIALOG_SIM_MODEL_BASE::onOverrideCheckboxUpdate ), NULL, this );
|
||||
m_ibisModelLabel->Disconnect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( DIALOG_SIM_MODEL_BASE::onIbisModelLabelUpdate ), NULL, this );
|
||||
m_ibisModelCombobox->Disconnect( wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler( DIALOG_SIM_MODEL_BASE::onIbisModelCombobox ), NULL, this );
|
||||
m_ibisModelCombobox->Disconnect( wxEVT_KILL_FOCUS, wxFocusEventHandler( DIALOG_SIM_MODEL_BASE::onModelNameComboboxKillFocus ), NULL, this );
|
||||
m_ibisModelCombobox->Disconnect( wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler( DIALOG_SIM_MODEL_BASE::onIbisModelComboboxTextEnter ), NULL, this );
|
||||
m_ibisModelCombobox->Disconnect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( DIALOG_SIM_MODEL_BASE::onModelNameComboboxUpdate ), NULL, this );
|
||||
m_pinModelLabel->Disconnect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( DIALOG_SIM_MODEL_BASE::onIbisModelLabelUpdate ), NULL, this );
|
||||
m_pinModelCombobox->Disconnect( wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler( DIALOG_SIM_MODEL_BASE::onPinModelCombobox ), NULL, this );
|
||||
m_pinModelCombobox->Disconnect( wxEVT_KILL_FOCUS, wxFocusEventHandler( DIALOG_SIM_MODEL_BASE::onModelNameComboboxKillFocus ), NULL, this );
|
||||
m_pinModelCombobox->Disconnect( wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler( DIALOG_SIM_MODEL_BASE::onPinModelComboboxTextEnter ), NULL, this );
|
||||
m_pinModelCombobox->Disconnect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( DIALOG_SIM_MODEL_BASE::onModelNameComboboxUpdate ), NULL, this );
|
||||
m_waveformChoice->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_SIM_MODEL_BASE::onWaveformChoice ), NULL, this );
|
||||
m_rbBuiltinModel->Disconnect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( DIALOG_SIM_MODEL_BASE::onRadioButton ), NULL, this );
|
||||
m_staticTextDevType->Disconnect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( DIALOG_SIM_MODEL_BASE::onDeviceTypeLabelUpdate ), NULL, this );
|
||||
m_deviceTypeChoice->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_SIM_MODEL_BASE::onDeviceTypeChoice ), NULL, this );
|
||||
m_deviceTypeChoice->Disconnect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( DIALOG_SIM_MODEL_BASE::onDeviceTypeChoiceUpdate ), NULL, this );
|
||||
m_staticTextSpiceType->Disconnect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( DIALOG_SIM_MODEL_BASE::onTypeLabelUpdate ), NULL, this );
|
||||
m_typeChoice->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_SIM_MODEL_BASE::onTypeChoice ), NULL, this );
|
||||
m_deviceLabel->Disconnect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( DIALOG_SIM_MODEL_BASE::onDeviceTypeLabelUpdate ), NULL, this );
|
||||
m_deviceChoice->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_SIM_MODEL_BASE::onDeviceTypeChoice ), NULL, this );
|
||||
m_deviceChoice->Disconnect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( DIALOG_SIM_MODEL_BASE::onDeviceTypeChoiceUpdate ), NULL, this );
|
||||
m_deviceTypeLabel->Disconnect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( DIALOG_SIM_MODEL_BASE::onTypeLabelUpdate ), NULL, this );
|
||||
m_deviceTypeChoice->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_SIM_MODEL_BASE::onTypeChoice ), NULL, this );
|
||||
m_modelNotebook->Disconnect( wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING, wxNotebookEventHandler( DIALOG_SIM_MODEL_BASE::onPageChanging ), NULL, this );
|
||||
m_paramGridMgr->Disconnect( wxEVT_SIZE, wxSizeEventHandler( DIALOG_SIM_MODEL_BASE::onSizeParamGrid ), NULL, this );
|
||||
m_pinAssignmentsGrid->Disconnect( wxEVT_GRID_CELL_CHANGED, wxGridEventHandler( DIALOG_SIM_MODEL_BASE::onPinAssignmentsGridCellChange ), NULL, this );
|
||||
|
|
|
@ -666,7 +666,7 @@
|
|||
<property name="floatable">1</property>
|
||||
<property name="font"></property>
|
||||
<property name="gripper">0</property>
|
||||
<property name="hidden">1</property>
|
||||
<property name="hidden">0</property>
|
||||
<property name="id">wxID_ANY</property>
|
||||
<property name="label">Pin:</property>
|
||||
<property name="markup">0</property>
|
||||
|
@ -677,7 +677,7 @@
|
|||
<property name="minimize_button">0</property>
|
||||
<property name="minimum_size"></property>
|
||||
<property name="moveable">1</property>
|
||||
<property name="name">m_ibisPinLabel</property>
|
||||
<property name="name">m_pinLabel</property>
|
||||
<property name="pane_border">1</property>
|
||||
<property name="pane_position"></property>
|
||||
<property name="pane_size"></property>
|
||||
|
@ -732,7 +732,7 @@
|
|||
<property name="floatable">1</property>
|
||||
<property name="font"></property>
|
||||
<property name="gripper">0</property>
|
||||
<property name="hidden">1</property>
|
||||
<property name="hidden">0</property>
|
||||
<property name="id">wxID_ANY</property>
|
||||
<property name="max_size"></property>
|
||||
<property name="maximize_button">0</property>
|
||||
|
@ -741,7 +741,7 @@
|
|||
<property name="minimize_button">0</property>
|
||||
<property name="minimum_size"></property>
|
||||
<property name="moveable">1</property>
|
||||
<property name="name">m_ibisPinCombobox</property>
|
||||
<property name="name">m_pinCombobox</property>
|
||||
<property name="pane_border">1</property>
|
||||
<property name="pane_position"></property>
|
||||
<property name="pane_size"></property>
|
||||
|
@ -764,9 +764,9 @@
|
|||
<property name="window_extra_style"></property>
|
||||
<property name="window_name"></property>
|
||||
<property name="window_style"></property>
|
||||
<event name="OnCombobox">onIbisPinCombobox</event>
|
||||
<event name="OnCombobox">onPinCombobox</event>
|
||||
<event name="OnKillFocus">onModelNameComboboxKillFocus</event>
|
||||
<event name="OnTextEnter">onIbisPinComboboxTextEnter</event>
|
||||
<event name="OnTextEnter">onPinComboboxTextEnter</event>
|
||||
<event name="OnUpdateUI">onModelNameComboboxUpdate</event>
|
||||
</object>
|
||||
</object>
|
||||
|
@ -804,7 +804,7 @@
|
|||
<property name="floatable">1</property>
|
||||
<property name="font"></property>
|
||||
<property name="gripper">0</property>
|
||||
<property name="hidden">1</property>
|
||||
<property name="hidden">0</property>
|
||||
<property name="id">wxID_ANY</property>
|
||||
<property name="label">Differential</property>
|
||||
<property name="max_size"></property>
|
||||
|
@ -872,9 +872,9 @@
|
|||
<property name="floatable">1</property>
|
||||
<property name="font"></property>
|
||||
<property name="gripper">0</property>
|
||||
<property name="hidden">1</property>
|
||||
<property name="hidden">0</property>
|
||||
<property name="id">wxID_ANY</property>
|
||||
<property name="label">Model:</property>
|
||||
<property name="label">Pin model:</property>
|
||||
<property name="markup">0</property>
|
||||
<property name="max_size"></property>
|
||||
<property name="maximize_button">0</property>
|
||||
|
@ -883,7 +883,7 @@
|
|||
<property name="minimize_button">0</property>
|
||||
<property name="minimum_size"></property>
|
||||
<property name="moveable">1</property>
|
||||
<property name="name">m_ibisModelLabel</property>
|
||||
<property name="name">m_pinModelLabel</property>
|
||||
<property name="pane_border">1</property>
|
||||
<property name="pane_position"></property>
|
||||
<property name="pane_size"></property>
|
||||
|
@ -938,7 +938,7 @@
|
|||
<property name="floatable">1</property>
|
||||
<property name="font"></property>
|
||||
<property name="gripper">0</property>
|
||||
<property name="hidden">1</property>
|
||||
<property name="hidden">0</property>
|
||||
<property name="id">wxID_ANY</property>
|
||||
<property name="max_size"></property>
|
||||
<property name="maximize_button">0</property>
|
||||
|
@ -947,7 +947,7 @@
|
|||
<property name="minimize_button">0</property>
|
||||
<property name="minimum_size"></property>
|
||||
<property name="moveable">1</property>
|
||||
<property name="name">m_ibisModelCombobox</property>
|
||||
<property name="name">m_pinModelCombobox</property>
|
||||
<property name="pane_border">1</property>
|
||||
<property name="pane_position"></property>
|
||||
<property name="pane_size"></property>
|
||||
|
@ -970,12 +970,144 @@
|
|||
<property name="window_extra_style"></property>
|
||||
<property name="window_name"></property>
|
||||
<property name="window_style"></property>
|
||||
<event name="OnCombobox">onIbisModelCombobox</event>
|
||||
<event name="OnCombobox">onPinModelCombobox</event>
|
||||
<event name="OnKillFocus">onModelNameComboboxKillFocus</event>
|
||||
<event name="OnTextEnter">onIbisModelComboboxTextEnter</event>
|
||||
<event name="OnTextEnter">onPinModelComboboxTextEnter</event>
|
||||
<event name="OnUpdateUI">onModelNameComboboxUpdate</event>
|
||||
</object>
|
||||
</object>
|
||||
<object class="gbsizeritem" expanded="1">
|
||||
<property name="border">5</property>
|
||||
<property name="colspan">1</property>
|
||||
<property name="column">0</property>
|
||||
<property name="flag">wxALIGN_CENTER_VERTICAL</property>
|
||||
<property name="row">4</property>
|
||||
<property name="rowspan">1</property>
|
||||
<object class="wxStaticText" expanded="1">
|
||||
<property name="BottomDockable">1</property>
|
||||
<property name="LeftDockable">1</property>
|
||||
<property name="RightDockable">1</property>
|
||||
<property name="TopDockable">1</property>
|
||||
<property name="aui_layer"></property>
|
||||
<property name="aui_name"></property>
|
||||
<property name="aui_position"></property>
|
||||
<property name="aui_row"></property>
|
||||
<property name="best_size"></property>
|
||||
<property name="bg"></property>
|
||||
<property name="caption"></property>
|
||||
<property name="caption_visible">1</property>
|
||||
<property name="center_pane">0</property>
|
||||
<property name="close_button">1</property>
|
||||
<property name="context_help"></property>
|
||||
<property name="context_menu">1</property>
|
||||
<property name="default_pane">0</property>
|
||||
<property name="dock">Dock</property>
|
||||
<property name="dock_fixed">0</property>
|
||||
<property name="docking">Left</property>
|
||||
<property name="enabled">1</property>
|
||||
<property name="fg"></property>
|
||||
<property name="floatable">1</property>
|
||||
<property name="font"></property>
|
||||
<property name="gripper">0</property>
|
||||
<property name="hidden">0</property>
|
||||
<property name="id">wxID_ANY</property>
|
||||
<property name="label">Waveform:</property>
|
||||
<property name="markup">0</property>
|
||||
<property name="max_size"></property>
|
||||
<property name="maximize_button">0</property>
|
||||
<property name="maximum_size"></property>
|
||||
<property name="min_size"></property>
|
||||
<property name="minimize_button">0</property>
|
||||
<property name="minimum_size"></property>
|
||||
<property name="moveable">1</property>
|
||||
<property name="name">m_waveformLabel</property>
|
||||
<property name="pane_border">1</property>
|
||||
<property name="pane_position"></property>
|
||||
<property name="pane_size"></property>
|
||||
<property name="permission">protected</property>
|
||||
<property name="pin_button">1</property>
|
||||
<property name="pos"></property>
|
||||
<property name="resize">Resizable</property>
|
||||
<property name="show">1</property>
|
||||
<property name="size"></property>
|
||||
<property name="style"></property>
|
||||
<property name="subclass">; ; forward_declare</property>
|
||||
<property name="toolbar_pane">0</property>
|
||||
<property name="tooltip"></property>
|
||||
<property name="window_extra_style"></property>
|
||||
<property name="window_name"></property>
|
||||
<property name="window_style"></property>
|
||||
<property name="wrap">-1</property>
|
||||
</object>
|
||||
</object>
|
||||
<object class="gbsizeritem" expanded="1">
|
||||
<property name="border">2</property>
|
||||
<property name="colspan">1</property>
|
||||
<property name="column">1</property>
|
||||
<property name="flag">wxEXPAND|wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM</property>
|
||||
<property name="row">4</property>
|
||||
<property name="rowspan">1</property>
|
||||
<object class="wxChoice" expanded="1">
|
||||
<property name="BottomDockable">1</property>
|
||||
<property name="LeftDockable">1</property>
|
||||
<property name="RightDockable">1</property>
|
||||
<property name="TopDockable">1</property>
|
||||
<property name="aui_layer"></property>
|
||||
<property name="aui_name"></property>
|
||||
<property name="aui_position"></property>
|
||||
<property name="aui_row"></property>
|
||||
<property name="best_size"></property>
|
||||
<property name="bg"></property>
|
||||
<property name="caption"></property>
|
||||
<property name="caption_visible">1</property>
|
||||
<property name="center_pane">0</property>
|
||||
<property name="choices"></property>
|
||||
<property name="close_button">1</property>
|
||||
<property name="context_help"></property>
|
||||
<property name="context_menu">1</property>
|
||||
<property name="default_pane">0</property>
|
||||
<property name="dock">Dock</property>
|
||||
<property name="dock_fixed">0</property>
|
||||
<property name="docking">Left</property>
|
||||
<property name="enabled">1</property>
|
||||
<property name="fg"></property>
|
||||
<property name="floatable">1</property>
|
||||
<property name="font"></property>
|
||||
<property name="gripper">0</property>
|
||||
<property name="hidden">0</property>
|
||||
<property name="id">wxID_ANY</property>
|
||||
<property name="max_size"></property>
|
||||
<property name="maximize_button">0</property>
|
||||
<property name="maximum_size"></property>
|
||||
<property name="min_size"></property>
|
||||
<property name="minimize_button">0</property>
|
||||
<property name="minimum_size"></property>
|
||||
<property name="moveable">1</property>
|
||||
<property name="name">m_waveformChoice</property>
|
||||
<property name="pane_border">1</property>
|
||||
<property name="pane_position"></property>
|
||||
<property name="pane_size"></property>
|
||||
<property name="permission">protected</property>
|
||||
<property name="pin_button">1</property>
|
||||
<property name="pos"></property>
|
||||
<property name="resize">Resizable</property>
|
||||
<property name="selection">0</property>
|
||||
<property name="show">1</property>
|
||||
<property name="size"></property>
|
||||
<property name="style"></property>
|
||||
<property name="subclass">; ; forward_declare</property>
|
||||
<property name="toolbar_pane">0</property>
|
||||
<property name="tooltip"></property>
|
||||
<property name="validator_data_type"></property>
|
||||
<property name="validator_style">wxFILTER_NONE</property>
|
||||
<property name="validator_type">wxDefaultValidator</property>
|
||||
<property name="validator_variable"></property>
|
||||
<property name="window_extra_style"></property>
|
||||
<property name="window_name"></property>
|
||||
<property name="window_style"></property>
|
||||
<event name="OnChoice">onWaveformChoice</event>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem" expanded="1">
|
||||
|
@ -1110,7 +1242,7 @@
|
|||
<property name="minimize_button">0</property>
|
||||
<property name="minimum_size"></property>
|
||||
<property name="moveable">1</property>
|
||||
<property name="name">m_staticTextDevType</property>
|
||||
<property name="name">m_deviceLabel</property>
|
||||
<property name="pane_border">1</property>
|
||||
<property name="pane_position"></property>
|
||||
<property name="pane_size"></property>
|
||||
|
@ -1171,7 +1303,7 @@
|
|||
<property name="minimize_button">0</property>
|
||||
<property name="minimum_size"></property>
|
||||
<property name="moveable">1</property>
|
||||
<property name="name">m_deviceTypeChoice</property>
|
||||
<property name="name">m_deviceChoice</property>
|
||||
<property name="pane_border">1</property>
|
||||
<property name="pane_position"></property>
|
||||
<property name="pane_size"></property>
|
||||
|
@ -1229,7 +1361,7 @@
|
|||
<property name="gripper">0</property>
|
||||
<property name="hidden">0</property>
|
||||
<property name="id">wxID_ANY</property>
|
||||
<property name="label">Type:</property>
|
||||
<property name="label">Device type:</property>
|
||||
<property name="markup">0</property>
|
||||
<property name="max_size"></property>
|
||||
<property name="maximize_button">0</property>
|
||||
|
@ -1238,7 +1370,7 @@
|
|||
<property name="minimize_button">0</property>
|
||||
<property name="minimum_size"></property>
|
||||
<property name="moveable">1</property>
|
||||
<property name="name">m_staticTextSpiceType</property>
|
||||
<property name="name">m_deviceTypeLabel</property>
|
||||
<property name="pane_border">1</property>
|
||||
<property name="pane_position"></property>
|
||||
<property name="pane_size"></property>
|
||||
|
@ -1299,7 +1431,7 @@
|
|||
<property name="minimize_button">0</property>
|
||||
<property name="minimum_size"></property>
|
||||
<property name="moveable">1</property>
|
||||
<property name="name">m_typeChoice</property>
|
||||
<property name="name">m_deviceTypeChoice</property>
|
||||
<property name="pane_border">1</property>
|
||||
<property name="pane_position"></property>
|
||||
<property name="pane_size"></property>
|
||||
|
|
|
@ -60,16 +60,18 @@ class DIALOG_SIM_MODEL_BASE : public DIALOG_SHIM
|
|||
STD_BITMAP_BUTTON* m_browseButton;
|
||||
wxStaticText* m_modelNameLabel;
|
||||
wxChoice* m_modelNameChoice;
|
||||
wxStaticText* m_ibisPinLabel;
|
||||
wxComboBox* m_ibisPinCombobox;
|
||||
wxStaticText* m_pinLabel;
|
||||
wxComboBox* m_pinCombobox;
|
||||
wxCheckBox* m_differentialCheckbox;
|
||||
wxStaticText* m_ibisModelLabel;
|
||||
wxComboBox* m_ibisModelCombobox;
|
||||
wxStaticText* m_pinModelLabel;
|
||||
wxComboBox* m_pinModelCombobox;
|
||||
wxStaticText* m_waveformLabel;
|
||||
wxChoice* m_waveformChoice;
|
||||
wxRadioButton* m_rbBuiltinModel;
|
||||
wxStaticText* m_staticTextDevType;
|
||||
wxStaticText* m_deviceLabel;
|
||||
wxChoice* m_deviceChoice;
|
||||
wxStaticText* m_deviceTypeLabel;
|
||||
wxChoice* m_deviceTypeChoice;
|
||||
wxStaticText* m_staticTextSpiceType;
|
||||
wxChoice* m_typeChoice;
|
||||
wxNotebook* m_modelNotebook;
|
||||
wxPanel* m_parametersPanel;
|
||||
wxPropertyGridManager* m_paramGridMgr;
|
||||
|
@ -95,15 +97,16 @@ class DIALOG_SIM_MODEL_BASE : public DIALOG_SHIM
|
|||
virtual void onModelNameLabelUpdate( wxUpdateUIEvent& event ) { event.Skip(); }
|
||||
virtual void onModelNameChoice( wxCommandEvent& event ) { event.Skip(); }
|
||||
virtual void onIbisPinLabelUpdate( wxUpdateUIEvent& event ) { event.Skip(); }
|
||||
virtual void onIbisPinCombobox( wxCommandEvent& event ) { event.Skip(); }
|
||||
virtual void onPinCombobox( wxCommandEvent& event ) { event.Skip(); }
|
||||
virtual void onModelNameComboboxKillFocus( wxFocusEvent& event ) { event.Skip(); }
|
||||
virtual void onIbisPinComboboxTextEnter( wxCommandEvent& event ) { event.Skip(); }
|
||||
virtual void onPinComboboxTextEnter( wxCommandEvent& event ) { event.Skip(); }
|
||||
virtual void onModelNameComboboxUpdate( wxUpdateUIEvent& event ) { event.Skip(); }
|
||||
virtual void onDifferentialCheckbox( wxCommandEvent& event ) { event.Skip(); }
|
||||
virtual void onOverrideCheckboxUpdate( wxUpdateUIEvent& event ) { event.Skip(); }
|
||||
virtual void onIbisModelLabelUpdate( wxUpdateUIEvent& event ) { event.Skip(); }
|
||||
virtual void onIbisModelCombobox( wxCommandEvent& event ) { event.Skip(); }
|
||||
virtual void onIbisModelComboboxTextEnter( wxCommandEvent& event ) { event.Skip(); }
|
||||
virtual void onPinModelCombobox( wxCommandEvent& event ) { event.Skip(); }
|
||||
virtual void onPinModelComboboxTextEnter( wxCommandEvent& event ) { event.Skip(); }
|
||||
virtual void onWaveformChoice( wxCommandEvent& event ) { event.Skip(); }
|
||||
virtual void onDeviceTypeLabelUpdate( wxUpdateUIEvent& event ) { event.Skip(); }
|
||||
virtual void onDeviceTypeChoice( wxCommandEvent& event ) { event.Skip(); }
|
||||
virtual void onDeviceTypeChoiceUpdate( wxUpdateUIEvent& event ) { event.Skip(); }
|
||||
|
|
|
@ -23,8 +23,8 @@ _HKI( "### Top-level Clauses\n"
|
|||
"\n"
|
||||
"### Constraints\n"
|
||||
"\n"
|
||||
"| Constraint Type | Argument Type | Description |\n"
|
||||
"|---------------------------|-------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n"
|
||||
"| Constraint type | Argument type | Description |\n"
|
||||
"|---------------------------|------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n"
|
||||
"| `annular_width` | min/opt/max | Checks the width of annular rings on vias.<br> | \n"
|
||||
"| `clearance` | min | Specifies the **electrical** clearance between copper objects of different nets. (See `physical_clearance` if you wish to specify clearance between objects regardless of net.)<br><br>To allow copper objects to overlap (collide), create a `clearance` constraint with the `min` value less than zero (for example, `-1`).<br> |\n"
|
||||
"| `courtyard_clearance` | min | Checks the clearance between footprint courtyards and generates an error if any two courtyards are closer than the `min` distance. If a footprint does not have a courtyard shape, no errors will be generated from this constraint.<br> |\n"
|
||||
|
|
Loading…
Reference in New Issue