More comprehensive dialog in netlist plugin interface. Some cleanup
This commit is contained in:
parent
89a872b86e
commit
cbb714f934
|
@ -4,6 +4,13 @@ Started 2007-June-11
|
|||
Please add newer entries at the top, list the date and your name with
|
||||
email address.
|
||||
|
||||
2007-Nov-10 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
|
||||
================================================================================
|
||||
+eeschema:
|
||||
More comprehensive dialog in netlist plugin interface.
|
||||
Eeschema configuration now shows the plugin netlist list
|
||||
|
||||
|
||||
2007-Nov-09 UPDATE Geoff Harland <gharlandau@yahoo.com.au>
|
||||
================================================================================
|
||||
+ 3d-viewer
|
||||
|
|
|
@ -71,9 +71,9 @@ BEGIN_EVENT_TABLE( KiConfigEeschemaFrame, wxDialog )
|
|||
|
||||
EVT_BUTTON( SAVE_CFG, KiConfigEeschemaFrame::OnSaveCfgClick )
|
||||
|
||||
EVT_RADIOBOX( FORMAT_NETLIST, KiConfigEeschemaFrame::OnFormatNetlistSelected )
|
||||
EVT_LISTBOX( FORMAT_NETLIST, KiConfigEeschemaFrame::OnFormatNetlistSelected )
|
||||
|
||||
EVT_BUTTON( DEL_LIB, KiConfigEeschemaFrame::OnDelLibClick )
|
||||
EVT_BUTTON( REMOVE_LIB, KiConfigEeschemaFrame::OnRemoveLibClick )
|
||||
|
||||
EVT_BUTTON( ADD_LIB, KiConfigEeschemaFrame::OnAddLibClick )
|
||||
|
||||
|
@ -123,7 +123,7 @@ bool KiConfigEeschemaFrame::Create( wxWindow* parent, wxWindowID id, const wxStr
|
|||
////@end KiConfigEeschemaFrame member initialisation
|
||||
|
||||
////@begin KiConfigEeschemaFrame creation
|
||||
SetExtraStyle(GetExtraStyle()|wxWS_EX_BLOCK_EVENTS);
|
||||
SetExtraStyle(wxWS_EX_BLOCK_EVENTS);
|
||||
wxDialog::Create( parent, id, caption, pos, size, style );
|
||||
|
||||
CreateControls();
|
||||
|
@ -145,7 +145,7 @@ void KiConfigEeschemaFrame::CreateControls()
|
|||
SetFont(*g_DialogFont);
|
||||
|
||||
////@begin KiConfigEeschemaFrame content construction
|
||||
// Generated by DialogBlocks, 28/02/2007 15:16:31 (unregistered)
|
||||
// Generated by DialogBlocks, 10/11/2007 15:23:03 (unregistered)
|
||||
|
||||
KiConfigEeschemaFrame* itemDialog1 = this;
|
||||
|
||||
|
@ -153,76 +153,80 @@ void KiConfigEeschemaFrame::CreateControls()
|
|||
itemDialog1->SetSizer(itemBoxSizer2);
|
||||
|
||||
wxBoxSizer* itemBoxSizer3 = new wxBoxSizer(wxHORIZONTAL);
|
||||
itemBoxSizer2->Add(itemBoxSizer3, 0, wxGROW|wxALL, 5);
|
||||
itemBoxSizer2->Add(itemBoxSizer3, 1, wxGROW|wxALL, 5);
|
||||
|
||||
wxBoxSizer* itemBoxSizer4 = new wxBoxSizer(wxVERTICAL);
|
||||
itemBoxSizer3->Add(itemBoxSizer4, 0, wxGROW|wxALL, 5);
|
||||
|
||||
wxButton* itemButton5 = new wxButton( itemDialog1, SAVE_CFG, _("Save Cfg"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
if (KiConfigEeschemaFrame::ShowToolTips())
|
||||
itemButton5->SetToolTip(_("save current configuration setting in the local .pro file"));
|
||||
itemButton5->SetForegroundColour(wxColour(204, 0, 0));
|
||||
itemBoxSizer4->Add(itemButton5, 0, wxGROW|wxALL, 5);
|
||||
|
||||
itemBoxSizer4->Add(5, 5, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
|
||||
itemBoxSizer4->Add(5, 5, 0, wxGROW|wxALL, 5);
|
||||
|
||||
wxString m_NetFormatBoxStrings[] = {
|
||||
_("PcbNew"),
|
||||
_("&OrcadPcb2"),
|
||||
_("&CadStar"),
|
||||
_("&Spice"),
|
||||
_("Other")
|
||||
};
|
||||
m_NetFormatBox = new wxRadioBox( itemDialog1, FORMAT_NETLIST, _("NetList Formats:"), wxDefaultPosition, wxDefaultSize, 5, m_NetFormatBoxStrings, 1, wxRA_SPECIFY_COLS );
|
||||
m_NetFormatBox->SetSelection(0);
|
||||
itemBoxSizer4->Add(m_NetFormatBox, 0, wxGROW|wxALL, 5);
|
||||
wxStaticText* itemStaticText7 = new wxStaticText( itemDialog1, wxID_STATIC, _("NetList Formats:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
itemBoxSizer4->Add(itemStaticText7, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP, 5);
|
||||
|
||||
itemBoxSizer4->Add(5, 5, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
|
||||
wxArrayString m_NetFormatBoxStrings;
|
||||
m_NetFormatBox = new wxListBox( itemDialog1, FORMAT_NETLIST, wxDefaultPosition, wxDefaultSize, m_NetFormatBoxStrings, wxLB_SINGLE );
|
||||
itemBoxSizer4->Add(m_NetFormatBox, 0, wxGROW|wxLEFT|wxRIGHT|wxBOTTOM, 5);
|
||||
|
||||
wxStaticBox* itemStaticBoxSizer9Static = new wxStaticBox(itemDialog1, wxID_ANY, _("Files ext:"));
|
||||
m_FileExtList = new wxStaticBoxSizer(itemStaticBoxSizer9Static, wxVERTICAL);
|
||||
itemBoxSizer4->Add(5, 5, 0, wxGROW|wxALL, 5);
|
||||
|
||||
wxStaticBox* itemStaticBoxSizer10Static = new wxStaticBox(itemDialog1, wxID_ANY, _("Files ext:"));
|
||||
m_FileExtList = new wxStaticBoxSizer(itemStaticBoxSizer10Static, wxVERTICAL);
|
||||
itemBoxSizer4->Add(m_FileExtList, 0, wxGROW|wxALL, 5);
|
||||
|
||||
wxBoxSizer* itemBoxSizer10 = new wxBoxSizer(wxVERTICAL);
|
||||
itemBoxSizer3->Add(itemBoxSizer10, 0, wxGROW|wxLEFT|wxRIGHT|wxBOTTOM, 5);
|
||||
|
||||
wxBoxSizer* itemBoxSizer11 = new wxBoxSizer(wxHORIZONTAL);
|
||||
itemBoxSizer10->Add(itemBoxSizer11, 0, wxALIGN_CENTER_HORIZONTAL|wxLEFT|wxRIGHT|wxBOTTOM, 5);
|
||||
wxBoxSizer* itemBoxSizer11 = new wxBoxSizer(wxVERTICAL);
|
||||
itemBoxSizer3->Add(itemBoxSizer11, 1, wxGROW|wxLEFT|wxRIGHT|wxBOTTOM, 5);
|
||||
|
||||
wxBoxSizer* itemBoxSizer12 = new wxBoxSizer(wxVERTICAL);
|
||||
itemBoxSizer11->Add(itemBoxSizer12, 0, wxALIGN_CENTER_VERTICAL, 5);
|
||||
itemBoxSizer11->Add(itemBoxSizer12, 1, wxGROW, 5);
|
||||
|
||||
wxBoxSizer* itemBoxSizer13 = new wxBoxSizer(wxHORIZONTAL);
|
||||
itemBoxSizer12->Add(itemBoxSizer13, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
|
||||
itemBoxSizer12->Add(itemBoxSizer13, 0, wxGROW|wxALL, 5);
|
||||
|
||||
wxButton* itemButton14 = new wxButton( itemDialog1, DEL_LIB, _("Del"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
wxButton* itemButton14 = new wxButton( itemDialog1, REMOVE_LIB, _("Remove"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
if (KiConfigEeschemaFrame::ShowToolTips())
|
||||
itemButton14->SetToolTip(_("Unload the selected library"));
|
||||
itemButton14->SetForegroundColour(wxColour(204, 0, 0));
|
||||
itemBoxSizer13->Add(itemButton14, 0, wxGROW|wxALL, 5);
|
||||
itemBoxSizer13->Add(itemButton14, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
|
||||
|
||||
wxButton* itemButton15 = new wxButton( itemDialog1, ADD_LIB, _("Add"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
if (KiConfigEeschemaFrame::ShowToolTips())
|
||||
itemButton15->SetToolTip(_("Add a new library after the selected library, add load it"));
|
||||
itemButton15->SetForegroundColour(wxColour(0, 128, 0));
|
||||
itemBoxSizer13->Add(itemButton15, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
|
||||
|
||||
wxButton* itemButton16 = new wxButton( itemDialog1, INSERT_LIB, _("Ins"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
itemButton16->SetHelpText(_("Add a new library beforer the selected library, add load it"));
|
||||
if (KiConfigEeschemaFrame::ShowToolTips())
|
||||
itemButton16->SetToolTip(_("Add a new library beforer the selected library, add load it"));
|
||||
itemButton16->SetForegroundColour(wxColour(0, 0, 255));
|
||||
itemBoxSizer13->Add(itemButton16, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
|
||||
|
||||
wxBoxSizer* itemBoxSizer17 = new wxBoxSizer(wxVERTICAL);
|
||||
itemBoxSizer12->Add(itemBoxSizer17, 0, wxGROW|wxALL, 5);
|
||||
itemBoxSizer12->Add(itemBoxSizer17, 1, wxGROW|wxALL, 5);
|
||||
|
||||
wxStaticText* itemStaticText18 = new wxStaticText( itemDialog1, wxID_STATIC, _("Libraries"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
itemStaticText18->SetForegroundColour(wxColour(204, 0, 0));
|
||||
itemBoxSizer17->Add(itemStaticText18, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxADJUST_MINSIZE, 5);
|
||||
|
||||
wxString* m_ListLibrStrings = NULL;
|
||||
m_ListLibr = new wxListBox( itemDialog1, ID_LIST_LIBS, wxDefaultPosition, wxSize(-1, 300), 0, m_ListLibrStrings, wxLB_SINGLE );
|
||||
itemBoxSizer17->Add(m_ListLibr, 0, wxGROW|wxLEFT|wxRIGHT|wxBOTTOM, 5);
|
||||
wxArrayString m_ListLibrStrings;
|
||||
m_ListLibr = new wxListBox( itemDialog1, ID_LISTBOX, wxDefaultPosition, wxDefaultSize, m_ListLibrStrings, wxLB_SINGLE );
|
||||
itemBoxSizer17->Add(m_ListLibr, 1, wxGROW|wxLEFT|wxRIGHT|wxBOTTOM|wxADJUST_MINSIZE, 5);
|
||||
|
||||
wxStaticBox* itemStaticBoxSizer20Static = new wxStaticBox(itemDialog1, wxID_ANY, _("Library files path:"));
|
||||
wxStaticBox* itemStaticBoxSizer20Static = new wxStaticBox(itemDialog1, wxID_ANY, _("Default library file path:"));
|
||||
wxStaticBoxSizer* itemStaticBoxSizer20 = new wxStaticBoxSizer(itemStaticBoxSizer20Static, wxHORIZONTAL);
|
||||
itemStaticBoxSizer20Static->SetForegroundColour(wxColour(206, 0, 0));
|
||||
itemBoxSizer2->Add(itemStaticBoxSizer20, 0, wxGROW|wxALL, 5);
|
||||
|
||||
m_LibDirCtrl = new wxTextCtrl( itemDialog1, ID_TEXTCTRL, _T(""), wxDefaultPosition, wxSize(350, -1), 0 );
|
||||
itemStaticBoxSizer20->Add(m_LibDirCtrl, 0, wxGROW|wxLEFT|wxRIGHT|wxBOTTOM, 5);
|
||||
m_LibDirCtrl = new wxTextCtrl( itemDialog1, ID_TEXTCTRL, _T(""), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
if (KiConfigEeschemaFrame::ShowToolTips())
|
||||
m_LibDirCtrl->SetToolTip(_("Default path to search libraries which have no absolute path in name,\nor a name which does not start by ./ or ../\nIf void, the default path is kicad/library\n"));
|
||||
itemStaticBoxSizer20->Add(m_LibDirCtrl, 1, wxGROW|wxLEFT|wxRIGHT|wxBOTTOM, 5);
|
||||
|
||||
wxButton* itemButton22 = new wxButton( itemDialog1, ID_LIB_PATH_SEL, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
itemStaticBoxSizer20->Add(itemButton22, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
|
||||
|
@ -248,6 +252,19 @@ wxString msg = _("Cmp file Ext: ") + g_NetCmpExtBuffer;
|
|||
msg = _("Schematic file Ext: ") + g_SchExtBuffer;
|
||||
text = new wxStaticText( itemDialog1, -1, msg, wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_FileExtList->Add(text, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxADJUST_MINSIZE, 5);
|
||||
|
||||
wxArrayString NetlistNameItems;
|
||||
NetlistNameItems.Add(wxT("Pcbnew"));
|
||||
NetlistNameItems.Add(wxT("OrcadPcb2"));
|
||||
NetlistNameItems.Add(wxT("CadStar"));
|
||||
NetlistNameItems.Add(wxT("Spice"));
|
||||
msg = ReturnUserNetlistTypeName( true );
|
||||
while ( ! msg.IsEmpty() )
|
||||
{
|
||||
NetlistNameItems.Add(msg);
|
||||
msg = ReturnUserNetlistTypeName( false );
|
||||
}
|
||||
m_NetFormatBox->InsertItems(NetlistNameItems, 0);
|
||||
}
|
||||
|
||||
/*!
|
||||
|
@ -382,52 +399,25 @@ void KiConfigEeschemaFrame::SetFormatsNetListes()
|
|||
/* Adjust the m_NetFormatBox current selection, according to the current netlist format*/
|
||||
|
||||
{
|
||||
switch( g_NetFormat )
|
||||
{
|
||||
case NET_TYPE_NOT_INIT:
|
||||
case NET_TYPE_PCBNEW:
|
||||
m_NetFormatBox->SetSelection(0);
|
||||
break;
|
||||
|
||||
case NET_TYPE_ORCADPCB2:
|
||||
m_NetFormatBox->SetSelection(1);
|
||||
break;
|
||||
|
||||
case NET_TYPE_CADSTAR:
|
||||
m_NetFormatBox->SetSelection(2);
|
||||
break;
|
||||
|
||||
case NET_TYPE_SPICE:
|
||||
m_NetFormatBox->SetSelection(3);
|
||||
break;
|
||||
|
||||
default:
|
||||
m_NetFormatBox->SetSelection(4);
|
||||
break;
|
||||
}
|
||||
if ( g_NetFormat > (int)m_NetFormatBox->GetCount() )
|
||||
g_NetFormat = NET_TYPE_PCBNEW;
|
||||
m_NetFormatBox->SetSelection(g_NetFormat - NET_TYPE_PCBNEW);
|
||||
}
|
||||
|
||||
/*!
|
||||
* wxEVT_COMMAND_RADIOBOX_SELECTED event handler for FORMAT_NETLIST
|
||||
* wxEVT_COMMAND_NETLIST_SELECTED event handler for FORMAT_NETLIST
|
||||
*/
|
||||
|
||||
void KiConfigEeschemaFrame::OnFormatNetlistSelected( wxCommandEvent& event )
|
||||
{
|
||||
int ii;
|
||||
|
||||
ii = m_NetFormatBox->GetSelection();
|
||||
if ( ii == 0 ) g_NetFormat = NET_TYPE_PCBNEW;
|
||||
if ( ii == 1 ) g_NetFormat = NET_TYPE_ORCADPCB2;
|
||||
else if ( ii == 2 ) g_NetFormat = NET_TYPE_CADSTAR;
|
||||
else if ( ii == 3 ) g_NetFormat = NET_TYPE_SPICE;
|
||||
else if ( g_NetFormat < NET_TYPE_CUSTOM1 ) g_NetFormat = NET_TYPE_CUSTOM1;
|
||||
g_NetFormat = m_NetFormatBox->GetSelection() + NET_TYPE_PCBNEW;
|
||||
}
|
||||
|
||||
/*!
|
||||
* wxEVT_COMMAND_BUTTON_CLICKED event handler for DEL_LIB
|
||||
*/
|
||||
|
||||
void KiConfigEeschemaFrame::OnDelLibClick( wxCommandEvent& event )
|
||||
void KiConfigEeschemaFrame::OnRemoveLibClick( wxCommandEvent& event )
|
||||
{
|
||||
LibDelFct(event);
|
||||
}
|
||||
|
|
|
@ -40,10 +40,10 @@
|
|||
#define ID_DIALOG 10000
|
||||
#define SAVE_CFG 10001
|
||||
#define FORMAT_NETLIST 10006
|
||||
#define DEL_LIB 10002
|
||||
#define ADD_LIB 10003
|
||||
#define INSERT_LIB 10004
|
||||
#define ID_LIST_LIBS 10005
|
||||
#define REMOVE_LIB 10009
|
||||
#define ADD_LIB 10010
|
||||
#define INSERT_LIB 10011
|
||||
#define ID_LISTBOX 10012
|
||||
#define ID_TEXTCTRL 10007
|
||||
#define ID_LIB_PATH_SEL 10008
|
||||
#define SYMBOL_KICONFIGEESCHEMAFRAME_STYLE wxCAPTION|wxSYSTEM_MENU|wxCLOSE_BOX|MAYBE_RESIZE_BORDER
|
||||
|
@ -89,11 +89,11 @@ public:
|
|||
/// wxEVT_COMMAND_BUTTON_CLICKED event handler for SAVE_CFG
|
||||
void OnSaveCfgClick( wxCommandEvent& event );
|
||||
|
||||
/// wxEVT_COMMAND_RADIOBOX_SELECTED event handler for FORMAT_NETLIST
|
||||
/// wxEVT_COMMAND_LISTBOX_SELECTED event handler for FORMAT_NETLIST
|
||||
void OnFormatNetlistSelected( wxCommandEvent& event );
|
||||
|
||||
/// wxEVT_COMMAND_BUTTON_CLICKED event handler for DEL_LIB
|
||||
void OnDelLibClick( wxCommandEvent& event );
|
||||
/// wxEVT_COMMAND_BUTTON_CLICKED event handler for REMOVE_LIB
|
||||
void OnRemoveLibClick( wxCommandEvent& event );
|
||||
|
||||
/// wxEVT_COMMAND_BUTTON_CLICKED event handler for ADD_LIB
|
||||
void OnAddLibClick( wxCommandEvent& event );
|
||||
|
@ -124,7 +124,7 @@ public:
|
|||
void ChangeSetup();
|
||||
|
||||
////@begin KiConfigEeschemaFrame member variables
|
||||
wxRadioBox* m_NetFormatBox;
|
||||
wxListBox* m_NetFormatBox;
|
||||
wxStaticBoxSizer* m_FileExtList;
|
||||
wxListBox* m_ListLibr;
|
||||
wxTextCtrl* m_LibDirCtrl;
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -1 +0,0 @@
|
|||
#include "wx/msw/wx.rc"
|
|
@ -82,21 +82,10 @@ void WriteNetList( WinEDA_SchematicFrame* frame, const wxString& FileNameNL,
|
|||
fclose( f );
|
||||
break;
|
||||
|
||||
case NET_TYPE_CUSTOM1:
|
||||
case NET_TYPE_CUSTOM2:
|
||||
case NET_TYPE_CUSTOM3:
|
||||
case NET_TYPE_CUSTOM4:
|
||||
case NET_TYPE_CUSTOM5:
|
||||
case NET_TYPE_CUSTOM6:
|
||||
case NET_TYPE_CUSTOM7:
|
||||
case NET_TYPE_CUSTOM8:
|
||||
Write_GENERIC_NetList( frame, FileNameNL );
|
||||
default:
|
||||
Write_GENERIC_NetList( frame, FileNameNL );
|
||||
break;
|
||||
|
||||
default:
|
||||
DisplayError( frame, wxT( "WriteNetList() err: Unknown Netlist Format" ) );
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -14,23 +14,15 @@
|
|||
#define ISBUS 1
|
||||
|
||||
|
||||
/* Indicateurs de type de netliste generee */
|
||||
/* Id to select netlist type */
|
||||
typedef enum {
|
||||
NET_TYPE_NOT_INIT = 0,
|
||||
NET_TYPE_UNINIT = 0,
|
||||
NET_TYPE_PCBNEW,
|
||||
NET_TYPE_ORCADPCB2,
|
||||
NET_TYPE_CADSTAR,
|
||||
NET_TYPE_SPICE,
|
||||
NET_TYPE_CUSTOM1,
|
||||
NET_TYPE_CUSTOM2,
|
||||
NET_TYPE_CUSTOM3,
|
||||
NET_TYPE_CUSTOM4,
|
||||
NET_TYPE_CUSTOM5,
|
||||
NET_TYPE_CUSTOM6,
|
||||
NET_TYPE_CUSTOM7,
|
||||
NET_TYPE_CUSTOM8,
|
||||
NET_TYPE_MAX
|
||||
} TypeNetForm;
|
||||
NET_TYPE_CUSTOM1 // NET_TYPE_CUSTOM1 is the first id for user netlist format
|
||||
} TypeNetForm;
|
||||
|
||||
|
||||
/* Max pin number per component and footprint */
|
||||
|
@ -119,5 +111,15 @@ eda_global ObjetNetListStruct* g_TabObjNet;
|
|||
void WriteNetList( WinEDA_SchematicFrame* frame, const wxString& FileNameNL, bool use_netnames );
|
||||
void FreeTabNetList( ObjetNetListStruct* TabNetItems, int NbrNetItems );
|
||||
|
||||
/** Function ReturnUserNetlistTypeName
|
||||
* to retrieve user netlist type names
|
||||
* @param first = true: return first name of the list, false = return next
|
||||
* @return 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
|
||||
*/
|
||||
#define CUSTOMPANEL_COUNTMAX 8 // Max number of netlist plugins
|
||||
wxString ReturnUserNetlistTypeName( bool first_item );
|
||||
|
||||
|
||||
#endif
|
||||
|
|
|
@ -2,217 +2,323 @@
|
|||
/* Dialog box for netlist outputs */
|
||||
/**********************************/
|
||||
|
||||
/* Functions relatives to the dialog creating the netlist for pcbnew.
|
||||
* The dialo is a notebook with 4 fixed netlist format:
|
||||
* PCBNEW ORCADPCB2 CADSTAR and SPICE
|
||||
* and up to CUSTOMPANEL_COUNTMAX (see netlist.h) user programmable format
|
||||
* calling an external converter with convert an intermediate format to the
|
||||
* user specific format.
|
||||
* these external converters are refered there as plugins,
|
||||
* but there are not really plugins, there are only external binaries
|
||||
*/
|
||||
|
||||
#include "fctsys.h"
|
||||
|
||||
// #include "gr_basic.h"
|
||||
#include "common.h"
|
||||
#include "program.h"
|
||||
#include "libcmp.h"
|
||||
#include "general.h"
|
||||
|
||||
#include "netlist.h" /* Definitions generales liees au calcul de netliste */
|
||||
#include "netlist.h"
|
||||
#include "protos.h"
|
||||
|
||||
|
||||
// ID for configuration:
|
||||
#define CUSTOM_NETLIST_TITLE wxT("CustomNetlistTitle")
|
||||
#define CUSTOM_NETLIST_COMMAND wxT("CustomNetlistCommand")
|
||||
#define CUSTOM_NETLIST_TITLE wxT( "CustomNetlistTitle" )
|
||||
#define CUSTOM_NETLIST_COMMAND wxT( "CustomNetlistCommand" )
|
||||
|
||||
/* Routines locales */
|
||||
|
||||
/* Variable locales */
|
||||
/* Loacl variable */
|
||||
|
||||
/* Event id for notebook page buttons: */
|
||||
enum id_netlist {
|
||||
ID_CREATE_NETLIST = 1550,
|
||||
ID_CURRENT_FORMAT_IS_DEFAULT,
|
||||
ID_RUN_SIMULATOR,
|
||||
ID_SETUP_PLUGIN,
|
||||
ID_VALIDATE_PLUGIN,
|
||||
ID_DELETE_PLUGIN,
|
||||
ID_NETLIST_NOTEBOOK
|
||||
};
|
||||
|
||||
/* panel (notebook page) identifiers */
|
||||
enum panel_netlist_index {
|
||||
PANELPCBNEW = 0, // Create Netlist format Pcbnew
|
||||
PANELORCADPCB2, // Create Netlis format OracdPcb2
|
||||
PANELCADSTAR, // Create Netlis format OracdPcb2
|
||||
PANELSPICE, // Create Netlis format Pspice
|
||||
PANELCUSTOMBASE // Start auxiliary panels (custom netlists)
|
||||
PANELPCBNEW = 0, /* Handle Netlist format Pcbnew */
|
||||
PANELORCADPCB2, /* Handle Netlist format OracdPcb2 */
|
||||
PANELCADSTAR, /* Handle Netlist format CadStar */
|
||||
PANELSPICE, /* Handle Netlist format Pspice */
|
||||
PANELCUSTOMBASE /* First auxiliary panel (custom netlists).
|
||||
* others use PANELCUSTOMBASE+1, PANELCUSTOMBASE+2.. */
|
||||
};
|
||||
|
||||
/* Values returned when the netlist dialog is demiss */
|
||||
enum gen_netlist_diag {
|
||||
NET_OK,
|
||||
NET_ABORT,
|
||||
NET_PLUGIN_CHANGE
|
||||
};
|
||||
|
||||
|
||||
/****************************************************/
|
||||
wxString ReturnUserNetlistTypeName( bool first_item )
|
||||
/****************************************************/
|
||||
|
||||
/** Function ReturnUserNetlistTypeName
|
||||
* to retrieve user netlist type names
|
||||
* @param first = true: return first name of the list, false = return next
|
||||
* @return 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
|
||||
*/
|
||||
{
|
||||
static int index;
|
||||
wxString name, msg;
|
||||
|
||||
if( first_item )
|
||||
index = 0;
|
||||
else
|
||||
index++;
|
||||
|
||||
msg = CUSTOM_NETLIST_TITLE;
|
||||
msg << index + 1;
|
||||
|
||||
if( g_EDA_Appl->m_EDA_Config )
|
||||
name = g_EDA_Appl->m_EDA_Config->Read( msg );
|
||||
|
||||
return name;
|
||||
}
|
||||
|
||||
|
||||
/************************/
|
||||
/* Class declarations : */
|
||||
/************************/
|
||||
|
||||
/* wxPanels for creating the NoteBook pages for each netlist format:
|
||||
*/
|
||||
class EDA_NoteBookPage: public wxPanel
|
||||
class EDA_NoteBookPage : public wxPanel
|
||||
{
|
||||
public:
|
||||
int m_IdNetType;
|
||||
wxCheckBox * m_IsCurrentFormat;
|
||||
WinEDA_EnterText * m_CommandStringCtrl;
|
||||
WinEDA_EnterText * m_TitleStringCtrl;
|
||||
wxButton * m_ButtonCancel;
|
||||
wxBoxSizer * m_LeftBoxSizer;
|
||||
wxBoxSizer * m_RightBoxSizer;
|
||||
wxBoxSizer * m_LowBoxSizer;
|
||||
int m_IdNetType;
|
||||
wxCheckBox* m_IsCurrentFormat;
|
||||
WinEDA_EnterText* m_CommandStringCtrl;
|
||||
WinEDA_EnterText* m_TitleStringCtrl;
|
||||
wxButton* m_ButtonCancel;
|
||||
wxBoxSizer* m_LeftBoxSizer;
|
||||
wxBoxSizer* m_RightBoxSizer;
|
||||
wxBoxSizer* m_RightOptionsBoxSizer;
|
||||
wxBoxSizer* m_LowBoxSizer;
|
||||
|
||||
EDA_NoteBookPage(wxNotebook* parent, const wxString & title,
|
||||
int id_NetType, int idCheckBox, int idCreateFile);
|
||||
~EDA_NoteBookPage() {};
|
||||
EDA_NoteBookPage( wxNotebook* parent, const wxString& title,
|
||||
int id_NetType, int idCheckBox, int idCreateFile );
|
||||
~EDA_NoteBookPage() { };
|
||||
};
|
||||
|
||||
|
||||
/*****************************************************************************/
|
||||
EDA_NoteBookPage::EDA_NoteBookPage(wxNotebook* parent, const wxString & title,
|
||||
int id_NetType, int idCheckBox, int idCreateFile) :
|
||||
wxPanel(parent, -1 )
|
||||
/*****************************************************************************/
|
||||
/* Contructor to create a setup page for one netlist format.
|
||||
* Used in Netlist format Dialog box creation
|
||||
*/
|
||||
{
|
||||
SetFont(*g_DialogFont);
|
||||
m_IdNetType = id_NetType;
|
||||
m_CommandStringCtrl = NULL;
|
||||
m_TitleStringCtrl = NULL;
|
||||
m_IsCurrentFormat = NULL;
|
||||
m_ButtonCancel = NULL;
|
||||
|
||||
parent->AddPage(this, title, g_NetFormat == m_IdNetType);
|
||||
|
||||
wxBoxSizer * MainBoxSizer = new wxBoxSizer(wxVERTICAL);
|
||||
SetSizer(MainBoxSizer);
|
||||
wxBoxSizer * UpperBoxSizer = new wxBoxSizer(wxHORIZONTAL);
|
||||
m_LowBoxSizer = new wxBoxSizer(wxVERTICAL);
|
||||
MainBoxSizer->Add(UpperBoxSizer, 0, wxGROW|wxALL, 5);
|
||||
MainBoxSizer->Add(m_LowBoxSizer, 0, wxGROW|wxALL, 5);
|
||||
|
||||
m_LeftBoxSizer = new wxBoxSizer(wxVERTICAL);
|
||||
m_RightBoxSizer = new wxBoxSizer(wxVERTICAL);
|
||||
UpperBoxSizer->Add(m_LeftBoxSizer, 0, wxGROW|wxALL, 5);
|
||||
UpperBoxSizer->Add(m_RightBoxSizer, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
|
||||
|
||||
if( idCheckBox )
|
||||
{
|
||||
wxStaticText * text = new wxStaticText(this, -1, _("Options:"));
|
||||
m_LeftBoxSizer->Add(text, 0, wxGROW|wxALL, 5);
|
||||
|
||||
m_IsCurrentFormat = new wxCheckBox(this, idCheckBox, _("Default format"));
|
||||
m_LeftBoxSizer->Add(m_IsCurrentFormat, 0, wxGROW|wxALL, 5);
|
||||
|
||||
if( g_NetFormat == m_IdNetType )
|
||||
m_IsCurrentFormat->SetValue(TRUE);
|
||||
}
|
||||
|
||||
if( idCreateFile ) // Create the 2 standard buttons: Create File and Cancel
|
||||
{
|
||||
wxButton * Button;
|
||||
if( idCreateFile == ID_SETUP_PLUGIN )
|
||||
Button = new wxButton(this, idCreateFile, _("&Browse Plugin"));
|
||||
else
|
||||
Button = new wxButton(this, idCreateFile, _("&Netlist"));
|
||||
Button->SetForegroundColour(*wxRED);
|
||||
m_RightBoxSizer->Add(Button, 0, wxGROW|wxALL, 5);
|
||||
|
||||
m_ButtonCancel =
|
||||
Button = new wxButton(this, wxID_CANCEL, _("&Cancel"));
|
||||
Button->SetForegroundColour(*wxBLUE);
|
||||
m_RightBoxSizer->Add(Button, 0, wxGROW|wxALL, 5);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#define CUSTOMPANEL_COUNTMAX 8
|
||||
/* Dialog frame for creating netlists */
|
||||
class WinEDA_NetlistFrame: public wxDialog
|
||||
class WinEDA_NetlistFrame : public wxDialog
|
||||
{
|
||||
public:
|
||||
WinEDA_SchematicFrame * m_Parent;
|
||||
wxNotebook* m_NoteBook;
|
||||
EDA_NoteBookPage * m_PanelNetType[4 + CUSTOMPANEL_COUNTMAX];
|
||||
WinEDA_SchematicFrame* m_Parent;
|
||||
wxNotebook* m_NoteBook;
|
||||
EDA_NoteBookPage* m_PanelNetType[4 + CUSTOMPANEL_COUNTMAX];
|
||||
|
||||
wxRadioBox * m_UseNetNamesInNetlist;
|
||||
wxRadioBox* m_UseNetNamesInNetlist;
|
||||
|
||||
public:
|
||||
|
||||
// Constructor and destructor
|
||||
WinEDA_NetlistFrame(WinEDA_SchematicFrame *parent, wxPoint& pos);
|
||||
~WinEDA_NetlistFrame() {};
|
||||
WinEDA_NetlistFrame( WinEDA_SchematicFrame* parent, wxPoint& pos );
|
||||
~WinEDA_NetlistFrame() { };
|
||||
|
||||
private:
|
||||
void InstallCustomPages();
|
||||
void InstallPageSpice();
|
||||
void GenNetlist(wxCommandEvent& event);
|
||||
void RunSimulator(wxCommandEvent& event);
|
||||
void NetlistUpdateOpt();
|
||||
void OnCancelClick(wxCommandEvent& event);
|
||||
void SelectNetlistType(wxCommandEvent& event);
|
||||
void SetupPlugin(wxCommandEvent& event);
|
||||
DECLARE_EVENT_TABLE()};
|
||||
void InstallCustomPages();
|
||||
void InstallPageSpice();
|
||||
void GenNetlist( wxCommandEvent& event );
|
||||
void RunSimulator( wxCommandEvent& event );
|
||||
void NetlistUpdateOpt();
|
||||
void OnCancelClick( wxCommandEvent& event );
|
||||
void SelectNetlistType( wxCommandEvent& event );
|
||||
void SetupPluginData( wxCommandEvent& event );
|
||||
void DeletePluginPanel( wxCommandEvent& event );
|
||||
void ValidatePluginPanel( wxCommandEvent& event );
|
||||
|
||||
BEGIN_EVENT_TABLE(WinEDA_NetlistFrame, wxDialog)
|
||||
EVT_BUTTON(wxID_CANCEL, WinEDA_NetlistFrame::OnCancelClick)
|
||||
EVT_BUTTON(ID_CREATE_NETLIST, WinEDA_NetlistFrame::GenNetlist)
|
||||
EVT_BUTTON(ID_SETUP_PLUGIN, WinEDA_NetlistFrame::SetupPlugin)
|
||||
EVT_CHECKBOX(ID_CURRENT_FORMAT_IS_DEFAULT, WinEDA_NetlistFrame::SelectNetlistType)
|
||||
EVT_BUTTON(ID_RUN_SIMULATOR, WinEDA_NetlistFrame::RunSimulator)
|
||||
void WriteCurrentNetlistSetup( void );
|
||||
|
||||
DECLARE_EVENT_TABLE()
|
||||
};
|
||||
|
||||
BEGIN_EVENT_TABLE( WinEDA_NetlistFrame, wxDialog )
|
||||
EVT_BUTTON( wxID_CANCEL, WinEDA_NetlistFrame::OnCancelClick )
|
||||
EVT_BUTTON( ID_CREATE_NETLIST, WinEDA_NetlistFrame::GenNetlist )
|
||||
EVT_BUTTON( ID_SETUP_PLUGIN, WinEDA_NetlistFrame::SetupPluginData )
|
||||
EVT_BUTTON( ID_DELETE_PLUGIN, WinEDA_NetlistFrame::DeletePluginPanel )
|
||||
EVT_BUTTON( ID_VALIDATE_PLUGIN, WinEDA_NetlistFrame::ValidatePluginPanel )
|
||||
EVT_CHECKBOX( ID_CURRENT_FORMAT_IS_DEFAULT, WinEDA_NetlistFrame::SelectNetlistType )
|
||||
EVT_BUTTON( ID_RUN_SIMULATOR, WinEDA_NetlistFrame::RunSimulator )
|
||||
END_EVENT_TABLE()
|
||||
|
||||
|
||||
/****************************************************************/
|
||||
void InstallNetlistFrame(WinEDA_SchematicFrame *parent, wxPoint & pos)
|
||||
/****************************************************************/
|
||||
/*********************************************************************/
|
||||
void InstallNetlistFrame( WinEDA_SchematicFrame* parent, wxPoint& pos )
|
||||
/*********************************************************************/
|
||||
|
||||
/* Installator for the netlist generation dialog box
|
||||
*/
|
||||
{
|
||||
WinEDA_NetlistFrame * frame = new WinEDA_NetlistFrame(parent, pos);
|
||||
frame->ShowModal();
|
||||
frame->Destroy();
|
||||
int ii;
|
||||
|
||||
if ( g_NetFormat < NET_TYPE_PCBNEW )
|
||||
g_NetFormat = NET_TYPE_PCBNEW;
|
||||
|
||||
do
|
||||
{
|
||||
WinEDA_NetlistFrame* frame = new WinEDA_NetlistFrame( parent, pos );
|
||||
|
||||
ii = frame->ShowModal();
|
||||
frame->Destroy();
|
||||
} while( ii == NET_PLUGIN_CHANGE );
|
||||
|
||||
// If a plugin is removed or added, rebuild and reopen the new dialog
|
||||
}
|
||||
|
||||
#define H_SIZE 370
|
||||
#define V_SIZE 300
|
||||
|
||||
/*******************************/
|
||||
/* Functions for these classes */
|
||||
/*******************************/
|
||||
|
||||
|
||||
/*****************************************************************************/
|
||||
EDA_NoteBookPage::EDA_NoteBookPage( wxNotebook* parent, const wxString& title,
|
||||
int id_NetType, int idCheckBox, int idCreateFile ) :
|
||||
wxPanel( parent, -1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL | wxBORDER_SUNKEN )
|
||||
/*****************************************************************************/
|
||||
|
||||
/** Contructor to create a setup page for one netlist format.
|
||||
* Used in Netlist format Dialog box creation
|
||||
* @param parent = wxNotebook * parent
|
||||
* @param title = title (name) of the notebook page
|
||||
* @param id_NetType = netlist type id
|
||||
* @param idCheckBox = event ID attached to the "format is default" check box
|
||||
* @param idCreateFile = event ID attached to the "create netlist" button
|
||||
*/
|
||||
{
|
||||
SetFont( *g_DialogFont );
|
||||
m_IdNetType = id_NetType;
|
||||
m_CommandStringCtrl = NULL;
|
||||
m_TitleStringCtrl = NULL;
|
||||
m_IsCurrentFormat = NULL;
|
||||
m_ButtonCancel = NULL;
|
||||
|
||||
parent->AddPage( this, title, g_NetFormat == m_IdNetType );
|
||||
|
||||
wxBoxSizer* MainBoxSizer = new wxBoxSizer( wxVERTICAL );
|
||||
SetSizer( MainBoxSizer );
|
||||
wxBoxSizer* UpperBoxSizer = new wxBoxSizer( wxHORIZONTAL );
|
||||
m_LowBoxSizer = new wxBoxSizer( wxVERTICAL );
|
||||
MainBoxSizer->Add( UpperBoxSizer, 0, wxGROW | wxALL, 5 );
|
||||
MainBoxSizer->Add( m_LowBoxSizer, 0, wxGROW | wxALL, 5 );
|
||||
|
||||
m_LeftBoxSizer = new wxBoxSizer( wxVERTICAL );
|
||||
m_RightBoxSizer = new wxBoxSizer( wxVERTICAL );
|
||||
m_RightOptionsBoxSizer = new wxBoxSizer( wxVERTICAL );
|
||||
UpperBoxSizer->Add( m_LeftBoxSizer, 0, wxGROW | wxALL, 5 );
|
||||
UpperBoxSizer->Add( m_RightBoxSizer, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5 );
|
||||
UpperBoxSizer->Add( m_RightOptionsBoxSizer, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5 );
|
||||
|
||||
if( idCheckBox )
|
||||
{
|
||||
wxStaticText* text = new wxStaticText( this, -1, _( "Options:" ) );
|
||||
m_LeftBoxSizer->Add( text, 0, wxGROW | wxALL, 5 );
|
||||
|
||||
m_IsCurrentFormat = new wxCheckBox( this, idCheckBox, _( "Default format" ) );
|
||||
m_LeftBoxSizer->Add( m_IsCurrentFormat, 0, wxGROW | wxALL, 5 );
|
||||
|
||||
if( g_NetFormat == m_IdNetType )
|
||||
m_IsCurrentFormat->SetValue( TRUE );
|
||||
}
|
||||
|
||||
/* Create the buttons: Create Neltist or browse Plugin and Cancel
|
||||
* and a third button for plugins : Remove or Ok button */
|
||||
if( idCreateFile )
|
||||
{
|
||||
wxButton* Button;
|
||||
if( idCreateFile == ID_SETUP_PLUGIN ) /* This is the "add plugin" panel */
|
||||
Button = new wxButton( this, idCreateFile, _( "&Browse Plugin" ) );
|
||||
else
|
||||
Button = new wxButton( this, idCreateFile, _( "&Netlist" ) );
|
||||
Button->SetForegroundColour( *wxRED );
|
||||
m_RightBoxSizer->Add( Button, 0, wxGROW | wxALL, 5 );
|
||||
|
||||
m_ButtonCancel =
|
||||
Button = new wxButton( this, wxID_CANCEL, _( "&Cancel" ) );
|
||||
Button->SetForegroundColour( *wxBLUE );
|
||||
m_RightBoxSizer->Add( Button, 0, wxGROW | wxALL, 5 );
|
||||
|
||||
/* Add special buttons to plugin panels:
|
||||
* for panel plugins: added the "delete" button
|
||||
* for the last panel (add plugin) a Ok button is added
|
||||
*/
|
||||
if( idCreateFile == ID_SETUP_PLUGIN ) /* This is the "add plugin" panel: add Ok button */
|
||||
{
|
||||
Button = new wxButton( this, ID_VALIDATE_PLUGIN, _( "&Ok" ) );
|
||||
m_RightOptionsBoxSizer->Add( Button, 0, wxGROW | wxALL, 5 );
|
||||
}
|
||||
else if( id_NetType >= PANELCUSTOMBASE ) /* This is a plugin panel: add delete button */
|
||||
{
|
||||
Button = new wxButton( this, ID_DELETE_PLUGIN, _( "&Delete" ) );
|
||||
m_RightOptionsBoxSizer->Add( Button, 0, wxGROW | wxALL, 5 );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*************************************************************************************/
|
||||
WinEDA_NetlistFrame::WinEDA_NetlistFrame(WinEDA_SchematicFrame *parent, wxPoint& framepos):
|
||||
wxDialog(parent, -1, _("Netlist"), framepos, wxSize(H_SIZE, V_SIZE), DIALOG_STYLE | MAYBE_RESIZE_BORDER)
|
||||
WinEDA_NetlistFrame::WinEDA_NetlistFrame( WinEDA_SchematicFrame* parent, wxPoint& framepos ) :
|
||||
wxDialog( parent, -1, _( "Netlist" ), framepos,
|
||||
wxDefaultSize, DIALOG_STYLE | MAYBE_RESIZE_BORDER )
|
||||
/*************************************************************************************/
|
||||
|
||||
/* Constructor for the netlist generation dialog box
|
||||
*/
|
||||
{
|
||||
int ii;
|
||||
int ii;
|
||||
|
||||
m_Parent = parent;
|
||||
SetFont(*g_DialogFont);
|
||||
if( g_NetFormat == NET_TYPE_NOT_INIT )
|
||||
g_NetFormat = NET_TYPE_PCBNEW;
|
||||
SetFont( *g_DialogFont );
|
||||
|
||||
for( ii = 0; ii < PANELCUSTOMBASE + CUSTOMPANEL_COUNTMAX; ii ++ )
|
||||
for( ii = 0; ii < PANELCUSTOMBASE + CUSTOMPANEL_COUNTMAX; ii++ )
|
||||
{
|
||||
m_PanelNetType[ii] = NULL;
|
||||
}
|
||||
|
||||
if( (framepos.x == -1) && (framepos.y == -1) )
|
||||
if( framepos == wxDefaultPosition )
|
||||
Centre();
|
||||
|
||||
wxBoxSizer * GeneralBoxSizer = new wxBoxSizer(wxVERTICAL);
|
||||
SetSizer(GeneralBoxSizer);
|
||||
wxBoxSizer* GeneralBoxSizer = new wxBoxSizer( wxVERTICAL );
|
||||
SetSizer( GeneralBoxSizer );
|
||||
|
||||
m_NoteBook = new wxNotebook( this, ID_NETLIST_NOTEBOOK,
|
||||
wxDefaultPosition, wxSize(H_SIZE - 6, V_SIZE - 28) );
|
||||
m_NoteBook->SetFont(*g_DialogFont);
|
||||
GeneralBoxSizer->Add(m_NoteBook, 0, wxGROW|wxALL, 5);
|
||||
wxDefaultPosition, wxDefaultSize );
|
||||
m_NoteBook->SetFont( *g_DialogFont );
|
||||
GeneralBoxSizer->Add( m_NoteBook, 0, wxGROW | wxALL, 5 );
|
||||
|
||||
// Add panels
|
||||
// Add notebook pages:
|
||||
|
||||
// Add Panel FORMAT PCBNEW
|
||||
m_PanelNetType[PANELPCBNEW] = new EDA_NoteBookPage(m_NoteBook, wxT("Pcbnew"), NET_TYPE_PCBNEW,
|
||||
ID_CURRENT_FORMAT_IS_DEFAULT, ID_CREATE_NETLIST);
|
||||
m_PanelNetType[PANELPCBNEW] = new EDA_NoteBookPage( m_NoteBook, wxT(
|
||||
"Pcbnew" ), NET_TYPE_PCBNEW,
|
||||
ID_CURRENT_FORMAT_IS_DEFAULT,
|
||||
ID_CREATE_NETLIST );
|
||||
|
||||
// Add Panel FORMAT ORCADPCB2
|
||||
m_PanelNetType[PANELORCADPCB2] = new EDA_NoteBookPage(m_NoteBook, wxT("OrcadPCB2"), NET_TYPE_ORCADPCB2,
|
||||
ID_CURRENT_FORMAT_IS_DEFAULT, ID_CREATE_NETLIST);
|
||||
m_PanelNetType[PANELORCADPCB2] = new EDA_NoteBookPage( m_NoteBook, wxT(
|
||||
"OrcadPCB2" ), NET_TYPE_ORCADPCB2,
|
||||
ID_CURRENT_FORMAT_IS_DEFAULT,
|
||||
ID_CREATE_NETLIST );
|
||||
|
||||
// Add Panel FORMAT CADSTAR
|
||||
m_PanelNetType[PANELCADSTAR] = new EDA_NoteBookPage(m_NoteBook, wxT("CadStar"), NET_TYPE_CADSTAR,
|
||||
ID_CURRENT_FORMAT_IS_DEFAULT, ID_CREATE_NETLIST);
|
||||
m_PanelNetType[PANELCADSTAR] = new EDA_NoteBookPage( m_NoteBook, wxT(
|
||||
"CadStar" ), NET_TYPE_CADSTAR,
|
||||
ID_CURRENT_FORMAT_IS_DEFAULT,
|
||||
ID_CREATE_NETLIST );
|
||||
|
||||
// Add Panel spice
|
||||
InstallPageSpice();
|
||||
|
@ -220,158 +326,169 @@ int ii;
|
|||
// Add custom panels:
|
||||
InstallCustomPages();
|
||||
|
||||
// Problem in wxMSV >= 2.7.1 : we must call GetSizer for one notebook page
|
||||
// to have a proper sizer commutation of all pages
|
||||
m_PanelNetType[PANELPCBNEW]->GetSizer()->Fit(this);
|
||||
m_PanelNetType[PANELPCBNEW]->GetSizer()->SetSizeHints(this);
|
||||
|
||||
GetSizer()->Fit(this);
|
||||
GetSizer()->SetSizeHints(this);
|
||||
GetSizer()->Fit( this );
|
||||
GetSizer()->SetSizeHints( this );
|
||||
}
|
||||
|
||||
|
||||
/*************************************************/
|
||||
void WinEDA_NetlistFrame::InstallPageSpice()
|
||||
/*************************************************/
|
||||
|
||||
/* Create the spice page
|
||||
*/
|
||||
{
|
||||
wxButton * Button;
|
||||
EDA_NoteBookPage * page;
|
||||
wxButton* Button;
|
||||
EDA_NoteBookPage* page;
|
||||
|
||||
page = m_PanelNetType[PANELSPICE] = new EDA_NoteBookPage(m_NoteBook, wxT("Spice"), NET_TYPE_SPICE, 0, 0);
|
||||
page = m_PanelNetType[PANELSPICE] = new EDA_NoteBookPage( m_NoteBook, wxT(
|
||||
"Spice" ), NET_TYPE_SPICE, 0, 0 );
|
||||
|
||||
page->m_IsCurrentFormat = new wxCheckBox(page, ID_CURRENT_FORMAT_IS_DEFAULT, _("Default format"));
|
||||
page->m_IsCurrentFormat = new wxCheckBox( page, ID_CURRENT_FORMAT_IS_DEFAULT,
|
||||
_( "Default format" ) );
|
||||
page->m_IsCurrentFormat->SetValue( g_NetFormat == NET_TYPE_SPICE );
|
||||
page->m_LeftBoxSizer->Add(page->m_IsCurrentFormat, 0, wxGROW|wxALL, 5);
|
||||
page->m_LeftBoxSizer->Add( page->m_IsCurrentFormat, 0, wxGROW | wxALL, 5 );
|
||||
|
||||
wxString netlist_opt[2] = { _("Use Net Names"), _("Use Net Numbers") };
|
||||
m_UseNetNamesInNetlist = new wxRadioBox(page, -1, _("Netlist Options:"),
|
||||
wxDefaultPosition, wxDefaultSize,
|
||||
2, netlist_opt, 1, wxRA_SPECIFY_COLS);
|
||||
if( ! g_OptNetListUseNames )
|
||||
m_UseNetNamesInNetlist->SetSelection(1);
|
||||
page->m_LeftBoxSizer->Add(m_UseNetNamesInNetlist, 0, wxGROW|wxALL, 5);
|
||||
wxString netlist_opt[2] = { _( "Use Net Names" ), _( "Use Net Numbers" ) };
|
||||
m_UseNetNamesInNetlist = new wxRadioBox( page, -1, _( "Netlist Options:" ),
|
||||
wxDefaultPosition, wxDefaultSize,
|
||||
2, netlist_opt, 1, wxRA_SPECIFY_COLS );
|
||||
if( !g_OptNetListUseNames )
|
||||
m_UseNetNamesInNetlist->SetSelection( 1 );
|
||||
page->m_LeftBoxSizer->Add( m_UseNetNamesInNetlist, 0, wxGROW | wxALL, 5 );
|
||||
|
||||
page->m_CommandStringCtrl = new WinEDA_EnterText( page,
|
||||
_("Simulator command:"), g_SimulatorCommandLine,
|
||||
page->m_LowBoxSizer, wxSize(H_SIZE - 10, -1) );
|
||||
_(
|
||||
"Simulator command:" ),
|
||||
g_SimulatorCommandLine,
|
||||
page->m_LowBoxSizer, wxDefaultSize );
|
||||
|
||||
// Add buttons
|
||||
Button = new wxButton( page, ID_CREATE_NETLIST, _("Netlist") );
|
||||
Button->SetForegroundColour(*wxRED);
|
||||
page->m_RightBoxSizer->Add(Button, 0, wxGROW|wxALL, 5);
|
||||
Button = new wxButton( page, ID_CREATE_NETLIST, _( "Netlist" ) );
|
||||
Button->SetForegroundColour( *wxRED );
|
||||
page->m_RightBoxSizer->Add( Button, 0, wxGROW | wxALL, 5 );
|
||||
|
||||
Button = new wxButton(page, ID_RUN_SIMULATOR, _("&Run Simulator"));
|
||||
Button->SetForegroundColour( wxColour(0, 100, 0) );
|
||||
page->m_RightBoxSizer->Add(Button, 0, wxGROW|wxALL, 5);
|
||||
Button = new wxButton( page, ID_RUN_SIMULATOR, _( "&Run Simulator" ) );
|
||||
Button->SetForegroundColour( wxColour( 0, 100, 0 ) );
|
||||
page->m_RightBoxSizer->Add( Button, 0, wxGROW | wxALL, 5 );
|
||||
|
||||
Button = new wxButton(page, wxID_CANCEL, _("&Cancel"));
|
||||
Button->SetForegroundColour(*wxBLUE);
|
||||
page->m_RightBoxSizer->Add(Button, 0, wxGROW|wxALL, 5);
|
||||
Button = new wxButton( page, wxID_CANCEL, _( "&Cancel" ) );
|
||||
Button->SetForegroundColour( *wxBLUE );
|
||||
page->m_RightBoxSizer->Add( Button, 0, wxGROW | wxALL, 5 );
|
||||
}
|
||||
|
||||
|
||||
/*************************************************/
|
||||
void WinEDA_NetlistFrame::InstallCustomPages()
|
||||
/*************************************************/
|
||||
|
||||
/* create the pages for custom netlist format selection:
|
||||
*/
|
||||
{
|
||||
int ii, CustomCount;
|
||||
wxString title, previoustitle, msg;
|
||||
EDA_NoteBookPage * CurrPage;
|
||||
int ii, CustomCount;
|
||||
wxString title, previoustitle, msg;
|
||||
EDA_NoteBookPage* CurrPage;
|
||||
|
||||
CustomCount = CUSTOMPANEL_COUNTMAX;
|
||||
previoustitle = wxT("dummy_title");
|
||||
CustomCount = CUSTOMPANEL_COUNTMAX;
|
||||
previoustitle = wxT( "dummy_title" );
|
||||
for( ii = 0; ii < CustomCount; ii++ )
|
||||
{
|
||||
msg = CUSTOM_NETLIST_TITLE;
|
||||
msg << ii + 1;
|
||||
title = m_Parent->m_Parent->m_EDA_Config->Read(msg);
|
||||
title = ReturnUserNetlistTypeName( ii == 0 ? true : false );
|
||||
|
||||
// Install the panel only if it is the first panel not initialised
|
||||
if( title.IsEmpty() && previoustitle.IsEmpty() )
|
||||
break;
|
||||
break; // No more panel to install
|
||||
|
||||
/* Install the panel "Add Plugin" after
|
||||
* the last initialised panel */
|
||||
previoustitle = title;
|
||||
if( title.IsEmpty() )
|
||||
CurrPage = m_PanelNetType[PANELCUSTOMBASE + ii] =
|
||||
new EDA_NoteBookPage(m_NoteBook, _("Add Plugin"),
|
||||
NET_TYPE_CUSTOM1 + ii,
|
||||
ID_CURRENT_FORMAT_IS_DEFAULT, ID_SETUP_PLUGIN);
|
||||
else
|
||||
CurrPage = m_PanelNetType[PANELCUSTOMBASE + ii] =
|
||||
new EDA_NoteBookPage(m_NoteBook, title,
|
||||
NET_TYPE_CUSTOM1 + ii,
|
||||
ID_CURRENT_FORMAT_IS_DEFAULT, ID_CREATE_NETLIST);
|
||||
CurrPage =
|
||||
m_PanelNetType[PANELCUSTOMBASE + ii] =
|
||||
new EDA_NoteBookPage( m_NoteBook, _( "Add Plugin" ),
|
||||
NET_TYPE_CUSTOM1 + ii,
|
||||
ID_CURRENT_FORMAT_IS_DEFAULT, ID_SETUP_PLUGIN );
|
||||
else /* Install a plugin panel */
|
||||
CurrPage =
|
||||
m_PanelNetType[PANELCUSTOMBASE + ii] =
|
||||
new EDA_NoteBookPage( m_NoteBook, title,
|
||||
NET_TYPE_CUSTOM1 + ii,
|
||||
ID_CURRENT_FORMAT_IS_DEFAULT, ID_CREATE_NETLIST );
|
||||
|
||||
msg = CUSTOM_NETLIST_COMMAND;
|
||||
msg << ii + 1;
|
||||
wxString Command = m_Parent->m_Parent->m_EDA_Config->Read(msg);
|
||||
CurrPage->m_CommandStringCtrl = new WinEDA_EnterText( CurrPage,
|
||||
_("Netlist command:"), Command,
|
||||
CurrPage->m_LowBoxSizer, wxSize(H_SIZE - 10, -1) );
|
||||
wxString Command = m_Parent->m_Parent->m_EDA_Config->Read( msg );
|
||||
CurrPage->m_CommandStringCtrl =
|
||||
new WinEDA_EnterText( CurrPage,
|
||||
_( "Netlist command:" ), Command,
|
||||
CurrPage->m_LowBoxSizer,
|
||||
wxDefaultSize );
|
||||
|
||||
CurrPage->m_TitleStringCtrl = new WinEDA_EnterText( CurrPage,
|
||||
_("Title:"), title,
|
||||
CurrPage->m_LowBoxSizer, wxSize(H_SIZE - 10, -1) );
|
||||
CurrPage->m_TitleStringCtrl =
|
||||
new WinEDA_EnterText( CurrPage,
|
||||
_( "Title:" ), title,
|
||||
CurrPage->m_LowBoxSizer,
|
||||
wxDefaultSize );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************/
|
||||
void WinEDA_NetlistFrame::SetupPlugin(wxCommandEvent& event)
|
||||
void WinEDA_NetlistFrame::SetupPluginData( wxCommandEvent& event )
|
||||
/***********************************************************/
|
||||
|
||||
/* Browse the plugin files and set the m_CommandStringCtrl field
|
||||
*/
|
||||
{
|
||||
wxString FullFileName, Mask, Path;
|
||||
Mask = wxT("*");
|
||||
Path = g_EDA_Appl->m_BinDir;
|
||||
FullFileName = EDA_FileSelector( _("Plugin files:"),
|
||||
Path, /* Chemin par defaut */
|
||||
FullFileName, /* nom fichier par defaut */
|
||||
wxEmptyString, /* extension par defaut */
|
||||
Mask, /* Masque d'affichage */
|
||||
this,
|
||||
wxFD_OPEN,
|
||||
TRUE
|
||||
);
|
||||
wxString FullFileName, Mask, Path;
|
||||
|
||||
Mask = wxT( "*" );
|
||||
Path = g_EDA_Appl->m_BinDir;
|
||||
FullFileName = EDA_FileSelector( _( "Plugin files:" ),
|
||||
Path, /* Chemin par defaut */
|
||||
FullFileName, /* nom fichier par defaut */
|
||||
wxEmptyString, /* extension par defaut */
|
||||
Mask, /* Masque d'affichage */
|
||||
this,
|
||||
wxFD_OPEN,
|
||||
TRUE
|
||||
);
|
||||
if( FullFileName.IsEmpty() )
|
||||
return;
|
||||
|
||||
EDA_NoteBookPage * CurrPage;
|
||||
CurrPage = (EDA_NoteBookPage *) m_NoteBook->GetCurrentPage();
|
||||
EDA_NoteBookPage* CurrPage;
|
||||
CurrPage = (EDA_NoteBookPage*) m_NoteBook->GetCurrentPage();
|
||||
if( CurrPage == NULL )
|
||||
return;
|
||||
|
||||
CurrPage->m_CommandStringCtrl->SetValue(FullFileName);
|
||||
CurrPage->m_CommandStringCtrl->SetValue( FullFileName );
|
||||
|
||||
/* Get a title for this page */
|
||||
wxString title = CurrPage->m_TitleStringCtrl->GetValue();
|
||||
if( title.IsEmpty() )
|
||||
DisplayInfo(this, _("Now, you must choose a title for this netlist control page\nand close the dialog box"));
|
||||
DisplayInfo( this,
|
||||
_(
|
||||
"Do not forget to choose a title for this netlist control page\nand close the dialog box" ) );
|
||||
}
|
||||
|
||||
|
||||
// Fonctions de positionnement des variables d'option
|
||||
/*****************************************************************/
|
||||
void WinEDA_NetlistFrame::SelectNetlistType(wxCommandEvent& event)
|
||||
void WinEDA_NetlistFrame::SelectNetlistType( wxCommandEvent& event )
|
||||
/*****************************************************************/
|
||||
{
|
||||
int ii;
|
||||
EDA_NoteBookPage * CurrPage;
|
||||
int ii;
|
||||
EDA_NoteBookPage* CurrPage;
|
||||
|
||||
for( ii = 0; ii < PANELCUSTOMBASE + CUSTOMPANEL_COUNTMAX; ii++ )
|
||||
if( m_PanelNetType[ii] )
|
||||
m_PanelNetType[ii]->m_IsCurrentFormat->SetValue(FALSE);
|
||||
m_PanelNetType[ii]->m_IsCurrentFormat->SetValue( FALSE );
|
||||
|
||||
CurrPage = (EDA_NoteBookPage *) m_NoteBook->GetCurrentPage();
|
||||
CurrPage = (EDA_NoteBookPage*) m_NoteBook->GetCurrentPage();
|
||||
if( CurrPage == NULL )
|
||||
return;
|
||||
|
||||
g_NetFormat = CurrPage->m_IdNetType;
|
||||
CurrPage->m_IsCurrentFormat->SetValue(TRUE);
|
||||
CurrPage->m_IsCurrentFormat->SetValue( TRUE );
|
||||
}
|
||||
|
||||
|
||||
|
@ -379,7 +496,7 @@ EDA_NoteBookPage * CurrPage;
|
|||
void WinEDA_NetlistFrame::NetlistUpdateOpt()
|
||||
/***********************************************/
|
||||
{
|
||||
int ii;
|
||||
int ii;
|
||||
|
||||
g_SimulatorCommandLine =
|
||||
m_PanelNetType[PANELSPICE]->m_CommandStringCtrl->GetValue();
|
||||
|
@ -400,31 +517,37 @@ int ii;
|
|||
|
||||
|
||||
/**********************************************************/
|
||||
void WinEDA_NetlistFrame::GenNetlist(wxCommandEvent& event)
|
||||
void WinEDA_NetlistFrame::GenNetlist( wxCommandEvent& event )
|
||||
/**********************************************************/
|
||||
|
||||
/** Function GenNetlist
|
||||
* Create the netlist file:
|
||||
* calcualte the filename with the suitable extentions
|
||||
* and run the netlist creator
|
||||
*/
|
||||
{
|
||||
wxString FullFileName, FileExt, Mask;
|
||||
wxString msg, Command;
|
||||
int netformat_tmp = g_NetFormat;
|
||||
wxString FullFileName, FileExt, Mask;
|
||||
wxString msg, Command;
|
||||
int netformat_tmp = g_NetFormat;
|
||||
|
||||
NetlistUpdateOpt();
|
||||
|
||||
EDA_NoteBookPage * CurrPage;
|
||||
EDA_NoteBookPage* CurrPage;
|
||||
|
||||
CurrPage = (EDA_NoteBookPage *) m_NoteBook->GetCurrentPage();
|
||||
CurrPage = (EDA_NoteBookPage*) m_NoteBook->GetCurrentPage();
|
||||
g_NetFormat = CurrPage->m_IdNetType;
|
||||
|
||||
/* Calcul du nom du fichier netlist */
|
||||
/* Calculate the netlist filename */
|
||||
FullFileName = ScreenSch->m_FileName;
|
||||
|
||||
switch( g_NetFormat )
|
||||
{
|
||||
case NET_TYPE_SPICE:
|
||||
FileExt = wxT(".cir");
|
||||
FileExt = wxT( ".cir" );
|
||||
break;
|
||||
|
||||
case NET_TYPE_CADSTAR:
|
||||
FileExt = wxT(".frp");
|
||||
FileExt = wxT( ".frp" );
|
||||
break;
|
||||
|
||||
default:
|
||||
|
@ -432,36 +555,37 @@ EDA_NoteBookPage * CurrPage;
|
|||
break;
|
||||
}
|
||||
|
||||
Mask = wxT("*") + FileExt + wxT("*");
|
||||
ChangeFileNameExt(FullFileName, FileExt);
|
||||
Mask = wxT( "*" ) + FileExt + wxT( "*" );
|
||||
ChangeFileNameExt( FullFileName, FileExt );
|
||||
|
||||
FullFileName = EDA_FileSelector( _("Netlist files:"),
|
||||
wxEmptyString, /* Chemin par defaut */
|
||||
FullFileName, /* nom fichier par defaut */
|
||||
FileExt, /* extension par defaut */
|
||||
Mask, /* Masque d'affichage */
|
||||
this,
|
||||
wxFD_SAVE,
|
||||
TRUE
|
||||
);
|
||||
FullFileName = EDA_FileSelector( _( "Netlist files:" ),
|
||||
wxEmptyString, /* Defaut path */
|
||||
FullFileName, /* Defaut filename */
|
||||
FileExt, /* Defaut extension */
|
||||
Mask, /* Mask for filename selection */
|
||||
this,
|
||||
wxFD_SAVE,
|
||||
TRUE
|
||||
);
|
||||
if( FullFileName.IsEmpty() )
|
||||
return;
|
||||
|
||||
m_Parent->MsgPanel->EraseMsgBox();
|
||||
|
||||
ReAnnotatePowerSymbolsOnly();
|
||||
if( CheckAnnotate(m_Parent, 0) )
|
||||
if( CheckAnnotate( m_Parent, 0 ) )
|
||||
{
|
||||
if( !IsOK( this, _("Must be Annotated, Continue ?") ) )
|
||||
if( !IsOK( this, _( "Must be Annotated, Continue ?" ) ) )
|
||||
return;
|
||||
}
|
||||
|
||||
/* Cleanup the entire hierarchy */
|
||||
EDA_ScreenList ScreenList(NULL);
|
||||
for( SCH_SCREEN * screen = ScreenList.GetFirst(); screen != NULL; screen = ScreenList.GetNext() )
|
||||
EDA_ScreenList ScreenList( NULL );
|
||||
for( SCH_SCREEN* screen = ScreenList.GetFirst(); screen != NULL; screen = ScreenList.GetNext() )
|
||||
{
|
||||
bool ModifyWires;
|
||||
ModifyWires = screen->SchematicCleanUp(NULL);
|
||||
ModifyWires = screen->SchematicCleanUp( NULL );
|
||||
|
||||
// if wire list has changed, delete the Undo Redo list to avoid
|
||||
// pointer problems with deleted data
|
||||
if( ModifyWires )
|
||||
|
@ -477,31 +601,81 @@ EDA_NoteBookPage * CurrPage;
|
|||
switch( g_NetFormat )
|
||||
{
|
||||
default:
|
||||
WriteNetList(m_Parent, FullFileName, TRUE);
|
||||
WriteNetList( m_Parent, FullFileName, TRUE );
|
||||
break;
|
||||
|
||||
case NET_TYPE_CADSTAR:
|
||||
case NET_TYPE_ORCADPCB2:
|
||||
WriteNetList(m_Parent, FullFileName, FALSE);
|
||||
WriteNetList( m_Parent, FullFileName, FALSE );
|
||||
|
||||
case NET_TYPE_SPICE:
|
||||
g_OptNetListUseNames = TRUE; // Used for pspice, gnucap
|
||||
if( m_UseNetNamesInNetlist->GetSelection() == 1 )
|
||||
g_OptNetListUseNames = FALSE;
|
||||
WriteNetList(m_Parent, FullFileName, g_OptNetListUseNames);
|
||||
WriteNetList( m_Parent, FullFileName, g_OptNetListUseNames );
|
||||
break;
|
||||
}
|
||||
|
||||
FreeTabNetList( g_TabObjNet, g_NbrObjNet );
|
||||
g_NetFormat = netformat_tmp;
|
||||
|
||||
WriteCurrentNetlistSetup();
|
||||
|
||||
EndModal( NET_OK );
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************/
|
||||
void WinEDA_NetlistFrame::OnCancelClick( wxCommandEvent& event )
|
||||
/***********************************************************/
|
||||
{
|
||||
EndModal( NET_ABORT );
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************/
|
||||
void WinEDA_NetlistFrame::RunSimulator( wxCommandEvent& event )
|
||||
/***********************************************************/
|
||||
{
|
||||
wxString NetlistFullFileName, ExecFile, CommandLine;
|
||||
|
||||
g_SimulatorCommandLine =
|
||||
m_PanelNetType[PANELSPICE]->m_CommandStringCtrl->GetValue();
|
||||
g_SimulatorCommandLine.Trim( FALSE );
|
||||
g_SimulatorCommandLine.Trim( TRUE );
|
||||
ExecFile = g_SimulatorCommandLine.BeforeFirst( ' ' );
|
||||
|
||||
CommandLine = g_SimulatorCommandLine.AfterFirst( ' ' );
|
||||
|
||||
/* Calculate the netlist filename */
|
||||
NetlistFullFileName = ScreenSch->m_FileName;
|
||||
ChangeFileNameExt( NetlistFullFileName, wxT( ".cir" ) );
|
||||
AddDelimiterString( NetlistFullFileName );
|
||||
CommandLine += wxT( " " ) + NetlistFullFileName;
|
||||
|
||||
ExecuteFile( this, ExecFile, CommandLine );
|
||||
}
|
||||
|
||||
|
||||
/*********************************************************/
|
||||
void WinEDA_NetlistFrame::WriteCurrentNetlistSetup( void )
|
||||
/*********************************************************/
|
||||
|
||||
/** Function WriteCurrentNetlistSetup
|
||||
* Write the current netlist options setup in the configuration
|
||||
*/
|
||||
{
|
||||
wxString msg, Command;
|
||||
|
||||
NetlistUpdateOpt();
|
||||
|
||||
// Update the new titles
|
||||
for( int ii = 0; ii < CUSTOMPANEL_COUNTMAX; ii++ )
|
||||
{
|
||||
EDA_NoteBookPage * CurrPage = m_PanelNetType[ii + PANELCUSTOMBASE];
|
||||
EDA_NoteBookPage* CurrPage = m_PanelNetType[ii + PANELCUSTOMBASE];
|
||||
if( CurrPage == NULL )
|
||||
break;
|
||||
msg = wxT("Custom");
|
||||
msg = wxT( "Custom" );
|
||||
msg << ii + 1;
|
||||
if( CurrPage->m_TitleStringCtrl )
|
||||
{
|
||||
|
@ -510,7 +684,7 @@ EDA_NoteBookPage * CurrPage;
|
|||
{
|
||||
msg = CUSTOM_NETLIST_TITLE;
|
||||
msg << ii + 1;
|
||||
m_Parent->m_Parent->m_EDA_Config->Write(msg, title);
|
||||
m_Parent->m_Parent->m_EDA_Config->Write( msg, title );
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -519,40 +693,55 @@ EDA_NoteBookPage * CurrPage;
|
|||
Command = CurrPage->m_CommandStringCtrl->GetValue();
|
||||
msg = CUSTOM_NETLIST_COMMAND;
|
||||
msg << ii + 1;
|
||||
m_Parent->m_Parent->m_EDA_Config->Write(msg, Command);
|
||||
m_Parent->m_Parent->m_EDA_Config->Write( msg, Command );
|
||||
}
|
||||
}
|
||||
EndModal( 0 );
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************/
|
||||
void WinEDA_NetlistFrame::OnCancelClick(wxCommandEvent& event)
|
||||
/***********************************************************/
|
||||
/******************************************************************/
|
||||
void WinEDA_NetlistFrame::DeletePluginPanel( wxCommandEvent& event )
|
||||
/******************************************************************/
|
||||
|
||||
/** Function DeletePluginPanel
|
||||
* Remove a panel relative to a netlist plugin
|
||||
*/
|
||||
{
|
||||
EndModal( -1 );
|
||||
EDA_NoteBookPage* CurrPage = (EDA_NoteBookPage*) m_NoteBook->GetCurrentPage();
|
||||
|
||||
CurrPage->m_CommandStringCtrl->SetValue( wxEmptyString );
|
||||
CurrPage->m_TitleStringCtrl->SetValue( wxEmptyString );
|
||||
if( CurrPage->m_IsCurrentFormat->IsChecked() )
|
||||
{
|
||||
CurrPage->m_IsCurrentFormat->SetValue( FALSE );
|
||||
m_PanelNetType[PANELPCBNEW]->m_IsCurrentFormat->SetValue( TRUE );
|
||||
}
|
||||
WriteCurrentNetlistSetup();
|
||||
EndModal( NET_PLUGIN_CHANGE );
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************/
|
||||
void WinEDA_NetlistFrame::RunSimulator(wxCommandEvent& event)
|
||||
/***********************************************************/
|
||||
/******************************************************************/
|
||||
void WinEDA_NetlistFrame::ValidatePluginPanel( wxCommandEvent& event )
|
||||
/******************************************************************/
|
||||
|
||||
/** Function ValidatePluginPanel
|
||||
* Validate the panel info relative to a new netlist plugin
|
||||
*/
|
||||
{
|
||||
wxString NetlistFullFileName, ExecFile, CommandLine;
|
||||
EDA_NoteBookPage* CurrPage = (EDA_NoteBookPage*) m_NoteBook->GetCurrentPage();
|
||||
|
||||
g_SimulatorCommandLine =
|
||||
m_PanelNetType[PANELSPICE]->m_CommandStringCtrl->GetValue();
|
||||
g_SimulatorCommandLine.Trim(FALSE);
|
||||
g_SimulatorCommandLine.Trim(TRUE);
|
||||
ExecFile = g_SimulatorCommandLine.BeforeFirst(' ');
|
||||
if( CurrPage->m_CommandStringCtrl->GetValue() == wxEmptyString )
|
||||
{
|
||||
DisplayError( this, _( "Error. You must provide a command String" ) );
|
||||
return;
|
||||
}
|
||||
if( CurrPage->m_TitleStringCtrl->GetValue() == wxEmptyString )
|
||||
{
|
||||
DisplayError( this, _( "Error. You must provide a Title" ) );
|
||||
return;
|
||||
}
|
||||
|
||||
CommandLine = g_SimulatorCommandLine.AfterFirst(' ');
|
||||
|
||||
/* Calcul du nom du fichier netlist */
|
||||
NetlistFullFileName = ScreenSch->m_FileName;
|
||||
ChangeFileNameExt(NetlistFullFileName, wxT(".cir"));
|
||||
AddDelimiterString(NetlistFullFileName);
|
||||
CommandLine += wxT(" ") + NetlistFullFileName;
|
||||
|
||||
ExecuteFile(this, ExecFile, CommandLine);
|
||||
WriteCurrentNetlistSetup();
|
||||
EndModal( NET_PLUGIN_CHANGE );
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue