Commit 0e4bb20e authored by Wayne Stambaugh's avatar Wayne Stambaugh

Minor dialog and footprint ID class fixes.

* Make Pcbnew net list dialog honor escape key on Linux.
* Make Pcbnew swap layers dialog honor escape key on Linux.
* Layout and UI policy fixes for Pcbnew swap layer and net list dialogs.
* Layout and UI policy fixes for Eeschema plot dialog.
* Rename fpip.h to fpid.h.
* Fix FPID class compiler errors.
* Restore fpid.cpp to Pcbnew static library source list.
parent 74540cb4
...@@ -127,7 +127,7 @@ set(PCB_COMMON_SRCS ...@@ -127,7 +127,7 @@ set(PCB_COMMON_SRCS
pcb_keywords.cpp pcb_keywords.cpp
../pcbnew/pcb_parser.cpp ../pcbnew/pcb_parser.cpp
fp_lib_table_keywords.cpp fp_lib_table_keywords.cpp
# fpid.cpp fpid.cpp
fp_lib_table.cpp fp_lib_table.cpp
) )
......
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
*/ */
#include <cstring> #include <cstring>
#include <memory>
#include <wx/wx.h> // _() #include <wx/wx.h> // _()
#include <fpid.h> #include <fpid.h>
...@@ -95,7 +96,7 @@ static int okRevision( const std::string& aField ) ...@@ -95,7 +96,7 @@ static int okRevision( const std::string& aField )
strcpy( rev, "x/" ); strcpy( rev, "x/" );
strcat( rev, aField.c_str() ); strcat( rev, aField.c_str() );
if( EndsWithRev( rev, rev + strlen(rev) ) == rev+2 ) if( EndsWithRev( rev, rev + strlen(rev), '/' ) == rev+2 )
return -1; // success return -1; // success
} }
...@@ -108,8 +109,8 @@ static int okRevision( const std::string& aField ) ...@@ -108,8 +109,8 @@ static int okRevision( const std::string& aField )
void FPID::clear() void FPID::clear()
{ {
logical.clear(); nickname.clear();
footprintName.clear(); footprint.clear();
revision.clear(); revision.clear();
} }
...@@ -118,7 +119,12 @@ int FPID::Parse( const std::string& aId ) ...@@ -118,7 +119,12 @@ int FPID::Parse( const std::string& aId )
{ {
clear(); clear();
const char* rev = EndsWithRev( aId ); size_t cnt = aId.length() + 1;
char tmp[cnt]; // C string for speed
std::strcpy( tmp, aId.c_str() );
const char* rev = EndsWithRev( tmp, tmp+aId.length(), '/' );
size_t revNdx; size_t revNdx;
size_t partNdx; size_t partNdx;
int offset; int offset;
...@@ -137,10 +143,10 @@ int FPID::Parse( const std::string& aId ) ...@@ -137,10 +143,10 @@ int FPID::Parse( const std::string& aId )
revNdx = aId.size(); revNdx = aId.size();
} }
//=====<logical>========================================== //=====<nickname>==========================================
if( ( partNdx = aId.find( ':' ) ) != aId.npos ) if( ( partNdx = aId.find( ':' ) ) != aId.npos )
{ {
offset = SetLogicalLib( aId.substr( 0, partNdx ) ); offset = SetLibNickname( aId.substr( 0, partNdx ) );
if( offset > -1 ) if( offset > -1 )
{ {
...@@ -154,6 +160,12 @@ int FPID::Parse( const std::string& aId ) ...@@ -154,6 +160,12 @@ int FPID::Parse( const std::string& aId )
partNdx = 0; partNdx = 0;
} }
//=====<footprint name>====================================
if( partNdx >= revNdx )
return partNdx;
SetFootprintName( aId.substr( partNdx, revNdx ) );
return -1; return -1;
} }
...@@ -173,13 +185,13 @@ FPID::FPID( const std::string& aId ) throw( PARSE_ERROR ) ...@@ -173,13 +185,13 @@ FPID::FPID( const std::string& aId ) throw( PARSE_ERROR )
} }
int FPID::SetLogicalLib( const std::string& aLogical ) int FPID::SetLibNickname( const std::string& aLogical )
{ {
int offset = okLogical( aLogical ); int offset = okLogical( aLogical );
if( offset == -1 ) if( offset == -1 )
{ {
logical = aLogical; nickname = aLogical;
} }
return offset; return offset;
...@@ -192,12 +204,12 @@ int FPID::SetFootprintName( const std::string& aFootprintName ) ...@@ -192,12 +204,12 @@ int FPID::SetFootprintName( const std::string& aFootprintName )
if( separation != -1 ) if( separation != -1 )
{ {
logical = aFootprintName.substr( separation+1 ); nickname = aFootprintName.substr( separation+1 );
return separation + (int) logical.size() + 1; return separation + (int) nickname.size() + 1;
} }
else else
{ {
footprintName = aFootprintName; footprint = aFootprintName;
} }
return -1; return -1;
...@@ -221,12 +233,14 @@ std::string FPID::Format() const ...@@ -221,12 +233,14 @@ std::string FPID::Format() const
{ {
std::string ret; std::string ret;
if( logical.size() ) if( nickname.size() )
{ {
ret += logical; ret += nickname;
ret += ':'; ret += ':';
} }
ret += footprint;
if( revision.size() ) if( revision.size() )
{ {
ret += '/'; ret += '/';
...@@ -252,7 +266,7 @@ std::string FPID::GetFootprintNameAndRev() const ...@@ -252,7 +266,7 @@ std::string FPID::GetFootprintNameAndRev() const
std::string FPID::Format( const std::string& aLogicalLib, const std::string& aFootprintName, std::string FPID::Format( const std::string& aLogicalLib, const std::string& aFootprintName,
const std::string& aRevision ) const std::string& aRevision )
throw( PARSE_ERROR ) throw( PARSE_ERROR )
{ {
std::string ret; std::string ret;
...@@ -315,10 +329,10 @@ void FPID::Test() ...@@ -315,10 +329,10 @@ void FPID::Test()
FPID lpid( lpids[i] ); // parse FPID lpid( lpids[i] ); // parse
// format // format
printf( "input:'%s' full:'%s' logical: %s footprintName:'%s' rev:'%s'\n", printf( "input:'%s' full:'%s' nickname: %s footprint:'%s' rev:'%s'\n",
lpids[i], lpids[i],
lpid.Format().c_str(), lpid.Format().c_str(),
lpid.GetLogicalLib().c_str(), lpid.GetLibNickname().c_str(),
lpid.GetFootprintName().c_str(), lpid.GetFootprintName().c_str(),
lpid.GetRevision().c_str() ); lpid.GetRevision().c_str() );
} }
......
...@@ -50,6 +50,7 @@ ...@@ -50,6 +50,7 @@
// static members (static to remember last state): // static members (static to remember last state):
int DIALOG_PLOT_SCHEMATIC::m_pageSizeSelect = PAGE_SIZE_AUTO; int DIALOG_PLOT_SCHEMATIC::m_pageSizeSelect = PAGE_SIZE_AUTO;
void SCH_EDIT_FRAME::PlotSchematic( wxCommandEvent& event ) void SCH_EDIT_FRAME::PlotSchematic( wxCommandEvent& event )
{ {
DIALOG_PLOT_SCHEMATIC dlg( this ); DIALOG_PLOT_SCHEMATIC dlg( this );
...@@ -62,7 +63,7 @@ DIALOG_PLOT_SCHEMATIC::DIALOG_PLOT_SCHEMATIC( SCH_EDIT_FRAME* parent ) : ...@@ -62,7 +63,7 @@ DIALOG_PLOT_SCHEMATIC::DIALOG_PLOT_SCHEMATIC( SCH_EDIT_FRAME* parent ) :
DIALOG_PLOT_SCHEMATIC_BASE( parent ) DIALOG_PLOT_SCHEMATIC_BASE( parent )
{ {
m_parent = parent; m_parent = parent;
m_config = wxGetApp().GetSettings(); m_config = wxGetApp().GetSettings();
initDlg(); initDlg();
...@@ -72,6 +73,7 @@ DIALOG_PLOT_SCHEMATIC::DIALOG_PLOT_SCHEMATIC( SCH_EDIT_FRAME* parent ) : ...@@ -72,6 +73,7 @@ DIALOG_PLOT_SCHEMATIC::DIALOG_PLOT_SCHEMATIC( SCH_EDIT_FRAME* parent ) :
} }
// Initialize the dialog options: // Initialize the dialog options:
void DIALOG_PLOT_SCHEMATIC::initDlg() void DIALOG_PLOT_SCHEMATIC::initDlg()
{ {
...@@ -103,28 +105,29 @@ void DIALOG_PLOT_SCHEMATIC::initDlg() ...@@ -103,28 +105,29 @@ void DIALOG_PLOT_SCHEMATIC::initDlg()
// Switch to the last save plot format // Switch to the last save plot format
long plotfmt; long plotfmt;
m_config->Read( PLOT_FORMAT_KEY, &plotfmt, 0 ); m_config->Read( PLOT_FORMAT_KEY, &plotfmt, 0 );
switch( plotfmt ) switch( plotfmt )
{ {
default: default:
case PLOT_FORMAT_POST: case PLOT_FORMAT_POST:
m_plotFormatOpt->SetSelection( 0 ); m_plotFormatOpt->SetSelection( 0 );
break; break;
case PLOT_FORMAT_PDF: case PLOT_FORMAT_PDF:
m_plotFormatOpt->SetSelection( 1 ); m_plotFormatOpt->SetSelection( 1 );
break; break;
case PLOT_FORMAT_SVG: case PLOT_FORMAT_SVG:
m_plotFormatOpt->SetSelection( 2 ); m_plotFormatOpt->SetSelection( 2 );
break; break;
case PLOT_FORMAT_DXF: case PLOT_FORMAT_DXF:
m_plotFormatOpt->SetSelection( 3 ); m_plotFormatOpt->SetSelection( 3 );
break; break;
case PLOT_FORMAT_HPGL: case PLOT_FORMAT_HPGL:
m_plotFormatOpt->SetSelection( 4 ); m_plotFormatOpt->SetSelection( 4 );
break; break;
} }
// Set the default line width (pen width which should be used for // Set the default line width (pen width which should be used for
...@@ -142,6 +145,7 @@ void DIALOG_PLOT_SCHEMATIC::initDlg() ...@@ -142,6 +145,7 @@ void DIALOG_PLOT_SCHEMATIC::initDlg()
OnPlotFormatSelection( cmd_event ); OnPlotFormatSelection( cmd_event );
} }
PlotFormat DIALOG_PLOT_SCHEMATIC::GetPlotFileFormat() PlotFormat DIALOG_PLOT_SCHEMATIC::GetPlotFileFormat()
{ {
switch( m_plotFormatOpt->GetSelection() ) switch( m_plotFormatOpt->GetSelection() )
...@@ -159,7 +163,7 @@ PlotFormat DIALOG_PLOT_SCHEMATIC::GetPlotFileFormat() ...@@ -159,7 +163,7 @@ PlotFormat DIALOG_PLOT_SCHEMATIC::GetPlotFileFormat()
void DIALOG_PLOT_SCHEMATIC::OnButtonCancelClick( wxCommandEvent& event ) void DIALOG_PLOT_SCHEMATIC::OnButtonCancelClick( wxCommandEvent& event )
{ {
getPlotOptions(); getPlotOptions();
EndModal( 0 ); EndModal( wxID_CANCEL );
} }
...@@ -178,45 +182,46 @@ void DIALOG_PLOT_SCHEMATIC::getPlotOptions() ...@@ -178,45 +182,46 @@ void DIALOG_PLOT_SCHEMATIC::getPlotOptions()
SetDefaultLineThickness( ReturnValueFromTextCtrl( *m_DefaultLineSizeCtrl ) ); SetDefaultLineThickness( ReturnValueFromTextCtrl( *m_DefaultLineSizeCtrl ) );
} }
void DIALOG_PLOT_SCHEMATIC::OnPlotFormatSelection( wxCommandEvent& event ) void DIALOG_PLOT_SCHEMATIC::OnPlotFormatSelection( wxCommandEvent& event )
{ {
switch( GetPlotFileFormat() ) switch( GetPlotFileFormat() )
{ {
default: default:
case PLOT_FORMAT_POST: case PLOT_FORMAT_POST:
m_paperOptionsSizer->Hide( m_paperHPGLSizer ); m_paperOptionsSizer->Hide( m_paperHPGLSizer );
m_paperOptionsSizer->Show( m_PaperSizeOption ); m_paperOptionsSizer->Show( m_PaperSizeOption );
m_PaperSizeOption->Enable( true ); m_PaperSizeOption->Enable( true );
m_DefaultLineSizeCtrl->Enable( true ); m_DefaultLineSizeCtrl->Enable( true );
break; break;
case PLOT_FORMAT_PDF: case PLOT_FORMAT_PDF:
m_paperOptionsSizer->Hide( m_paperHPGLSizer ); m_paperOptionsSizer->Hide( m_paperHPGLSizer );
m_paperOptionsSizer->Show(m_PaperSizeOption); m_paperOptionsSizer->Show(m_PaperSizeOption);
m_PaperSizeOption->Enable( true ); m_PaperSizeOption->Enable( true );
m_DefaultLineSizeCtrl->Enable( true ); m_DefaultLineSizeCtrl->Enable( true );
break; break;
case PLOT_FORMAT_SVG: case PLOT_FORMAT_SVG:
m_paperOptionsSizer->Hide( m_paperHPGLSizer ); m_paperOptionsSizer->Hide( m_paperHPGLSizer );
m_paperOptionsSizer->Show(m_PaperSizeOption); m_paperOptionsSizer->Show(m_PaperSizeOption);
m_PaperSizeOption->Enable( false ); m_PaperSizeOption->Enable( false );
m_DefaultLineSizeCtrl->Enable( true ); m_DefaultLineSizeCtrl->Enable( true );
break; break;
case PLOT_FORMAT_DXF: case PLOT_FORMAT_DXF:
m_paperOptionsSizer->Hide( m_paperHPGLSizer ); m_paperOptionsSizer->Hide( m_paperHPGLSizer );
m_paperOptionsSizer->Show(m_PaperSizeOption); m_paperOptionsSizer->Show(m_PaperSizeOption);
m_PaperSizeOption->Enable( false ); m_PaperSizeOption->Enable( false );
m_DefaultLineSizeCtrl->Enable( false ); m_DefaultLineSizeCtrl->Enable( false );
break; break;
case PLOT_FORMAT_HPGL: case PLOT_FORMAT_HPGL:
m_paperOptionsSizer->Show( m_paperHPGLSizer ); m_paperOptionsSizer->Show( m_paperHPGLSizer );
m_paperOptionsSizer->Hide(m_PaperSizeOption); m_paperOptionsSizer->Hide(m_PaperSizeOption);
m_DefaultLineSizeCtrl->Enable( false ); m_DefaultLineSizeCtrl->Enable( false );
break; break;
} }
...@@ -235,32 +240,35 @@ void DIALOG_PLOT_SCHEMATIC::OnButtonPlotAllClick( wxCommandEvent& event ) ...@@ -235,32 +240,35 @@ void DIALOG_PLOT_SCHEMATIC::OnButtonPlotAllClick( wxCommandEvent& event )
PlotSchematic( true ); PlotSchematic( true );
} }
void DIALOG_PLOT_SCHEMATIC::PlotSchematic( bool aPlotAll ) void DIALOG_PLOT_SCHEMATIC::PlotSchematic( bool aPlotAll )
{ {
getPlotOptions(); getPlotOptions();
switch( GetPlotFileFormat() ) switch( GetPlotFileFormat() )
{ {
case PLOT_FORMAT_HPGL: case PLOT_FORMAT_HPGL:
createHPGLFile( aPlotAll, getPlotFrameRef() ); createHPGLFile( aPlotAll, getPlotFrameRef() );
break; break;
default: default:
case PLOT_FORMAT_POST: // Fall through. Default to Postscript.
createPSFile( aPlotAll, getPlotFrameRef() ); case PLOT_FORMAT_POST:
break; createPSFile( aPlotAll, getPlotFrameRef() );
break;
case PLOT_FORMAT_DXF:
CreateDXFFile( aPlotAll, getPlotFrameRef() ); case PLOT_FORMAT_DXF:
break; CreateDXFFile( aPlotAll, getPlotFrameRef() );
break;
case PLOT_FORMAT_PDF:
createPDFFile( aPlotAll, getPlotFrameRef() ); case PLOT_FORMAT_PDF:
break; createPDFFile( aPlotAll, getPlotFrameRef() );
break;
case PLOT_FORMAT_SVG:
createSVGFile( aPlotAll, getPlotFrameRef() ); case PLOT_FORMAT_SVG:
break; createSVGFile( aPlotAll, getPlotFrameRef() );
break;
} }
m_MessagesBox->AppendText( wxT( "****\n" ) ); m_MessagesBox->AppendText( wxT( "****\n" ) );
} }
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version Apr 10 2012) // C++ code generated with wxFormBuilder (version Oct 8 2012)
// http://www.wxformbuilder.org/ // http://www.wxformbuilder.org/
// //
// PLEASE DO "NOT" EDIT THIS FILE! // PLEASE DO "NOT" EDIT THIS FILE!
...@@ -22,13 +22,13 @@ DIALOG_PLOT_SCHEMATIC_BASE::DIALOG_PLOT_SCHEMATIC_BASE( wxWindow* parent, wxWind ...@@ -22,13 +22,13 @@ DIALOG_PLOT_SCHEMATIC_BASE::DIALOG_PLOT_SCHEMATIC_BASE( wxWindow* parent, wxWind
wxString m_PaperSizeOptionChoices[] = { _("Schematic size"), _("Force size A4"), _("Force size A") }; wxString m_PaperSizeOptionChoices[] = { _("Schematic size"), _("Force size A4"), _("Force size A") };
int m_PaperSizeOptionNChoices = sizeof( m_PaperSizeOptionChoices ) / sizeof( wxString ); int m_PaperSizeOptionNChoices = sizeof( m_PaperSizeOptionChoices ) / sizeof( wxString );
m_PaperSizeOption = new wxRadioBox( this, wxID_ANY, _("Plot Page Size:"), wxDefaultPosition, wxDefaultSize, m_PaperSizeOptionNChoices, m_PaperSizeOptionChoices, 1, wxRA_SPECIFY_COLS ); m_PaperSizeOption = new wxRadioBox( this, wxID_ANY, _("Page Size:"), wxDefaultPosition, wxDefaultSize, m_PaperSizeOptionNChoices, m_PaperSizeOptionChoices, 1, wxRA_SPECIFY_COLS );
m_PaperSizeOption->SetSelection( 0 ); m_PaperSizeOption->SetSelection( 0 );
m_paperOptionsSizer->Add( m_PaperSizeOption, 0, wxALL|wxEXPAND, 5 ); m_paperOptionsSizer->Add( m_PaperSizeOption, 0, wxALL|wxEXPAND, 5 );
m_paperHPGLSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("HPGL Options:") ), wxVERTICAL ); m_paperHPGLSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("HPGL Options") ), wxVERTICAL );
m_staticText4 = new wxStaticText( this, wxID_ANY, _("Plot Page Size:"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText4 = new wxStaticText( this, wxID_ANY, _("Page Size:"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticText4->Wrap( -1 ); m_staticText4->Wrap( -1 );
m_paperHPGLSizer->Add( m_staticText4, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); m_paperHPGLSizer->Add( m_staticText4, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
...@@ -40,95 +40,99 @@ DIALOG_PLOT_SCHEMATIC_BASE::DIALOG_PLOT_SCHEMATIC_BASE( wxWindow* parent, wxWind ...@@ -40,95 +40,99 @@ DIALOG_PLOT_SCHEMATIC_BASE::DIALOG_PLOT_SCHEMATIC_BASE( wxWindow* parent, wxWind
wxString m_plotOriginOptChoices[] = { _("Bottom left corner"), _("Center of the page") }; wxString m_plotOriginOptChoices[] = { _("Bottom left corner"), _("Center of the page") };
int m_plotOriginOptNChoices = sizeof( m_plotOriginOptChoices ) / sizeof( wxString ); int m_plotOriginOptNChoices = sizeof( m_plotOriginOptChoices ) / sizeof( wxString );
m_plotOriginOpt = new wxRadioBox( this, wxID_ANY, _("Plot Origin:"), wxDefaultPosition, wxDefaultSize, m_plotOriginOptNChoices, m_plotOriginOptChoices, 1, wxRA_SPECIFY_COLS ); m_plotOriginOpt = new wxRadioBox( this, wxID_ANY, _("Origin"), wxDefaultPosition, wxDefaultSize, m_plotOriginOptNChoices, m_plotOriginOptChoices, 1, wxRA_SPECIFY_COLS );
m_plotOriginOpt->SetSelection( 0 ); m_plotOriginOpt->SetSelection( 0 );
m_paperHPGLSizer->Add( m_plotOriginOpt, 0, wxALL, 5 ); m_paperHPGLSizer->Add( m_plotOriginOpt, 0, wxALL, 5 );
m_penHPLGWidthTitle = new wxStaticText( this, wxID_ANY, _("Pen Width"), wxDefaultPosition, wxDefaultSize, 0 ); m_penHPLGWidthTitle = new wxStaticText( this, wxID_ANY, _("Pen Width:"), wxDefaultPosition, wxDefaultSize, 0 );
m_penHPLGWidthTitle->Wrap( -1 ); m_penHPLGWidthTitle->Wrap( -1 );
m_paperHPGLSizer->Add( m_penHPLGWidthTitle, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); m_paperHPGLSizer->Add( m_penHPLGWidthTitle, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
m_penHPGLWidthCtrl = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); m_penHPGLWidthCtrl = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
m_penHPGLWidthCtrl->SetMaxLength( 0 );
m_paperHPGLSizer->Add( m_penHPGLWidthCtrl, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 ); m_paperHPGLSizer->Add( m_penHPGLWidthCtrl, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 );
m_paperOptionsSizer->Add( m_paperHPGLSizer, 1, wxEXPAND, 5 ); m_paperOptionsSizer->Add( m_paperHPGLSizer, 1, wxEXPAND, 5 );
m_optionsSizer->Add( m_paperOptionsSizer, 1, wxEXPAND, 5 ); m_optionsSizer->Add( m_paperOptionsSizer, 0, wxEXPAND, 5 );
wxStaticBoxSizer* sbSizerPlotFormat;
sbSizerPlotFormat = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("General options") ), wxVERTICAL );
wxString m_plotFormatOptChoices[] = { _("Postscript"), _("PDF"), _("SVG"), _("DXF"), _("HPGL") }; wxString m_plotFormatOptChoices[] = { _("Postscript"), _("PDF"), _("SVG"), _("DXF"), _("HPGL") };
int m_plotFormatOptNChoices = sizeof( m_plotFormatOptChoices ) / sizeof( wxString ); int m_plotFormatOptNChoices = sizeof( m_plotFormatOptChoices ) / sizeof( wxString );
m_plotFormatOpt = new wxRadioBox( this, wxID_ANY, _("Plot format:"), wxDefaultPosition, wxDefaultSize, m_plotFormatOptNChoices, m_plotFormatOptChoices, 1, wxRA_SPECIFY_COLS ); m_plotFormatOpt = new wxRadioBox( this, wxID_ANY, _("Format"), wxDefaultPosition, wxDefaultSize, m_plotFormatOptNChoices, m_plotFormatOptChoices, 1, wxRA_SPECIFY_COLS );
m_plotFormatOpt->SetSelection( 0 ); m_plotFormatOpt->SetSelection( 0 );
sbSizerPlotFormat->Add( m_plotFormatOpt, 0, wxALL|wxEXPAND, 5 ); m_optionsSizer->Add( m_plotFormatOpt, 0, wxEXPAND|wxLEFT, 5 );
m_optionsSizer->Add( sbSizerPlotFormat, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 );
wxStaticBoxSizer* sbOptionsSizer; wxStaticBoxSizer* sbSizerPlotFormat;
sbOptionsSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Plot options:") ), wxVERTICAL ); sbSizerPlotFormat = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("General Options") ), wxVERTICAL );
m_defaultLineWidthTitle = new wxStaticText( this, wxID_ANY, _("Default Thickness"), wxDefaultPosition, wxDefaultSize, 0 ); m_defaultLineWidthTitle = new wxStaticText( this, wxID_ANY, _("Default Line Thickness:"), wxDefaultPosition, wxDefaultSize, 0 );
m_defaultLineWidthTitle->Wrap( -1 ); m_defaultLineWidthTitle->Wrap( -1 );
sbOptionsSizer->Add( m_defaultLineWidthTitle, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); sbSizerPlotFormat->Add( m_defaultLineWidthTitle, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
m_DefaultLineSizeCtrl = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); m_DefaultLineSizeCtrl = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
m_DefaultLineSizeCtrl->SetMaxLength( 0 );
m_DefaultLineSizeCtrl->SetToolTip( _("Selection of the default pen thickness used to draw items, when their thickness is set to 0.") ); m_DefaultLineSizeCtrl->SetToolTip( _("Selection of the default pen thickness used to draw items, when their thickness is set to 0.") );
sbOptionsSizer->Add( m_DefaultLineSizeCtrl, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 ); sbSizerPlotFormat->Add( m_DefaultLineSizeCtrl, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 );
wxString m_ModeColorOptionChoices[] = { _("Color"), _("Black and white") }; wxString m_ModeColorOptionChoices[] = { _("Color"), _("Black and white") };
int m_ModeColorOptionNChoices = sizeof( m_ModeColorOptionChoices ) / sizeof( wxString ); int m_ModeColorOptionNChoices = sizeof( m_ModeColorOptionChoices ) / sizeof( wxString );
m_ModeColorOption = new wxRadioBox( this, wxID_ANY, _("Plot mode"), wxDefaultPosition, wxDefaultSize, m_ModeColorOptionNChoices, m_ModeColorOptionChoices, 1, wxRA_SPECIFY_COLS ); m_ModeColorOption = new wxRadioBox( this, wxID_ANY, _("Mode"), wxDefaultPosition, wxDefaultSize, m_ModeColorOptionNChoices, m_ModeColorOptionChoices, 1, wxRA_SPECIFY_COLS );
m_ModeColorOption->SetSelection( 1 ); m_ModeColorOption->SetSelection( 1 );
m_ModeColorOption->SetToolTip( _("Choose if you want to draw the sheet like it appears on screen,\nor in black and white mode, better to print it when using black and white printers") ); m_ModeColorOption->SetToolTip( _("Choose if you want to draw the sheet like it appears on screen,\nor in black and white mode, better to print it when using black and white printers") );
sbOptionsSizer->Add( m_ModeColorOption, 0, wxALL|wxEXPAND, 5 ); sbSizerPlotFormat->Add( m_ModeColorOption, 0, wxALL|wxEXPAND, 5 );
m_PlotFrameRefOpt = new wxCheckBox( this, wxID_ANY, _("Plot frame ref"), wxDefaultPosition, wxDefaultSize, 0 ); m_PlotFrameRefOpt = new wxCheckBox( this, wxID_ANY, _("Plot border and title block"), wxDefaultPosition, wxDefaultSize, 0 );
m_PlotFrameRefOpt->SetValue(true); m_PlotFrameRefOpt->SetValue(true);
m_PlotFrameRefOpt->SetToolTip( _("Print (or not) the Frame references.") ); m_PlotFrameRefOpt->SetToolTip( _("Print (or not) the Frame references.") );
sbOptionsSizer->Add( m_PlotFrameRefOpt, 0, wxALL, 5 ); sbSizerPlotFormat->Add( m_PlotFrameRefOpt, 0, wxALL, 5 );
m_optionsSizer->Add( sbOptionsSizer, 1, 0, 5 ); m_optionsSizer->Add( sbSizerPlotFormat, 0, wxEXPAND|wxLEFT, 5 );
m_ButtonsSizer = new wxBoxSizer( wxVERTICAL ); m_ButtonsSizer = new wxBoxSizer( wxVERTICAL );
m_buttonPlotCurrent = new wxButton( this, wxID_PRINT_CURRENT, _("Plot Current"), wxDefaultPosition, wxDefaultSize, 0 ); m_buttonPlotCurrent = new wxButton( this, wxID_PRINT_CURRENT, _("Plot Current Page"), wxDefaultPosition, wxDefaultSize, 0 );
m_buttonPlotCurrent->SetDefault(); m_buttonPlotCurrent->SetDefault();
m_ButtonsSizer->Add( m_buttonPlotCurrent, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 ); m_ButtonsSizer->Add( m_buttonPlotCurrent, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 );
m_buttonPlotAll = new wxButton( this, wxID_PRINT_ALL, _("Plot All"), wxDefaultPosition, wxDefaultSize, 0 ); m_buttonPlotAll = new wxButton( this, wxID_PRINT_ALL, _("Plot All Pages"), wxDefaultPosition, wxDefaultSize, 0 );
m_buttonPlotAll->SetDefault(); m_buttonPlotAll->SetDefault();
m_ButtonsSizer->Add( m_buttonPlotAll, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 ); m_ButtonsSizer->Add( m_buttonPlotAll, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 );
m_buttonQuit = new wxButton( this, wxID_CANCEL, _("Quit"), wxDefaultPosition, wxDefaultSize, 0 ); m_buttonQuit = new wxButton( this, wxID_CANCEL, _("Close"), wxDefaultPosition, wxDefaultSize, 0 );
m_ButtonsSizer->Add( m_buttonQuit, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 ); m_ButtonsSizer->Add( m_buttonQuit, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 );
m_optionsSizer->Add( m_ButtonsSizer, 0, wxALIGN_CENTER_VERTICAL, 5 ); m_optionsSizer->Add( m_ButtonsSizer, 0, wxALIGN_CENTER_VERTICAL, 5 );
bMainSizer->Add( m_optionsSizer, 0, wxEXPAND, 5 ); bMainSizer->Add( m_optionsSizer, 0, wxEXPAND|wxLEFT|wxRIGHT|wxTOP, 5 );
wxBoxSizer* bSizer4;
bSizer4 = new wxBoxSizer( wxVERTICAL );
m_staticText2 = new wxStaticText( this, wxID_ANY, _("Messages:"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText2 = new wxStaticText( this, wxID_ANY, _("Messages:"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticText2->Wrap( -1 ); m_staticText2->Wrap( -1 );
bMainSizer->Add( m_staticText2, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); bSizer4->Add( m_staticText2, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
m_MessagesBox = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE ); m_MessagesBox = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE );
m_MessagesBox->SetMaxLength( 0 );
m_MessagesBox->SetMinSize( wxSize( -1,80 ) ); m_MessagesBox->SetMinSize( wxSize( -1,80 ) );
bMainSizer->Add( m_MessagesBox, 1, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); bSizer4->Add( m_MessagesBox, 1, wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT, 5 );
bMainSizer->Add( bSizer4, 1, wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT, 5 );
this->SetSizer( bMainSizer ); this->SetSizer( bMainSizer );
this->Layout(); this->Layout();
bMainSizer->Fit( this );
// Connect Events // Connect Events
this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_PLOT_SCHEMATIC_BASE::OnCloseWindow ) ); this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_PLOT_SCHEMATIC_BASE::OnCloseWindow ) );
......
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version Apr 10 2012) // C++ code generated with wxFormBuilder (version Oct 8 2012)
// http://www.wxformbuilder.org/ // http://www.wxformbuilder.org/
// //
// PLEASE DO "NOT" EDIT THIS FILE! // PLEASE DO "NOT" EDIT THIS FILE!
...@@ -11,6 +11,8 @@ ...@@ -11,6 +11,8 @@
#include <wx/artprov.h> #include <wx/artprov.h>
#include <wx/xrc/xmlres.h> #include <wx/xrc/xmlres.h>
#include <wx/intl.h> #include <wx/intl.h>
class DIALOG_SHIM;
#include "dialog_shim.h" #include "dialog_shim.h"
#include <wx/string.h> #include <wx/string.h>
#include <wx/radiobox.h> #include <wx/radiobox.h>
...@@ -75,7 +77,7 @@ class DIALOG_PLOT_SCHEMATIC_BASE : public DIALOG_SHIM ...@@ -75,7 +77,7 @@ class DIALOG_PLOT_SCHEMATIC_BASE : public DIALOG_SHIM
public: public:
DIALOG_PLOT_SCHEMATIC_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Create Plot File"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 500,431 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); DIALOG_PLOT_SCHEMATIC_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Plot"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
~DIALOG_PLOT_SCHEMATIC_BASE(); ~DIALOG_PLOT_SCHEMATIC_BASE();
}; };
......
...@@ -68,7 +68,7 @@ public: ...@@ -68,7 +68,7 @@ public:
* *
* @param aId is a string to be parsed into the FPID object. * @param aId is a string to be parsed into the FPID object.
*/ */
FPID( const wxString& aId ) throw( PARSE_ERROR ); FPID( const std::string& aId ) throw( PARSE_ERROR );
/** /**
* Function Parse * Function Parse
...@@ -78,15 +78,15 @@ public: ...@@ -78,15 +78,15 @@ public:
* @return int - minus 1 (i.e. -1) means success, >= 0 indicates the character offset into * @return int - minus 1 (i.e. -1) means success, >= 0 indicates the character offset into
* aId at which an error was detected. * aId at which an error was detected.
*/ */
int Parse( const wxString& aId ); int Parse( const std::string& aId );
/** /**
* Function GetLibNickname * Function GetLibNickname
* returns the logical library name portion of a FPID. * returns the logical library name portion of a FPID.
*/ */
const wxString& GetLibNickname() const const std::string& GetLibNickname() const
{ {
return logical; return nickname;
} }
/** /**
...@@ -96,25 +96,31 @@ public: ...@@ -96,25 +96,31 @@ public:
* into the parameter at which an error was detected, usually because it * into the parameter at which an error was detected, usually because it
* contained '/' or ':'. * contained '/' or ':'.
*/ */
int SetLibNickname( const wxString& aNickname ); int SetLibNickname( const std::string& aNickname );
/** /**
* Function GetFootprintName * Function GetFootprintName
* returns the footprint name, i.e. footprintName. * returns the footprint name, i.e. footprintName.
*/ */
const wxString& GetFootprintName() const; const std::string& GetFootprintName() const;
/** /**
* Function SetFootprintName * Function SetFootprintName
* overrides the footprint name portion of the FPID to @a aFootprintName * overrides the footprint name portion of the FPID to @a aFootprintName
*/ */
void SetFootprintName( const wxString& aFootprintName ); int SetFootprintName( const std::string& aFootprintName );
int SetRevision( const std::string& aRevision );
const std::string& GetRevision() const { return revision; }
std::string GetFootprintNameAndRev() const;
/** /**
* Function Format * Function Format
* returns the fully formatted text of the FPID. * returns the fully formatted text of the FPID.
*/ */
wxString Format() const; std::string Format() const;
/** /**
* Function Format * Function Format
...@@ -123,7 +129,8 @@ public: ...@@ -123,7 +129,8 @@ public:
* *
* @throw PARSE_ERROR if any of the pieces are illegal. * @throw PARSE_ERROR if any of the pieces are illegal.
*/ */
static wxString Format( const wxString& aLibNickname, const wxString& aFootprintName ) static std::string Format( const std::string& aLibNickname, const std::string& aFootprintName,
const std::string& aRevision )
throw( PARSE_ERROR ); throw( PARSE_ERROR );
void clear(); void clear();
...@@ -133,8 +140,9 @@ public: ...@@ -133,8 +140,9 @@ public:
#endif #endif
protected: protected:
wxString nickname; ///< logical lib name or empty std::string nickname; ///< The nickname of the footprint library or empty.
wxString footprint; ///< The name of the footprint in the logical library. std::string footprint; ///< The name of the footprint in the logical library.
std::string revision; ///< The footprint revision.
}; };
......
...@@ -274,5 +274,5 @@ void DIALOG_NETLIST::OnCompileRatsnestClick( wxCommandEvent& event ) ...@@ -274,5 +274,5 @@ void DIALOG_NETLIST::OnCompileRatsnestClick( wxCommandEvent& event )
void DIALOG_NETLIST::OnCancelClick( wxCommandEvent& event ) void DIALOG_NETLIST::OnCancelClick( wxCommandEvent& event )
{ {
EndModal( -1 ); EndModal( wxID_CANCEL );
} }
...@@ -100,32 +100,39 @@ DIALOG_NETLIST_FBP::DIALOG_NETLIST_FBP( wxWindow* parent, wxWindowID id, const w ...@@ -100,32 +100,39 @@ DIALOG_NETLIST_FBP::DIALOG_NETLIST_FBP( wxWindow* parent, wxWindowID id, const w
bUpperSizer->Add( bRightSizerButtons, 0, wxALIGN_CENTER_VERTICAL, 5 ); bUpperSizer->Add( bRightSizerButtons, 0, wxALIGN_CENTER_VERTICAL, 5 );
bMainSizer->Add( bUpperSizer, 0, wxEXPAND, 5 ); bMainSizer->Add( bUpperSizer, 0, wxEXPAND|wxLEFT|wxRIGHT|wxTOP, 5 );
m_staticline1 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL ); m_staticline1 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
bMainSizer->Add( m_staticline1, 0, wxEXPAND | wxALL, 5 ); bMainSizer->Add( m_staticline1, 0, wxEXPAND | wxALL, 5 );
wxBoxSizer* bLowerSizer;
bLowerSizer = new wxBoxSizer( wxVERTICAL );
m_staticTextNetfilename = new wxStaticText( this, wxID_ANY, _("Netlist File:"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticTextNetfilename = new wxStaticText( this, wxID_ANY, _("Netlist File:"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticTextNetfilename->Wrap( -1 ); m_staticTextNetfilename->Wrap( -1 );
bMainSizer->Add( m_staticTextNetfilename, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); bLowerSizer->Add( m_staticTextNetfilename, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
m_NetlistFilenameCtrl = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); m_NetlistFilenameCtrl = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
m_NetlistFilenameCtrl->SetMaxLength( 0 ); m_NetlistFilenameCtrl->SetMaxLength( 0 );
bMainSizer->Add( m_NetlistFilenameCtrl, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); bLowerSizer->Add( m_NetlistFilenameCtrl, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
m_staticText1 = new wxStaticText( this, wxID_ANY, _("Messages:"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText1 = new wxStaticText( this, wxID_ANY, _("Messages:"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticText1->Wrap( -1 ); m_staticText1->Wrap( -1 );
bMainSizer->Add( m_staticText1, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); bLowerSizer->Add( m_staticText1, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
m_MessageWindow = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_CHARWRAP|wxTE_MULTILINE|wxTE_READONLY|wxTE_WORDWRAP ); m_MessageWindow = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_CHARWRAP|wxTE_MULTILINE|wxTE_READONLY|wxTE_WORDWRAP );
m_MessageWindow->SetMaxLength( 0 ); m_MessageWindow->SetMaxLength( 0 );
m_MessageWindow->SetMinSize( wxSize( -1,200 ) ); m_MessageWindow->SetMinSize( wxSize( -1,150 ) );
bLowerSizer->Add( m_MessageWindow, 1, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
bMainSizer->Add( m_MessageWindow, 1, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); bMainSizer->Add( bLowerSizer, 1, wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT, 5 );
this->SetSizer( bMainSizer ); this->SetSizer( bMainSizer );
this->Layout(); this->Layout();
bMainSizer->Fit( this );
// Connect Events // Connect Events
m_buttonBrowse->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_NETLIST_FBP::OnOpenNetlistClick ), NULL, this ); m_buttonBrowse->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_NETLIST_FBP::OnOpenNetlistClick ), NULL, this );
......
This diff is collapsed.
...@@ -71,7 +71,7 @@ class DIALOG_NETLIST_FBP : public DIALOG_SHIM ...@@ -71,7 +71,7 @@ class DIALOG_NETLIST_FBP : public DIALOG_SHIM
public: public:
DIALOG_NETLIST_FBP( wxWindow* parent, wxWindowID id = wxID_CANCEL, const wxString& title = _("Netlist"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 519,431 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); DIALOG_NETLIST_FBP( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Netlist"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
~DIALOG_NETLIST_FBP(); ~DIALOG_NETLIST_FBP();
}; };
......
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
#include <class_drawpanel.h> #include <class_drawpanel.h>
#include <confirm.h> #include <confirm.h>
#include <wxPcbStruct.h> #include <wxPcbStruct.h>
#include <dialog_shim.h>
#include <class_board.h> #include <class_board.h>
#include <class_track.h> #include <class_track.h>
...@@ -30,7 +31,7 @@ enum swap_layer_id { ...@@ -30,7 +31,7 @@ enum swap_layer_id {
}; };
class WinEDA_SwapLayerFrame : public wxDialog class WinEDA_SwapLayerFrame : public DIALOG_SHIM
{ {
private: private:
PCB_BASE_FRAME* m_Parent; PCB_BASE_FRAME* m_Parent;
...@@ -67,8 +68,8 @@ END_EVENT_TABLE() ...@@ -67,8 +68,8 @@ END_EVENT_TABLE()
WinEDA_SwapLayerFrame::WinEDA_SwapLayerFrame( PCB_BASE_FRAME* parent ) : WinEDA_SwapLayerFrame::WinEDA_SwapLayerFrame( PCB_BASE_FRAME* parent ) :
wxDialog( parent, -1, _( "Swap Layers:" ), wxPoint( -1, -1 ), DIALOG_SHIM( parent, -1, _( "Swap Layers:" ), wxPoint( -1, -1 ),
wxDefaultSize, wxDEFAULT_DIALOG_STYLE | MAYBE_RESIZE_BORDER ) wxDefaultSize, wxDEFAULT_DIALOG_STYLE | MAYBE_RESIZE_BORDER )
{ {
BOARD* board = parent->GetBoard(); BOARD* board = parent->GetBoard();
......
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