KiCad PCB EDA Suite
NETLIST_DIALOG Class Reference
Inheritance diagram for NETLIST_DIALOG:
NETLIST_DIALOG_BASE DIALOG_SHIM KIWAY_HOLDER

Public Member Functions

 NETLIST_DIALOG (SCH_EDIT_FRAME *parent)
 
 ~NETLIST_DIALOG ()
 
int ShowQuasiModal ()
 
void EndQuasiModal (int retCode)
 
bool IsQuasiModal ()
 
bool Show (bool show) override
 
bool Enable (bool enable) override
 
KIWAYKiway () const
 Function Kiway returns a reference to the KIWAY that this object has an opportunity to participate in. More...
 
PROJECTPrj () const
 Function Prj returns a reference to the PROJECT "associated with" this KIWAY. More...
 
void SetKiway (wxWindow *aDest, KIWAY *aKiway)
 Function SetKiway. More...
 

Public Attributes

SCH_EDIT_FRAMEm_Parent
 
wxString m_NetFmtName
 
NETLIST_PAGE_DIALOGm_PanelNetType [4+CUSTOMPANEL_COUNTMAX]
 

Protected Types

enum  { ID_CHANGE_NOTEBOOK_PAGE = 1000, ID_CREATE_NETLIST, ID_ADD_PLUGIN, ID_DEL_PLUGIN }
 

Protected Member Functions

virtual void OnCancelClick (wxCommandEvent &event)
 
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 FixOSXCancelButtonIssue ()
 A ugly hack to fix an issue on OSX: when typing ctrl+c in a wxTextCtrl inside a dialog, it is closed instead of copying a text if a button with wxID_CANCEL is used in a wxStdDialogButtonSizer, when the dlg is created by wxFormBuilder: the label is &Cancel, and this accelerator key has priority to copy text standard accelerator, and the dlg is closed when trying to copy text this function do nothing on other platforms. More...
 

Protected Attributes

bool m_asFormatSelected
 
wxNotebook * m_NoteBook
 
wxButton * m_buttonNetlist
 
wxButton * m_buttonCancel
 
wxButton * m_buttonAddPlugin
 
wxButton * m_buttonDelPlugin
 
wxStaticLine * m_staticline1
 
wxCheckBox * m_cbUseDefaultNetlistName
 
wxStaticText * m_staticTextDefaultFN
 
wxTextCtrl * m_textCtrlDefaultFileName
 
std::string m_hash_key
 
EVENT_LOOPm_qmodal_loop
 
bool m_qmodal_showing
 
WDO_ENABLE_DISABLEm_qmodal_parent_disabler
 

Private Member Functions

void InstallCustomPages ()
 
NETLIST_PAGE_DIALOGAddOneCustomPage (const wxString &aTitle, const wxString &aCommandString, NETLIST_TYPE_ID aNetTypeId)
 
void InstallPageSpice ()
 
void GenNetlist (wxCommandEvent &event) override
 
void RunSimulator (wxCommandEvent &event)
 
void NetlistUpdateOpt ()
 
void OnNetlistTypeSelection (wxNotebookEvent &event) override
 
void SelectDefaultNetlistType (wxCommandEvent &event)
 
void OnAddPlugin (wxCommandEvent &event) override
 Function OnAddPlugin Add a new panel for a new netlist plugin. More...
 
void OnDelPlugin (wxCommandEvent &event) override
 Function OnDelPlugin Remove a panel relative to a netlist plugin. More...
 
void WriteCurrentNetlistSetup ()
 Function WriteCurrentNetlistSetup Write the current netlist options setup in the configuration. More...
 
bool GetUseDefaultNetlistName ()
 
const wxString UserNetlistTypeName (bool first_item)
 Function UserNetlistTypeName to retrieve user netlist type names. More...
 
bool FilenamePrms (NETLIST_TYPE_ID aNetTypeId, wxString *aExt, wxString *aWildCard)
 Function FilenamePrms returns the filename extension and the wildcard string for this curr or a void name if there is no default name. More...
 

Private Attributes

wxConfigBase * m_config
 

Friends

class NETLIST_PAGE_DIALOG
 

Detailed Description

Definition at line 118 of file eeschema/dialogs/dialog_netlist.cpp.

Member Enumeration Documentation

anonymous enum
protectedinherited

Constructor & Destructor Documentation

NETLIST_DIALOG::NETLIST_DIALOG ( SCH_EDIT_FRAME parent)

Definition at line 305 of file eeschema/dialogs/dialog_netlist.cpp.

References CUSTOMPANEL_COUNTMAX, DIALOG_SHIM::FinishDialogSettings(), SCH_EDIT_FRAME::GetNetListFormatName(), InstallCustomPages(), InstallPageSpice(), Kiface(), KIFACE_I::KifaceSettings(), m_asFormatSelected, NETLIST_DIALOG_BASE::m_buttonNetlist, NETLIST_DIALOG_BASE::m_cbUseDefaultNetlistName, m_config, NETLIST_PAGE_DIALOG::m_IsCurrentFormat, m_NetFmtName, NETLIST_DIALOG_BASE::m_NoteBook, m_PanelNetType, m_Parent, NET_TYPE_CADSTAR, NET_TYPE_ORCADPCB2, NET_TYPE_PCBNEW, NETLIST_PAGE_DIALOG, NETLIST_USE_DEFAULT_NETNAME, PANELCADSTAR, PANELCUSTOMBASE, PANELORCADPCB2, and PANELPCBNEW.

305  :
306  NETLIST_DIALOG_BASE( parent )
307 {
308  m_Parent = parent;
310 
311  long tmp;
312  m_config->Read( NETLIST_USE_DEFAULT_NETNAME, &tmp, 0l );
313  m_cbUseDefaultNetlistName->SetValue( tmp );
315 
316  for( int ii = 0; ii < PANELCUSTOMBASE + CUSTOMPANEL_COUNTMAX; ii++ )
317  {
318  m_PanelNetType[ii] = NULL;
319  }
320 
321  // Add notebook pages:
322  m_asFormatSelected = false; // Will be set to true, if a format is selected
323 
324  // Add Panel FORMAT PCBNEW
326  new NETLIST_PAGE_DIALOG( m_NoteBook, wxT( "Pcbnew" ),
327  NET_TYPE_PCBNEW );
328 
329  // Add Panel FORMAT ORCADPCB2
331  new NETLIST_PAGE_DIALOG( m_NoteBook, wxT( "OrcadPCB2" ),
333 
334  // Add Panel FORMAT CADSTAR
336  new NETLIST_PAGE_DIALOG( m_NoteBook, wxT( "CadStar" ),
338 
339  // Add Panel spice
341 
342  // Add custom panels:
344 
345  if( !m_asFormatSelected )
346  m_PanelNetType[PANELPCBNEW]->m_IsCurrentFormat->SetValue( true );
347 
348  SetDefaultItem( m_buttonNetlist );
349 
350  // Now all widgets have the size fixed, call FinishDialogSettings
352 }
const wxString GetNetListFormatName() const
Definition: schframe.h:246
NETLIST_DIALOG_BASE(wxWindow *parent, wxWindowID id=wxID_ANY, const wxString &title=_("Netlist"), const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxSize(404, 334), long style=wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER)
void FinishDialogSettings()
In all dialogs, we must call the same functions to fix minimal dlg size, the default position and per...
KIFACE_I & Kiface()
Global KIFACE_I "get" accessor.
Definition: kicad.cpp:52
wxCheckBox * m_cbUseDefaultNetlistName
#define NETLIST_USE_DEFAULT_NETNAME
#define CUSTOMPANEL_COUNTMAX
wxConfigBase * KifaceSettings() const
Definition: kiface_i.h:103
NETLIST_PAGE_DIALOG * m_PanelNetType[4+CUSTOMPANEL_COUNTMAX]
NETLIST_DIALOG::~NETLIST_DIALOG ( )
inline

Definition at line 137 of file eeschema/dialogs/dialog_netlist.cpp.

137 { };

Member Function Documentation

NETLIST_PAGE_DIALOG * NETLIST_DIALOG::AddOneCustomPage ( const wxString &  aTitle,
const wxString &  aCommandString,
NETLIST_TYPE_ID  aNetTypeId 
)
private

Definition at line 433 of file eeschema/dialogs/dialog_netlist.cpp.

References NETLIST_PAGE_DIALOG::m_CommandStringCtrl, NETLIST_PAGE_DIALOG::m_LowBoxSizer, NETLIST_DIALOG_BASE::m_NoteBook, NETLIST_PAGE_DIALOG::m_TitleStringCtrl, and NETLIST_PAGE_DIALOG.

Referenced by InstallCustomPages(), and OnAddPlugin().

436 {
437  NETLIST_PAGE_DIALOG* currPage;
438 
439  currPage = new NETLIST_PAGE_DIALOG( m_NoteBook, aTitle, aNetTypeId );
440 
441 
442  currPage->m_LowBoxSizer->Add( new wxStaticText( currPage,
443  -1, _( "Netlist command:" ) ), 0,
444  wxGROW | wxLEFT | wxRIGHT | wxTOP, 5 );
445 
446  currPage->m_CommandStringCtrl = new wxTextCtrl( currPage, -1, aCommandString,
447  wxDefaultPosition, wxDefaultSize );
448 
449  currPage->m_CommandStringCtrl->SetInsertionPoint( 1 );
450  currPage->m_LowBoxSizer->Add( currPage->m_CommandStringCtrl,
451  0,
452  wxGROW | wxALIGN_CENTER_VERTICAL | wxLEFT | wxRIGHT | wxBOTTOM,
453  5 );
454 
455  currPage->m_LowBoxSizer->Add( new wxStaticText( currPage,
456  -1, _( "Title:" ) ), 0,
457  wxGROW | wxLEFT | wxRIGHT | wxTOP, 5 );
458 
459  currPage->m_TitleStringCtrl = new wxTextCtrl( currPage, -1, aTitle,
460  wxDefaultPosition, wxDefaultSize );
461 
462  currPage->m_TitleStringCtrl->SetInsertionPoint( 1 );
463  currPage->m_LowBoxSizer->Add( currPage->m_TitleStringCtrl,
464  0,
465  wxGROW | wxALIGN_CENTER_VERTICAL | wxLEFT | wxRIGHT | wxBOTTOM,
466  5 );
467  return currPage;
468 }
bool DIALOG_SHIM::Enable ( bool  enable)
overrideinherited

Definition at line 182 of file dialog_shim.cpp.

Referenced by DIALOG_PRINT_USING_PRINTER::InitValues().

183 {
184  // so we can do logging of this state change:
185 
186 #if defined(DEBUG)
187  const char* type_id = typeid( *this ).name();
188  printf( "wxDialog %s: %s\n", type_id, enable ? "enabled" : "disabled" );
189 #endif
190 
191  return wxDialog::Enable( enable );
192 }
void DIALOG_SHIM::EndQuasiModal ( int  retCode)
inherited

Definition at line 540 of file dialog_shim.cpp.

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

Referenced by HK_PROMPT_DIALOG::EndFlexible(), DIALOG_SHIM::OnButton(), DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::OnCancelButtonClick(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::OnCancelButtonClick(), DIALOG_EDIT_ONE_FIELD::OnCancelClick(), DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::OnCloseDialog(), DIALOG_EDIT_ONE_FIELD::OnCloseDialog(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::OnCloseDialog(), DIALOG_CHOOSE_COMPONENT::OnCloseTimer(), DIALOG_SHIM::OnCloseWindow(), DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::OnOKButtonClick(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::OnOKButtonClick(), DIALOG_EDIT_ONE_FIELD::OnOkClick(), DIALOG_EXCHANGE_MODULE::OnQuit(), DIALOG_CHOOSE_COMPONENT::OnSchViewDClick(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::SetInitCmp(), and DIALOG_SHIM::~DIALOG_SHIM().

541 {
542  // Hook up validator and transfer data from controls handling so quasi-modal dialogs
543  // handle validation in the same way as other dialogs.
544  if( ( retCode == wxID_OK ) && ( !Validate() || !TransferDataFromWindow() ) )
545  return;
546 
547  SetReturnCode( retCode );
548 
549  if( !IsQuasiModal() )
550  {
551  wxFAIL_MSG( wxT( "either DIALOG_SHIM::EndQuasiModal called twice or ShowQuasiModal wasn't called" ) );
552  return;
553  }
554 
555  m_qmodal_showing = false;
556 
557  if( m_qmodal_loop )
558  {
559  if( m_qmodal_loop->IsRunning() )
560  m_qmodal_loop->Exit( 0 );
561  else
562  m_qmodal_loop->ScheduleExit( 0 );
563 
564  m_qmodal_loop = NULL;
565  }
566 
569 
570  Show( false );
571 }
bool m_qmodal_showing
Definition: dialog_shim.h:132
EVENT_LOOP * m_qmodal_loop
Definition: dialog_shim.h:131
bool IsQuasiModal()
Definition: dialog_shim.h:93
bool Show(bool show) override
WDO_ENABLE_DISABLE * m_qmodal_parent_disabler
Definition: dialog_shim.h:133
bool NETLIST_DIALOG::FilenamePrms ( NETLIST_TYPE_ID  aNetTypeId,
wxString *  aExt,
wxString *  aWildCard 
)
private

Function FilenamePrms returns the filename extension and the wildcard string for this curr or a void name if there is no default name.

Parameters
aNetTypeId= the netlist type ( NET_TYPE_PCBNEW ... )
aExt= a reference to a wxString to return the default file ext.
aWildCard= reference to a wxString to return the default wildcard.
Returns
true for known netlist type, false for custom formats

Definition at line 606 of file eeschema/dialogs/dialog_netlist.cpp.

References AllFilesWildcard, NET_TYPE_CADSTAR, NET_TYPE_ORCADPCB2, NET_TYPE_PCBNEW, NET_TYPE_SPICE, NetlistFileExtension, and NetlistFileWildcard.

Referenced by GenNetlist(), and OnNetlistTypeSelection().

608 {
609  wxString fileExt;
610  wxString fileWildcard;
611 
612  bool ret = true;
613 
614  switch( aNetTypeId )
615  {
616  case NET_TYPE_SPICE:
617  fileExt = wxT( "cir" );
618  fileWildcard = _( "SPICE netlist file (.cir)|*.cir" );
619  break;
620 
621  case NET_TYPE_CADSTAR:
622  fileExt = wxT( "frp" );
623  fileWildcard = _( "CadStar netlist file (.frp)|*.frp" );
624  break;
625 
626  case NET_TYPE_PCBNEW:
627  case NET_TYPE_ORCADPCB2:
628  fileExt = NetlistFileExtension;
629  fileWildcard = NetlistFileWildcard;
630  break;
631 
632  default: // custom, NET_TYPE_CUSTOM1 and greater
633  fileWildcard = AllFilesWildcard;
634  ret = false;
635  }
636 
637  if( aExt )
638  *aExt = fileExt;
639 
640  if( aWildCard )
641  *aWildCard = fileWildcard;
642 
643  return ret;
644 }
const wxString AllFilesWildcard
const wxString NetlistFileExtension
const wxString NetlistFileWildcard
void DIALOG_SHIM::FinishDialogSettings ( )
protectedinherited

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

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

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

Definition at line 104 of file dialog_shim.cpp.

References PCAD2KICAD::Center.

Referenced by DIALOG_BOM::DIALOG_BOM(), DIALOG_COPPER_ZONE::DIALOG_COPPER_ZONE(), DIALOG_DESIGN_RULES::DIALOG_DESIGN_RULES(), DIALOG_DIMENSION_EDITOR::DIALOG_DIMENSION_EDITOR(), DIALOG_DISPLAY_OPTIONS::DIALOG_DISPLAY_OPTIONS(), DIALOG_DRC_CONTROL::DIALOG_DRC_CONTROL(), DIALOG_EDIT_COMPONENT_IN_LIBRARY::DIALOG_EDIT_COMPONENT_IN_LIBRARY(), DIALOG_EESCHEMA_OPTIONS::DIALOG_EESCHEMA_OPTIONS(), DIALOG_ENUM_PADS::DIALOG_ENUM_PADS(), DIALOG_EXPORT_3DFILE::DIALOG_EXPORT_3DFILE(), DIALOG_EXPORT_IDF3::DIALOG_EXPORT_IDF3(), DIALOG_EXPORT_STEP::DIALOG_EXPORT_STEP(), DIALOG_FOOTPRINT_WIZARD_LIST::DIALOG_FOOTPRINT_WIZARD_LIST(), DIALOG_KEEPOUT_AREA_PROPERTIES::DIALOG_KEEPOUT_AREA_PROPERTIES(), DIALOG_LABEL_EDITOR::DIALOG_LABEL_EDITOR(), DIALOG_LIB_EDIT_DRAW_ITEM::DIALOG_LIB_EDIT_DRAW_ITEM(), DIALOG_LIB_EDIT_TEXT::DIALOG_LIB_EDIT_TEXT(), DIALOG_LIB_NEW_COMPONENT::DIALOG_LIB_NEW_COMPONENT(), DIALOG_LIBEDIT_OPTIONS::DIALOG_LIBEDIT_OPTIONS(), DIALOG_PAD_PROPERTIES::DIALOG_PAD_PROPERTIES(), DIALOG_PLOT_SCHEMATIC::DIALOG_PLOT_SCHEMATIC(), DIALOG_SCH_EDIT_SHEET_PIN::DIALOG_SCH_EDIT_SHEET_PIN(), DIALOG_SCH_SHEET_PROPS::DIALOG_SCH_SHEET_PROPS(), DIALOG_SELECT_PRETTY_LIB::DIALOG_SELECT_PRETTY_LIB(), DIALOG_TRACK_VIA_SIZE::DIALOG_TRACK_VIA_SIZE(), DIALOG_EDIT_ONE_FIELD::init(), NETLIST_DIALOG(), DIALOG_LIB_EDIT_PIN::OnInitDialog(), DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::OnInitDialog(), DIALOG_TRACK_VIA_PROPERTIES::OnInitDlg(), DIALOG_GRAPHIC_ITEMS_OPTIONS::OnInitDlg(), DialogEditModuleText::OnInitDlg(), DIALOG_SET_GRID::OnInitDlg(), DIALOG_PCB_TEXT_PROPERTIES::OnInitDlg(), DIALOG_PRINT_FOR_MODEDIT::OnInitDlg(), DIALOG_GRAPHIC_ITEM_PROPERTIES::OnInitDlg(), DIALOG_MODULE_MODULE_EDITOR::OnInitDlg(), DIALOG_SIM_SETTINGS::onInitDlg(), DIALOG_SPICE_MODEL::onInitDlg(), DIALOG_MODULE_BOARD_EDITOR::OnInitDlg(), DIALOG_PRINT_USING_PRINTER::OnInitDlg(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::OnInitDlg(), TARGET_PROPERTIES_DIALOG_EDITOR::TARGET_PROPERTIES_DIALOG_EDITOR(), and DIALOG_SIGNAL_LIST::TransferDataToWindow().

105 {
106  // must be called from the constructor of derived classes,
107  // when all widgets are initialized, and therefore their size fixed
108 
109  // SetSizeHints fixes the minimal size of sizers in the dialog
110  // (SetSizeHints calls Fit(), so no need to call it)
111  GetSizer()->SetSizeHints( this );
112 
113  // the default position, when calling the first time the dlg
114  Center();
115 }
void DIALOG_SHIM::FixOSXCancelButtonIssue ( )
protectedinherited

A ugly hack to fix an issue on OSX: when typing ctrl+c in a wxTextCtrl inside a dialog, it is closed instead of copying a text if a button with wxID_CANCEL is used in a wxStdDialogButtonSizer, when the dlg is created by wxFormBuilder: the label is &Cancel, and this accelerator key has priority to copy text standard accelerator, and the dlg is closed when trying to copy text this function do nothing on other platforms.

Definition at line 117 of file dialog_shim.cpp.

Referenced by DIALOG_SHIM::Show().

118 {
119 #ifdef __WXMAC__
120  // A ugly hack to fix an issue on OSX: ctrl+c closes the dialog instead of
121  // copying a text if a button with wxID_CANCEL is used in a wxStdDialogButtonSizer
122  // created by wxFormBuilder: the label is &Cancel, and this accelerator key has priority
123  // to copy text standard accelerator, and the dlg is closed when trying to copy text
124  wxButton* button = dynamic_cast< wxButton* > ( wxWindow::FindWindowById( wxID_CANCEL, this ) );
125 
126  if( button )
127  button->SetLabel( _( "Cancel" ) );
128 #endif
129 }
void NETLIST_DIALOG::GenNetlist ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from NETLIST_DIALOG_BASE.

Definition at line 530 of file eeschema/dialogs/dialog_netlist.cpp.

References EDA_DRAW_FRAME::ClearMsgPanel(), SCH_EDIT_FRAME::CreateNetlist(), FilenamePrms(), g_RootSheet, SCH_SCREEN::GetFileName(), SCH_SHEET::GetScreen(), GetUseDefaultNetlistName(), NETLIST_PAGE_DIALOG::m_CommandStringCtrl, NETLIST_PAGE_DIALOG::m_IdNetType, NETLIST_DIALOG_BASE::m_NoteBook, m_Parent, NETLIST_PAGE_DIALOG::m_SpiceAjustPassiveValues, NETLIST_PAGE_DIALOG::m_TitleStringCtrl, NET_ADJUST_PASSIVE_VALS, NET_TYPE_CADSTAR, NET_TYPE_CUSTOM1, NET_TYPE_ORCADPCB2, NET_TYPE_PCBNEW, NET_TYPE_SPICE, NetlistUpdateOpt(), KIWAY_HOLDER::Prj(), SCH_EDIT_FRAME::SetNetListerCommand(), and WriteCurrentNetlistSetup().

531 {
532  wxFileName fn;
533  wxString fileWildcard;
534  wxString fileExt;
535  wxString title = _( "Save Netlist File" );
536 
538 
539  NETLIST_PAGE_DIALOG* currPage;
540  currPage = (NETLIST_PAGE_DIALOG*) m_NoteBook->GetCurrentPage();
541 
542  unsigned netlist_opt = 0;
543 
544  // Calculate the netlist filename
545  fn = g_RootSheet->GetScreen()->GetFileName();
546  FilenamePrms( currPage->m_IdNetType, &fileExt, &fileWildcard );
547 
548  // Set some parameters
549  switch( currPage->m_IdNetType )
550  {
551  case NET_TYPE_SPICE:
552  // Set spice netlist options:
553  if( currPage->m_SpiceAjustPassiveValues->GetValue() )
554  netlist_opt |= NET_ADJUST_PASSIVE_VALS;
555  break;
556 
557  case NET_TYPE_CADSTAR:
558  break;
559 
560  case NET_TYPE_PCBNEW:
561  break;
562 
563  case NET_TYPE_ORCADPCB2:
564  break;
565 
566  default: // custom, NET_TYPE_CUSTOM1 and greater
567  title.Printf( _( "%s Export" ), currPage->m_TitleStringCtrl->GetValue().GetData() );
568  }
569 
570  fn.SetExt( fileExt );
571 
572  if( fn.GetPath().IsEmpty() )
573  fn.SetPath( wxPathOnly( Prj().GetProjectFullName() ) );
574 
575  wxString fullpath = fn.GetFullPath();
576 
577  if( !GetUseDefaultNetlistName() || currPage->m_IdNetType >= NET_TYPE_CUSTOM1 )
578  {
579  wxString fullname = fn.GetFullName();
580  wxString path = fn.GetPath();
581 
582  // fullname does not and should not include the path, per wx docs.
583  wxFileDialog dlg( this, title, path, fullname, fileWildcard, wxFD_SAVE );
584 
585  if( dlg.ShowModal() == wxID_CANCEL )
586  return;
587 
588  fullpath = dlg.GetPath(); // directory + filename
589  }
590 
592 
593  if( currPage->m_CommandStringCtrl )
594  m_Parent->SetNetListerCommand( currPage->m_CommandStringCtrl->GetValue() );
595  else
596  m_Parent->SetNetListerCommand( wxEmptyString );
597 
598  m_Parent->CreateNetlist( currPage->m_IdNetType, fullpath, netlist_opt );
599 
601 
602  EndModal( wxID_OK );
603 }
const wxString & GetFileName() const
SCH_SCREEN * GetScreen()
Definition: sch_sheet.h:286
PROJECT & Prj() const
Function Prj returns a reference to the PROJECT "associated with" this KIWAY.
bool FilenamePrms(NETLIST_TYPE_ID aNetTypeId, wxString *aExt, wxString *aWildCard)
Function FilenamePrms returns the filename extension and the wildcard string for this curr or a void ...
void WriteCurrentNetlistSetup()
Function WriteCurrentNetlistSetup Write the current netlist options setup in the configuration.
SCH_SHEET * g_RootSheet
Definition: eeschema.cpp:54
bool CreateNetlist(int aFormat, const wxString &aFullFileName, unsigned aNetlistOptions, REPORTER *aReporter=NULL)
Function CreateNetlist.
void SetNetListerCommand(const wxString &aCommand)
Definition: schframe.h:1373
void ClearMsgPanel(void)
Clear all messages from the message panel.
Definition: draw_frame.cpp:764
bool NETLIST_DIALOG::GetUseDefaultNetlistName ( )
inlineprivate

Definition at line 169 of file eeschema/dialogs/dialog_netlist.cpp.

References NETLIST_DIALOG_BASE::m_cbUseDefaultNetlistName.

Referenced by GenNetlist(), and WriteCurrentNetlistSetup().

170  {
171  return m_cbUseDefaultNetlistName->IsChecked();
172  }
wxCheckBox * m_cbUseDefaultNetlistName
void NETLIST_DIALOG::InstallCustomPages ( )
private

Definition at line 408 of file eeschema/dialogs/dialog_netlist.cpp.

References AddOneCustomPage(), CUSTOM_NETLIST_COMMAND, CUSTOMPANEL_COUNTMAX, m_config, m_PanelNetType, NET_TYPE_CUSTOM1, PANELCUSTOMBASE, and UserNetlistTypeName().

Referenced by NETLIST_DIALOG().

409 {
410  int ii;
411  wxString title, msg;
412  NETLIST_PAGE_DIALOG* currPage;
413 
414  for( ii = 0; ii < CUSTOMPANEL_COUNTMAX; ii++ )
415  {
416  title = UserNetlistTypeName( ii == 0 ? true : false );
417 
418  if( title.IsEmpty() )
419  break; // No more panel to install
420 
421  // Install a plugin panel
423  msg << ii + 1;
424  wxString command = m_config->Read( msg );
425 
426  currPage = AddOneCustomPage( title, command,
428  m_PanelNetType[PANELCUSTOMBASE + ii] = currPage;
429  }
430 }
#define CUSTOM_NETLIST_COMMAND
NETLIST_TYPE_ID
netlist types
Definition: netlist.h:35
#define CUSTOMPANEL_COUNTMAX
const wxString UserNetlistTypeName(bool first_item)
Function UserNetlistTypeName to retrieve user netlist type names.
NETLIST_PAGE_DIALOG * m_PanelNetType[4+CUSTOMPANEL_COUNTMAX]
NETLIST_PAGE_DIALOG * AddOneCustomPage(const wxString &aTitle, const wxString &aCommandString, NETLIST_TYPE_ID aNetTypeId)
void NETLIST_DIALOG::InstallPageSpice ( )
private

Definition at line 374 of file eeschema/dialogs/dialog_netlist.cpp.

References SCH_EDIT_FRAME::GetSimulatorCommand(), SCH_EDIT_FRAME::GetSpiceAjustPassiveValues(), ID_RUN_SIMULATOR, ID_USE_NETCODE_AS_NETNAME, NETLIST_PAGE_DIALOG::m_CommandStringCtrl, NETLIST_PAGE_DIALOG::m_LeftBoxSizer, NETLIST_PAGE_DIALOG::m_LowBoxSizer, NETLIST_DIALOG_BASE::m_NoteBook, m_PanelNetType, m_Parent, NETLIST_PAGE_DIALOG::m_RightBoxSizer, NETLIST_PAGE_DIALOG::m_SpiceAjustPassiveValues, NET_TYPE_SPICE, NETLIST_PAGE_DIALOG, and PANELSPICE.

Referenced by NETLIST_DIALOG().

375 {
376  wxButton* Button;
377  NETLIST_PAGE_DIALOG* page;
378  wxString title = wxT( "Spice" );
379 
380  page = m_PanelNetType[PANELSPICE] =
382 
383  page->m_SpiceAjustPassiveValues = new wxCheckBox( page, ID_USE_NETCODE_AS_NETNAME,
384  _( "Reformat passive component values" ) );
385  page->m_SpiceAjustPassiveValues->SetToolTip(
386  _( "Reformat passive component values e.g. 1M -> 1Meg" ) );
388  page->m_LeftBoxSizer->Add( page->m_SpiceAjustPassiveValues, 0, wxGROW | wxALL, 5 );
389 
390  page->m_LowBoxSizer->Add( new wxStaticText( page, -1, _( "Simulator command:" ) ), 0,
391  wxGROW | wxLEFT | wxRIGHT | wxTOP, 5 );
392 
393  page->m_CommandStringCtrl = new wxTextCtrl( page, -1, m_Parent->GetSimulatorCommand(),
394  wxDefaultPosition, wxDefaultSize );
395 
396  page->m_CommandStringCtrl->SetInsertionPoint( 1 );
397  page->m_LowBoxSizer->Add( page->m_CommandStringCtrl,
398  0,
399  wxGROW | wxLEFT | wxRIGHT | wxBOTTOM,
400  5 );
401 
402  // Add buttons
403  Button = new wxButton( page, ID_RUN_SIMULATOR, _( "&Run Simulator" ) );
404  page->m_RightBoxSizer->Add( Button, 0, wxGROW | wxALL, 5 );
405 }
wxString GetSimulatorCommand() const
Definition: schframe.h:1371
bool GetSpiceAjustPassiveValues() const
Definition: schframe.h:250
NETLIST_PAGE_DIALOG * m_PanelNetType[4+CUSTOMPANEL_COUNTMAX]
KIWAY& KIWAY_HOLDER::Kiway ( ) const
inlineinherited

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

A KIWAY_HOLDER is not necessarily a KIWAY_PLAYER.

Definition at line 60 of file kiway_player.h.

References KIWAY_HOLDER::m_kiway.

Referenced by SCH_EDIT_FRAME::AppendOneEEProject(), CVPCB_MAINFRAME::BuildLIBRARY_LISTBOX(), DIALOG_CHOOSE_COMPONENT::ConstructRightPanel(), CVPCB_MAINFRAME::CreateScreenCmp(), CVPCB_MAINFRAME::CVPCB_MAINFRAME(), DIALOG_SHIM::DIALOG_SHIM(), EDIT_TOOL::editFootprintInFpEditor(), SCH_EDIT_FRAME::EditSheet(), DISPLAY_FOOTPRINTS_FRAME::Get_Module(), FOOTPRINT_EDIT_FRAME::GetPlotSettings(), DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::initBuffers(), LIB_EDIT_FRAME::InstallConfigFrame(), PCB_EDIT_FRAME::InstallModuleOptionsFrame(), KIWAY_PLAYER::language_change(), SCH_SHEET::Load(), CVPCB_MAINFRAME::LoadFootprintFiles(), KIWAY_PLAYER::OnChangeIconsOptions(), CVPCB_MAINFRAME::OnEditFootprintLibraryTable(), DIALOG_CHOOSE_COMPONENT::OnInitDialog(), SCH_EDIT_FRAME::OnLeftClick(), SCH_BASE_FRAME::OnOpenLibraryViewer(), SCH_EDIT_FRAME::OnSimulate(), DIALOG_EDIT_ONE_FIELD::OnTextValueSelectButtonClick(), FOOTPRINT_EDIT_FRAME::OnUpdateInsertModuleInBoard(), FOOTPRINT_EDIT_FRAME::OnUpdateLoadModuleFromBoard(), FOOTPRINT_EDIT_FRAME::OnUpdateReplaceModuleInBoard(), SCH_EDIT_FRAME::OpenProjectFiles(), KIWAY_HOLDER::Prj(), PCB_EDIT_FRAME::Process_Config(), PCB_EDIT_FRAME::Process_Special_Functions(), FOOTPRINT_EDIT_FRAME::ProcessPreferences(), CVPCB_MAINFRAME::ReadNetListAndFpFiles(), FOOTPRINT_VIEWER_FRAME::ReCreateFootprintList(), LIB_EDIT_FRAME::refreshSchematic(), SCH_EDIT_FRAME::SaveEEFile(), CVPCB_MAINFRAME::SaveFootprintAssociation(), SCH_BASE_FRAME::SelectComponentFromLibBrowser(), CVPCB_MAINFRAME::SendMessageToEESCHEMA(), PCB_EDIT_FRAME::SendMessageToEESCHEMA(), SCH_EDIT_FRAME::SendMessageToPCBNEW(), SCH_EDIT_FRAME::sendNetlist(), FOOTPRINT_EDIT_FRAME::SetPlotSettings(), DISPLAY_FOOTPRINTS_FRAME::Show3D_Frame(), FOOTPRINT_VIEWER_FRAME::Show3D_Frame(), FOOTPRINT_EDIT_FRAME::Show3D_Frame(), FOOTPRINT_WIZARD_FRAME::Show3D_Frame(), DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::showButtonHandler(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::showButtonHandler(), SIM_PLOT_FRAME::SIM_PLOT_FRAME(), and DIALOG_EXCHANGE_MODULE::ViewAndSelectFootprint().

61  {
62  wxASSERT( m_kiway ); // smoke out bugs in Debug build, then Release runs fine.
63  return *m_kiway;
64  }
KIWAY * m_kiway
Definition: kiway_player.h:85
void NETLIST_DIALOG::NetlistUpdateOpt ( )
private

Definition at line 511 of file eeschema/dialogs/dialog_netlist.cpp.

References CUSTOMPANEL_COUNTMAX, NETLIST_PAGE_DIALOG::GetPageNetFmtName(), m_PanelNetType, m_Parent, PANELCUSTOMBASE, PANELSPICE, SCH_EDIT_FRAME::SetNetListFormatName(), SCH_EDIT_FRAME::SetSimulatorCommand(), and SCH_EDIT_FRAME::SetSpiceAjustPassiveValues().

Referenced by GenNetlist(), RunSimulator(), and WriteCurrentNetlistSetup().

512 {
513  int ii;
514 
515  m_Parent->SetSpiceAjustPassiveValues( m_PanelNetType[PANELSPICE]->m_SpiceAjustPassiveValues->IsChecked() );
516  m_Parent->SetSimulatorCommand( m_PanelNetType[PANELSPICE]->m_CommandStringCtrl->GetValue() );
517  m_Parent->SetNetListFormatName( wxEmptyString );
518 
519  for( ii = 0; ii < PANELCUSTOMBASE + CUSTOMPANEL_COUNTMAX; ii++ )
520  {
521  if( m_PanelNetType[ii] == NULL )
522  break;
523 
524  if( m_PanelNetType[ii]->m_IsCurrentFormat->GetValue() == true )
526  }
527 }
void SetSimulatorCommand(const wxString &aCommand)
Definition: schframe.h:1369
#define CUSTOMPANEL_COUNTMAX
NETLIST_PAGE_DIALOG * m_PanelNetType[4+CUSTOMPANEL_COUNTMAX]
void SetNetListFormatName(const wxString &aFormat)
Definition: schframe.h:248
void SetSpiceAjustPassiveValues(bool aEnable)
Definition: schframe.h:252
const wxString GetPageNetFmtName()
function GetPageNetFmtName
void NETLIST_DIALOG::OnAddPlugin ( wxCommandEvent &  event)
overrideprivatevirtual

Function OnAddPlugin Add a new panel for a new netlist plugin.

Reimplemented from NETLIST_DIALOG_BASE.

Definition at line 748 of file eeschema/dialogs/dialog_netlist.cpp.

References AddOneCustomPage(), CUSTOMPANEL_COUNTMAX, NETLIST_PAGE_DIALOG::GetPageNetFmtName(), NETLIST_DIALOG_ADD_PLUGIN::GetPluginTCommandLine(), NETLIST_DIALOG_ADD_PLUGIN::GetPluginTitle(), m_PanelNetType, NET_PLUGIN_CHANGE, PANELCUSTOMBASE, and WriteCurrentNetlistSetup().

749 {
750  NETLIST_DIALOG_ADD_PLUGIN dlg( this );
751  if( dlg.ShowModal() != wxID_OK )
752  return;
753 
754  // Creates a new custom plugin page
755  wxString title = dlg.GetPluginTitle();
756 
757  // Verify it does not exists
758  int netTypeId = PANELCUSTOMBASE; // the first not used type id
759  NETLIST_PAGE_DIALOG* currPage;
760  for( int ii = 0; ii < CUSTOMPANEL_COUNTMAX; ii++ )
761  {
762  netTypeId = PANELCUSTOMBASE + ii;
763  currPage = m_PanelNetType[ii + PANELCUSTOMBASE];
764 
765  if( currPage == NULL )
766  break;
767 
768  if( currPage->GetPageNetFmtName() == title )
769  {
770  wxMessageBox( _("This plugin already exists. Abort") );
771  return;
772  }
773  }
774 
775  wxString cmd = dlg.GetPluginTCommandLine();
776  currPage = AddOneCustomPage( title,cmd, (NETLIST_TYPE_ID)netTypeId );
777  m_PanelNetType[netTypeId] = currPage;
779 
780  // Close and reopen dialog to rebuild the dialog after changes
781  EndModal( NET_PLUGIN_CHANGE );
782 }
NETLIST_TYPE_ID
netlist types
Definition: netlist.h:35
void WriteCurrentNetlistSetup()
Function WriteCurrentNetlistSetup Write the current netlist options setup in the configuration.
#define CUSTOMPANEL_COUNTMAX
NETLIST_PAGE_DIALOG * m_PanelNetType[4+CUSTOMPANEL_COUNTMAX]
NETLIST_PAGE_DIALOG * AddOneCustomPage(const wxString &aTitle, const wxString &aCommandString, NETLIST_TYPE_ID aNetTypeId)
#define NET_PLUGIN_CHANGE
Function InvokeDialogNetList creates and shows NETLIST_DIALOG and returns whatever NETLIST_DIALOG::Sh...
const wxString GetPageNetFmtName()
function GetPageNetFmtName
virtual void NETLIST_DIALOG_BASE::OnCancelClick ( wxCommandEvent &  event)
inlineprotectedvirtualinherited

Definition at line 71 of file dialog_netlist_base.h.

Referenced by NETLIST_DIALOG_BASE::_wxFB_OnCancelClick().

71 { event.Skip(); }
void NETLIST_DIALOG::OnDelPlugin ( wxCommandEvent &  event)
overrideprivatevirtual

Function OnDelPlugin Remove a panel relative to a netlist plugin.

Reimplemented from NETLIST_DIALOG_BASE.

Definition at line 730 of file eeschema/dialogs/dialog_netlist.cpp.

References NETLIST_PAGE_DIALOG::m_CommandStringCtrl, NETLIST_PAGE_DIALOG::m_IsCurrentFormat, NETLIST_DIALOG_BASE::m_NoteBook, m_PanelNetType, NETLIST_PAGE_DIALOG::m_TitleStringCtrl, NET_PLUGIN_CHANGE, PANELPCBNEW, and WriteCurrentNetlistSetup().

731 {
732  NETLIST_PAGE_DIALOG* currPage = (NETLIST_PAGE_DIALOG*) m_NoteBook->GetCurrentPage();
733 
734  currPage->m_CommandStringCtrl->SetValue( wxEmptyString );
735  currPage->m_TitleStringCtrl->SetValue( wxEmptyString );
736 
737  if( currPage->m_IsCurrentFormat->IsChecked() )
738  {
739  currPage->m_IsCurrentFormat->SetValue( false );
740  m_PanelNetType[PANELPCBNEW]->m_IsCurrentFormat->SetValue( true );
741  }
742 
744  EndModal( NET_PLUGIN_CHANGE );
745 }
void WriteCurrentNetlistSetup()
Function WriteCurrentNetlistSetup Write the current netlist options setup in the configuration.
NETLIST_PAGE_DIALOG * m_PanelNetType[4+CUSTOMPANEL_COUNTMAX]
#define NET_PLUGIN_CHANGE
Function InvokeDialogNetList creates and shows NETLIST_DIALOG and returns whatever NETLIST_DIALOG::Sh...
void NETLIST_DIALOG::OnNetlistTypeSelection ( wxNotebookEvent &  event)
overrideprivatevirtual

Reimplemented from NETLIST_DIALOG_BASE.

Definition at line 490 of file eeschema/dialogs/dialog_netlist.cpp.

References FilenamePrms(), g_RootSheet, SCH_SCREEN::GetFileName(), SCH_SHEET::GetScreen(), NETLIST_DIALOG_BASE::m_buttonDelPlugin, NETLIST_DIALOG_BASE::m_cbUseDefaultNetlistName, NETLIST_PAGE_DIALOG::m_IdNetType, NETLIST_DIALOG_BASE::m_NoteBook, NETLIST_DIALOG_BASE::m_textCtrlDefaultFileName, and NET_TYPE_CUSTOM1.

491 {
492  NETLIST_PAGE_DIALOG* currPage = (NETLIST_PAGE_DIALOG*) m_NoteBook->GetCurrentPage();
493  if( currPage == NULL )
494  return;
495 
496  m_buttonDelPlugin->Enable( currPage->m_IdNetType >= NET_TYPE_CUSTOM1 );
498 
499  wxString fileExt;
500  if( FilenamePrms( currPage->m_IdNetType, &fileExt, NULL ) )
501  {
502  wxFileName fn = g_RootSheet->GetScreen()->GetFileName();
503  fn.SetExt( fileExt );
504  m_textCtrlDefaultFileName->SetValue( fn.GetFullName() );
505  }
506  else
507  m_textCtrlDefaultFileName->Clear();
508 }
wxTextCtrl * m_textCtrlDefaultFileName
const wxString & GetFileName() const
SCH_SCREEN * GetScreen()
Definition: sch_sheet.h:286
wxCheckBox * m_cbUseDefaultNetlistName
bool FilenamePrms(NETLIST_TYPE_ID aNetTypeId, wxString *aExt, wxString *aWildCard)
Function FilenamePrms returns the filename extension and the wildcard string for this curr or a void ...
SCH_SHEET * g_RootSheet
Definition: eeschema.cpp:54
PROJECT & KIWAY_HOLDER::Prj ( ) const
inherited

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

Definition at line 34 of file kiway_holder.cpp.

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

Referenced by SCH_EDIT_FRAME::AnnotateComponents(), SCH_EDIT_FRAME::AppendOneEEProject(), PCB_EDIT_FRAME::ArchiveModulesOnBoard(), SCH_EDIT_FRAME::backAnnotateFootprints(), LIB_VIEW_FRAME::BestZoom(), DIALOG_MODULE_MODULE_EDITOR::BrowseAndAdd3DShapeFile(), DIALOG_MODULE_BOARD_EDITOR::BrowseAndAdd3DShapeFile(), DIALOG_EDIT_COMPONENT_IN_LIBRARY::BrowseAndSelectDocFile(), DIALOG_EXCHANGE_MODULE::BrowseAndSelectFootprint(), CVPCB_MAINFRAME::BuildLIBRARY_LISTBOX(), DIALOG_MODULE_MODULE_EDITOR::Cfg3DPath(), DIALOG_MODULE_BOARD_EDITOR::Cfg3DPath(), SCH_EDIT_FRAME::CheckAnnotate(), SCH_SCREEN::CheckComponentsToPartsLinks(), SCH_EDIT_FRAME::ConvertPart(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::copyPanelToOptions(), SCH_EDIT_FRAME::CreateArchiveLibrary(), PCB_BASE_EDIT_FRAME::CreateNewLibrary(), DIALOG_PLOT_SCHEMATIC::createPlotFileName(), DIALOG_SYMBOL_REMAP::createProjectSymbolLibTable(), FOOTPRINT_EDIT_FRAME::DeleteModuleFromCurrentLibrary(), LIB_EDIT_FRAME::DeleteOnePart(), DIALOG_CONFIG_EQUFILES::DIALOG_CONFIG_EQUFILES(), DIALOG_EESCHEMA_CONFIG::DIALOG_EESCHEMA_CONFIG(), DIALOG_FP_LIB_TABLE::DIALOG_FP_LIB_TABLE(), DIALOG_MODULE_BOARD_EDITOR::DIALOG_MODULE_BOARD_EDITOR(), DIALOG_MODULE_MODULE_EDITOR::DIALOG_MODULE_MODULE_EDITOR(), DIALOG_PAGES_SETTINGS::DIALOG_PAGES_SETTINGS(), DIALOG_SCH_EDIT_ONE_FIELD::DIALOG_SCH_EDIT_ONE_FIELD(), LIB_VIEW_FRAME::DisplayLibInfos(), SCH_BASE_FRAME::DisplayListComponentsInLib(), PCB_EDIT_FRAME::doAutoSave(), DIALOG_MODULE_MODULE_EDITOR::Edit3DShapeFileName(), DIALOG_MODULE_BOARD_EDITOR::Edit3DShapeFileName(), SCH_EDIT_FRAME::EditComponentFieldText(), SCH_EDIT_FRAME::EditSheet(), PCB_EDIT_FRAME::Export_IDF3(), PCB_EDIT_FRAME::ExportToGenCAD(), PCB_EDIT_FRAME::ExportVRML_File(), PCB_EDIT_FRAME::Files_io_from_id(), PCB_EDIT_FRAME::GenD356File(), GenNetlist(), DISPLAY_FOOTPRINTS_FRAME::Get_Module(), FOOTPRINT_VIEWER_FRAME::getCurFootprintName(), LIB_EDIT_FRAME::GetCurLib(), FOOTPRINT_VIEWER_FRAME::getCurNickname(), LIB_EDIT_FRAME::GetCurPart(), FOOTPRINT_EDIT_FRAME::GetCurrentLib(), FOOTPRINT_EDIT_FRAME::getLibPath(), DIALOG_SYMBOL_REMAP::getLibsNotInGlobalSymbolLibTable(), DIALOG_BOM::getPluginFileName(), LIB_VIEW_FRAME::getSelectedAlias(), FP_THREAD_IFACE::GetTable(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::InitBuffers(), DIALOG_MODULE_MODULE_EDITOR::initModeditProperties(), DIALOG_MODULE_BOARD_EDITOR::InitModeditProperties(), LIB_EDIT_FRAME::InstallConfigFrame(), SCH_EDIT_FRAME::InstallConfigFrame(), PCB_EDIT_FRAME::InstallNetlistFrame(), SCH_EDIT_FRAME::IsSearchCacheObsolete(), SCH_EDIT_FRAME::Load_Component(), SCH_EDIT_FRAME::LoadCmpToFootprintLinkFile(), DIALOG_BOM_EDITOR::LoadComponents(), CVPCB_MAINFRAME::LoadFootprintFiles(), SCH_EDIT_FRAME::LoadOneEEFile(), LIB_EDIT_FRAME::LoadOneLibraryPart(), LIB_EDIT_FRAME::LoadOneSymbol(), CVPCB_MAINFRAME::LoadProjectFile(), SCH_EDIT_FRAME::LoadProjectFile(), PCB_EDIT_FRAME::LoadProjectSettings(), DIALOG_DRC_CONTROL::makeValidFileNameReport(), FOOTPRINT_VIEWER_FRAME::OnActivate(), DIALOG_EESCHEMA_CONFIG::OnAddOrInsertLibClick(), DIALOG_EESCHEMA_CONFIG::OnAddOrInsertPath(), DIALOG_DRC_CONTROL::OnButtonBrowseRptFileClick(), LIB_EDIT_FRAME::OnCloseWindow(), CVPCB_MAINFRAME::OnEditFootprintLibraryTable(), DIALOG_GENDRILL::OnGenReportFile(), DIALOG_CHOOSE_COMPONENT::OnInitDialog(), PCB_EDIT_FRAME::OnLeftClick(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::OnOKButtonClick(), DIALOG_NETLIST::OnOpenNetlistClick(), DIALOG_PLOT::OnOutputDirectoryBrowseClicked(), DIALOG_SVG_PRINT::OnOutputDirectoryBrowseClicked(), DIALOG_GENDRILL::OnOutputDirectoryBrowseClicked(), DIALOG_PLOT_SCHEMATIC::OnOutputDirectoryBrowseClicked(), DIALOG_GEN_MODULE_POSITION::OnOutputDirectoryBrowseClicked(), LIB_EDIT_FRAME::OnPlotCurrentComponent(), DIALOG_SYMBOL_REMAP::OnRemapSymbols(), SCH_EDIT_FRAME::OnRightClick(), DIALOG_BOM::OnRunPlugin(), DIALOG_NETLIST::OnSaveMessagesToFile(), SCH_EDIT_FRAME::OnSaveProject(), DIALOG_SPICE_MODEL::onSelectIcLib(), LIB_VIEW_FRAME::OnSelectSymbol(), SCH_EDIT_FRAME::OnSelectUnit(), DIALOG_SPICE_MODEL::onSemiSelectLib(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::OnTestChipName(), FOOTPRINT_EDIT_FRAME::OnUpdateSelectCurrentLib(), LIB_EDIT_FRAME::OnViewEntryDoc(), LIB_VIEW_FRAME::onViewSymbolDocument(), SCH_EDIT_FRAME::OpenProjectFiles(), PCB_EDIT_FRAME::OpenProjectFiles(), SCH_EDIT_FRAME::PasteListOfItems(), PCB_EDITOR_CONTROL::PlaceModule(), SCH_EDIT_FRAME::prepareForNetlist(), SCH_EDIT_FRAME::Process_Config(), PCB_EDIT_FRAME::Process_Config(), SCH_EDIT_FRAME::Process_Special_Functions(), SCH_EDIT_FRAME::ProcessCmpToFootprintLinkFile(), FOOTPRINT_EDIT_FRAME::ProcessPreferences(), CVPCB_MAINFRAME::ReadNetListAndFpFiles(), PCB_EDIT_FRAME::RecreateCmpFileFromBoard(), FOOTPRINT_VIEWER_FRAME::ReCreateFootprintList(), LIB_VIEW_FRAME::ReCreateHToolbar(), FOOTPRINT_VIEWER_FRAME::ReCreateLibraryList(), LIB_VIEW_FRAME::ReCreateListCmp(), LIB_VIEW_FRAME::ReCreateListLib(), LIB_VIEW_FRAME::RedrawActiveWindow(), EDA_3D_VIEWER::ReloadRequest(), DIALOG_SYMBOL_REMAP::remapSymbolToLibTable(), SCH_EDIT_FRAME::RescueProject(), FOOTPRINT_EDIT_FRAME::restoreLastFootprint(), FOOTPRINT_EDIT_FRAME::retainLastFootprint(), SCH_SCREEN::Save(), LIB_EDIT_FRAME::SaveActiveLibrary(), SCH_EDIT_FRAME::SaveEEFile(), FOOTPRINT_EDIT_FRAME::SaveFootprintInLibrary(), LIB_EDIT_FRAME::SaveOneSymbol(), CVPCB_MAINFRAME::SaveProjectFile(), SCH_EDIT_FRAME::SaveProjectSettings(), PCB_EDIT_FRAME::SaveProjectSettings(), FOOTPRINT_VIEWER_FRAME::SelectAndViewFootprint(), SCH_BASE_FRAME::SelectComponentFromLibrary(), FOOTPRINT_VIEWER_FRAME::SelectCurrentFootprint(), PCB_BASE_FRAME::SelectLibrary(), SCH_BASE_FRAME::SelectLibraryFromList(), SCH_EDIT_FRAME::sendNetlist(), FOOTPRINT_VIEWER_FRAME::setCurFootprintName(), LIB_EDIT_FRAME::SetCurLib(), FOOTPRINT_VIEWER_FRAME::setCurNickname(), LIB_EDIT_FRAME::SetCurPart(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::SetInitCmp(), SIM_PLOT_FRAME::SIM_PLOT_FRAME(), EDA_3D_VIEWER::takeScreenshot(), DIALOG_ERC::TestErc(), DIALOG_SPICE_MODEL::updateFromFile(), SIM_PLOT_FRAME::updateNetlistExporter(), FOOTPRINT_VIEWER_FRAME::UpdateTitle(), CVPCB_MAINFRAME::UpdateTitle(), FOOTPRINT_EDIT_FRAME::updateTitle(), SCH_EDIT_FRAME::WriteNetListFile(), DIALOG_MODULE_BOARD_EDITOR::~DIALOG_MODULE_BOARD_EDITOR(), and DIALOG_MODULE_MODULE_EDITOR::~DIALOG_MODULE_MODULE_EDITOR().

35 {
36  return Kiway().Prj();
37 }
KIWAY & Kiway() const
Function Kiway returns a reference to the KIWAY that this object has an opportunity to participate in...
Definition: kiway_player.h:60
VTBL_ENTRY PROJECT & Prj() const
Function Prj returns the PROJECT associated with this KIWAY.
Definition: kiway.cpp:144
void NETLIST_DIALOG::RunSimulator ( wxCommandEvent &  event)
private

Definition at line 647 of file eeschema/dialogs/dialog_netlist.cpp.

References SCH_EDIT_FRAME::CreateNetlist(), ExecuteFile(), g_RootSheet, SCH_SCREEN::GetFileName(), SCH_SHEET::GetScreen(), NETLIST_PAGE_DIALOG::m_CommandStringCtrl, NETLIST_PAGE_DIALOG::m_IdNetType, NETLIST_DIALOG_BASE::m_NoteBook, m_PanelNetType, m_Parent, NETLIST_PAGE_DIALOG::m_SpiceAjustPassiveValues, NET_ADJUST_PASSIVE_VALS, NetlistUpdateOpt(), PANELSPICE, and SCH_EDIT_FRAME::SetSimulatorCommand().

648 {
649  wxFileName fn;
650  wxString ExecFile, CommandLine;
651 
653 
654  wxString tmp = m_PanelNetType[PANELSPICE]->m_CommandStringCtrl->GetValue();
655  tmp.Trim( false );
656  tmp.Trim( true );
658  ExecFile = tmp.BeforeFirst( ' ' );
659  CommandLine = tmp.AfterFirst( ' ' );
660 
661  // Calculate the netlist filename
662  fn = g_RootSheet->GetScreen()->GetFileName();
663  fn.SetExt( wxT( "cir" ) );
664  CommandLine += wxT( " \"" ) + fn.GetFullPath() + wxT( "\"" );
665 
666  NETLIST_PAGE_DIALOG* currPage;
667  currPage = (NETLIST_PAGE_DIALOG*) m_NoteBook->GetCurrentPage();
668 
669  // Set spice netlist options:
670  unsigned netlist_opt = 0;
671 
672  if( currPage->m_SpiceAjustPassiveValues && currPage->m_SpiceAjustPassiveValues->GetValue() )
673  netlist_opt |= NET_ADJUST_PASSIVE_VALS;
674 
675  if( ! m_Parent->CreateNetlist( currPage->m_IdNetType, fn.GetFullPath(),
676  netlist_opt ) )
677  return;
678 
679  ExecuteFile( this, ExecFile, CommandLine );
680 }
const wxString & GetFileName() const
void SetSimulatorCommand(const wxString &aCommand)
Definition: schframe.h:1369
SCH_SCREEN * GetScreen()
Definition: sch_sheet.h:286
SCH_SHEET * g_RootSheet
Definition: eeschema.cpp:54
bool CreateNetlist(int aFormat, const wxString &aFullFileName, unsigned aNetlistOptions, REPORTER *aReporter=NULL)
Function CreateNetlist.
NETLIST_PAGE_DIALOG * m_PanelNetType[4+CUSTOMPANEL_COUNTMAX]
int ExecuteFile(wxWindow *frame, const wxString &ExecFile, const wxString &param, wxProcess *callback)
Function ExecuteFile calls the executable file ExecFile with the command line parameters param...
Definition: gestfich.cpp:208
void NETLIST_DIALOG::SelectDefaultNetlistType ( wxCommandEvent &  event)
private

Definition at line 471 of file eeschema/dialogs/dialog_netlist.cpp.

References CUSTOMPANEL_COUNTMAX, NETLIST_PAGE_DIALOG::GetPageNetFmtName(), NETLIST_PAGE_DIALOG::m_IsCurrentFormat, NETLIST_DIALOG_BASE::m_NoteBook, m_PanelNetType, m_Parent, PANELCUSTOMBASE, and SCH_EDIT_FRAME::SetNetListFormatName().

472 {
473  int ii;
474  NETLIST_PAGE_DIALOG* currPage;
475 
476  for( ii = 0; ii < PANELCUSTOMBASE + CUSTOMPANEL_COUNTMAX; ii++ )
477  if( m_PanelNetType[ii] )
478  m_PanelNetType[ii]->m_IsCurrentFormat->SetValue( false );
479 
480  currPage = (NETLIST_PAGE_DIALOG*) m_NoteBook->GetCurrentPage();
481 
482  if( currPage == NULL )
483  return;
484 
486  currPage->m_IsCurrentFormat->SetValue( true );
487 }
#define CUSTOMPANEL_COUNTMAX
NETLIST_PAGE_DIALOG * m_PanelNetType[4+CUSTOMPANEL_COUNTMAX]
void SetNetListFormatName(const wxString &aFormat)
Definition: schframe.h:248
const wxString GetPageNetFmtName()
function GetPageNetFmtName
void KIWAY_HOLDER::SetKiway ( wxWindow *  aDest,
KIWAY aKiway 
)
inherited

Function SetKiway.

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

Definition at line 41 of file kiway_holder.cpp.

References KIWAY_HOLDER::m_kiway, and name.

Referenced by DIALOG_SHIM::DIALOG_SHIM(), and SIM_PLOT_FRAME::SIM_PLOT_FRAME().

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

Definition at line 139 of file dialog_shim.cpp.

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

Referenced by DisplayHotkeyList(), DIALOG_SHIM::EndQuasiModal(), InvokeDialogERC(), DIALOG_SCH_FIND::OnCancel(), DIALOG_DRC_CONTROL::OnLeftDClickClearance(), DIALOG_DRC_CONTROL::OnLeftDClickUnconnected(), DIALOG_DRC_CONTROL::OnPopupMenu(), DIALOG_EXCHANGE_MODULE::OnQuit(), POSITION_RELATIVE_TOOL::PositionRelative(), CVPCB_MAINFRAME::ReadNetListAndFpFiles(), DRC::ShowDRCDialog(), and DIALOG_SHIM::ShowQuasiModal().

140 {
141  bool ret;
142  const char* hash_key;
143 
144  if( m_hash_key.size() )
145  {
146  // a special case like EDA_LIST_DIALOG, which has multiple uses.
147  hash_key = m_hash_key.c_str();
148  }
149  else
150  {
151  hash_key = typeid(*this).name();
152  }
153 
154  // Show or hide the window. If hiding, save current position and size.
155  // If showing, use previous position and size.
156  if( show )
157  {
158  wxDialog::Raise(); // Needed on OS X and some other window managers (i.e. Unity)
159  ret = wxDialog::Show( show );
160 
161  // classname is key, returns a zeroed out default EDA_RECT if none existed before.
162  EDA_RECT r = class_map[ hash_key ];
163 
164  if( r.GetSize().x != 0 && r.GetSize().y != 0 )
165  SetSize( r.GetPosition().x, r.GetPosition().y, r.GetSize().x, r.GetSize().y, 0 );
166  }
167  else
168  {
169  // Save the dialog's position & size before hiding, using classname as key
170  EDA_RECT r( wxDialog::GetPosition(), wxDialog::GetSize() );
171  class_map[ hash_key ] = r;
172 
173  ret = wxDialog::Show( show );
174  }
175 
177 
178  return ret;
179 }
std::string m_hash_key
Definition: dialog_shim.h:128
void FixOSXCancelButtonIssue()
A ugly hack to fix an issue on OSX: when typing ctrl+c in a wxTextCtrl inside a dialog, it is closed instead of copying a text if a button with wxID_CANCEL is used in a wxStdDialogButtonSizer, when the dlg is created by wxFormBuilder: the label is &Cancel, and this accelerator key has priority to copy text standard accelerator, and the dlg is closed when trying to copy text this function do nothing on other platforms.
static RECT_MAP class_map
const wxPoint & GetPosition() const
Class EDA_RECT handles the component boundary box.
const wxSize & GetSize() const
int DIALOG_SHIM::ShowQuasiModal ( )
inherited

Definition at line 495 of file dialog_shim.cpp.

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

Referenced by LIB_EDIT_FRAME::DeleteOnePart(), SCH_EDIT_FRAME::EditComponent(), SCH_EDIT_FRAME::EditComponentFieldText(), LIB_EDIT_FRAME::EditField(), EDIT_TOOL::ExchangeFootprints(), PCB_EDIT_FRAME::InstallExchangeModuleFrame(), LIB_EDIT_FRAME::InstallFieldsEditorDialog(), InvokeDialogCreateBOMEditor(), LIB_VIEW_FRAME::OnSelectSymbol(), and SCH_BASE_FRAME::SelectComponentFromLibrary().

496 {
497  // This is an exception safe way to zero a pointer before returning.
498  // Yes, even though DismissModal() clears this first normally, this is
499  // here in case there's an exception before the dialog is dismissed.
500  struct NULLER
501  {
502  void*& m_what;
503  NULLER( void*& aPtr ) : m_what( aPtr ) {}
504  ~NULLER() { m_what = 0; } // indeed, set it to NULL on destruction
505  } clear_this( (void*&) m_qmodal_loop );
506 
507  // release the mouse if it's currently captured as the window having it
508  // will be disabled when this dialog is shown -- but will still keep the
509  // capture making it impossible to do anything in the modal dialog itself
510  wxWindow* win = wxWindow::GetCapture();
511  if( win )
512  win->ReleaseMouse();
513 
514  // Get the optimal parent
515  wxWindow* parent = GetParentForModalDialog( GetParent(), GetWindowStyle() );
516 
517  // Show the optimal parent
518  DBG( if( parent ) printf( "%s: optimal parent: %s\n", __func__, typeid(*parent).name() );)
519 
520  wxASSERT_MSG( !m_qmodal_parent_disabler,
521  wxT( "Caller using ShowQuasiModal() twice on same window?" ) );
522 
523  // quasi-modal: disable only my "optimal" parent
525 
526  Show( true );
527 
528  m_qmodal_showing = true;
529 
530  EVENT_LOOP event_loop;
531 
532  m_qmodal_loop = &event_loop;
533 
534  event_loop.Run();
535 
536  return GetReturnCode();
537 }
bool m_qmodal_showing
Definition: dialog_shim.h:132
EVENT_LOOP * m_qmodal_loop
Definition: dialog_shim.h:131
bool Show(bool show) override
WDO_ENABLE_DISABLE * m_qmodal_parent_disabler
Definition: dialog_shim.h:133
Toggle a window's "enable" status to disabled, then enabled on destruction.
Definition: dialog_shim.cpp:33
#define DBG(x)
Definition: fctsys.h:33
const wxString NETLIST_DIALOG::UserNetlistTypeName ( bool  first_item)
private

Function UserNetlistTypeName to retrieve user netlist type names.

Parameters
first_item= true: return first name of the list, false = return next
Returns
a wxString : name of the type netlist or empty string this function must be called first with "first_item" = true and after with "first_item" = false to get all the other existing netlist names

Definition at line 355 of file eeschema/dialogs/dialog_netlist.cpp.

References CUSTOM_NETLIST_TITLE, m_config, and name.

Referenced by InstallCustomPages().

356 {
357  static int index;
358  wxString name, msg;
359 
360  if( first_item )
361  index = 0;
362  else
363  index++;
364 
365  msg = CUSTOM_NETLIST_TITLE;
366  msg << index + 1;
367 
368  name = m_config->Read( msg );
369 
370  return name;
371 }
#define CUSTOM_NETLIST_TITLE
const char * name
void NETLIST_DIALOG::WriteCurrentNetlistSetup ( )
private

Function WriteCurrentNetlistSetup Write the current netlist options setup in the configuration.

Definition at line 683 of file eeschema/dialogs/dialog_netlist.cpp.

References CUSTOM_NETLIST_COMMAND, CUSTOM_NETLIST_TITLE, CUSTOMPANEL_COUNTMAX, GetUseDefaultNetlistName(), NETLIST_PAGE_DIALOG::m_CommandStringCtrl, m_config, m_PanelNetType, NETLIST_PAGE_DIALOG::m_TitleStringCtrl, NETLIST_USE_DEFAULT_NETNAME, NetlistUpdateOpt(), and PANELCUSTOMBASE.

Referenced by GenNetlist(), OnAddPlugin(), and OnDelPlugin().

684 {
685  wxString msg, Command;
686 
688 
690 
691  // Update existing custom pages
692  int jj = 0;
693  for( int ii = 0; ii < CUSTOMPANEL_COUNTMAX; ii++ )
694  {
696 
697  if( currPage == NULL )
698  break;
699 
700  wxString title = currPage->m_TitleStringCtrl->GetValue();
701 
702  if( title.IsEmpty() )
703  continue;
704 
705  msg = CUSTOM_NETLIST_TITLE;
706  msg << jj + 1;
707  m_config->Write( msg, title );
708 
709  Command = currPage->m_CommandStringCtrl->GetValue();
711  msg << jj + 1;
712  m_config->Write( msg, Command );
713  jj++;
714  }
715 
716  // Ensure all other pages are void
717  for(; jj < CUSTOMPANEL_COUNTMAX; jj++ )
718  {
719  msg = CUSTOM_NETLIST_TITLE;
720  msg << jj + 1;
721  m_config->Write( msg, wxEmptyString );
722 
724  msg << jj + 1;
725  m_config->Write( msg, wxEmptyString );
726  }
727 }
#define CUSTOM_NETLIST_COMMAND
#define NETLIST_USE_DEFAULT_NETNAME
#define CUSTOMPANEL_COUNTMAX
#define CUSTOM_NETLIST_TITLE
NETLIST_PAGE_DIALOG * m_PanelNetType[4+CUSTOMPANEL_COUNTMAX]

Friends And Related Function Documentation

friend class NETLIST_PAGE_DIALOG
friend

Member Data Documentation

bool NETLIST_DIALOG::m_asFormatSelected
protected

Definition at line 128 of file eeschema/dialogs/dialog_netlist.cpp.

Referenced by NETLIST_DIALOG().

wxButton* NETLIST_DIALOG_BASE::m_buttonAddPlugin
protectedinherited

Definition at line 61 of file dialog_netlist_base.h.

wxButton* NETLIST_DIALOG_BASE::m_buttonCancel
protectedinherited

Definition at line 60 of file dialog_netlist_base.h.

wxButton* NETLIST_DIALOG_BASE::m_buttonDelPlugin
protectedinherited

Definition at line 62 of file dialog_netlist_base.h.

Referenced by OnNetlistTypeSelection().

wxButton* NETLIST_DIALOG_BASE::m_buttonNetlist
protectedinherited

Definition at line 59 of file dialog_netlist_base.h.

Referenced by NETLIST_DIALOG().

wxCheckBox* NETLIST_DIALOG_BASE::m_cbUseDefaultNetlistName
protectedinherited
wxConfigBase* NETLIST_DIALOG::m_config
private
std::string DIALOG_SHIM::m_hash_key
protectedinherited
wxString NETLIST_DIALOG::m_NetFmtName

Definition at line 124 of file eeschema/dialogs/dialog_netlist.cpp.

Referenced by NETLIST_DIALOG().

wxNotebook* NETLIST_DIALOG_BASE::m_NoteBook
protectedinherited
EVENT_LOOP* DIALOG_SHIM::m_qmodal_loop
protectedinherited

Definition at line 131 of file dialog_shim.h.

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

WDO_ENABLE_DISABLE* DIALOG_SHIM::m_qmodal_parent_disabler
protectedinherited
bool DIALOG_SHIM::m_qmodal_showing
protectedinherited
wxStaticLine* NETLIST_DIALOG_BASE::m_staticline1
protectedinherited

Definition at line 63 of file dialog_netlist_base.h.

wxStaticText* NETLIST_DIALOG_BASE::m_staticTextDefaultFN
protectedinherited

Definition at line 65 of file dialog_netlist_base.h.

wxTextCtrl* NETLIST_DIALOG_BASE::m_textCtrlDefaultFileName
protectedinherited

Definition at line 66 of file dialog_netlist_base.h.

Referenced by OnNetlistTypeSelection().


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