Commit 67feced1 authored by g_harland's avatar g_harland

Update "Swap Layers:" and "Layer selection" dialog boxes again

parent 82d17cc2
...@@ -4,6 +4,26 @@ Started 2007-June-11 ...@@ -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>
================================================================================ ================================================================================
......
/**********************************/ /**********************************/
/* 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"
...@@ -25,7 +25,6 @@ ...@@ -25,7 +25,6 @@
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
...@@ -39,8 +38,9 @@ enum panel_netlist_index { ...@@ -39,8 +38,9 @@ enum panel_netlist_index {
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:
...@@ -65,8 +65,8 @@ EDA_NoteBookPage::EDA_NoteBookPage(wxNotebook* parent, const wxString & title, ...@@ -65,8 +65,8 @@ EDA_NoteBookPage::EDA_NoteBookPage(wxNotebook* parent, const wxString & title,
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;
...@@ -89,44 +89,36 @@ EDA_NoteBookPage::EDA_NoteBookPage(wxNotebook* parent, const wxString & title, ...@@ -89,44 +89,36 @@ EDA_NoteBookPage::EDA_NoteBookPage(wxNotebook* parent, const wxString & title,
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 ans Cancel if( idCreateFile ) // Create the 2 standard buttons: Create File and Cancel
{ {
wxButton * Button; wxButton * Button;
if ( idCreateFile == ID_SETUP_PLUGIN ) if( idCreateFile == ID_SETUP_PLUGIN )
{ Button = new wxButton(this, idCreateFile, _("&Browse Plugin"));
Button = new wxButton(this, idCreateFile,
_("&Browse Plugin"));
}
else else
{ Button = new wxButton(this, idCreateFile, _("&Netlist"));
Button = new wxButton(this, idCreateFile,
_("&Netlist"));
}
Button->SetForegroundColour(*wxRED); Button->SetForegroundColour(*wxRED);
m_RightBoxSizer->Add(Button, 0, wxGROW|wxALL, 5); m_RightBoxSizer->Add(Button, 0, wxGROW|wxALL, 5);
m_ButtonCancel = m_ButtonCancel =
Button = new wxButton(this, ID_CLOSE_NETLIST, Button = new wxButton(this, wxID_CANCEL, _("&Cancel"));
_("&Close"));
Button->SetForegroundColour(*wxBLUE); Button->SetForegroundColour(*wxBLUE);
m_RightBoxSizer->Add(Button, 0, wxGROW|wxALL, 5); 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
...@@ -134,7 +126,7 @@ class WinEDA_NetlistFrame: public wxDialog ...@@ -134,7 +126,7 @@ 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;
...@@ -149,13 +141,13 @@ private: ...@@ -149,13 +141,13 @@ private:
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)
...@@ -170,38 +162,41 @@ void InstallNetlistFrame(WinEDA_SchematicFrame *parent, wxPoint & pos) ...@@ -170,38 +162,41 @@ void InstallNetlistFrame(WinEDA_SchematicFrame *parent, wxPoint & pos)
*/ */
{ {
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);
...@@ -230,7 +225,6 @@ int ii; ...@@ -230,7 +225,6 @@ int ii;
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,47 +234,48 @@ int ii; ...@@ -240,47 +234,48 @@ 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_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_IsCurrentFormat = new wxCheckBox(page, ID_CURRENT_FORMAT_IS_DEFAULT, _("Default format"));
_("Default format")); page->m_IsCurrentFormat->SetValue( g_NetFormat == NET_TYPE_SPICE );
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") }; 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 )
m_UseNetNamesInNetlist->SetSelection(1);
page->m_LeftBoxSizer->Add(m_UseNetNamesInNetlist, 0, wxGROW|wxALL, 5); 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;
...@@ -288,35 +283,38 @@ EDA_NoteBookPage * CurrPage; ...@@ -288,35 +283,38 @@ 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;
msg << ii + 1;
title = m_Parent->m_Parent->m_EDA_Config->Read(msg); title = m_Parent->m_Parent->m_EDA_Config->Read(msg);
// Install the panel only if it is the first panel not initialised // Install the panel only if it is the first panel not initialised
if ( (title.IsEmpty()) && ( previoustitle.IsEmpty() ) ) break; if( title.IsEmpty() && previoustitle.IsEmpty() )
break;
previoustitle = title; previoustitle = title;
if ( title.IsEmpty() ) if( title.IsEmpty() )
CurrPage = m_PanelNetType[PANELCUSTOMBASE + ii] = CurrPage = m_PanelNetType[PANELCUSTOMBASE + ii] =
new EDA_NoteBookPage(m_NoteBook, _("Add Plugin"), new EDA_NoteBookPage(m_NoteBook, _("Add Plugin"),
NET_TYPE_CUSTOM1 + ii, NET_TYPE_CUSTOM1 + ii,
ID_CURRENT_FORMAT_IS_DEFAULT , ID_SETUP_PLUGIN); ID_CURRENT_FORMAT_IS_DEFAULT, ID_SETUP_PLUGIN);
else else
CurrPage = m_PanelNetType[PANELCUSTOMBASE + ii] = CurrPage = m_PanelNetType[PANELCUSTOMBASE + ii] =
new EDA_NoteBookPage(m_NoteBook, title, new EDA_NoteBookPage(m_NoteBook, title,
NET_TYPE_CUSTOM1 + ii, NET_TYPE_CUSTOM1 + ii,
ID_CURRENT_FORMAT_IS_DEFAULT , ID_CREATE_NETLIST); ID_CURRENT_FORMAT_IS_DEFAULT, ID_CREATE_NETLIST);
msg = CUSTOM_NETLIST_COMMAND; msg << ii+1; msg = CUSTOM_NETLIST_COMMAND;
msg << ii + 1;
wxString Command = m_Parent->m_Parent->m_EDA_Config->Read(msg); wxString Command = m_Parent->m_Parent->m_EDA_Config->Read(msg);
CurrPage->m_CommandStringCtrl = new WinEDA_EnterText(CurrPage, CurrPage->m_CommandStringCtrl = new WinEDA_EnterText( CurrPage,
_("Netlist command:"), Command, _("Netlist command:"), Command,
CurrPage->m_LowBoxSizer, wxSize(H_SIZE- 10, -1) ); CurrPage->m_LowBoxSizer, wxSize(H_SIZE - 10, -1) );
CurrPage->m_TitleStringCtrl = new WinEDA_EnterText(CurrPage, CurrPage->m_TitleStringCtrl = new WinEDA_EnterText( CurrPage,
_("Title:"), title, _("Title:"), title,
CurrPage->m_LowBoxSizer, wxSize(H_SIZE- 10, -1) ); CurrPage->m_LowBoxSizer, wxSize(H_SIZE - 10, -1) );
} }
} }
...@@ -325,7 +323,7 @@ EDA_NoteBookPage * CurrPage; ...@@ -325,7 +323,7 @@ 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("*");
...@@ -339,17 +337,19 @@ wxString FullFileName, Mask, Path; ...@@ -339,17 +337,19 @@ wxString FullFileName, Mask, Path;
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 */ /* Get a title for this page */
wxString title = CurrPage->m_TitleStringCtrl->GetValue(); wxString title = CurrPage->m_TitleStringCtrl->GetValue();
if ( title.IsEmpty() ) if( title.IsEmpty() )
DisplayInfo(this, _("Now, you must choose a title for this netlist control page\nand close the dialog box")); DisplayInfo(this, _("Now, you must choose a title for this netlist control page\nand close the dialog box"));
} }
...@@ -362,18 +362,19 @@ void WinEDA_NetlistFrame::SelectNetlistType(wxCommandEvent& event) ...@@ -362,18 +362,19 @@ 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; g_NetFormat = CurrPage->m_IdNetType;
CurrPage->m_IsCurrentFormat->SetValue(TRUE); CurrPage->m_IsCurrentFormat->SetValue(TRUE);
} }
/***********************************************/ /***********************************************/
void WinEDA_NetlistFrame::NetlistUpdateOpt() void WinEDA_NetlistFrame::NetlistUpdateOpt()
/***********************************************/ /***********************************************/
...@@ -384,23 +385,26 @@ int ii; ...@@ -384,23 +385,26 @@ int ii;
m_PanelNetType[PANELSPICE]->m_CommandStringCtrl->GetValue(); m_PanelNetType[PANELSPICE]->m_CommandStringCtrl->GetValue();
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++ )
{ {
if ( m_PanelNetType[ii] == NULL ) break; if( m_PanelNetType[ii] == NULL )
if ( m_PanelNetType[ii]->m_IsCurrentFormat->GetValue() == TRUE ) break;
if( m_PanelNetType[ii]->m_IsCurrentFormat->GetValue() == TRUE )
g_NetFormat = m_PanelNetType[ii]->m_IdNetType; g_NetFormat = m_PanelNetType[ii]->m_IdNetType;
} }
g_OptNetListUseNames = TRUE; // Used for pspice, gnucap g_OptNetListUseNames = TRUE; // Used for pspice, gnucap
if ( m_UseNetNamesInNetlist->GetSelection() == 1 ) if( m_UseNetNamesInNetlist->GetSelection() == 1 )
g_OptNetListUseNames = FALSE; 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();
...@@ -413,14 +417,16 @@ EDA_NoteBookPage * CurrPage; ...@@ -413,14 +417,16 @@ EDA_NoteBookPage * CurrPage;
/* Calcul du nom du fichier netlist */ /* Calcul du nom du fichier netlist */
FullFileName = ScreenSch->m_FileName; FullFileName = ScreenSch->m_FileName;
switch ( g_NetFormat ) switch( g_NetFormat )
{ {
case NET_TYPE_SPICE: case NET_TYPE_SPICE:
FileExt = wxT(".cir"); FileExt = wxT(".cir");
break; break;
case NET_TYPE_CADSTAR: case NET_TYPE_CADSTAR:
FileExt = wxT(".frp"); FileExt = wxT(".frp");
break; break;
default: default:
FileExt = g_NetExtBuffer; FileExt = g_NetExtBuffer;
break; break;
...@@ -438,35 +444,37 @@ EDA_NoteBookPage * CurrPage; ...@@ -438,35 +444,37 @@ EDA_NoteBookPage * CurrPage;
wxFD_SAVE, wxFD_SAVE,
TRUE TRUE
); );
if ( FullFileName.IsEmpty() ) return; if( FullFileName.IsEmpty() )
return;
m_Parent->MsgPanel->EraseMsgBox(); m_Parent->MsgPanel->EraseMsgBox();
ReAnnotatePowerSymbolsOnly(); 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; return;
} }
/* Cleanup the entire hierarchy */ /* Cleanup the entire hierarchy */
EDA_ScreenList ScreenList(NULL); EDA_ScreenList ScreenList(NULL);
for ( SCH_SCREEN * screen = ScreenList.GetFirst(); screen != NULL; screen = ScreenList.GetNext() ) for( SCH_SCREEN * screen = ScreenList.GetFirst(); screen != NULL; screen = ScreenList.GetNext() )
{ {
bool ModifyWires; bool ModifyWires;
ModifyWires = screen->SchematicCleanUp(NULL); ModifyWires = screen->SchematicCleanUp(NULL);
/* if wire list has changed, delete the Undo Redo list to avoid // if wire list has changed, delete the Undo Redo list to avoid
pointer problems with deleted data */ // pointer problems with deleted data
if ( ModifyWires ) if( ModifyWires )
screen->ClearUndoRedoList(); screen->ClearUndoRedoList();
} }
m_Parent->BuildNetListBase(); m_Parent->BuildNetListBase();
if ( CurrPage->m_CommandStringCtrl) if( CurrPage->m_CommandStringCtrl )
g_NetListerCommandLine = CurrPage->m_CommandStringCtrl->GetValue(); g_NetListerCommandLine = CurrPage->m_CommandStringCtrl->GetValue();
else g_NetListerCommandLine.Empty(); else
g_NetListerCommandLine.Empty();
switch (g_NetFormat) switch( g_NetFormat )
{ {
default: default:
WriteNetList(m_Parent, FullFileName, TRUE); WriteNetList(m_Parent, FullFileName, TRUE);
...@@ -478,48 +486,51 @@ EDA_NoteBookPage * CurrPage; ...@@ -478,48 +486,51 @@ EDA_NoteBookPage * CurrPage;
case NET_TYPE_SPICE: case NET_TYPE_SPICE:
g_OptNetListUseNames = TRUE; // Used for pspice, gnucap g_OptNetListUseNames = TRUE; // Used for pspice, gnucap
if ( m_UseNetNamesInNetlist->GetSelection() == 1 ) if( m_UseNetNamesInNetlist->GetSelection() == 1 )
g_OptNetListUseNames = FALSE; g_OptNetListUseNames = FALSE;
WriteNetList(m_Parent, FullFileName, g_OptNetListUseNames); WriteNetList(m_Parent, FullFileName, g_OptNetListUseNames);
break; break;
} }
FreeTabNetList(g_TabObjNet, g_NbrObjNet ); FreeTabNetList( g_TabObjNet, g_NbrObjNet );
g_NetFormat = netformat_tmp; g_NetFormat = netformat_tmp;
NetlistExit(event);
}
/***********************************************************/
void WinEDA_NetlistFrame::NetlistExit(wxCommandEvent& event)
/***********************************************************/
{
wxString msg, Command;
NetlistUpdateOpt(); NetlistUpdateOpt();
// Update the new titles // Update the new titles
for ( int ii = 0; ii < CUSTOMPANEL_COUNTMAX; ii++ ) 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; if( CurrPage == NULL )
msg = wxT("Custom"); msg << ii+1; break;
if ( CurrPage->m_TitleStringCtrl ) msg = wxT("Custom");
msg << ii + 1;
if( CurrPage->m_TitleStringCtrl )
{ {
wxString title = CurrPage->m_TitleStringCtrl->GetValue(); wxString title = CurrPage->m_TitleStringCtrl->GetValue();
if ( msg != title ) // Title has changed, Update config if( msg != title ) // Title has changed, Update config
{ {
msg = CUSTOM_NETLIST_TITLE; msg << ii+1; 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);
} }
} }
if ( CurrPage->m_CommandStringCtrl ) if( CurrPage->m_CommandStringCtrl )
{ {
Command = CurrPage->m_CommandStringCtrl->GetValue(); Command = CurrPage->m_CommandStringCtrl->GetValue();
msg = CUSTOM_NETLIST_COMMAND; msg << ii+1; 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);
} }
} }
Close(); EndModal( 0 );
}
/***********************************************************/
void WinEDA_NetlistFrame::OnCancelClick(wxCommandEvent& event)
/***********************************************************/
{
EndModal( -1 );
} }
...@@ -545,4 +556,3 @@ wxString NetlistFullFileName, ExecFile, CommandLine; ...@@ -545,4 +556,3 @@ wxString NetlistFullFileName, ExecFile, CommandLine;
ExecuteFile(this, ExecFile, CommandLine); ExecuteFile(this, ExecFile, CommandLine);
} }
...@@ -176,8 +176,8 @@ WinEDA_SwapLayerFrame::WinEDA_SwapLayerFrame(WinEDA_GerberFrame *parent) : ...@@ -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) : ...@@ -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) : ...@@ -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) : ...@@ -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) ...@@ -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 ) : ...@@ -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 ) : ...@@ -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 ) : ...@@ -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 ) ...@@ -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) );
}
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment