diff --git a/common/CMakeLists.txt b/common/CMakeLists.txt index fa071c84fa..8961793ec1 100644 --- a/common/CMakeLists.txt +++ b/common/CMakeLists.txt @@ -127,7 +127,7 @@ set(PCB_COMMON_SRCS pcb_keywords.cpp ../pcbnew/pcb_parser.cpp fp_lib_table_keywords.cpp -# fpid.cpp + fpid.cpp fp_lib_table.cpp ) diff --git a/common/fpid.cpp b/common/fpid.cpp index f27397c088..48433985cd 100644 --- a/common/fpid.cpp +++ b/common/fpid.cpp @@ -24,6 +24,7 @@ */ #include +#include #include // _() #include @@ -95,7 +96,7 @@ static int okRevision( const std::string& aField ) strcpy( rev, "x/" ); strcat( rev, aField.c_str() ); - if( EndsWithRev( rev, rev + strlen(rev) ) == rev+2 ) + if( EndsWithRev( rev, rev + strlen(rev), '/' ) == rev+2 ) return -1; // success } @@ -108,8 +109,8 @@ static int okRevision( const std::string& aField ) void FPID::clear() { - logical.clear(); - footprintName.clear(); + nickname.clear(); + footprint.clear(); revision.clear(); } @@ -118,7 +119,12 @@ int FPID::Parse( const std::string& aId ) { 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 partNdx; int offset; @@ -137,10 +143,10 @@ int FPID::Parse( const std::string& aId ) revNdx = aId.size(); } - //=============================================== + //=============================================== if( ( partNdx = aId.find( ':' ) ) != aId.npos ) { - offset = SetLogicalLib( aId.substr( 0, partNdx ) ); + offset = SetLibNickname( aId.substr( 0, partNdx ) ); if( offset > -1 ) { @@ -154,6 +160,12 @@ int FPID::Parse( const std::string& aId ) partNdx = 0; } + //========================================= + if( partNdx >= revNdx ) + return partNdx; + + SetFootprintName( aId.substr( partNdx, revNdx ) ); + return -1; } @@ -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 ); if( offset == -1 ) { - logical = aLogical; + nickname = aLogical; } return offset; @@ -192,12 +204,12 @@ int FPID::SetFootprintName( const std::string& aFootprintName ) if( separation != -1 ) { - logical = aFootprintName.substr( separation+1 ); - return separation + (int) logical.size() + 1; + nickname = aFootprintName.substr( separation+1 ); + return separation + (int) nickname.size() + 1; } else { - footprintName = aFootprintName; + footprint = aFootprintName; } return -1; @@ -221,12 +233,14 @@ std::string FPID::Format() const { std::string ret; - if( logical.size() ) + if( nickname.size() ) { - ret += logical; + ret += nickname; ret += ':'; } + ret += footprint; + if( revision.size() ) { ret += '/'; @@ -252,7 +266,7 @@ std::string FPID::GetFootprintNameAndRev() const std::string FPID::Format( const std::string& aLogicalLib, const std::string& aFootprintName, - const std::string& aRevision ) + const std::string& aRevision ) throw( PARSE_ERROR ) { std::string ret; @@ -315,10 +329,10 @@ void FPID::Test() FPID lpid( lpids[i] ); // parse // 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], lpid.Format().c_str(), - lpid.GetLogicalLib().c_str(), + lpid.GetLibNickname().c_str(), lpid.GetFootprintName().c_str(), lpid.GetRevision().c_str() ); } diff --git a/eeschema/dialogs/dialog_plot_schematic.cpp b/eeschema/dialogs/dialog_plot_schematic.cpp index 46617a5066..d083a84c25 100644 --- a/eeschema/dialogs/dialog_plot_schematic.cpp +++ b/eeschema/dialogs/dialog_plot_schematic.cpp @@ -50,6 +50,7 @@ // static members (static to remember last state): int DIALOG_PLOT_SCHEMATIC::m_pageSizeSelect = PAGE_SIZE_AUTO; + void SCH_EDIT_FRAME::PlotSchematic( wxCommandEvent& event ) { DIALOG_PLOT_SCHEMATIC dlg( this ); @@ -62,7 +63,7 @@ DIALOG_PLOT_SCHEMATIC::DIALOG_PLOT_SCHEMATIC( SCH_EDIT_FRAME* parent ) : DIALOG_PLOT_SCHEMATIC_BASE( parent ) { m_parent = parent; - m_config = wxGetApp().GetSettings(); + m_config = wxGetApp().GetSettings(); initDlg(); @@ -72,6 +73,7 @@ DIALOG_PLOT_SCHEMATIC::DIALOG_PLOT_SCHEMATIC( SCH_EDIT_FRAME* parent ) : } + // Initialize the dialog options: void DIALOG_PLOT_SCHEMATIC::initDlg() { @@ -103,28 +105,29 @@ void DIALOG_PLOT_SCHEMATIC::initDlg() // Switch to the last save plot format long plotfmt; m_config->Read( PLOT_FORMAT_KEY, &plotfmt, 0 ); + switch( plotfmt ) { - default: - case PLOT_FORMAT_POST: - m_plotFormatOpt->SetSelection( 0 ); - break; + default: + case PLOT_FORMAT_POST: + m_plotFormatOpt->SetSelection( 0 ); + break; - case PLOT_FORMAT_PDF: - m_plotFormatOpt->SetSelection( 1 ); - break; + case PLOT_FORMAT_PDF: + m_plotFormatOpt->SetSelection( 1 ); + break; - case PLOT_FORMAT_SVG: - m_plotFormatOpt->SetSelection( 2 ); - break; + case PLOT_FORMAT_SVG: + m_plotFormatOpt->SetSelection( 2 ); + break; - case PLOT_FORMAT_DXF: - m_plotFormatOpt->SetSelection( 3 ); - break; + case PLOT_FORMAT_DXF: + m_plotFormatOpt->SetSelection( 3 ); + break; - case PLOT_FORMAT_HPGL: - m_plotFormatOpt->SetSelection( 4 ); - break; + case PLOT_FORMAT_HPGL: + m_plotFormatOpt->SetSelection( 4 ); + break; } // Set the default line width (pen width which should be used for @@ -142,6 +145,7 @@ void DIALOG_PLOT_SCHEMATIC::initDlg() OnPlotFormatSelection( cmd_event ); } + PlotFormat DIALOG_PLOT_SCHEMATIC::GetPlotFileFormat() { switch( m_plotFormatOpt->GetSelection() ) @@ -159,7 +163,7 @@ PlotFormat DIALOG_PLOT_SCHEMATIC::GetPlotFileFormat() void DIALOG_PLOT_SCHEMATIC::OnButtonCancelClick( wxCommandEvent& event ) { getPlotOptions(); - EndModal( 0 ); + EndModal( wxID_CANCEL ); } @@ -178,45 +182,46 @@ void DIALOG_PLOT_SCHEMATIC::getPlotOptions() SetDefaultLineThickness( ReturnValueFromTextCtrl( *m_DefaultLineSizeCtrl ) ); } + void DIALOG_PLOT_SCHEMATIC::OnPlotFormatSelection( wxCommandEvent& event ) { switch( GetPlotFileFormat() ) { - default: - case PLOT_FORMAT_POST: - m_paperOptionsSizer->Hide( m_paperHPGLSizer ); - m_paperOptionsSizer->Show( m_PaperSizeOption ); - m_PaperSizeOption->Enable( true ); - m_DefaultLineSizeCtrl->Enable( true ); - break; + default: + case PLOT_FORMAT_POST: + m_paperOptionsSizer->Hide( m_paperHPGLSizer ); + m_paperOptionsSizer->Show( m_PaperSizeOption ); + m_PaperSizeOption->Enable( true ); + m_DefaultLineSizeCtrl->Enable( true ); + break; - case PLOT_FORMAT_PDF: - m_paperOptionsSizer->Hide( m_paperHPGLSizer ); - m_paperOptionsSizer->Show(m_PaperSizeOption); - m_PaperSizeOption->Enable( true ); - m_DefaultLineSizeCtrl->Enable( true ); - break; + case PLOT_FORMAT_PDF: + m_paperOptionsSizer->Hide( m_paperHPGLSizer ); + m_paperOptionsSizer->Show(m_PaperSizeOption); + m_PaperSizeOption->Enable( true ); + m_DefaultLineSizeCtrl->Enable( true ); + break; - case PLOT_FORMAT_SVG: - m_paperOptionsSizer->Hide( m_paperHPGLSizer ); - m_paperOptionsSizer->Show(m_PaperSizeOption); - m_PaperSizeOption->Enable( false ); - m_DefaultLineSizeCtrl->Enable( true ); - break; + case PLOT_FORMAT_SVG: + m_paperOptionsSizer->Hide( m_paperHPGLSizer ); + m_paperOptionsSizer->Show(m_PaperSizeOption); + m_PaperSizeOption->Enable( false ); + m_DefaultLineSizeCtrl->Enable( true ); + break; - case PLOT_FORMAT_DXF: - m_paperOptionsSizer->Hide( m_paperHPGLSizer ); - m_paperOptionsSizer->Show(m_PaperSizeOption); - m_PaperSizeOption->Enable( false ); - m_DefaultLineSizeCtrl->Enable( false ); - break; + case PLOT_FORMAT_DXF: + m_paperOptionsSizer->Hide( m_paperHPGLSizer ); + m_paperOptionsSizer->Show(m_PaperSizeOption); + m_PaperSizeOption->Enable( false ); + m_DefaultLineSizeCtrl->Enable( false ); + break; - case PLOT_FORMAT_HPGL: - m_paperOptionsSizer->Show( m_paperHPGLSizer ); - m_paperOptionsSizer->Hide(m_PaperSizeOption); - m_DefaultLineSizeCtrl->Enable( false ); - break; + case PLOT_FORMAT_HPGL: + m_paperOptionsSizer->Show( m_paperHPGLSizer ); + m_paperOptionsSizer->Hide(m_PaperSizeOption); + m_DefaultLineSizeCtrl->Enable( false ); + break; } @@ -235,32 +240,35 @@ void DIALOG_PLOT_SCHEMATIC::OnButtonPlotAllClick( wxCommandEvent& event ) PlotSchematic( true ); } + void DIALOG_PLOT_SCHEMATIC::PlotSchematic( bool aPlotAll ) { getPlotOptions(); + switch( GetPlotFileFormat() ) { - case PLOT_FORMAT_HPGL: - createHPGLFile( aPlotAll, getPlotFrameRef() ); - break; + case PLOT_FORMAT_HPGL: + createHPGLFile( aPlotAll, getPlotFrameRef() ); + break; - default: - case PLOT_FORMAT_POST: - createPSFile( aPlotAll, getPlotFrameRef() ); - break; + default: + // Fall through. Default to Postscript. + case PLOT_FORMAT_POST: + createPSFile( aPlotAll, getPlotFrameRef() ); + break; - case PLOT_FORMAT_DXF: - CreateDXFFile( aPlotAll, getPlotFrameRef() ); - break; + case PLOT_FORMAT_DXF: + CreateDXFFile( aPlotAll, getPlotFrameRef() ); + break; - case PLOT_FORMAT_PDF: - createPDFFile( aPlotAll, getPlotFrameRef() ); - break; + case PLOT_FORMAT_PDF: + createPDFFile( aPlotAll, getPlotFrameRef() ); + break; - case PLOT_FORMAT_SVG: - createSVGFile( aPlotAll, getPlotFrameRef() ); - break; + case PLOT_FORMAT_SVG: + createSVGFile( aPlotAll, getPlotFrameRef() ); + break; } + m_MessagesBox->AppendText( wxT( "****\n" ) ); } - diff --git a/eeschema/dialogs/dialog_plot_schematic_base.cpp b/eeschema/dialogs/dialog_plot_schematic_base.cpp index bdb7b94b50..62722720cb 100644 --- a/eeschema/dialogs/dialog_plot_schematic_base.cpp +++ b/eeschema/dialogs/dialog_plot_schematic_base.cpp @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////// -// C++ code generated with wxFormBuilder (version Apr 10 2012) +// C++ code generated with wxFormBuilder (version Oct 8 2012) // http://www.wxformbuilder.org/ // // PLEASE DO "NOT" EDIT THIS FILE! @@ -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") }; 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_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_paperHPGLSizer->Add( m_staticText4, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); @@ -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") }; 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_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_paperHPGLSizer->Add( m_penHPLGWidthTitle, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); 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_paperOptionsSizer->Add( m_paperHPGLSizer, 1, wxEXPAND, 5 ); - m_optionsSizer->Add( m_paperOptionsSizer, 1, wxEXPAND, 5 ); - - wxStaticBoxSizer* sbSizerPlotFormat; - sbSizerPlotFormat = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("General options") ), wxVERTICAL ); + m_optionsSizer->Add( m_paperOptionsSizer, 0, wxEXPAND, 5 ); wxString m_plotFormatOptChoices[] = { _("Postscript"), _("PDF"), _("SVG"), _("DXF"), _("HPGL") }; 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 ); - sbSizerPlotFormat->Add( m_plotFormatOpt, 0, wxALL|wxEXPAND, 5 ); + m_optionsSizer->Add( m_plotFormatOpt, 0, wxEXPAND|wxLEFT, 5 ); + wxStaticBoxSizer* sbSizerPlotFormat; + sbSizerPlotFormat = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("General Options") ), wxVERTICAL ); - m_optionsSizer->Add( sbSizerPlotFormat, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 ); - - wxStaticBoxSizer* sbOptionsSizer; - sbOptionsSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Plot 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 ); - 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->SetMaxLength( 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") }; 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->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->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_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_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_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_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->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->SetMaxLength( 0 ); 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->Layout(); + bMainSizer->Fit( this ); // Connect Events this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_PLOT_SCHEMATIC_BASE::OnCloseWindow ) ); diff --git a/eeschema/dialogs/dialog_plot_schematic_base.fbp b/eeschema/dialogs/dialog_plot_schematic_base.fbp index fd8035082e..a27e12f982 100644 --- a/eeschema/dialogs/dialog_plot_schematic_base.fbp +++ b/eeschema/dialogs/dialog_plot_schematic_base.fbp @@ -42,10 +42,10 @@ -1,-1 DIALOG_PLOT_SCHEMATIC_BASE - 500,431 + -1,-1 wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER DIALOG_SHIM; dialog_shim.h - Create Plot File + Plot @@ -93,7 +93,7 @@ none 5 - wxEXPAND + wxEXPAND|wxLEFT|wxRIGHT|wxTOP 0 @@ -103,7 +103,7 @@ 5 wxEXPAND - 1 + 0 wxID_ANY Paper Options @@ -145,7 +145,7 @@ 0 0 wxID_ANY - Plot Page Size: + Page Size: 1 0 @@ -208,7 +208,7 @@ 1 wxID_ANY - HPGL Options: + HPGL Options m_paperHPGLSizer wxVERTICAL @@ -246,7 +246,7 @@ 0 0 wxID_ANY - Plot Page Size: + Page Size: 0 @@ -418,7 +418,7 @@ 0 0 wxID_ANY - Plot Origin: + Origin 1 0 @@ -507,7 +507,7 @@ 0 0 wxID_ANY - Pen Width + Pen Width: 0 @@ -655,117 +655,103 @@ 5 - wxEXPAND|wxRIGHT|wxLEFT + wxEXPAND|wxLEFT 0 - + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + "Postscript" "PDF" "SVG" "DXF" "HPGL" + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 wxID_ANY - General options + Format + 1 + + 0 + + + 0 - sbSizerPlotFormat - wxVERTICAL - none + 1 + m_plotFormatOpt + 1 + + + protected + 1 + + Resizable + 0 + 1 + + wxRA_SPECIFY_COLS + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + OnPlotFormatSelection + + + + + - - 5 - wxALL|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - "Postscript" "PDF" "SVG" "DXF" "HPGL" - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Plot format: - 1 - - 0 - - - 0 - - 1 - m_plotFormatOpt - 1 - - - protected - 1 - - Resizable - 0 - 1 - - wxRA_SPECIFY_COLS - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - OnPlotFormatSelection - - - - - - - - 5 - - 1 + wxEXPAND|wxLEFT + 0 wxID_ANY - Plot options: + General Options - sbOptionsSizer + sbSizerPlotFormat wxVERTICAL none @@ -801,7 +787,7 @@ 0 0 wxID_ANY - Default Thickness + Default Line Thickness: 0 @@ -976,7 +962,7 @@ 0 0 wxID_ANY - Plot mode + Mode 1 0 @@ -1066,7 +1052,7 @@ 0 0 wxID_ANY - Plot frame ref + Plot border and title block 0 @@ -1165,7 +1151,7 @@ 0 0 wxID_PRINT_CURRENT - Plot Current + Plot Current Page 0 @@ -1253,7 +1239,7 @@ 0 0 wxID_PRINT_ALL - Plot All + Plot All Pages 0 @@ -1341,7 +1327,7 @@ 0 0 wxID_CANCEL - Quit + Close 0 @@ -1402,176 +1388,187 @@ 5 - wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Messages: - - 0 - - - 0 - - 1 - m_staticText2 - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT + wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT 1 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - 0 - - 0 - -1,80 - 1 - m_MessagesBox - 1 - - - protected - 1 - - Resizable - 1 - - wxTE_MULTILINE - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + bSizer4 + wxVERTICAL + none + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Messages: + + 0 + + + 0 + + 1 + m_staticText2 + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT + 1 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + 0 + + 0 + -1,80 + 1 + m_MessagesBox + 1 + + + protected + 1 + + Resizable + 1 + + wxTE_MULTILINE + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/eeschema/dialogs/dialog_plot_schematic_base.h b/eeschema/dialogs/dialog_plot_schematic_base.h index bd32837b61..06eee76a19 100644 --- a/eeschema/dialogs/dialog_plot_schematic_base.h +++ b/eeschema/dialogs/dialog_plot_schematic_base.h @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////// -// C++ code generated with wxFormBuilder (version Apr 10 2012) +// C++ code generated with wxFormBuilder (version Oct 8 2012) // http://www.wxformbuilder.org/ // // PLEASE DO "NOT" EDIT THIS FILE! @@ -11,6 +11,8 @@ #include #include #include +class DIALOG_SHIM; + #include "dialog_shim.h" #include #include @@ -75,7 +77,7 @@ class DIALOG_PLOT_SCHEMATIC_BASE : public DIALOG_SHIM 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(); }; diff --git a/include/fpip.h b/include/fpid.h similarity index 81% rename from include/fpip.h rename to include/fpid.h index 41e4696c8c..221e9c6a1a 100644 --- a/include/fpip.h +++ b/include/fpid.h @@ -68,7 +68,7 @@ public: * * @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 @@ -78,15 +78,15 @@ public: * @return int - minus 1 (i.e. -1) means success, >= 0 indicates the character offset into * aId at which an error was detected. */ - int Parse( const wxString& aId ); + int Parse( const std::string& aId ); /** * Function GetLibNickname * 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: * into the parameter at which an error was detected, usually because it * contained '/' or ':'. */ - int SetLibNickname( const wxString& aNickname ); + int SetLibNickname( const std::string& aNickname ); /** * Function GetFootprintName * returns the footprint name, i.e. footprintName. */ - const wxString& GetFootprintName() const; + const std::string& GetFootprintName() const; /** * Function SetFootprintName * 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 * returns the fully formatted text of the FPID. */ - wxString Format() const; + std::string Format() const; /** * Function Format @@ -123,7 +129,8 @@ public: * * @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 ); void clear(); @@ -133,8 +140,9 @@ public: #endif protected: - wxString nickname; ///< logical lib name or empty - wxString footprint; ///< The name of the footprint in the logical library. + std::string nickname; ///< The nickname of the footprint library or empty. + std::string footprint; ///< The name of the footprint in the logical library. + std::string revision; ///< The footprint revision. }; diff --git a/pcbnew/dialogs/dialog_netlist.cpp b/pcbnew/dialogs/dialog_netlist.cpp index 4757f6537a..498b492645 100644 --- a/pcbnew/dialogs/dialog_netlist.cpp +++ b/pcbnew/dialogs/dialog_netlist.cpp @@ -274,5 +274,5 @@ void DIALOG_NETLIST::OnCompileRatsnestClick( wxCommandEvent& event ) void DIALOG_NETLIST::OnCancelClick( wxCommandEvent& event ) { - EndModal( -1 ); + EndModal( wxID_CANCEL ); } diff --git a/pcbnew/dialogs/dialog_netlist_fbp.cpp b/pcbnew/dialogs/dialog_netlist_fbp.cpp index 526240a711..8b84a06fb8 100644 --- a/pcbnew/dialogs/dialog_netlist_fbp.cpp +++ b/pcbnew/dialogs/dialog_netlist_fbp.cpp @@ -100,32 +100,39 @@ DIALOG_NETLIST_FBP::DIALOG_NETLIST_FBP( wxWindow* parent, wxWindowID id, const w 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 ); 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->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->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->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->SetMaxLength( 0 ); - m_MessageWindow->SetMinSize( wxSize( -1,200 ) ); + m_MessageWindow->SetMinSize( wxSize( -1,150 ) ); - bMainSizer->Add( m_MessageWindow, 1, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); + bLowerSizer->Add( m_MessageWindow, 1, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); + + + bMainSizer->Add( bLowerSizer, 1, wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT, 5 ); this->SetSizer( bMainSizer ); this->Layout(); + bMainSizer->Fit( this ); // Connect Events m_buttonBrowse->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_NETLIST_FBP::OnOpenNetlistClick ), NULL, this ); diff --git a/pcbnew/dialogs/dialog_netlist_fbp.fbp b/pcbnew/dialogs/dialog_netlist_fbp.fbp index d570d63e84..d4dee8a418 100644 --- a/pcbnew/dialogs/dialog_netlist_fbp.fbp +++ b/pcbnew/dialogs/dialog_netlist_fbp.fbp @@ -37,12 +37,12 @@ 0 - wxID_CANCEL + wxID_ANY DIALOG_NETLIST_FBP - 519,431 + -1,-1 wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER DIALOG_SHIM; dialog_shim.h Netlist @@ -93,7 +93,7 @@ none 5 - wxEXPAND + wxEXPAND|wxLEFT|wxRIGHT|wxTOP 0 @@ -1108,350 +1108,361 @@ 5 - wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Netlist File: - - 0 - - - 0 - - 1 - m_staticTextNetfilename - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - 0 - - 0 - - 1 - m_NetlistFilenameCtrl - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Messages: - - 0 - - - 0 - - 1 - m_staticText1 - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT + wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT 1 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - 0 - - 0 - -1,200 - 1 - m_MessageWindow - 1 - - - protected - 1 - - Resizable - 1 - - wxTE_CHARWRAP|wxTE_MULTILINE|wxTE_READONLY|wxTE_WORDWRAP - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + bLowerSizer + wxVERTICAL + none + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Netlist File: + + 0 + + + 0 + + 1 + m_staticTextNetfilename + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + 0 + + 0 + + 1 + m_NetlistFilenameCtrl + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Messages: + + 0 + + + 0 + + 1 + m_staticText1 + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT + 1 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + 0 + + 0 + -1,150 + 1 + m_MessageWindow + 1 + + + protected + 1 + + Resizable + 1 + + wxTE_CHARWRAP|wxTE_MULTILINE|wxTE_READONLY|wxTE_WORDWRAP + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/pcbnew/dialogs/dialog_netlist_fbp.h b/pcbnew/dialogs/dialog_netlist_fbp.h index 819ab523a9..acf63e437f 100644 --- a/pcbnew/dialogs/dialog_netlist_fbp.h +++ b/pcbnew/dialogs/dialog_netlist_fbp.h @@ -71,7 +71,7 @@ class DIALOG_NETLIST_FBP : public DIALOG_SHIM 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(); }; diff --git a/pcbnew/swap_layers.cpp b/pcbnew/swap_layers.cpp index b446ea1635..bf9f0c5789 100644 --- a/pcbnew/swap_layers.cpp +++ b/pcbnew/swap_layers.cpp @@ -7,6 +7,7 @@ #include #include #include +#include #include #include @@ -30,7 +31,7 @@ enum swap_layer_id { }; -class WinEDA_SwapLayerFrame : public wxDialog +class WinEDA_SwapLayerFrame : public DIALOG_SHIM { private: PCB_BASE_FRAME* m_Parent; @@ -67,8 +68,8 @@ END_EVENT_TABLE() WinEDA_SwapLayerFrame::WinEDA_SwapLayerFrame( PCB_BASE_FRAME* parent ) : - wxDialog( parent, -1, _( "Swap Layers:" ), wxPoint( -1, -1 ), - wxDefaultSize, wxDEFAULT_DIALOG_STYLE | MAYBE_RESIZE_BORDER ) + DIALOG_SHIM( parent, -1, _( "Swap Layers:" ), wxPoint( -1, -1 ), + wxDefaultSize, wxDEFAULT_DIALOG_STYLE | MAYBE_RESIZE_BORDER ) { BOARD* board = parent->GetBoard();