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 311 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, OnNetlistTypeSelection(), PANELCADSTAR, PANELCUSTOMBASE, PANELORCADPCB2, and PANELPCBNEW.

311  :
312  NETLIST_DIALOG_BASE( parent )
313 {
314  m_Parent = parent;
316 
317  long tmp;
318  m_config->Read( NETLIST_USE_DEFAULT_NETNAME, &tmp, 0l );
319  m_cbUseDefaultNetlistName->SetValue( tmp );
321 
322  for( int ii = 0; ii < PANELCUSTOMBASE + CUSTOMPANEL_COUNTMAX; ii++ )
323  {
324  m_PanelNetType[ii] = NULL;
325  }
326 
327  // Add notebook pages:
328  m_asFormatSelected = false; // Will be set to true, if a format is selected
329 
330  // Add Panel FORMAT PCBNEW
332  new NETLIST_PAGE_DIALOG( m_NoteBook, wxT( "Pcbnew" ),
333  NET_TYPE_PCBNEW );
334 
335  // Add Panel FORMAT ORCADPCB2
337  new NETLIST_PAGE_DIALOG( m_NoteBook, wxT( "OrcadPCB2" ),
339 
340  // Add Panel FORMAT CADSTAR
342  new NETLIST_PAGE_DIALOG( m_NoteBook, wxT( "CadStar" ),
344 
345  // Add Panel spice
347 
348  // Add custom panels:
350 
351  // Ensure a netlist format is selected:
352  if( !m_asFormatSelected )
353  {
354  m_PanelNetType[PANELPCBNEW]->m_IsCurrentFormat->SetValue( true );
355  m_NoteBook->SetSelection( PANELPCBNEW );
356  // call OnNetlistTypeSelection to update some widgets.
357  // SetSelection() do nothing if the current page is already PANELPCBNEW
358  wxNotebookEvent event;
359  OnNetlistTypeSelection( event );
360  }
361 
362  SetDefaultItem( m_buttonNetlist );
363 
364  // Now all widgets have the size fixed, call FinishDialogSettings
366 }
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]
void OnNetlistTypeSelection(wxNotebookEvent &event) override
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 447 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().

450 {
451  NETLIST_PAGE_DIALOG* currPage;
452 
453  currPage = new NETLIST_PAGE_DIALOG( m_NoteBook, aTitle, aNetTypeId );
454 
455 
456  currPage->m_LowBoxSizer->Add( new wxStaticText( currPage,
457  -1, _( "Netlist command:" ) ), 0,
458  wxGROW | wxLEFT | wxRIGHT | wxTOP, 5 );
459 
460  currPage->m_CommandStringCtrl = new wxTextCtrl( currPage, -1, aCommandString,
461  wxDefaultPosition, wxDefaultSize );
462 
463  currPage->m_CommandStringCtrl->SetInsertionPoint( 1 );
464  currPage->m_LowBoxSizer->Add( currPage->m_CommandStringCtrl,
465  0,
466  wxGROW | wxTOP | wxLEFT | wxRIGHT | wxBOTTOM,
467  5 );
468 
469  currPage->m_LowBoxSizer->Add( new wxStaticText( currPage,
470  -1, _( "Title:" ) ), 0,
471  wxGROW | wxLEFT | wxRIGHT | wxTOP, 5 );
472 
473  currPage->m_TitleStringCtrl = new wxTextCtrl( currPage, -1, aTitle,
474  wxDefaultPosition, wxDefaultSize );
475 
476  currPage->m_TitleStringCtrl->SetInsertionPoint( 1 );
477  currPage->m_LowBoxSizer->Add( currPage->m_TitleStringCtrl,
478  0,
479  wxGROW | wxTOP | wxLEFT | wxRIGHT | wxBOTTOM,
480  5 );
481  return currPage;
482 }
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 622 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().

624 {
625  wxString fileExt;
626  wxString fileWildcard;
627 
628  bool ret = true;
629 
630  switch( aNetTypeId )
631  {
632  case NET_TYPE_SPICE:
633  fileExt = wxT( "cir" );
634  fileWildcard = _( "SPICE netlist file (.cir)|*.cir" );
635  break;
636 
637  case NET_TYPE_CADSTAR:
638  fileExt = wxT( "frp" );
639  fileWildcard = _( "CadStar netlist file (.frp)|*.frp" );
640  break;
641 
642  case NET_TYPE_PCBNEW:
643  case NET_TYPE_ORCADPCB2:
644  fileExt = NetlistFileExtension;
645  fileWildcard = NetlistFileWildcard;
646  break;
647 
648  default: // custom, NET_TYPE_CUSTOM1 and greater
649  fileWildcard = AllFilesWildcard;
650  ret = false;
651  }
652 
653  if( aExt )
654  *aExt = fileExt;
655 
656  if( aWildCard )
657  *aWildCard = fileWildcard;
658 
659  return ret;
660 }
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 COLOR4D_PICKER_DLG::COLOR4D_PICKER_DLG(), 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_GLOBAL_SYM_LIB_TABLE_CONFIG::DIALOG_GLOBAL_SYM_LIB_TABLE_CONFIG(), 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 546 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().

547 {
548  wxFileName fn;
549  wxString fileWildcard;
550  wxString fileExt;
551  wxString title = _( "Save Netlist File" );
552 
554 
555  NETLIST_PAGE_DIALOG* currPage;
556  currPage = (NETLIST_PAGE_DIALOG*) m_NoteBook->GetCurrentPage();
557 
558  unsigned netlist_opt = 0;
559 
560  // Calculate the netlist filename
561  fn = g_RootSheet->GetScreen()->GetFileName();
562  FilenamePrms( currPage->m_IdNetType, &fileExt, &fileWildcard );
563 
564  // Set some parameters
565  switch( currPage->m_IdNetType )
566  {
567  case NET_TYPE_SPICE:
568  // Set spice netlist options:
569  if( currPage->m_SpiceAjustPassiveValues->GetValue() )
570  netlist_opt |= NET_ADJUST_PASSIVE_VALS;
571  break;
572 
573  case NET_TYPE_CADSTAR:
574  break;
575 
576  case NET_TYPE_PCBNEW:
577  break;
578 
579  case NET_TYPE_ORCADPCB2:
580  break;
581 
582  default: // custom, NET_TYPE_CUSTOM1 and greater
583  title.Printf( _( "%s Export" ), currPage->m_TitleStringCtrl->GetValue().GetData() );
584  }
585 
586  fn.SetExt( fileExt );
587 
588  if( fn.GetPath().IsEmpty() )
589  fn.SetPath( wxPathOnly( Prj().GetProjectFullName() ) );
590 
591  wxString fullpath = fn.GetFullPath();
592 
593  if( !GetUseDefaultNetlistName() || currPage->m_IdNetType >= NET_TYPE_CUSTOM1 )
594  {
595  wxString fullname = fn.GetFullName();
596  wxString path = fn.GetPath();
597 
598  // fullname does not and should not include the path, per wx docs.
599  wxFileDialog dlg( this, title, path, fullname, fileWildcard, wxFD_SAVE );
600 
601  if( dlg.ShowModal() == wxID_CANCEL )
602  return;
603 
604  fullpath = dlg.GetPath(); // directory + filename
605  }
606 
608 
609  if( currPage->m_CommandStringCtrl )
610  m_Parent->SetNetListerCommand( currPage->m_CommandStringCtrl->GetValue() );
611  else
612  m_Parent->SetNetListerCommand( wxEmptyString );
613 
614  m_Parent->CreateNetlist( currPage->m_IdNetType, fullpath, netlist_opt );
615 
617 
618  EndModal( wxID_OK );
619 }
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:55
bool CreateNetlist(int aFormat, const wxString &aFullFileName, unsigned aNetlistOptions, REPORTER *aReporter=NULL)
Function CreateNetlist.
void SetNetListerCommand(const wxString &aCommand)
Definition: schframe.h:1380
void ClearMsgPanel(void)
Clear all messages from the message panel.
Definition: draw_frame.cpp:764
bool NETLIST_DIALOG::GetUseDefaultNetlistName ( )
inlineprivate

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

References NETLIST_DIALOG_BASE::m_cbUseDefaultNetlistName.

Referenced by GenNetlist(), and WriteCurrentNetlistSetup().

176  {
177  return m_cbUseDefaultNetlistName->IsChecked();
178  }
wxCheckBox * m_cbUseDefaultNetlistName
void NETLIST_DIALOG::InstallCustomPages ( )
private

Definition at line 422 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().

423 {
424  int ii;
425  wxString title, msg;
426  NETLIST_PAGE_DIALOG* currPage;
427 
428  for( ii = 0; ii < CUSTOMPANEL_COUNTMAX; ii++ )
429  {
430  title = UserNetlistTypeName( ii == 0 ? true : false );
431 
432  if( title.IsEmpty() )
433  break; // No more panel to install
434 
435  // Install a plugin panel
437  msg << ii + 1;
438  wxString command = m_config->Read( msg );
439 
440  currPage = AddOneCustomPage( title, command,
442  m_PanelNetType[PANELCUSTOMBASE + ii] = currPage;
443  }
444 }
#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 388 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().

389 {
390  wxButton* Button;
391  NETLIST_PAGE_DIALOG* page;
392  wxString title = wxT( "Spice" );
393 
394  page = m_PanelNetType[PANELSPICE] =
396 
397  page->m_SpiceAjustPassiveValues = new wxCheckBox( page, ID_USE_NETCODE_AS_NETNAME,
398  _( "Reformat passive component values" ) );
399  page->m_SpiceAjustPassiveValues->SetToolTip(
400  _( "Reformat passive component values e.g. 1M -> 1Meg" ) );
402  page->m_LeftBoxSizer->Add( page->m_SpiceAjustPassiveValues, 0, wxGROW | wxALL, 5 );
403 
404  page->m_LowBoxSizer->Add( new wxStaticText( page, -1, _( "Simulator command:" ) ), 0,
405  wxGROW | wxLEFT | wxRIGHT | wxTOP, 5 );
406 
407  page->m_CommandStringCtrl = new wxTextCtrl( page, -1, m_Parent->GetSimulatorCommand(),
408  wxDefaultPosition, wxDefaultSize );
409 
410  page->m_CommandStringCtrl->SetInsertionPoint( 1 );
411  page->m_LowBoxSizer->Add( page->m_CommandStringCtrl,
412  0,
413  wxGROW | wxLEFT | wxRIGHT | wxBOTTOM,
414  5 );
415 
416  // Add buttons
417  Button = new wxButton( page, ID_RUN_SIMULATOR, _( "&Run Simulator" ) );
418  page->m_RightBoxSizer->Add( Button, 0, wxGROW | wxALL, 5 );
419 }
wxString GetSimulatorCommand() const
Definition: schframe.h:1378
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(), SCH_BASE_FRAME::OnEditSymbolLibTable(), 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 527 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().

528 {
529  int ii;
530 
531  m_Parent->SetSpiceAjustPassiveValues( m_PanelNetType[PANELSPICE]->m_SpiceAjustPassiveValues->IsChecked() );
532  m_Parent->SetSimulatorCommand( m_PanelNetType[PANELSPICE]->m_CommandStringCtrl->GetValue() );
533  m_Parent->SetNetListFormatName( wxEmptyString );
534 
535  for( ii = 0; ii < PANELCUSTOMBASE + CUSTOMPANEL_COUNTMAX; ii++ )
536  {
537  if( m_PanelNetType[ii] == NULL )
538  break;
539 
540  if( m_PanelNetType[ii]->m_IsCurrentFormat->GetValue() == true )
542  }
543 }
void SetSimulatorCommand(const wxString &aCommand)
Definition: schframe.h:1376
#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 764 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().

765 {
766  NETLIST_DIALOG_ADD_PLUGIN dlg( this );
767  if( dlg.ShowModal() != wxID_OK )
768  return;
769 
770  // Creates a new custom plugin page
771  wxString title = dlg.GetPluginTitle();
772 
773  // Verify it does not exists
774  int netTypeId = PANELCUSTOMBASE; // the first not used type id
775  NETLIST_PAGE_DIALOG* currPage;
776  for( int ii = 0; ii < CUSTOMPANEL_COUNTMAX; ii++ )
777  {
778  netTypeId = PANELCUSTOMBASE + ii;
779  currPage = m_PanelNetType[ii + PANELCUSTOMBASE];
780 
781  if( currPage == NULL )
782  break;
783 
784  if( currPage->GetPageNetFmtName() == title )
785  {
786  wxMessageBox( _("This plugin already exists. Abort") );
787  return;
788  }
789  }
790 
791  wxString cmd = dlg.GetPluginTCommandLine();
792  currPage = AddOneCustomPage( title,cmd, (NETLIST_TYPE_ID)netTypeId );
793  m_PanelNetType[netTypeId] = currPage;
795 
796  // Close and reopen dialog to rebuild the dialog after changes
797  EndModal( NET_PLUGIN_CHANGE );
798 }
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 746 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().

747 {
748  NETLIST_PAGE_DIALOG* currPage = (NETLIST_PAGE_DIALOG*) m_NoteBook->GetCurrentPage();
749 
750  currPage->m_CommandStringCtrl->SetValue( wxEmptyString );
751  currPage->m_TitleStringCtrl->SetValue( wxEmptyString );
752 
753  if( currPage->m_IsCurrentFormat->IsChecked() )
754  {
755  currPage->m_IsCurrentFormat->SetValue( false );
756  m_PanelNetType[PANELPCBNEW]->m_IsCurrentFormat->SetValue( true );
757  }
758 
760  EndModal( NET_PLUGIN_CHANGE );
761 }
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 504 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.

Referenced by NETLIST_DIALOG().

505 {
506  NETLIST_PAGE_DIALOG* currPage = (NETLIST_PAGE_DIALOG*) m_NoteBook->GetCurrentPage();
507 
508  if( currPage == NULL )
509  return;
510 
511  m_buttonDelPlugin->Enable( currPage->m_IdNetType >= NET_TYPE_CUSTOM1 );
513 
514  wxString fileExt;
515 
516  if( FilenamePrms( currPage->m_IdNetType, &fileExt, NULL ) )
517  {
518  wxFileName fn = g_RootSheet->GetScreen()->GetFileName();
519  fn.SetExt( fileExt );
520  m_textCtrlDefaultFileName->SetValue( fn.GetFullName() );
521  }
522  else
523  m_textCtrlDefaultFileName->Clear();
524 }
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:55
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(), DIALOG_SYMBOL_LIB_TABLE::DIALOG_SYMBOL_LIB_TABLE(), 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(), SCH_BASE_FRAME::OnEditSymbolLibTable(), 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 663 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().

664 {
665  wxFileName fn;
666  wxString ExecFile, CommandLine;
667 
669 
670  wxString tmp = m_PanelNetType[PANELSPICE]->m_CommandStringCtrl->GetValue();
671  tmp.Trim( false );
672  tmp.Trim( true );
674  ExecFile = tmp.BeforeFirst( ' ' );
675  CommandLine = tmp.AfterFirst( ' ' );
676 
677  // Calculate the netlist filename
678  fn = g_RootSheet->GetScreen()->GetFileName();
679  fn.SetExt( wxT( "cir" ) );
680  CommandLine += wxT( " \"" ) + fn.GetFullPath() + wxT( "\"" );
681 
682  NETLIST_PAGE_DIALOG* currPage;
683  currPage = (NETLIST_PAGE_DIALOG*) m_NoteBook->GetCurrentPage();
684 
685  // Set spice netlist options:
686  unsigned netlist_opt = 0;
687 
688  if( currPage->m_SpiceAjustPassiveValues && currPage->m_SpiceAjustPassiveValues->GetValue() )
689  netlist_opt |= NET_ADJUST_PASSIVE_VALS;
690 
691  if( ! m_Parent->CreateNetlist( currPage->m_IdNetType, fn.GetFullPath(),
692  netlist_opt ) )
693  return;
694 
695  ExecuteFile( this, ExecFile, CommandLine );
696 }
const wxString & GetFileName() const
void SetSimulatorCommand(const wxString &aCommand)
Definition: schframe.h:1376
SCH_SCREEN * GetScreen()
Definition: sch_sheet.h:286
SCH_SHEET * g_RootSheet
Definition: eeschema.cpp:55
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 485 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().

486 {
487  int ii;
488  NETLIST_PAGE_DIALOG* currPage;
489 
490  for( ii = 0; ii < PANELCUSTOMBASE + CUSTOMPANEL_COUNTMAX; ii++ )
491  if( m_PanelNetType[ii] )
492  m_PanelNetType[ii]->m_IsCurrentFormat->SetValue( false );
493 
494  currPage = (NETLIST_PAGE_DIALOG*) m_NoteBook->GetCurrentPage();
495 
496  if( currPage == NULL )
497  return;
498 
500  currPage->m_IsCurrentFormat->SetValue( true );
501 }
#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_ANNOTATE::OnApplyClick(), DIALOG_SCH_FIND::OnCancel(), DIALOG_ANNOTATE::OnCancelClick(), 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 369 of file eeschema/dialogs/dialog_netlist.cpp.

References CUSTOM_NETLIST_TITLE, m_config, and name.

Referenced by InstallCustomPages().

370 {
371  static int index;
372  wxString name, msg;
373 
374  if( first_item )
375  index = 0;
376  else
377  index++;
378 
379  msg = CUSTOM_NETLIST_TITLE;
380  msg << index + 1;
381 
382  name = m_config->Read( msg );
383 
384  return name;
385 }
#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 699 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().

700 {
701  wxString msg, Command;
702 
704 
706 
707  // Update existing custom pages
708  int jj = 0;
709  for( int ii = 0; ii < CUSTOMPANEL_COUNTMAX; ii++ )
710  {
712 
713  if( currPage == NULL )
714  break;
715 
716  wxString title = currPage->m_TitleStringCtrl->GetValue();
717 
718  if( title.IsEmpty() )
719  continue;
720 
721  msg = CUSTOM_NETLIST_TITLE;
722  msg << jj + 1;
723  m_config->Write( msg, title );
724 
725  Command = currPage->m_CommandStringCtrl->GetValue();
727  msg << jj + 1;
728  m_config->Write( msg, Command );
729  jj++;
730  }
731 
732  // Ensure all other pages are void
733  for(; jj < CUSTOMPANEL_COUNTMAX; jj++ )
734  {
735  msg = CUSTOM_NETLIST_TITLE;
736  msg << jj + 1;
737  m_config->Write( msg, wxEmptyString );
738 
740  msg << jj + 1;
741  m_config->Write( msg, wxEmptyString );
742  }
743 }
#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: