Update "Swap Layers:" and "Layer selection" dialog boxes again
This commit is contained in:
parent
82d17cc236
commit
67feced1bf
|
@ -4,6 +4,26 @@ Started 2007-June-11
|
||||||
Please add newer entries at the top, list the date and your name with
|
Please add newer entries at the top, list the date and your name with
|
||||||
email address.
|
email address.
|
||||||
|
|
||||||
|
2007-Nov-05 UPDATE Geoff Harland <gharlandau@yahoo.com.au>
|
||||||
|
================================================================================
|
||||||
|
+ eeschema
|
||||||
|
* The previously provided "Close" button within the "Netlist" dialog box has
|
||||||
|
now been replaced with a "Cancel" button, and this dialog can now (otherwise)
|
||||||
|
be cancelled by pressing the "Esc" key. General cleanup and beautification of
|
||||||
|
eeschema/netlist_control.cpp.
|
||||||
|
+ pcbnew
|
||||||
|
* The color of each text string provided within the "Swap Layers:" dialog box is
|
||||||
|
now set to blue for each string specifying that the associated layer is *not*
|
||||||
|
being swapped with any other layer, or to fushia for each string specifying that
|
||||||
|
the associated layer *is* being swapped with another layer. (This change was
|
||||||
|
made after being suggested by Dick Hollenbeck.)
|
||||||
|
+ gerbview
|
||||||
|
* The color of each text string provided within the "Layer selection" dialog box
|
||||||
|
is similarly now set to blue for each string specifying that the associated
|
||||||
|
Gerber layer is *not* being exported to any pcbnew layer, or to fushia for each
|
||||||
|
string specifying that the associated Gerber layer *is* being exported to a
|
||||||
|
pcbnew layer.
|
||||||
|
|
||||||
|
|
||||||
2007-Nov-2 UPDATE Dick Hollenbeck <dick@softplc.com>
|
2007-Nov-2 UPDATE Dick Hollenbeck <dick@softplc.com>
|
||||||
================================================================================
|
================================================================================
|
||||||
|
|
|
@ -1,16 +1,16 @@
|
||||||
/**********************************/
|
/**********************************/
|
||||||
/* Dilaog box for netlist outputs */
|
/* Dialog box for netlist outputs */
|
||||||
/**********************************/
|
/**********************************/
|
||||||
|
|
||||||
#include "fctsys.h"
|
#include "fctsys.h"
|
||||||
|
|
||||||
//#include "gr_basic.h"
|
// #include "gr_basic.h"
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "program.h"
|
#include "program.h"
|
||||||
#include "libcmp.h"
|
#include "libcmp.h"
|
||||||
#include "general.h"
|
#include "general.h"
|
||||||
|
|
||||||
#include "netlist.h" /* Definitions generales liees au calcul de netliste */
|
#include "netlist.h" /* Definitions generales liees au calcul de netliste */
|
||||||
#include "protos.h"
|
#include "protos.h"
|
||||||
|
|
||||||
|
|
||||||
|
@ -24,142 +24,134 @@
|
||||||
|
|
||||||
enum id_netlist {
|
enum id_netlist {
|
||||||
ID_CREATE_NETLIST = 1550,
|
ID_CREATE_NETLIST = 1550,
|
||||||
ID_CURRENT_FORMAT_IS_DEFAULT,
|
ID_CURRENT_FORMAT_IS_DEFAULT,
|
||||||
ID_CLOSE_NETLIST,
|
ID_RUN_SIMULATOR,
|
||||||
ID_RUN_SIMULATOR,
|
ID_SETUP_PLUGIN,
|
||||||
ID_SETUP_PLUGIN,
|
ID_NETLIST_NOTEBOOK
|
||||||
ID_NETLIST_NOTEBOOK
|
|
||||||
};
|
};
|
||||||
|
|
||||||
enum panel_netlist_index {
|
enum panel_netlist_index {
|
||||||
PANELPCBNEW = 0, // Create Netlist format Pcbnew
|
PANELPCBNEW = 0, // Create Netlist format Pcbnew
|
||||||
PANELORCADPCB2, // Create Netlis format OracdPcb2
|
PANELORCADPCB2, // Create Netlis format OracdPcb2
|
||||||
PANELCADSTAR, // Create Netlis format OracdPcb2
|
PANELCADSTAR, // Create Netlis format OracdPcb2
|
||||||
PANELSPICE, // Create Netlis format Pspice
|
PANELSPICE, // Create Netlis format Pspice
|
||||||
PANELCUSTOMBASE // Start auxiliary panels (custom netlists)
|
PANELCUSTOMBASE // Start auxiliary panels (custom netlists)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/* wxPanels for creating the NoteBook pages for each netlist format:
|
/* wxPanels for creating the NoteBook pages for each netlist format:
|
||||||
*/
|
*/
|
||||||
class EDA_NoteBookPage: public wxPanel
|
class EDA_NoteBookPage: public wxPanel
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
int m_IdNetType;
|
int m_IdNetType;
|
||||||
wxCheckBox * m_IsCurrentFormat;
|
wxCheckBox * m_IsCurrentFormat;
|
||||||
WinEDA_EnterText * m_CommandStringCtrl;
|
WinEDA_EnterText * m_CommandStringCtrl;
|
||||||
WinEDA_EnterText * m_TitleStringCtrl;
|
WinEDA_EnterText * m_TitleStringCtrl;
|
||||||
wxButton * m_ButtonCancel;
|
wxButton * m_ButtonCancel;
|
||||||
wxBoxSizer * m_LeftBoxSizer;
|
wxBoxSizer * m_LeftBoxSizer;
|
||||||
wxBoxSizer * m_RightBoxSizer;
|
wxBoxSizer * m_RightBoxSizer;
|
||||||
wxBoxSizer * m_LowBoxSizer;
|
wxBoxSizer * m_LowBoxSizer;
|
||||||
|
|
||||||
EDA_NoteBookPage(wxNotebook* parent, const wxString & title,
|
EDA_NoteBookPage(wxNotebook* parent, const wxString & title,
|
||||||
int id_NetType, int idCheckBox, int idCreateFile);
|
int id_NetType, int idCheckBox, int idCreateFile);
|
||||||
~EDA_NoteBookPage() {};
|
~EDA_NoteBookPage() {};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
EDA_NoteBookPage::EDA_NoteBookPage(wxNotebook* parent, const wxString & title,
|
EDA_NoteBookPage::EDA_NoteBookPage(wxNotebook* parent, const wxString & title,
|
||||||
int id_NetType, int idCheckBox, int idCreateFile) :
|
int id_NetType, int idCheckBox, int idCreateFile) :
|
||||||
wxPanel(parent, -1 )
|
wxPanel(parent, -1 )
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/* Contructor to create a setup page for one netlist format.
|
/* Contructor to create a setup page for one netlist format.
|
||||||
Used in Netlist format Dialog box creation
|
* Used in Netlist format Dialog box creation
|
||||||
*/
|
*/
|
||||||
{
|
{
|
||||||
SetFont(*g_DialogFont);
|
SetFont(*g_DialogFont);
|
||||||
m_IdNetType = id_NetType;
|
m_IdNetType = id_NetType;
|
||||||
m_CommandStringCtrl = NULL;
|
m_CommandStringCtrl = NULL;
|
||||||
m_TitleStringCtrl = NULL;
|
m_TitleStringCtrl = NULL;
|
||||||
m_IsCurrentFormat = NULL;
|
m_IsCurrentFormat = NULL;
|
||||||
m_ButtonCancel = NULL;
|
m_ButtonCancel = NULL;
|
||||||
|
|
||||||
parent->AddPage(this, title, g_NetFormat == m_IdNetType);
|
parent->AddPage(this, title, g_NetFormat == m_IdNetType);
|
||||||
|
|
||||||
wxBoxSizer * MainBoxSizer = new wxBoxSizer(wxVERTICAL);
|
wxBoxSizer * MainBoxSizer = new wxBoxSizer(wxVERTICAL);
|
||||||
SetSizer(MainBoxSizer);
|
SetSizer(MainBoxSizer);
|
||||||
wxBoxSizer * UpperBoxSizer = new wxBoxSizer(wxHORIZONTAL);
|
wxBoxSizer * UpperBoxSizer = new wxBoxSizer(wxHORIZONTAL);
|
||||||
m_LowBoxSizer = new wxBoxSizer(wxVERTICAL);
|
m_LowBoxSizer = new wxBoxSizer(wxVERTICAL);
|
||||||
MainBoxSizer->Add(UpperBoxSizer, 0, wxGROW|wxALL, 5);
|
MainBoxSizer->Add(UpperBoxSizer, 0, wxGROW|wxALL, 5);
|
||||||
MainBoxSizer->Add(m_LowBoxSizer, 0, wxGROW|wxALL, 5);
|
MainBoxSizer->Add(m_LowBoxSizer, 0, wxGROW|wxALL, 5);
|
||||||
|
|
||||||
m_LeftBoxSizer = new wxBoxSizer(wxVERTICAL);
|
m_LeftBoxSizer = new wxBoxSizer(wxVERTICAL);
|
||||||
m_RightBoxSizer = new wxBoxSizer(wxVERTICAL);
|
m_RightBoxSizer = new wxBoxSizer(wxVERTICAL);
|
||||||
UpperBoxSizer->Add(m_LeftBoxSizer, 0, wxGROW|wxALL, 5);
|
UpperBoxSizer->Add(m_LeftBoxSizer, 0, wxGROW|wxALL, 5);
|
||||||
UpperBoxSizer->Add(m_RightBoxSizer, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
|
UpperBoxSizer->Add(m_RightBoxSizer, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
|
||||||
|
|
||||||
if ( idCheckBox )
|
if( idCheckBox )
|
||||||
{
|
{
|
||||||
wxStaticText * text = new wxStaticText(this, -1, _("Options:"));
|
wxStaticText * text = new wxStaticText(this, -1, _("Options:"));
|
||||||
m_LeftBoxSizer->Add(text, 0, wxGROW|wxALL, 5);
|
m_LeftBoxSizer->Add(text, 0, wxGROW|wxALL, 5);
|
||||||
|
|
||||||
m_IsCurrentFormat = new wxCheckBox(this, idCheckBox,
|
m_IsCurrentFormat = new wxCheckBox(this, idCheckBox, _("Default format"));
|
||||||
_("Default format"));
|
m_LeftBoxSizer->Add(m_IsCurrentFormat, 0, wxGROW|wxALL, 5);
|
||||||
m_LeftBoxSizer->Add(m_IsCurrentFormat, 0, wxGROW|wxALL, 5);
|
|
||||||
|
|
||||||
if ( g_NetFormat == m_IdNetType )
|
if( g_NetFormat == m_IdNetType )
|
||||||
m_IsCurrentFormat->SetValue(TRUE);
|
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);
|
||||||
|
|
||||||
if ( idCreateFile ) // Create the 2 standard buttons: Create File ans Cancel
|
m_ButtonCancel =
|
||||||
{
|
Button = new wxButton(this, wxID_CANCEL, _("&Cancel"));
|
||||||
wxButton * Button;
|
Button->SetForegroundColour(*wxBLUE);
|
||||||
if ( idCreateFile == ID_SETUP_PLUGIN )
|
m_RightBoxSizer->Add(Button, 0, wxGROW|wxALL, 5);
|
||||||
{
|
}
|
||||||
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, ID_CLOSE_NETLIST,
|
|
||||||
_("&Close"));
|
|
||||||
Button->SetForegroundColour(*wxBLUE);
|
|
||||||
m_RightBoxSizer->Add(Button, 0, wxGROW|wxALL, 5);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#define CUSTOMPANEL_COUNTMAX 8
|
#define CUSTOMPANEL_COUNTMAX 8
|
||||||
/* Dialog frame for creating netlists */
|
/* Dialog frame for creating netlists */
|
||||||
class WinEDA_NetlistFrame: public wxDialog
|
class WinEDA_NetlistFrame: public wxDialog
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
WinEDA_SchematicFrame * m_Parent;
|
WinEDA_SchematicFrame * m_Parent;
|
||||||
wxNotebook* m_NoteBook;
|
wxNotebook* m_NoteBook;
|
||||||
EDA_NoteBookPage * m_PanelNetType[4+CUSTOMPANEL_COUNTMAX];
|
EDA_NoteBookPage * m_PanelNetType[4 + CUSTOMPANEL_COUNTMAX];
|
||||||
|
|
||||||
wxRadioBox * m_UseNetNamesInNetlist;
|
wxRadioBox * m_UseNetNamesInNetlist;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
// Constructor and destructor
|
// Constructor and destructor
|
||||||
WinEDA_NetlistFrame(WinEDA_SchematicFrame *parent, wxPoint& pos);
|
WinEDA_NetlistFrame(WinEDA_SchematicFrame *parent, wxPoint& pos);
|
||||||
~WinEDA_NetlistFrame() {};
|
~WinEDA_NetlistFrame() {};
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void InstallCustomPages();
|
void InstallCustomPages();
|
||||||
void InstallPageSpice();
|
void InstallPageSpice();
|
||||||
void GenNetlist(wxCommandEvent& event);
|
void GenNetlist(wxCommandEvent& event);
|
||||||
void RunSimulator(wxCommandEvent& event);
|
void RunSimulator(wxCommandEvent& event);
|
||||||
void NetlistUpdateOpt();
|
void NetlistUpdateOpt();
|
||||||
void NetlistExit(wxCommandEvent& event);
|
void OnCancelClick(wxCommandEvent& event);
|
||||||
void SelectNetlistType(wxCommandEvent& event);
|
void SelectNetlistType(wxCommandEvent& event);
|
||||||
void SetupPlugin(wxCommandEvent& event);
|
void SetupPlugin(wxCommandEvent& event);
|
||||||
DECLARE_EVENT_TABLE()};
|
DECLARE_EVENT_TABLE()};
|
||||||
|
|
||||||
BEGIN_EVENT_TABLE(WinEDA_NetlistFrame, wxDialog)
|
BEGIN_EVENT_TABLE(WinEDA_NetlistFrame, wxDialog)
|
||||||
EVT_BUTTON(ID_CLOSE_NETLIST, WinEDA_NetlistFrame::NetlistExit)
|
EVT_BUTTON(wxID_CANCEL, WinEDA_NetlistFrame::OnCancelClick)
|
||||||
EVT_BUTTON(ID_CREATE_NETLIST, WinEDA_NetlistFrame::GenNetlist)
|
EVT_BUTTON(ID_CREATE_NETLIST, WinEDA_NetlistFrame::GenNetlist)
|
||||||
EVT_BUTTON(ID_SETUP_PLUGIN, WinEDA_NetlistFrame::SetupPlugin)
|
EVT_BUTTON(ID_SETUP_PLUGIN, WinEDA_NetlistFrame::SetupPlugin)
|
||||||
EVT_CHECKBOX(ID_CURRENT_FORMAT_IS_DEFAULT, WinEDA_NetlistFrame::SelectNetlistType)
|
EVT_CHECKBOX(ID_CURRENT_FORMAT_IS_DEFAULT, WinEDA_NetlistFrame::SelectNetlistType)
|
||||||
EVT_BUTTON(ID_RUN_SIMULATOR, WinEDA_NetlistFrame::RunSimulator)
|
EVT_BUTTON(ID_RUN_SIMULATOR, WinEDA_NetlistFrame::RunSimulator)
|
||||||
END_EVENT_TABLE()
|
END_EVENT_TABLE()
|
||||||
|
|
||||||
|
|
||||||
|
@ -167,71 +159,73 @@ END_EVENT_TABLE()
|
||||||
void InstallNetlistFrame(WinEDA_SchematicFrame *parent, wxPoint & pos)
|
void InstallNetlistFrame(WinEDA_SchematicFrame *parent, wxPoint & pos)
|
||||||
/****************************************************************/
|
/****************************************************************/
|
||||||
/* Installator for the netlist generation dialog box
|
/* Installator for the netlist generation dialog box
|
||||||
*/
|
*/
|
||||||
{
|
{
|
||||||
WinEDA_NetlistFrame * frame = new WinEDA_NetlistFrame(parent, pos);
|
WinEDA_NetlistFrame * frame = new WinEDA_NetlistFrame(parent, pos);
|
||||||
frame->ShowModal(); frame->Destroy();
|
frame->ShowModal();
|
||||||
|
frame->Destroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
#define H_SIZE 370
|
#define H_SIZE 370
|
||||||
#define V_SIZE 300
|
#define V_SIZE 300
|
||||||
|
|
||||||
|
|
||||||
/*************************************************************************************/
|
/*************************************************************************************/
|
||||||
WinEDA_NetlistFrame::WinEDA_NetlistFrame(WinEDA_SchematicFrame *parent, wxPoint& framepos):
|
WinEDA_NetlistFrame::WinEDA_NetlistFrame(WinEDA_SchematicFrame *parent, wxPoint& framepos):
|
||||||
wxDialog(parent, -1, _("Netlist"), framepos, wxSize(H_SIZE, V_SIZE), DIALOG_STYLE | MAYBE_RESIZE_BORDER)
|
wxDialog(parent, -1, _("Netlist"), framepos, wxSize(H_SIZE, V_SIZE), DIALOG_STYLE | MAYBE_RESIZE_BORDER)
|
||||||
/*************************************************************************************/
|
/*************************************************************************************/
|
||||||
/* Constructor for the netlist generation dialog box
|
/* Constructor for the netlist generation dialog box
|
||||||
*/
|
*/
|
||||||
{
|
{
|
||||||
int ii;
|
int ii;
|
||||||
|
|
||||||
m_Parent = parent;
|
m_Parent = parent;
|
||||||
SetFont(*g_DialogFont);
|
SetFont(*g_DialogFont);
|
||||||
if ( g_NetFormat == NET_TYPE_NOT_INIT )
|
if( g_NetFormat == NET_TYPE_NOT_INIT )
|
||||||
g_NetFormat = NET_TYPE_PCBNEW;
|
g_NetFormat = NET_TYPE_PCBNEW;
|
||||||
|
|
||||||
for ( ii = 0; ii < PANELCUSTOMBASE+CUSTOMPANEL_COUNTMAX; ii ++ )
|
for( ii = 0; ii < PANELCUSTOMBASE + CUSTOMPANEL_COUNTMAX; ii ++ )
|
||||||
{
|
{
|
||||||
m_PanelNetType[ii] = NULL;
|
m_PanelNetType[ii] = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( (framepos.x == -1) && (framepos.x == -1) ) Centre();
|
if( (framepos.x == -1) && (framepos.y == -1) )
|
||||||
|
Centre();
|
||||||
|
|
||||||
wxBoxSizer * GeneralBoxSizer = new wxBoxSizer(wxVERTICAL);
|
wxBoxSizer * GeneralBoxSizer = new wxBoxSizer(wxVERTICAL);
|
||||||
SetSizer(GeneralBoxSizer);
|
SetSizer(GeneralBoxSizer);
|
||||||
|
|
||||||
m_NoteBook = new wxNotebook(this, ID_NETLIST_NOTEBOOK,
|
m_NoteBook = new wxNotebook( this, ID_NETLIST_NOTEBOOK,
|
||||||
wxDefaultPosition,wxSize(H_SIZE-6, V_SIZE - 28));
|
wxDefaultPosition, wxSize(H_SIZE - 6, V_SIZE - 28) );
|
||||||
m_NoteBook->SetFont(*g_DialogFont);
|
m_NoteBook->SetFont(*g_DialogFont);
|
||||||
GeneralBoxSizer->Add(m_NoteBook, 0, wxGROW|wxALL, 5);
|
GeneralBoxSizer->Add(m_NoteBook, 0, wxGROW|wxALL, 5);
|
||||||
|
|
||||||
// Add panels
|
// Add panels
|
||||||
|
|
||||||
// Add Panel FORMAT PCBNEW
|
// Add Panel FORMAT PCBNEW
|
||||||
m_PanelNetType[PANELPCBNEW] = new EDA_NoteBookPage(m_NoteBook, wxT("Pcbnew"), NET_TYPE_PCBNEW,
|
m_PanelNetType[PANELPCBNEW] = new EDA_NoteBookPage(m_NoteBook, wxT("Pcbnew"), NET_TYPE_PCBNEW,
|
||||||
ID_CURRENT_FORMAT_IS_DEFAULT, ID_CREATE_NETLIST);
|
ID_CURRENT_FORMAT_IS_DEFAULT, ID_CREATE_NETLIST);
|
||||||
|
|
||||||
// Add Panel FORMAT ORCADPCB2
|
// Add Panel FORMAT ORCADPCB2
|
||||||
m_PanelNetType[PANELORCADPCB2] = new EDA_NoteBookPage(m_NoteBook, wxT("OrcadPCB2"), NET_TYPE_ORCADPCB2,
|
m_PanelNetType[PANELORCADPCB2] = new EDA_NoteBookPage(m_NoteBook, wxT("OrcadPCB2"), NET_TYPE_ORCADPCB2,
|
||||||
ID_CURRENT_FORMAT_IS_DEFAULT, ID_CREATE_NETLIST);
|
ID_CURRENT_FORMAT_IS_DEFAULT, ID_CREATE_NETLIST);
|
||||||
|
|
||||||
// Add Panel FORMAT CADSTAR
|
// Add Panel FORMAT CADSTAR
|
||||||
m_PanelNetType[PANELCADSTAR] = new EDA_NoteBookPage(m_NoteBook, wxT("CadStar"), NET_TYPE_CADSTAR,
|
m_PanelNetType[PANELCADSTAR] = new EDA_NoteBookPage(m_NoteBook, wxT("CadStar"), NET_TYPE_CADSTAR,
|
||||||
ID_CURRENT_FORMAT_IS_DEFAULT, ID_CREATE_NETLIST);
|
ID_CURRENT_FORMAT_IS_DEFAULT, ID_CREATE_NETLIST);
|
||||||
|
|
||||||
// Add Panel spice
|
// Add Panel spice
|
||||||
InstallPageSpice();
|
InstallPageSpice();
|
||||||
|
|
||||||
// Add custom panels:
|
// Add custom panels:
|
||||||
InstallCustomPages();
|
InstallCustomPages();
|
||||||
|
|
||||||
// Problem in wxMSV >= 2.7.1 : we must call GetSizer for one notebook page
|
// Problem in wxMSV >= 2.7.1 : we must call GetSizer for one notebook page
|
||||||
// to have a proper sizer commutation of all pages
|
// to have a proper sizer commutation of all pages
|
||||||
m_PanelNetType[PANELPCBNEW]->GetSizer()->Fit(this);
|
m_PanelNetType[PANELPCBNEW]->GetSizer()->Fit(this);
|
||||||
m_PanelNetType[PANELPCBNEW]->GetSizer()->SetSizeHints(this);
|
m_PanelNetType[PANELPCBNEW]->GetSizer()->SetSizeHints(this);
|
||||||
|
|
||||||
|
GetSizer()->Fit(this);
|
||||||
GetSizer()->Fit(this);
|
|
||||||
GetSizer()->SetSizeHints(this);
|
GetSizer()->SetSizeHints(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -240,84 +234,88 @@ int ii;
|
||||||
void WinEDA_NetlistFrame::InstallPageSpice()
|
void WinEDA_NetlistFrame::InstallPageSpice()
|
||||||
/*************************************************/
|
/*************************************************/
|
||||||
/* Create the spice page
|
/* Create the spice page
|
||||||
*/
|
*/
|
||||||
{
|
{
|
||||||
wxButton * Button;
|
wxButton * Button;
|
||||||
EDA_NoteBookPage * page;
|
EDA_NoteBookPage * page;
|
||||||
|
|
||||||
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,
|
page = m_PanelNetType[PANELSPICE] = new EDA_NoteBookPage(m_NoteBook, wxT("Spice"), NET_TYPE_SPICE, 0, 0);
|
||||||
_("Default format"));
|
|
||||||
page->m_IsCurrentFormat->SetValue( g_NetFormat == NET_TYPE_SPICE);
|
page->m_IsCurrentFormat = new wxCheckBox(page, ID_CURRENT_FORMAT_IS_DEFAULT, _("Default format"));
|
||||||
page->m_LeftBoxSizer->Add(page->m_IsCurrentFormat, 0, wxGROW|wxALL, 5);
|
page->m_IsCurrentFormat->SetValue( g_NetFormat == NET_TYPE_SPICE );
|
||||||
|
page->m_LeftBoxSizer->Add(page->m_IsCurrentFormat, 0, wxGROW|wxALL, 5);
|
||||||
|
|
||||||
wxString netlist_opt[2] = { _("Use Net Names"), _("Use Net Numbers") };
|
wxString netlist_opt[2] = { _("Use Net Names"), _("Use Net Numbers") };
|
||||||
m_UseNetNamesInNetlist = new wxRadioBox(page,-1, _("Netlist Options:"),
|
m_UseNetNamesInNetlist = new wxRadioBox(page, -1, _("Netlist Options:"),
|
||||||
wxDefaultPosition, wxDefaultSize,
|
wxDefaultPosition, wxDefaultSize,
|
||||||
2, netlist_opt, 1, wxRA_SPECIFY_COLS);
|
2, netlist_opt, 1, wxRA_SPECIFY_COLS);
|
||||||
if ( ! g_OptNetListUseNames ) m_UseNetNamesInNetlist->SetSelection(1);
|
if( ! g_OptNetListUseNames )
|
||||||
page->m_LeftBoxSizer->Add(m_UseNetNamesInNetlist, 0, wxGROW|wxALL, 5);
|
m_UseNetNamesInNetlist->SetSelection(1);
|
||||||
|
page->m_LeftBoxSizer->Add(m_UseNetNamesInNetlist, 0, wxGROW|wxALL, 5);
|
||||||
|
|
||||||
page->m_CommandStringCtrl = new WinEDA_EnterText(page,
|
page->m_CommandStringCtrl = new WinEDA_EnterText( page,
|
||||||
_("Simulator command:"), g_SimulatorCommandLine,
|
_("Simulator command:"), g_SimulatorCommandLine,
|
||||||
page->m_LowBoxSizer, wxSize(H_SIZE- 10, -1) );
|
page->m_LowBoxSizer, wxSize(H_SIZE - 10, -1) );
|
||||||
// Add buttons
|
// Add buttons
|
||||||
Button = new wxButton(page, ID_CREATE_NETLIST, _("Netlist") );
|
Button = new wxButton( page, ID_CREATE_NETLIST, _("Netlist") );
|
||||||
Button->SetForegroundColour(*wxRED);
|
Button->SetForegroundColour(*wxRED);
|
||||||
page->m_RightBoxSizer->Add(Button, 0, wxGROW|wxALL, 5);
|
page->m_RightBoxSizer->Add(Button, 0, wxGROW|wxALL, 5);
|
||||||
|
|
||||||
Button = new wxButton(page, ID_RUN_SIMULATOR, _("&Run Simulator"));
|
Button = new wxButton(page, ID_RUN_SIMULATOR, _("&Run Simulator"));
|
||||||
Button->SetForegroundColour(wxColour(0,100,0));
|
Button->SetForegroundColour( wxColour(0, 100, 0) );
|
||||||
page->m_RightBoxSizer->Add(Button, 0, wxGROW|wxALL, 5);
|
page->m_RightBoxSizer->Add(Button, 0, wxGROW|wxALL, 5);
|
||||||
|
|
||||||
Button = new wxButton(page, ID_CLOSE_NETLIST, _("&Close"));
|
Button = new wxButton(page, wxID_CANCEL, _("&Cancel"));
|
||||||
Button->SetForegroundColour(*wxBLUE);
|
Button->SetForegroundColour(*wxBLUE);
|
||||||
page->m_RightBoxSizer->Add(Button, 0, wxGROW|wxALL, 5);
|
page->m_RightBoxSizer->Add(Button, 0, wxGROW|wxALL, 5);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*************************************************/
|
/*************************************************/
|
||||||
void WinEDA_NetlistFrame::InstallCustomPages()
|
void WinEDA_NetlistFrame::InstallCustomPages()
|
||||||
/*************************************************/
|
/*************************************************/
|
||||||
/* create the pages for custom netlist format selection:
|
/* create the pages for custom netlist format selection:
|
||||||
*/
|
*/
|
||||||
{
|
{
|
||||||
int ii, CustomCount;
|
int ii, CustomCount;
|
||||||
wxString title, previoustitle, msg;
|
wxString title, previoustitle, msg;
|
||||||
EDA_NoteBookPage * CurrPage;
|
EDA_NoteBookPage * CurrPage;
|
||||||
|
|
||||||
CustomCount = CUSTOMPANEL_COUNTMAX;
|
CustomCount = CUSTOMPANEL_COUNTMAX;
|
||||||
previoustitle = wxT("dummy_title");
|
previoustitle = wxT("dummy_title");
|
||||||
for ( ii = 0; ii < CustomCount; ii++ )
|
for( ii = 0; ii < CustomCount; ii++ )
|
||||||
{
|
{
|
||||||
msg = CUSTOM_NETLIST_TITLE; msg << ii+1;
|
msg = CUSTOM_NETLIST_TITLE;
|
||||||
title = m_Parent->m_Parent->m_EDA_Config->Read(msg);
|
msg << ii + 1;
|
||||||
|
title = m_Parent->m_Parent->m_EDA_Config->Read(msg);
|
||||||
// Install the panel only if it is the first panel not initialised
|
|
||||||
if ( (title.IsEmpty()) && ( previoustitle.IsEmpty() ) ) break;
|
|
||||||
|
|
||||||
previoustitle = title;
|
// Install the panel only if it is the first panel not initialised
|
||||||
if ( title.IsEmpty() )
|
if( title.IsEmpty() && previoustitle.IsEmpty() )
|
||||||
CurrPage = m_PanelNetType[PANELCUSTOMBASE + ii] =
|
break;
|
||||||
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);
|
|
||||||
|
|
||||||
msg = CUSTOM_NETLIST_COMMAND; msg << ii+1;
|
previoustitle = title;
|
||||||
wxString Command = m_Parent->m_Parent->m_EDA_Config->Read(msg);
|
if( title.IsEmpty() )
|
||||||
CurrPage->m_CommandStringCtrl = new WinEDA_EnterText(CurrPage,
|
CurrPage = m_PanelNetType[PANELCUSTOMBASE + ii] =
|
||||||
_("Netlist command:"), Command,
|
new EDA_NoteBookPage(m_NoteBook, _("Add Plugin"),
|
||||||
CurrPage->m_LowBoxSizer, wxSize(H_SIZE- 10, -1) );
|
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_TitleStringCtrl = new WinEDA_EnterText(CurrPage,
|
msg = CUSTOM_NETLIST_COMMAND;
|
||||||
_("Title:"), title,
|
msg << ii + 1;
|
||||||
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, wxSize(H_SIZE - 10, -1) );
|
||||||
|
|
||||||
|
CurrPage->m_TitleStringCtrl = new WinEDA_EnterText( CurrPage,
|
||||||
|
_("Title:"), title,
|
||||||
|
CurrPage->m_LowBoxSizer, wxSize(H_SIZE - 10, -1) );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -325,32 +323,34 @@ EDA_NoteBookPage * CurrPage;
|
||||||
void WinEDA_NetlistFrame::SetupPlugin(wxCommandEvent& event)
|
void WinEDA_NetlistFrame::SetupPlugin(wxCommandEvent& event)
|
||||||
/***********************************************************/
|
/***********************************************************/
|
||||||
/* Browse the plugin files and set the m_CommandStringCtrl field
|
/* Browse the plugin files and set the m_CommandStringCtrl field
|
||||||
*/
|
*/
|
||||||
{
|
{
|
||||||
wxString FullFileName, Mask, Path;
|
wxString FullFileName, Mask, Path;
|
||||||
Mask = wxT("*");
|
Mask = wxT("*");
|
||||||
Path = g_EDA_Appl->m_BinDir;
|
Path = g_EDA_Appl->m_BinDir;
|
||||||
FullFileName = EDA_FileSelector( _("Plugin files:"),
|
FullFileName = EDA_FileSelector( _("Plugin files:"),
|
||||||
Path, /* Chemin par defaut */
|
Path, /* Chemin par defaut */
|
||||||
FullFileName, /* nom fichier par defaut */
|
FullFileName, /* nom fichier par defaut */
|
||||||
wxEmptyString, /* extension par defaut */
|
wxEmptyString, /* extension par defaut */
|
||||||
Mask, /* Masque d'affichage */
|
Mask, /* Masque d'affichage */
|
||||||
this,
|
this,
|
||||||
wxFD_OPEN,
|
wxFD_OPEN,
|
||||||
TRUE
|
TRUE
|
||||||
);
|
);
|
||||||
if ( FullFileName.IsEmpty() ) return;
|
if( FullFileName.IsEmpty() )
|
||||||
|
return;
|
||||||
|
|
||||||
EDA_NoteBookPage * CurrPage;
|
EDA_NoteBookPage * CurrPage;
|
||||||
CurrPage = (EDA_NoteBookPage *) m_NoteBook->GetCurrentPage();
|
CurrPage = (EDA_NoteBookPage *) m_NoteBook->GetCurrentPage();
|
||||||
if ( CurrPage == NULL ) return;
|
if( CurrPage == NULL )
|
||||||
|
return;
|
||||||
CurrPage->m_CommandStringCtrl->SetValue(FullFileName);
|
|
||||||
|
CurrPage->m_CommandStringCtrl->SetValue(FullFileName);
|
||||||
/* Get a title for thgis page */
|
|
||||||
wxString title = CurrPage->m_TitleStringCtrl->GetValue();
|
/* Get a title for this page */
|
||||||
if ( title.IsEmpty() )
|
wxString title = CurrPage->m_TitleStringCtrl->GetValue();
|
||||||
DisplayInfo(this, _("Now, you must choose a title for this netlist control page\nand close the dialog box"));
|
if( title.IsEmpty() )
|
||||||
|
DisplayInfo(this, _("Now, you must choose a title for this netlist control page\nand close the dialog box"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -362,164 +362,175 @@ void WinEDA_NetlistFrame::SelectNetlistType(wxCommandEvent& event)
|
||||||
int ii;
|
int ii;
|
||||||
EDA_NoteBookPage * CurrPage;
|
EDA_NoteBookPage * CurrPage;
|
||||||
|
|
||||||
for ( ii = 0; ii < PANELCUSTOMBASE+CUSTOMPANEL_COUNTMAX; ii++ )
|
for( ii = 0; ii < PANELCUSTOMBASE + CUSTOMPANEL_COUNTMAX; ii++ )
|
||||||
if ( m_PanelNetType[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;
|
if( CurrPage == NULL )
|
||||||
|
return;
|
||||||
g_NetFormat = CurrPage->m_IdNetType;
|
|
||||||
CurrPage->m_IsCurrentFormat->SetValue(TRUE);
|
|
||||||
|
|
||||||
|
g_NetFormat = CurrPage->m_IdNetType;
|
||||||
|
CurrPage->m_IsCurrentFormat->SetValue(TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/***********************************************/
|
/***********************************************/
|
||||||
void WinEDA_NetlistFrame::NetlistUpdateOpt()
|
void WinEDA_NetlistFrame::NetlistUpdateOpt()
|
||||||
/***********************************************/
|
/***********************************************/
|
||||||
{
|
{
|
||||||
int ii;
|
int ii;
|
||||||
|
|
||||||
g_SimulatorCommandLine =
|
|
||||||
m_PanelNetType[PANELSPICE]->m_CommandStringCtrl->GetValue();
|
|
||||||
g_NetFormat = NET_TYPE_PCBNEW;
|
|
||||||
|
|
||||||
for ( ii = 0; ii < PANELCUSTOMBASE+CUSTOMPANEL_COUNTMAX; ii++ )
|
g_SimulatorCommandLine =
|
||||||
{
|
m_PanelNetType[PANELSPICE]->m_CommandStringCtrl->GetValue();
|
||||||
if ( m_PanelNetType[ii] == NULL ) break;
|
g_NetFormat = NET_TYPE_PCBNEW;
|
||||||
if ( m_PanelNetType[ii]->m_IsCurrentFormat->GetValue() == TRUE )
|
|
||||||
g_NetFormat = m_PanelNetType[ii]->m_IdNetType;
|
|
||||||
}
|
|
||||||
|
|
||||||
g_OptNetListUseNames = TRUE; // Used for pspice, gnucap
|
for( ii = 0; ii < PANELCUSTOMBASE + CUSTOMPANEL_COUNTMAX; ii++ )
|
||||||
if ( m_UseNetNamesInNetlist->GetSelection() == 1 )
|
{
|
||||||
g_OptNetListUseNames = FALSE;
|
if( m_PanelNetType[ii] == NULL )
|
||||||
|
break;
|
||||||
|
if( m_PanelNetType[ii]->m_IsCurrentFormat->GetValue() == TRUE )
|
||||||
|
g_NetFormat = m_PanelNetType[ii]->m_IdNetType;
|
||||||
|
}
|
||||||
|
|
||||||
|
g_OptNetListUseNames = TRUE; // Used for pspice, gnucap
|
||||||
|
if( m_UseNetNamesInNetlist->GetSelection() == 1 )
|
||||||
|
g_OptNetListUseNames = FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**********************************************************/
|
/**********************************************************/
|
||||||
void WinEDA_NetlistFrame::GenNetlist(wxCommandEvent& event)
|
void WinEDA_NetlistFrame::GenNetlist(wxCommandEvent& event)
|
||||||
/**********************************************************/
|
/**********************************************************/
|
||||||
{
|
{
|
||||||
wxString FullFileName, FileExt, Mask;
|
wxString FullFileName, FileExt, Mask;
|
||||||
|
wxString msg, Command;
|
||||||
int netformat_tmp = g_NetFormat;
|
int netformat_tmp = g_NetFormat;
|
||||||
|
|
||||||
NetlistUpdateOpt();
|
NetlistUpdateOpt();
|
||||||
|
|
||||||
EDA_NoteBookPage * CurrPage;
|
EDA_NoteBookPage * CurrPage;
|
||||||
|
|
||||||
CurrPage = (EDA_NoteBookPage *) m_NoteBook->GetCurrentPage();
|
|
||||||
g_NetFormat = CurrPage->m_IdNetType;
|
|
||||||
|
|
||||||
/* Calcul du nom du fichier netlist */
|
|
||||||
FullFileName = ScreenSch->m_FileName;
|
|
||||||
|
|
||||||
switch ( g_NetFormat )
|
CurrPage = (EDA_NoteBookPage *) m_NoteBook->GetCurrentPage();
|
||||||
{
|
g_NetFormat = CurrPage->m_IdNetType;
|
||||||
case NET_TYPE_SPICE:
|
|
||||||
FileExt = wxT(".cir");
|
|
||||||
break;
|
|
||||||
case NET_TYPE_CADSTAR:
|
|
||||||
FileExt = wxT(".frp");
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
FileExt = g_NetExtBuffer;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
Mask = wxT("*") + FileExt + wxT("*");
|
/* Calcul du nom du fichier netlist */
|
||||||
ChangeFileNameExt(FullFileName, FileExt);
|
FullFileName = ScreenSch->m_FileName;
|
||||||
|
|
||||||
FullFileName = EDA_FileSelector( _("Netlist files:"),
|
switch( g_NetFormat )
|
||||||
wxEmptyString, /* Chemin par defaut */
|
{
|
||||||
FullFileName, /* nom fichier par defaut */
|
case NET_TYPE_SPICE:
|
||||||
FileExt, /* extension par defaut */
|
FileExt = wxT(".cir");
|
||||||
Mask, /* Masque d'affichage */
|
break;
|
||||||
this,
|
|
||||||
wxFD_SAVE,
|
|
||||||
TRUE
|
|
||||||
);
|
|
||||||
if ( FullFileName.IsEmpty() ) return;
|
|
||||||
|
|
||||||
m_Parent->MsgPanel->EraseMsgBox();
|
case NET_TYPE_CADSTAR:
|
||||||
|
FileExt = wxT(".frp");
|
||||||
|
break;
|
||||||
|
|
||||||
ReAnnotatePowerSymbolsOnly();
|
default:
|
||||||
if( CheckAnnotate(m_Parent, 0) )
|
FileExt = g_NetExtBuffer;
|
||||||
{
|
break;
|
||||||
if( !IsOK( this, _("Must be Annotated, Continue ?")) )
|
}
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Cleanup the entire hierarchy */
|
Mask = wxT("*") + FileExt + wxT("*");
|
||||||
EDA_ScreenList ScreenList(NULL);
|
ChangeFileNameExt(FullFileName, FileExt);
|
||||||
for ( SCH_SCREEN * screen = ScreenList.GetFirst(); screen != NULL; screen = ScreenList.GetNext() )
|
|
||||||
{
|
|
||||||
bool ModifyWires;
|
|
||||||
ModifyWires = screen->SchematicCleanUp(NULL);
|
|
||||||
/* if wire list has changed, delete the Undo Redo list to avoid
|
|
||||||
pointer problems with deleted data */
|
|
||||||
if ( ModifyWires )
|
|
||||||
screen->ClearUndoRedoList();
|
|
||||||
}
|
|
||||||
|
|
||||||
m_Parent->BuildNetListBase();
|
FullFileName = EDA_FileSelector( _("Netlist files:"),
|
||||||
if ( CurrPage->m_CommandStringCtrl)
|
wxEmptyString, /* Chemin par defaut */
|
||||||
g_NetListerCommandLine = CurrPage->m_CommandStringCtrl->GetValue();
|
FullFileName, /* nom fichier par defaut */
|
||||||
else g_NetListerCommandLine.Empty();
|
FileExt, /* extension par defaut */
|
||||||
|
Mask, /* Masque d'affichage */
|
||||||
switch (g_NetFormat)
|
this,
|
||||||
{
|
wxFD_SAVE,
|
||||||
default:
|
TRUE
|
||||||
WriteNetList(m_Parent, FullFileName, TRUE);
|
);
|
||||||
break;
|
if( FullFileName.IsEmpty() )
|
||||||
|
return;
|
||||||
|
|
||||||
case NET_TYPE_CADSTAR:
|
m_Parent->MsgPanel->EraseMsgBox();
|
||||||
case NET_TYPE_ORCADPCB2:
|
|
||||||
WriteNetList(m_Parent, FullFileName, FALSE);
|
|
||||||
|
|
||||||
case NET_TYPE_SPICE:
|
ReAnnotatePowerSymbolsOnly();
|
||||||
g_OptNetListUseNames = TRUE; // Used for pspice, gnucap
|
if( CheckAnnotate(m_Parent, 0) )
|
||||||
if ( m_UseNetNamesInNetlist->GetSelection() == 1 )
|
{
|
||||||
g_OptNetListUseNames = FALSE;
|
if( !IsOK( this, _("Must be Annotated, Continue ?") ) )
|
||||||
WriteNetList(m_Parent, FullFileName, g_OptNetListUseNames);
|
return;
|
||||||
break;
|
}
|
||||||
}
|
|
||||||
FreeTabNetList(g_TabObjNet, g_NbrObjNet );
|
|
||||||
g_NetFormat = netformat_tmp;
|
|
||||||
|
|
||||||
NetlistExit(event);
|
/* Cleanup the entire hierarchy */
|
||||||
|
EDA_ScreenList ScreenList(NULL);
|
||||||
|
for( SCH_SCREEN * screen = ScreenList.GetFirst(); screen != NULL; screen = ScreenList.GetNext() )
|
||||||
|
{
|
||||||
|
bool ModifyWires;
|
||||||
|
ModifyWires = screen->SchematicCleanUp(NULL);
|
||||||
|
// if wire list has changed, delete the Undo Redo list to avoid
|
||||||
|
// pointer problems with deleted data
|
||||||
|
if( ModifyWires )
|
||||||
|
screen->ClearUndoRedoList();
|
||||||
|
}
|
||||||
|
|
||||||
|
m_Parent->BuildNetListBase();
|
||||||
|
if( CurrPage->m_CommandStringCtrl )
|
||||||
|
g_NetListerCommandLine = CurrPage->m_CommandStringCtrl->GetValue();
|
||||||
|
else
|
||||||
|
g_NetListerCommandLine.Empty();
|
||||||
|
|
||||||
|
switch( g_NetFormat )
|
||||||
|
{
|
||||||
|
default:
|
||||||
|
WriteNetList(m_Parent, FullFileName, TRUE);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case NET_TYPE_CADSTAR:
|
||||||
|
case NET_TYPE_ORCADPCB2:
|
||||||
|
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);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
FreeTabNetList( g_TabObjNet, g_NbrObjNet );
|
||||||
|
g_NetFormat = netformat_tmp;
|
||||||
|
|
||||||
|
NetlistUpdateOpt();
|
||||||
|
// Update the new titles
|
||||||
|
for( int ii = 0; ii < CUSTOMPANEL_COUNTMAX; ii++ )
|
||||||
|
{
|
||||||
|
EDA_NoteBookPage * CurrPage = m_PanelNetType[ii + PANELCUSTOMBASE];
|
||||||
|
if( CurrPage == NULL )
|
||||||
|
break;
|
||||||
|
msg = wxT("Custom");
|
||||||
|
msg << ii + 1;
|
||||||
|
if( CurrPage->m_TitleStringCtrl )
|
||||||
|
{
|
||||||
|
wxString title = CurrPage->m_TitleStringCtrl->GetValue();
|
||||||
|
if( msg != title ) // Title has changed, Update config
|
||||||
|
{
|
||||||
|
msg = CUSTOM_NETLIST_TITLE;
|
||||||
|
msg << ii + 1;
|
||||||
|
m_Parent->m_Parent->m_EDA_Config->Write(msg, title);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if( CurrPage->m_CommandStringCtrl )
|
||||||
|
{
|
||||||
|
Command = CurrPage->m_CommandStringCtrl->GetValue();
|
||||||
|
msg = CUSTOM_NETLIST_COMMAND;
|
||||||
|
msg << ii + 1;
|
||||||
|
m_Parent->m_Parent->m_EDA_Config->Write(msg, Command);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
EndModal( 0 );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/***********************************************************/
|
/***********************************************************/
|
||||||
void WinEDA_NetlistFrame::NetlistExit(wxCommandEvent& event)
|
void WinEDA_NetlistFrame::OnCancelClick(wxCommandEvent& event)
|
||||||
/***********************************************************/
|
/***********************************************************/
|
||||||
{
|
{
|
||||||
wxString msg, Command;
|
EndModal( -1 );
|
||||||
|
|
||||||
NetlistUpdateOpt();
|
|
||||||
// Update the new titles
|
|
||||||
for ( int ii = 0; ii < CUSTOMPANEL_COUNTMAX; ii++ )
|
|
||||||
{
|
|
||||||
EDA_NoteBookPage * CurrPage = m_PanelNetType[ii + PANELCUSTOMBASE];
|
|
||||||
if ( CurrPage == NULL ) break;
|
|
||||||
msg = wxT("Custom"); msg << ii+1;
|
|
||||||
if ( CurrPage->m_TitleStringCtrl )
|
|
||||||
{
|
|
||||||
wxString title = CurrPage->m_TitleStringCtrl->GetValue();
|
|
||||||
if ( msg != title ) // Title has changed, Update config
|
|
||||||
{
|
|
||||||
msg = CUSTOM_NETLIST_TITLE; msg << ii+1;
|
|
||||||
m_Parent->m_Parent->m_EDA_Config->Write(msg, title);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( CurrPage->m_CommandStringCtrl )
|
|
||||||
{
|
|
||||||
Command = CurrPage->m_CommandStringCtrl->GetValue();
|
|
||||||
msg = CUSTOM_NETLIST_COMMAND; msg << ii+1;
|
|
||||||
m_Parent->m_Parent->m_EDA_Config->Write(msg, Command);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Close();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -529,20 +540,19 @@ void WinEDA_NetlistFrame::RunSimulator(wxCommandEvent& event)
|
||||||
{
|
{
|
||||||
wxString NetlistFullFileName, ExecFile, CommandLine;
|
wxString NetlistFullFileName, ExecFile, CommandLine;
|
||||||
|
|
||||||
g_SimulatorCommandLine =
|
g_SimulatorCommandLine =
|
||||||
m_PanelNetType[PANELSPICE]->m_CommandStringCtrl->GetValue();
|
m_PanelNetType[PANELSPICE]->m_CommandStringCtrl->GetValue();
|
||||||
g_SimulatorCommandLine.Trim(FALSE);
|
g_SimulatorCommandLine.Trim(FALSE);
|
||||||
g_SimulatorCommandLine.Trim(TRUE);
|
g_SimulatorCommandLine.Trim(TRUE);
|
||||||
ExecFile = g_SimulatorCommandLine.BeforeFirst(' ');
|
ExecFile = g_SimulatorCommandLine.BeforeFirst(' ');
|
||||||
|
|
||||||
CommandLine = g_SimulatorCommandLine.AfterFirst(' ');
|
CommandLine = g_SimulatorCommandLine.AfterFirst(' ');
|
||||||
|
|
||||||
/* Calcul du nom du fichier netlist */
|
/* Calcul du nom du fichier netlist */
|
||||||
NetlistFullFileName = ScreenSch->m_FileName;
|
NetlistFullFileName = ScreenSch->m_FileName;
|
||||||
ChangeFileNameExt(NetlistFullFileName, wxT(".cir"));
|
ChangeFileNameExt(NetlistFullFileName, wxT(".cir"));
|
||||||
AddDelimiterString(NetlistFullFileName);
|
AddDelimiterString(NetlistFullFileName);
|
||||||
CommandLine += wxT(" ") + NetlistFullFileName;
|
CommandLine += wxT(" ") + NetlistFullFileName;
|
||||||
|
|
||||||
ExecuteFile(this, ExecFile, CommandLine);
|
ExecuteFile(this, ExecFile, CommandLine);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -176,8 +176,8 @@ WinEDA_SwapLayerFrame::WinEDA_SwapLayerFrame(WinEDA_GerberFrame *parent) :
|
||||||
// pcbnew layer that the Gerber layer has been mapped to). Each of those items are
|
// pcbnew layer that the Gerber layer has been mapped to). Each of those items are
|
||||||
// placed into the left hand column, middle column, and right hand column
|
// placed into the left hand column, middle column, and right hand column
|
||||||
// (respectively) of the Flexgrid sizer, and the color of the second text string
|
// (respectively) of the Flexgrid sizer, and the color of the second text string
|
||||||
// is set to blue (to indicate that the actual text changes depending upon which
|
// is set to fushia or blue (to respectively indicate whether the Gerber layer has
|
||||||
// pcbnew layer has been selected by the child dialog box).
|
// been mapped to a pcbnew layer or is not being exported at all).
|
||||||
// (Experimentation has shown that if a text control is used to depict which
|
// (Experimentation has shown that if a text control is used to depict which
|
||||||
// pcbnew layer that each Gerber layer is mapped to (instead of a static text
|
// pcbnew layer that each Gerber layer is mapped to (instead of a static text
|
||||||
// string), then those controls do not behave in a fully satisfactory manner in
|
// string), then those controls do not behave in a fully satisfactory manner in
|
||||||
|
@ -224,7 +224,7 @@ WinEDA_SwapLayerFrame::WinEDA_SwapLayerFrame(WinEDA_GerberFrame *parent) :
|
||||||
// Provide another text string to specify which pcbnew layer that this
|
// Provide another text string to specify which pcbnew layer that this
|
||||||
// Gerber layer is initially mapped to, and set the initial text to
|
// Gerber layer is initially mapped to, and set the initial text to
|
||||||
// specify the appropriate pcbnew layer, and set the foreground color
|
// specify the appropriate pcbnew layer, and set the foreground color
|
||||||
// of the text to blue (to indicate that the text can be changed).
|
// of the text to fushia (to indicate that the layer is being exported).
|
||||||
item_ID = ID_TEXT_0 + ii;
|
item_ID = ID_TEXT_0 + ii;
|
||||||
|
|
||||||
// When the first of these text strings is being added, determine what size is necessary to
|
// When the first of these text strings is being added, determine what size is necessary to
|
||||||
|
@ -252,7 +252,7 @@ WinEDA_SwapLayerFrame::WinEDA_SwapLayerFrame(WinEDA_GerberFrame *parent) :
|
||||||
text = new wxStaticText( this, item_ID, msg, wxDefaultPosition, wxDefaultSize, 0 );
|
text = new wxStaticText( this, item_ID, msg, wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
}
|
}
|
||||||
text->SetMinSize( goodSize );
|
text->SetMinSize( goodSize );
|
||||||
text->SetForegroundColour( *wxBLUE );
|
text->SetForegroundColour( wxColour(255, 0, 128) );
|
||||||
FlexColumnBoxSizer->Add(text, 1, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT|wxBOTTOM, 5);
|
FlexColumnBoxSizer->Add(text, 1, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT|wxBOTTOM, 5);
|
||||||
|
|
||||||
layer_list[ii] = text;
|
layer_list[ii] = text;
|
||||||
|
@ -278,7 +278,7 @@ WinEDA_SwapLayerFrame::WinEDA_SwapLayerFrame(WinEDA_GerberFrame *parent) :
|
||||||
// using that type of sizer results in those buttons being automatically
|
// using that type of sizer results in those buttons being automatically
|
||||||
// located in positions appropriate for each (OS) version of KiCad.
|
// located in positions appropriate for each (OS) version of KiCad.
|
||||||
StdDialogButtonSizer = new wxStdDialogButtonSizer;
|
StdDialogButtonSizer = new wxStdDialogButtonSizer;
|
||||||
OuterBoxSizer->Add(StdDialogButtonSizer, 0, wxALIGN_RIGHT|wxALL, 10);
|
OuterBoxSizer->Add(StdDialogButtonSizer, 0, wxGROW|wxALL, 10);
|
||||||
|
|
||||||
Button = new wxButton( this, wxID_OK, _("&OK"), wxDefaultPosition, wxDefaultSize, 0 );
|
Button = new wxButton( this, wxID_OK, _("&OK"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
Button->SetForegroundColour( *wxRED );
|
Button->SetForegroundColour( *wxRED );
|
||||||
|
@ -323,9 +323,19 @@ void WinEDA_SwapLayerFrame::Sel_Layer(wxCommandEvent& event)
|
||||||
{
|
{
|
||||||
LayerLookUpTable[ButtonTable[ii]] = jj;
|
LayerLookUpTable[ButtonTable[ii]] = jj;
|
||||||
if( jj == NB_LAYERS )
|
if( jj == NB_LAYERS )
|
||||||
|
{
|
||||||
layer_list[ii]->SetLabel( _( "Do not export" ) );
|
layer_list[ii]->SetLabel( _( "Do not export" ) );
|
||||||
|
// Change the text color to blue (to highlight
|
||||||
|
// that this layer is *not* being exported)
|
||||||
|
layer_list[ii]->SetForegroundColour( *wxBLUE );
|
||||||
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
layer_list[ii]->SetLabel( ReturnPcbLayerName( jj ) );
|
layer_list[ii]->SetLabel( ReturnPcbLayerName( jj ) );
|
||||||
|
// Change the text color to fushia (to highlight
|
||||||
|
// that this layer *is* being exported)
|
||||||
|
layer_list[ii]->SetForegroundColour( wxColour(255, 0, 128) );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -125,9 +125,9 @@ WinEDA_SwapLayerFrame::WinEDA_SwapLayerFrame( WinEDA_BasePcbFrame* parent ) :
|
||||||
// layer is mapped to), and a second static text string (to depict which layer
|
// layer is mapped to), and a second static text string (to depict which layer
|
||||||
// that the layer has been mapped to). Each of those items are placed into
|
// that the layer has been mapped to). Each of those items are placed into
|
||||||
// the left hand column, middle column, and right hand column (respectively)
|
// the left hand column, middle column, and right hand column (respectively)
|
||||||
// of the Flexgrid sizer, and the color of the second text string is set to blue
|
// of the Flexgrid sizer, and the color of the second text string is set to
|
||||||
// (to indicate that the actual text changes depending upon which layer has been
|
// fushia or blue (to respectively indicate whether the layer has been
|
||||||
// selected by the child dialog box).
|
// swapped to another layer or is not being swapped at all).
|
||||||
// (Experimentation has shown that if a text control is used to depict which
|
// (Experimentation has shown that if a text control is used to depict which
|
||||||
// layer that each layer is mapped to (instead of a static text string), then
|
// layer that each layer is mapped to (instead of a static text string), then
|
||||||
// those controls do not behave in a fully satisfactory manner in the Linux
|
// those controls do not behave in a fully satisfactory manner in the Linux
|
||||||
|
@ -165,7 +165,8 @@ WinEDA_SwapLayerFrame::WinEDA_SwapLayerFrame( WinEDA_BasePcbFrame* parent ) :
|
||||||
// Provide another text string to specify which layer that this layer is
|
// Provide another text string to specify which layer that this layer is
|
||||||
// mapped to, set the initial text to "No Change" (to indicate that this
|
// mapped to, set the initial text to "No Change" (to indicate that this
|
||||||
// layer is currently unmapped to any other layer), and set the foreground
|
// layer is currently unmapped to any other layer), and set the foreground
|
||||||
// color of the text to blue (to indicate that the text can be changed).
|
// color of the text to blue (which also indicates that the layer is
|
||||||
|
// currently unmapped to any other layer).
|
||||||
item_ID = ID_TEXT_0 + ii;
|
item_ID = ID_TEXT_0 + ii;
|
||||||
|
|
||||||
// When the first of these text strings is being added, determine what size is necessary to
|
// When the first of these text strings is being added, determine what size is necessary to
|
||||||
|
@ -213,7 +214,7 @@ WinEDA_SwapLayerFrame::WinEDA_SwapLayerFrame( WinEDA_BasePcbFrame* parent ) :
|
||||||
// using that type of sizer results in those buttons being automatically
|
// using that type of sizer results in those buttons being automatically
|
||||||
// located in positions appropriate for each (OS) version of KiCad.
|
// located in positions appropriate for each (OS) version of KiCad.
|
||||||
StdDialogButtonSizer = new wxStdDialogButtonSizer;
|
StdDialogButtonSizer = new wxStdDialogButtonSizer;
|
||||||
OuterBoxSizer->Add(StdDialogButtonSizer, 0, wxALIGN_RIGHT|wxALL, 10);
|
OuterBoxSizer->Add(StdDialogButtonSizer, 0, wxGROW|wxALL, 10);
|
||||||
|
|
||||||
Button = new wxButton( this, wxID_OK, _("&OK"), wxDefaultPosition, wxDefaultSize, 0 );
|
Button = new wxButton( this, wxID_OK, _("&OK"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
Button->SetForegroundColour( *wxRED );
|
Button->SetForegroundColour( *wxRED );
|
||||||
|
@ -270,9 +271,19 @@ void WinEDA_SwapLayerFrame::Sel_Layer( wxCommandEvent& event )
|
||||||
{
|
{
|
||||||
New_Layer[ii] = jj;
|
New_Layer[ii] = jj;
|
||||||
if( jj == NB_LAYERS )
|
if( jj == NB_LAYERS )
|
||||||
|
{
|
||||||
layer_list[ii]->SetLabel( _( "No Change" ) );
|
layer_list[ii]->SetLabel( _( "No Change" ) );
|
||||||
|
// Change the text color to blue (to highlight
|
||||||
|
// that this layer is *not* being swapped)
|
||||||
|
layer_list[ii]->SetForegroundColour( *wxBLUE );
|
||||||
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
layer_list[ii]->SetLabel( ReturnPcbLayerName( jj ) );
|
layer_list[ii]->SetLabel( ReturnPcbLayerName( jj ) );
|
||||||
|
// Change the text color to fushia (to highlight
|
||||||
|
// that this layer *is* being swapped)
|
||||||
|
layer_list[ii]->SetForegroundColour( wxColour(255, 0, 128) );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue