diff --git a/change_log.txt b/change_log.txt index 5d392076f8..65fb4c578b 100644 --- a/change_log.txt +++ b/change_log.txt @@ -4,6 +4,13 @@ Started 2007-June-11 Please add newer entries at the top, list the date and your name with email address. +2007-Nov-10 UPDATE Jean-Pierre Charras +================================================================================ ++eeschema: + More comprehensive dialog in netlist plugin interface. + Eeschema configuration now shows the plugin netlist list + + 2007-Nov-09 UPDATE Geoff Harland ================================================================================ + 3d-viewer diff --git a/eeschema/dialog_eeschema_config.cpp b/eeschema/dialog_eeschema_config.cpp index 8694fc0cd5..ed5f4371d7 100644 --- a/eeschema/dialog_eeschema_config.cpp +++ b/eeschema/dialog_eeschema_config.cpp @@ -71,9 +71,9 @@ BEGIN_EVENT_TABLE( KiConfigEeschemaFrame, wxDialog ) EVT_BUTTON( SAVE_CFG, KiConfigEeschemaFrame::OnSaveCfgClick ) - EVT_RADIOBOX( FORMAT_NETLIST, KiConfigEeschemaFrame::OnFormatNetlistSelected ) + EVT_LISTBOX( FORMAT_NETLIST, KiConfigEeschemaFrame::OnFormatNetlistSelected ) - EVT_BUTTON( DEL_LIB, KiConfigEeschemaFrame::OnDelLibClick ) + EVT_BUTTON( REMOVE_LIB, KiConfigEeschemaFrame::OnRemoveLibClick ) EVT_BUTTON( ADD_LIB, KiConfigEeschemaFrame::OnAddLibClick ) @@ -123,7 +123,7 @@ bool KiConfigEeschemaFrame::Create( wxWindow* parent, wxWindowID id, const wxStr ////@end KiConfigEeschemaFrame member initialisation ////@begin KiConfigEeschemaFrame creation - SetExtraStyle(GetExtraStyle()|wxWS_EX_BLOCK_EVENTS); + SetExtraStyle(wxWS_EX_BLOCK_EVENTS); wxDialog::Create( parent, id, caption, pos, size, style ); CreateControls(); @@ -145,7 +145,7 @@ void KiConfigEeschemaFrame::CreateControls() SetFont(*g_DialogFont); ////@begin KiConfigEeschemaFrame content construction - // Generated by DialogBlocks, 28/02/2007 15:16:31 (unregistered) + // Generated by DialogBlocks, 10/11/2007 15:23:03 (unregistered) KiConfigEeschemaFrame* itemDialog1 = this; @@ -153,76 +153,80 @@ void KiConfigEeschemaFrame::CreateControls() itemDialog1->SetSizer(itemBoxSizer2); wxBoxSizer* itemBoxSizer3 = new wxBoxSizer(wxHORIZONTAL); - itemBoxSizer2->Add(itemBoxSizer3, 0, wxGROW|wxALL, 5); + itemBoxSizer2->Add(itemBoxSizer3, 1, wxGROW|wxALL, 5); wxBoxSizer* itemBoxSizer4 = new wxBoxSizer(wxVERTICAL); itemBoxSizer3->Add(itemBoxSizer4, 0, wxGROW|wxALL, 5); wxButton* itemButton5 = new wxButton( itemDialog1, SAVE_CFG, _("Save Cfg"), wxDefaultPosition, wxDefaultSize, 0 ); + if (KiConfigEeschemaFrame::ShowToolTips()) + itemButton5->SetToolTip(_("save current configuration setting in the local .pro file")); itemButton5->SetForegroundColour(wxColour(204, 0, 0)); itemBoxSizer4->Add(itemButton5, 0, wxGROW|wxALL, 5); - itemBoxSizer4->Add(5, 5, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5); + itemBoxSizer4->Add(5, 5, 0, wxGROW|wxALL, 5); - wxString m_NetFormatBoxStrings[] = { - _("PcbNew"), - _("&OrcadPcb2"), - _("&CadStar"), - _("&Spice"), - _("Other") - }; - m_NetFormatBox = new wxRadioBox( itemDialog1, FORMAT_NETLIST, _("NetList Formats:"), wxDefaultPosition, wxDefaultSize, 5, m_NetFormatBoxStrings, 1, wxRA_SPECIFY_COLS ); - m_NetFormatBox->SetSelection(0); - itemBoxSizer4->Add(m_NetFormatBox, 0, wxGROW|wxALL, 5); + wxStaticText* itemStaticText7 = new wxStaticText( itemDialog1, wxID_STATIC, _("NetList Formats:"), wxDefaultPosition, wxDefaultSize, 0 ); + itemBoxSizer4->Add(itemStaticText7, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP, 5); - itemBoxSizer4->Add(5, 5, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5); + wxArrayString m_NetFormatBoxStrings; + m_NetFormatBox = new wxListBox( itemDialog1, FORMAT_NETLIST, wxDefaultPosition, wxDefaultSize, m_NetFormatBoxStrings, wxLB_SINGLE ); + itemBoxSizer4->Add(m_NetFormatBox, 0, wxGROW|wxLEFT|wxRIGHT|wxBOTTOM, 5); - wxStaticBox* itemStaticBoxSizer9Static = new wxStaticBox(itemDialog1, wxID_ANY, _("Files ext:")); - m_FileExtList = new wxStaticBoxSizer(itemStaticBoxSizer9Static, wxVERTICAL); + itemBoxSizer4->Add(5, 5, 0, wxGROW|wxALL, 5); + + wxStaticBox* itemStaticBoxSizer10Static = new wxStaticBox(itemDialog1, wxID_ANY, _("Files ext:")); + m_FileExtList = new wxStaticBoxSizer(itemStaticBoxSizer10Static, wxVERTICAL); itemBoxSizer4->Add(m_FileExtList, 0, wxGROW|wxALL, 5); - wxBoxSizer* itemBoxSizer10 = new wxBoxSizer(wxVERTICAL); - itemBoxSizer3->Add(itemBoxSizer10, 0, wxGROW|wxLEFT|wxRIGHT|wxBOTTOM, 5); - - wxBoxSizer* itemBoxSizer11 = new wxBoxSizer(wxHORIZONTAL); - itemBoxSizer10->Add(itemBoxSizer11, 0, wxALIGN_CENTER_HORIZONTAL|wxLEFT|wxRIGHT|wxBOTTOM, 5); + wxBoxSizer* itemBoxSizer11 = new wxBoxSizer(wxVERTICAL); + itemBoxSizer3->Add(itemBoxSizer11, 1, wxGROW|wxLEFT|wxRIGHT|wxBOTTOM, 5); wxBoxSizer* itemBoxSizer12 = new wxBoxSizer(wxVERTICAL); - itemBoxSizer11->Add(itemBoxSizer12, 0, wxALIGN_CENTER_VERTICAL, 5); + itemBoxSizer11->Add(itemBoxSizer12, 1, wxGROW, 5); wxBoxSizer* itemBoxSizer13 = new wxBoxSizer(wxHORIZONTAL); - itemBoxSizer12->Add(itemBoxSizer13, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5); + itemBoxSizer12->Add(itemBoxSizer13, 0, wxGROW|wxALL, 5); - wxButton* itemButton14 = new wxButton( itemDialog1, DEL_LIB, _("Del"), wxDefaultPosition, wxDefaultSize, 0 ); + wxButton* itemButton14 = new wxButton( itemDialog1, REMOVE_LIB, _("Remove"), wxDefaultPosition, wxDefaultSize, 0 ); + if (KiConfigEeschemaFrame::ShowToolTips()) + itemButton14->SetToolTip(_("Unload the selected library")); itemButton14->SetForegroundColour(wxColour(204, 0, 0)); - itemBoxSizer13->Add(itemButton14, 0, wxGROW|wxALL, 5); + itemBoxSizer13->Add(itemButton14, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5); wxButton* itemButton15 = new wxButton( itemDialog1, ADD_LIB, _("Add"), wxDefaultPosition, wxDefaultSize, 0 ); + if (KiConfigEeschemaFrame::ShowToolTips()) + itemButton15->SetToolTip(_("Add a new library after the selected library, add load it")); itemButton15->SetForegroundColour(wxColour(0, 128, 0)); itemBoxSizer13->Add(itemButton15, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5); wxButton* itemButton16 = new wxButton( itemDialog1, INSERT_LIB, _("Ins"), wxDefaultPosition, wxDefaultSize, 0 ); + itemButton16->SetHelpText(_("Add a new library beforer the selected library, add load it")); + if (KiConfigEeschemaFrame::ShowToolTips()) + itemButton16->SetToolTip(_("Add a new library beforer the selected library, add load it")); itemButton16->SetForegroundColour(wxColour(0, 0, 255)); itemBoxSizer13->Add(itemButton16, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5); wxBoxSizer* itemBoxSizer17 = new wxBoxSizer(wxVERTICAL); - itemBoxSizer12->Add(itemBoxSizer17, 0, wxGROW|wxALL, 5); + itemBoxSizer12->Add(itemBoxSizer17, 1, wxGROW|wxALL, 5); wxStaticText* itemStaticText18 = new wxStaticText( itemDialog1, wxID_STATIC, _("Libraries"), wxDefaultPosition, wxDefaultSize, 0 ); itemStaticText18->SetForegroundColour(wxColour(204, 0, 0)); itemBoxSizer17->Add(itemStaticText18, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxADJUST_MINSIZE, 5); - wxString* m_ListLibrStrings = NULL; - m_ListLibr = new wxListBox( itemDialog1, ID_LIST_LIBS, wxDefaultPosition, wxSize(-1, 300), 0, m_ListLibrStrings, wxLB_SINGLE ); - itemBoxSizer17->Add(m_ListLibr, 0, wxGROW|wxLEFT|wxRIGHT|wxBOTTOM, 5); + wxArrayString m_ListLibrStrings; + m_ListLibr = new wxListBox( itemDialog1, ID_LISTBOX, wxDefaultPosition, wxDefaultSize, m_ListLibrStrings, wxLB_SINGLE ); + itemBoxSizer17->Add(m_ListLibr, 1, wxGROW|wxLEFT|wxRIGHT|wxBOTTOM|wxADJUST_MINSIZE, 5); - wxStaticBox* itemStaticBoxSizer20Static = new wxStaticBox(itemDialog1, wxID_ANY, _("Library files path:")); + wxStaticBox* itemStaticBoxSizer20Static = new wxStaticBox(itemDialog1, wxID_ANY, _("Default library file path:")); wxStaticBoxSizer* itemStaticBoxSizer20 = new wxStaticBoxSizer(itemStaticBoxSizer20Static, wxHORIZONTAL); itemStaticBoxSizer20Static->SetForegroundColour(wxColour(206, 0, 0)); itemBoxSizer2->Add(itemStaticBoxSizer20, 0, wxGROW|wxALL, 5); - m_LibDirCtrl = new wxTextCtrl( itemDialog1, ID_TEXTCTRL, _T(""), wxDefaultPosition, wxSize(350, -1), 0 ); - itemStaticBoxSizer20->Add(m_LibDirCtrl, 0, wxGROW|wxLEFT|wxRIGHT|wxBOTTOM, 5); + m_LibDirCtrl = new wxTextCtrl( itemDialog1, ID_TEXTCTRL, _T(""), wxDefaultPosition, wxDefaultSize, 0 ); + if (KiConfigEeschemaFrame::ShowToolTips()) + m_LibDirCtrl->SetToolTip(_("Default path to search libraries which have no absolute path in name,\nor a name which does not start by ./ or ../\nIf void, the default path is kicad/library\n")); + itemStaticBoxSizer20->Add(m_LibDirCtrl, 1, wxGROW|wxLEFT|wxRIGHT|wxBOTTOM, 5); wxButton* itemButton22 = new wxButton( itemDialog1, ID_LIB_PATH_SEL, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 ); itemStaticBoxSizer20->Add(itemButton22, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5); @@ -248,6 +252,19 @@ wxString msg = _("Cmp file Ext: ") + g_NetCmpExtBuffer; msg = _("Schematic file Ext: ") + g_SchExtBuffer; text = new wxStaticText( itemDialog1, -1, msg, wxDefaultPosition, wxDefaultSize, 0 ); m_FileExtList->Add(text, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxADJUST_MINSIZE, 5); + + wxArrayString NetlistNameItems; + NetlistNameItems.Add(wxT("Pcbnew")); + NetlistNameItems.Add(wxT("OrcadPcb2")); + NetlistNameItems.Add(wxT("CadStar")); + NetlistNameItems.Add(wxT("Spice")); + msg = ReturnUserNetlistTypeName( true ); + while ( ! msg.IsEmpty() ) + { + NetlistNameItems.Add(msg); + msg = ReturnUserNetlistTypeName( false ); + } + m_NetFormatBox->InsertItems(NetlistNameItems, 0); } /*! @@ -382,52 +399,25 @@ void KiConfigEeschemaFrame::SetFormatsNetListes() /* Adjust the m_NetFormatBox current selection, according to the current netlist format*/ { - switch( g_NetFormat ) - { - case NET_TYPE_NOT_INIT: - case NET_TYPE_PCBNEW: - m_NetFormatBox->SetSelection(0); - break; - - case NET_TYPE_ORCADPCB2: - m_NetFormatBox->SetSelection(1); - break; - - case NET_TYPE_CADSTAR: - m_NetFormatBox->SetSelection(2); - break; - - case NET_TYPE_SPICE: - m_NetFormatBox->SetSelection(3); - break; - - default: - m_NetFormatBox->SetSelection(4); - break; - } + if ( g_NetFormat > (int)m_NetFormatBox->GetCount() ) + g_NetFormat = NET_TYPE_PCBNEW; + m_NetFormatBox->SetSelection(g_NetFormat - NET_TYPE_PCBNEW); } /*! - * wxEVT_COMMAND_RADIOBOX_SELECTED event handler for FORMAT_NETLIST + * wxEVT_COMMAND_NETLIST_SELECTED event handler for FORMAT_NETLIST */ void KiConfigEeschemaFrame::OnFormatNetlistSelected( wxCommandEvent& event ) { -int ii; - - ii = m_NetFormatBox->GetSelection(); - if ( ii == 0 ) g_NetFormat = NET_TYPE_PCBNEW; - if ( ii == 1 ) g_NetFormat = NET_TYPE_ORCADPCB2; - else if ( ii == 2 ) g_NetFormat = NET_TYPE_CADSTAR; - else if ( ii == 3 ) g_NetFormat = NET_TYPE_SPICE; - else if ( g_NetFormat < NET_TYPE_CUSTOM1 ) g_NetFormat = NET_TYPE_CUSTOM1; + g_NetFormat = m_NetFormatBox->GetSelection() + NET_TYPE_PCBNEW; } /*! * wxEVT_COMMAND_BUTTON_CLICKED event handler for DEL_LIB */ -void KiConfigEeschemaFrame::OnDelLibClick( wxCommandEvent& event ) +void KiConfigEeschemaFrame::OnRemoveLibClick( wxCommandEvent& event ) { LibDelFct(event); } diff --git a/eeschema/dialog_eeschema_config.h b/eeschema/dialog_eeschema_config.h index c6d4d1796e..bc10609c0f 100644 --- a/eeschema/dialog_eeschema_config.h +++ b/eeschema/dialog_eeschema_config.h @@ -40,10 +40,10 @@ #define ID_DIALOG 10000 #define SAVE_CFG 10001 #define FORMAT_NETLIST 10006 -#define DEL_LIB 10002 -#define ADD_LIB 10003 -#define INSERT_LIB 10004 -#define ID_LIST_LIBS 10005 +#define REMOVE_LIB 10009 +#define ADD_LIB 10010 +#define INSERT_LIB 10011 +#define ID_LISTBOX 10012 #define ID_TEXTCTRL 10007 #define ID_LIB_PATH_SEL 10008 #define SYMBOL_KICONFIGEESCHEMAFRAME_STYLE wxCAPTION|wxSYSTEM_MENU|wxCLOSE_BOX|MAYBE_RESIZE_BORDER @@ -89,11 +89,11 @@ public: /// wxEVT_COMMAND_BUTTON_CLICKED event handler for SAVE_CFG void OnSaveCfgClick( wxCommandEvent& event ); - /// wxEVT_COMMAND_RADIOBOX_SELECTED event handler for FORMAT_NETLIST + /// wxEVT_COMMAND_LISTBOX_SELECTED event handler for FORMAT_NETLIST void OnFormatNetlistSelected( wxCommandEvent& event ); - /// wxEVT_COMMAND_BUTTON_CLICKED event handler for DEL_LIB - void OnDelLibClick( wxCommandEvent& event ); + /// wxEVT_COMMAND_BUTTON_CLICKED event handler for REMOVE_LIB + void OnRemoveLibClick( wxCommandEvent& event ); /// wxEVT_COMMAND_BUTTON_CLICKED event handler for ADD_LIB void OnAddLibClick( wxCommandEvent& event ); @@ -124,7 +124,7 @@ public: void ChangeSetup(); ////@begin KiConfigEeschemaFrame member variables - wxRadioBox* m_NetFormatBox; + wxListBox* m_NetFormatBox; wxStaticBoxSizer* m_FileExtList; wxListBox* m_ListLibr; wxTextCtrl* m_LibDirCtrl; diff --git a/eeschema/dialog_eeschema_config.pjd b/eeschema/dialog_eeschema_config.pjd index 338852a16b..88f82893e1 100644 --- a/eeschema/dialog_eeschema_config.pjd +++ b/eeschema/dialog_eeschema_config.pjd @@ -1,4 +1,4 @@ - +
0 @@ -6,13 +6,14 @@ "" "" "" - 29 "" 0 0 0 + 1 1 1 + 1 0 "jean-pierre Charras" "License GNU" @@ -44,12 +45,6 @@ // Licence: ///////////////////////////////////////////////////////////////////////////// -" - " -/*! - * %BODY% - */ - " "///////////////////////////////////////////////////////////////////////////// // Name: %SYMBOLS-FILENAME% @@ -83,6 +78,14 @@ #include "wx/wx.h" #endif +" + " /// %BODY% +" + " +/*! + * %BODY% + */ + " "app_resources.h" "app_resources.cpp" @@ -94,6 +97,7 @@ "" "<None>" "<System>" + "utf-8" "<System>" "" 0 @@ -106,7 +110,9 @@ 1 1 1 + 0 1 + 0
@@ -183,7 +189,7 @@ 1 1 0 - 0 + 1 "Windows" "html-document" @@ -194,7 +200,7 @@ 0 1 - "Untitled" + "Eeschema Configuration Setup" "dialog-document" "" "dialog" @@ -207,7 +213,10 @@ 10000 0 "" + 0 + "" 0 + 0 "wxEVT_CLOSE_WINDOW|OnCloseWindow" "ID_DIALOG" 10000 @@ -229,6 +238,13 @@ 0 1 "<Any platform>" + "" + "" + "" + "" + "" + "" + "Tiled" 0 1 0 @@ -261,6 +277,7 @@ -1 400 300 + 0 "" "wxBoxSizer V" @@ -294,7 +311,7 @@ "" "Expand" "Centre" - 0 + 1 5 1 1 @@ -343,12 +360,25 @@ "wxEVT_COMMAND_BUTTON_CLICKED|OnSaveCfgClick" "SAVE_CFG" 10001 + "" "wxButton" + "wxButton" + 1 + 0 + "" + "" "" "Save Cfg" 0 "" - "" + "save current configuration setting in the local .pro file" + "" + "" + "" + "" + "" + "" + "" "" "CC0000" "" @@ -396,7 +426,7 @@ "wbSpacerProxy" 5 5 - "Centre" + "Expand" "Centre" 0 5 @@ -410,25 +440,28 @@ "<Any platform>" - "wxRadioBox: FORMAT_NETLIST" + "wxStaticText: wxID_STATIC" "dialog-control-document" "" - "radiobox" + "statictext" 0 1 0 0 - "17/7/2006" - "wbRadioBoxProxy" - "wxEVT_COMMAND_RADIOBOX_SELECTED|OnFormatNetlistSelected" - "FORMAT_NETLIST" - 10006 - "wxRadioBox" - "m_NetFormatBox" + "10/11/2007" + "wbStaticTextProxy" + "wxID_STATIC" + 5105 + "" + "wxStaticText" + "wxStaticText" + 1 + 0 + "" + "" + "" "NetList Formats:" - 1 - "PcbNew|&OrcadPcb2|&CadStar|&Spice|Other" - 0 + -1 "" "" "" @@ -439,8 +472,95 @@ "<Any platform>" "" "" - 0 - 1 + "" + "" + "" + "" + "" + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + "" + -1 + -1 + -1 + -1 + "Left" + "Centre" + 0 + 5 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + "" + "" + + + "wxListBox: FORMAT_NETLIST" + "dialog-control-document" + "" + "listbox" + 0 + 1 + 0 + 0 + "17/7/2006" + "wbListBoxProxy" + "wxEVT_COMMAND_LISTBOX_SELECTED|OnFormatNetlistSelected|NONE||KiConfigEeschemaFrame" + "FORMAT_NETLIST" + 10006 + "" + "wxListBox" + "wxListBox" + 1 + 0 + "" + "" + "m_NetFormatBox" + "" + "" + "" + "" + "" + "" + "" + 0 + 1 + "<Any platform>" + "" + "" + "" + "" + "" + "" + "" + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 0 0 0 @@ -455,7 +575,7 @@ 5 1 1 - 1 + 0 1 0 0 @@ -476,7 +596,7 @@ "wbSpacerProxy" 5 5 - "Centre" + "Expand" "Centre" 0 5 @@ -503,13 +623,14 @@ "wxID_ANY" -1 "Files ext:" + "" "m_FileExtList" "" "" 0 1 + "wxStaticBox" "Vertical" - "" "Expand" "Centre" 0 @@ -539,7 +660,7 @@ "" "Centre" "Expand" - 0 + 1 5 1 1 @@ -550,7 +671,7 @@ 0 "<Any platform>" - "wxBoxSizer H" + "wxBoxSizer V" "dialog-control-document" "" "sizer" @@ -558,24 +679,24 @@ 1 0 0 - "17/8/2006" + "10/11/2007" "wbBoxSizerProxy" - "Horizontal" + "Vertical" "" - "Centre" - "Centre" - 0 + "Expand" + "Expand" + 1 5 - 1 - 1 + 0 + 0 0 - 1 + 0 0 0 0 "<Any platform>" - "wxBoxSizer V" + "wxBoxSizer H" "dialog-control-document" "" "sizer" @@ -583,35 +704,75 @@ 1 0 0 - "17/8/2006" + "10/11/2007" "wbBoxSizerProxy" - "Vertical" + "Horizontal" "" - "Centre" + "Expand" "Centre" 0 5 - 0 - 0 - 0 - 0 + 1 + 1 + 1 + 1 0 0 0 "<Any platform>" - "wxBoxSizer H" + "wxButton: REMOVE_LIB" "dialog-control-document" "" - "sizer" + "dialogcontrol" 0 1 0 0 - "17/8/2006" - "wbBoxSizerProxy" - "Horizontal" + "10/11/2007" + "wbButtonProxy" + "wxEVT_COMMAND_BUTTON_CLICKED|OnRemoveLibClick|||" + "REMOVE_LIB" + 10009 + "" + "wxButton" + "wxButton" + 1 + 0 + "" + "" "" + "Remove" + 0 + "" + "Unload the selected library" + "" + "" + "" + "" + "" + "" + "" + "" + "CC0000" + "" + 0 + 1 + "<Any platform>" + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + "" + -1 + -1 + -1 + -1 "Centre" "Centre" 0 @@ -623,184 +784,63 @@ 0 0 0 - "<Any platform>" - - "wxButton: DEL_LIB" - "dialog-control-document" - "" - "dialogcontrol" - 0 - 1 - 0 - 0 - "17/8/2006" - "wbButtonProxy" - "wxEVT_COMMAND_BUTTON_CLICKED|OnDelLibClick" - "DEL_LIB" - 10002 - "wxButton" - "" - "Del" - 0 - "" - "" - "" - "CC0000" - "" - 0 - 1 - "<Any platform>" - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - "" - -1 - -1 - -1 - -1 - "Centre" - "Expand" - 0 - 5 - 1 - 1 - 1 - 1 - 0 - 0 - 0 - "" - "" - - - "wxButton: ADD_LIB" - "dialog-control-document" - "" - "dialogcontrol" - 0 - 1 - 0 - 0 - "17/8/2006" - "wbButtonProxy" - "wxEVT_COMMAND_BUTTON_CLICKED|OnAddLibClick" - "ADD_LIB" - 10003 - "wxButton" - "" - "Add" - 0 - "" - "" - "" - "008000" - "" - 0 - 1 - "<Any platform>" - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - "" - -1 - -1 - -1 - -1 - "Centre" - "Centre" - 0 - 5 - 1 - 1 - 1 - 1 - 0 - 0 - 0 - "" - "" - - - "wxButton: INSERT_LIB" - "dialog-control-document" - "" - "dialogcontrol" - 0 - 1 - 0 - 0 - "17/8/2006" - "wbButtonProxy" - "wxEVT_COMMAND_BUTTON_CLICKED|OnInsertLibClick" - "INSERT_LIB" - 10004 - "wxButton" - "" - "Ins" - 0 - "" - "" - "" - "0000FF" - "" - 0 - 1 - "<Any platform>" - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - "" - -1 - -1 - -1 - -1 - "Centre" - "Centre" - 0 - 5 - 1 - 1 - 1 - 1 - 0 - 0 - 0 - "" - "" - + "" + "" - "wxBoxSizer V" + "wxButton: ADD_LIB" "dialog-control-document" "" - "sizer" + "dialogcontrol" 0 1 0 0 - "17/8/2006" - "wbBoxSizerProxy" - "Vertical" + "10/11/2007" + "wbButtonProxy" + "wxEVT_COMMAND_BUTTON_CLICKED|OnAddLibClick|||" + "ADD_LIB" + 10010 + "" + "wxButton" + "wxButton" + 1 + 0 + "" + "" "" - "Expand" + "Add" + 0 + "" + "Add a new library after the selected library, add load it" + "" + "" + "" + "" + "" + "" + "" + "" + "008000" + "" + 0 + 1 + "<Any platform>" + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + "" + -1 + -1 + -1 + -1 + "Centre" "Centre" 0 5 @@ -811,128 +851,244 @@ 0 0 0 + "" + "" + + + "wxButton: INSERT_LIB" + "dialog-control-document" + "" + "dialogcontrol" + 0 + 1 + 0 + 0 + "10/11/2007" + "wbButtonProxy" + "wxEVT_COMMAND_BUTTON_CLICKED|OnInsertLibClick|||" + "INSERT_LIB" + 10011 + "" + "wxButton" + "wxButton" + 1 + 0 + "" + "" + "" + "Ins" + 0 + "Add a new library beforer the selected library, add load it" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "0000FF" + "" + 0 + 1 "<Any platform>" - - "wxStaticText: wxID_STATIC" - "dialog-control-document" - "" - "statictext" - 0 - 1 - 0 - 0 - "17/8/2006" - "wbStaticTextProxy" - "wxID_STATIC" - 5105 - "wxStaticText" - "" - "Libraries" - -1 - "" - "" - "" - "CC0000" - "" - 0 - 1 - "<Any platform>" - "" - "" - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - "" - -1 - -1 - -1 - -1 - "Left" - "Centre" - 0 - 5 - 1 - 1 - 0 - 0 - 0 - 1 - 0 - "" - "" - - - "wxListBox: ID_LIST_LIBS" - "dialog-control-document" - "" - "listbox" - 0 - 1 - 0 - 0 - "17/8/2006" - "wbListBoxProxy" - "ID_LIST_LIBS" - 10005 - "wxListBox" - "m_ListLibr" - "" - "" - "" - "" - "" - "" - "" - 0 - 1 - "<Any platform>" - "" - "" - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - "" - -1 - -1 - -1 - 300 - "Expand" - "Centre" - 0 - 5 - 1 - 1 - 0 - 1 - 0 - 0 - 0 - "" - "" - + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + "" + -1 + -1 + -1 + -1 + "Centre" + "Centre" + 0 + 5 + 1 + 1 + 1 + 1 + 0 + 0 + 0 + "" + "" + + + + "wxBoxSizer V" + "dialog-control-document" + "" + "sizer" + 0 + 1 + 0 + 0 + "10/11/2007" + "wbBoxSizerProxy" + "Vertical" + "" + "Expand" + "Centre" + 1 + 5 + 1 + 1 + 1 + 1 + 0 + 0 + 0 + "<Any platform>" + + "wxStaticText: wxID_STATIC" + "dialog-control-document" + "" + "statictext" + 0 + 1 + 0 + 0 + "10/11/2007" + "wbStaticTextProxy" + "wxID_STATIC" + 5105 + "" + "wxStaticText" + "wxStaticText" + 1 + 0 + "" + "" + "" + "Libraries" + -1 + "" + "" + "" + "CC0000" + "" + 0 + 1 + "<Any platform>" + "" + "" + "" + "" + "" + "" + "" + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + "" + -1 + -1 + -1 + -1 + "Left" + "Centre" + 0 + 5 + 1 + 1 + 0 + 0 + 0 + 1 + 0 + "" + "" + + + "wxListBox: ID_LISTBOX" + "dialog-control-document" + "" + "listbox" + 0 + 1 + 0 + 0 + "10/11/2007" + "wbListBoxProxy" + "ID_LISTBOX" + 10012 + "" + "wxListBox" + "wxListBox" + 1 + 0 + "" + "" + "m_ListLibr" + "" + "" + "" + "" + "" + "" + "" + 0 + 1 + "<Any platform>" + "" + "" + "" + "" + "" + "" + "" + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + "" + -1 + -1 + -1 + -1 + "Expand" + "Centre" + 1 + 5 + 1 + 1 + 0 + 1 + 0 + 1 + 0 + "" + "" @@ -951,14 +1107,15 @@ "wbStaticBoxSizerProxy" "wxID_ANY" "-1" - "Library files path:" + "Default library file path:" + "" "" "CE0000" "" 0 1 + "wxStaticBox" "Horizontal" - "" "Expand" "Centre" 0 @@ -984,12 +1141,21 @@ "wbTextCtrlProxy" "ID_TEXTCTRL" 10007 + "" "wxTextCtrl" + "wxTextCtrl" + 1 + 0 + "" + "" "m_LibDirCtrl" "" 0 "" - "" + "Default path to search libraries which have no absolute path in name, +or a name which does not start by ./ or ../ +If void, the default path is kicad/library +" "" "" "" @@ -998,6 +1164,11 @@ "<Any platform>" "" "" + "" + "" + "" + "" + "" 0 0 0 @@ -1011,8 +1182,9 @@ 0 0 0 - 0 + 0 0 + 0 0 0 0 @@ -1025,11 +1197,11 @@ "" -1 -1 - 350 + -1 -1 "Expand" "Expand" - 0 + 1 5 1 1 @@ -1055,12 +1227,25 @@ "wxEVT_COMMAND_BUTTON_CLICKED|OnLibPathSelClick" "ID_LIB_PATH_SEL" 10008 + "" "wxButton" + "wxButton" + 1 + 0 + "" + "" "" "Browse" 0 "" "" + "" + "" + "" + "" + "" + "" + "" "" "" "" diff --git a/eeschema/dialog_set_status.pjd b/eeschema/dialog_set_status.pjd deleted file mode 100644 index 5124ae0603..0000000000 --- a/eeschema/dialog_set_status.pjd +++ /dev/null @@ -1,1175 +0,0 @@ - - -
- 0 - "" - "" - "" - "" - 28 - "" - 0 - 0 - 0 - 1 - 1 - 0 - "jean-pierre Charras" - "License GNU" - "" - 0 - "<All platforms>" - "<Any>" - "///////////////////////////////////////////////////////////////////////////// -// Name: %HEADER-FILENAME% -// Purpose: -// Author: %AUTHOR% -// Modified by: -// Created: %DATE% -// RCS-ID: -// Copyright: %COPYRIGHT% -// Licence: -///////////////////////////////////////////////////////////////////////////// - -" - "///////////////////////////////////////////////////////////////////////////// -// Name: %SOURCE-FILENAME% -// Purpose: -// Author: %AUTHOR% -// Modified by: -// Created: %DATE% -// RCS-ID: -// Copyright: %COPYRIGHT% -// Licence: -///////////////////////////////////////////////////////////////////////////// - -" - " -/*! - * %BODY% - */ - -" - "///////////////////////////////////////////////////////////////////////////// -// Name: %SYMBOLS-FILENAME% -// Purpose: Symbols file -// Author: %AUTHOR% -// Modified by: -// Created: %DATE% -// RCS-ID: -// Copyright: %COPYRIGHT% -// Licence: -///////////////////////////////////////////////////////////////////////////// - -" - "#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) -#pragma interface "%HEADER-FILENAME%" -#endif - -" - "#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) -#pragma implementation "%HEADER-FILENAME%" -#endif - -// For compilers that support precompilation, includes "wx/wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/wx.h" -#endif - -" - "app_resources.h" - "app_resources.cpp" - "AppResources" - "app.h" - "app.cpp" - "Application" - 0 - "" - "<None>" - "<System>" - "<System>" - "" - 0 - 1 - 1 -
- - - "" - "data-document" - "" - "" - 0 - 1 - 0 - 0 - - "Configurations" - "config-data-document" - "" - "" - 0 - 1 - 0 - 0 - "" - 1 - - - - - - - "Projects" - "root-document" - "" - "project" - 1 - 1 - 0 - 0 - - "Windows" - "html-document" - "" - "dialogsfolder" - 1 - 1 - 0 - 1 - - "from " - "dialog-document" - "" - "dialog" - 0 - 1 - 0 - 0 - "11/2/2006" - "wbDialogProxy" - 10000 - 0 - "" - 0 - "ID_DIALOG" - 10000 - "WinEDA_ConfigFrame" - "wxDialog" - "wxDialog" - "dialog_set_status.cpp" - "dialog_set_status.h" - "" - "from " - 1 - "" - 0 - "" - "" - "" - "" - "" - 0 - 1 - "<Any platform>" - 0 - 1 - 0 - 0 - 1 - 0 - 0 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 1 - 0 - "MAYBE_RESIZE_BORDER" - 0 - 1 - -1 - -1 - 400 - 300 - "" - - "wxBoxSizer V" - "dialog-control-document" - "" - "sizer" - 0 - 1 - 0 - 0 - "11/2/2006" - "wbBoxSizerProxy" - "Vertical" - "" - 0 - 0 - 0 - "<Any platform>" - - "wxBoxSizer H" - "dialog-control-document" - "" - "sizer" - 0 - 1 - 0 - 0 - "11/2/2006" - "wbBoxSizerProxy" - "Horizontal" - "" - 0 - 0 - 0 - "<Any platform>" - - "wxBoxSizer V" - "dialog-control-document" - "" - "sizer" - 0 - 1 - 0 - 0 - "11/2/2006" - "wbBoxSizerProxy" - "Vertical" - "" - "Centre" - "Centre" - 0 - 5 - 1 - 1 - 1 - 1 - 0 - 0 - 0 - "<Any platform>" - - "wxButton: ID_BUTTON" - "dialog-control-document" - "" - "dialogcontrol" - 0 - 1 - 0 - 0 - "11/2/2006" - "wbButtonProxy" - "wxEVT_COMMAND_BUTTON_CLICKED|OnButtonClick" - "ID_BUTTON" - 10001 - "wxButton" - "" - "Save Cfg" - 0 - "" - "" - "" - "CC0000" - "" - 0 - 1 - "<Any platform>" - 0 - 0 - 0 - 0 - 0 - 0 - 0 - "" - -1 - -1 - -1 - -1 - "Expand" - "Centre" - 0 - 5 - 1 - 1 - 1 - 1 - 0 - 0 - 0 - "" - "" - - - "wxRadioBox: ID_RADIOBOX" - "dialog-control-document" - "" - "radiobox" - 0 - 1 - 0 - 0 - "11/2/2006" - "wbRadioBoxProxy" - "ID_RADIOBOX" - 10006 - "wxRadioBox" - "" - "NetList Formats:" - 1 - "" - "" - "" - "" - "" - 0 - 1 - "<Any platform>" - "" - "" - 0 - 1 - "&PcbNew|&OrcadPcb2|&CadStar|&Spice|Other" - 0 - "" - -1 - -1 - -1 - -1 - "Expand" - "Centre" - 0 - 5 - 1 - 1 - 1 - 1 - 0 - 0 - 0 - "" - "" - - - "wxStaticBoxSizer V" - "dialog-control-document" - "" - "sizer" - 0 - 1 - 0 - 0 - "11/2/2006" - "wbStaticBoxSizerProxy" - "wxID_ANY" - -1 - "Files ext:" - "" - "" - "" - 0 - 0 - "Vertical" - "" - "Expand" - "Centre" - 0 - 5 - 1 - 1 - 1 - 1 - 0 - 0 - 0 - "<Any platform>" - - "wxStaticText: wxID_STATIC" - "dialog-control-document" - "" - "statictext" - 0 - 1 - 0 - 0 - "11/2/2006" - "wbStaticTextProxy" - "wxID_STATIC" - 5105 - "wxStaticText" - "m_CmpfileExtText" - "Cmp file Ext: " - "" - "" - "" - "" - "" - 0 - 1 - "<Any platform>" - "" - "" - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - "" - -1 - -1 - -1 - -1 - "Left" - "Centre" - 0 - 5 - 1 - 1 - 1 - 1 - 0 - 1 - 0 - "" - "" - - - "wxStaticText: wxID_STATIC" - "dialog-control-document" - "" - "statictext" - 0 - 1 - 0 - 0 - "11/2/2006" - "wbStaticTextProxy" - "wxID_STATIC" - 5105 - "wxStaticText" - "m_NetfileExtText" - "Net file Ext: " - "" - "" - "" - "" - "" - 0 - 1 - "<Any platform>" - "" - "" - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - "" - -1 - -1 - -1 - -1 - "Left" - "Centre" - 0 - 5 - 1 - 1 - 1 - 1 - 0 - 1 - 0 - "" - "" - - - "wxStaticText: wxID_STATIC" - "dialog-control-document" - "" - "statictext" - 0 - 1 - 0 - 0 - "11/2/2006" - "wbStaticTextProxy" - "wxID_STATIC" - 5105 - "wxStaticText" - "m_LibfileExtText" - "Library file Ext: " - "" - "" - "" - "" - "" - 0 - 1 - "<Any platform>" - "" - "" - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - "" - -1 - -1 - -1 - -1 - "Left" - "Centre" - 0 - 5 - 1 - 1 - 1 - 1 - 0 - 1 - 0 - "" - "" - - - "wxStaticText: wxID_STATIC" - "dialog-control-document" - "" - "statictext" - 0 - 1 - 0 - 0 - "11/2/2006" - "wbStaticTextProxy" - "wxID_STATIC" - 5105 - "wxStaticText" - "m_SymbolfileExtText" - "Symbol file Ext: " - "" - "" - "" - "" - "" - 0 - 1 - "<Any platform>" - "" - "" - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - "" - -1 - -1 - -1 - -1 - "Left" - "Centre" - 0 - 5 - 1 - 1 - 1 - 1 - 0 - 1 - 0 - "" - "" - - - "wxStaticText: wxID_STATIC" - "dialog-control-document" - "" - "statictext" - 0 - 1 - 0 - 0 - "11/2/2006" - "wbStaticTextProxy" - "wxID_STATIC" - 5105 - "wxStaticText" - "m_SchfileExtText" - "Schematic file Ext: " - "" - "" - "" - "" - "" - 0 - 0 - "<Any platform>" - "" - "" - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - "" - -1 - -1 - -1 - -1 - "Left" - "Centre" - 0 - 5 - 1 - 1 - 1 - 1 - 0 - 1 - 0 - "" - "" - - - - - "wxBoxSizer V" - "dialog-control-document" - "" - "sizer" - 0 - 1 - 0 - 0 - "11/2/2006" - "wbBoxSizerProxy" - "Vertical" - "" - "Centre" - "Expand" - 0 - 5 - 1 - 1 - 1 - 1 - 0 - 0 - 0 - "<Any platform>" - - "wxBoxSizer H" - "dialog-control-document" - "" - "sizer" - 0 - 1 - 0 - 0 - "11/2/2006" - "wbBoxSizerProxy" - "Horizontal" - "" - "Centre" - "Centre" - 0 - 5 - 1 - 1 - 1 - 1 - 0 - 0 - 0 - "<Any platform>" - - "wxButton: ID_BUTTON1" - "dialog-control-document" - "" - "dialogcontrol" - 0 - 1 - 0 - 0 - "11/2/2006" - "wbButtonProxy" - "wxEVT_COMMAND_BUTTON_CLICKED|OnButton1Click" - "ID_BUTTON1" - 10002 - "wxButton" - "" - "Del" - 0 - "" - "" - "" - "CC0000" - "" - 0 - 1 - "<Any platform>" - 0 - 0 - 0 - 0 - 0 - 0 - 0 - "" - -1 - -1 - -1 - -1 - "Centre" - "Expand" - 0 - 5 - 1 - 1 - 1 - 1 - 0 - 0 - 0 - "" - "" - - - "wxButton: ID_BUTTON2" - "dialog-control-document" - "" - "dialogcontrol" - 0 - 1 - 0 - 0 - "11/2/2006" - "wbButtonProxy" - "wxEVT_COMMAND_BUTTON_CLICKED|OnButton2Click" - "ID_BUTTON2" - 10003 - "wxButton" - "" - "Add" - 0 - "" - "" - "" - "008000" - "" - 0 - 1 - "<Any platform>" - 0 - 0 - 0 - 0 - 0 - 0 - 0 - "" - -1 - -1 - -1 - -1 - "Centre" - "Expand" - 0 - 5 - 1 - 1 - 1 - 1 - 0 - 0 - 0 - "" - "" - - - "wxButton: ID_BUTTON3" - "dialog-control-document" - "" - "dialogcontrol" - 0 - 1 - 0 - 0 - "11/2/2006" - "wbButtonProxy" - "wxEVT_COMMAND_BUTTON_CLICKED|OnButton3Click" - "ID_BUTTON3" - 10004 - "wxButton" - "" - "Ins" - 0 - "" - "" - "" - "0000FF" - "" - 0 - 1 - "<Any platform>" - 0 - 0 - 0 - 0 - 0 - 0 - 0 - "" - -1 - -1 - -1 - -1 - "Centre" - "Centre" - 0 - 5 - 1 - 1 - 1 - 1 - 0 - 0 - 0 - "" - "" - - - - "wxStaticText: wxID_STATIC" - "dialog-control-document" - "" - "statictext" - 0 - 1 - 0 - 0 - "11/2/2006" - "wbStaticTextProxy" - "wxID_STATIC" - 5105 - "wxStaticText" - "" - "Libraries:" - "" - "" - "" - "C40000" - "" - 0 - 1 - "<Any platform>" - "" - "" - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - "" - -1 - -1 - -1 - -1 - "Left" - "Centre" - 0 - 5 - 1 - 1 - 1 - 0 - 0 - 1 - 0 - "" - "" - - - "wxListBox: ID_LISTBOX" - "dialog-control-document" - "" - "listbox" - 0 - 1 - 0 - 0 - "11/2/2006" - "wbListBoxProxy" - "ID_LISTBOX" - 10005 - "wxListBox" - "m_ListLibr" - "" - "" - "" - "" - "" - "" - "" - 0 - 1 - "<Any platform>" - "" - "" - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - "" - -1 - -1 - -1 - 250 - "Expand" - "Centre" - 0 - 5 - 1 - 1 - 1 - 1 - 0 - 0 - 0 - "" - "" - - - - - "wxStaticText: wxID_STATIC" - "dialog-control-document" - "" - "statictext" - 0 - 1 - 0 - 0 - "11/2/2006" - "wbStaticTextProxy" - "wxID_STATIC" - 5105 - "wxStaticText" - "m_CmpfileExtText" - "Library files path:" - "" - "" - "" - "C60000" - "" - 0 - 1 - "<Any platform>" - "" - "" - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - "" - -1 - -1 - -1 - -1 - "Left" - "Centre" - 0 - 5 - 1 - 1 - 1 - 0 - 0 - 1 - 0 - "" - "" - - - "wxTextCtrl: ID_TEXTCTRL" - "dialog-control-document" - "" - "textctrl" - 0 - 1 - 0 - 0 - "11/2/2006" - "wbTextCtrlProxy" - "ID_TEXTCTRL" - 10007 - "wxTextCtrl" - "m_LibDirCtrl" - "" - 0 - "" - "" - "" - "" - "" - 0 - 1 - "<Any platform>" - "" - "" - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - "" - -1 - -1 - -1 - -1 - "Expand" - "Centre" - 0 - 5 - 1 - 1 - 1 - 1 - 0 - 0 - 0 - "" - "" - - - - - - "Sources" - "html-document" - "" - "sourcesfolder" - 1 - 1 - 0 - 1 - - "dialog_set_status.rc" - "source-editor-document" - "dialog_set_status.rc" - "source-editor" - 0 - 0 - 1 - 0 - "11/2/2006" - "" - - - - "Images" - "html-document" - "" - "bitmapsfolder" - 1 - 1 - 0 - 1 - - - - -
diff --git a/eeschema/dialog_set_status.rc b/eeschema/dialog_set_status.rc deleted file mode 100644 index b86c4e2265..0000000000 --- a/eeschema/dialog_set_status.rc +++ /dev/null @@ -1 +0,0 @@ -#include "wx/msw/wx.rc" diff --git a/eeschema/netform.cpp b/eeschema/netform.cpp index 66fa282c58..dff7679418 100644 --- a/eeschema/netform.cpp +++ b/eeschema/netform.cpp @@ -82,21 +82,10 @@ void WriteNetList( WinEDA_SchematicFrame* frame, const wxString& FileNameNL, fclose( f ); break; - case NET_TYPE_CUSTOM1: - case NET_TYPE_CUSTOM2: - case NET_TYPE_CUSTOM3: - case NET_TYPE_CUSTOM4: - case NET_TYPE_CUSTOM5: - case NET_TYPE_CUSTOM6: - case NET_TYPE_CUSTOM7: - case NET_TYPE_CUSTOM8: - Write_GENERIC_NetList( frame, FileNameNL ); + default: + Write_GENERIC_NetList( frame, FileNameNL ); break; - - default: - DisplayError( frame, wxT( "WriteNetList() err: Unknown Netlist Format" ) ); - break; - } + } } diff --git a/eeschema/netlist.h b/eeschema/netlist.h index 42624e50ef..9c1b94ddb9 100644 --- a/eeschema/netlist.h +++ b/eeschema/netlist.h @@ -14,23 +14,15 @@ #define ISBUS 1 -/* Indicateurs de type de netliste generee */ +/* Id to select netlist type */ typedef enum { - NET_TYPE_NOT_INIT = 0, + NET_TYPE_UNINIT = 0, NET_TYPE_PCBNEW, NET_TYPE_ORCADPCB2, NET_TYPE_CADSTAR, NET_TYPE_SPICE, - NET_TYPE_CUSTOM1, - NET_TYPE_CUSTOM2, - NET_TYPE_CUSTOM3, - NET_TYPE_CUSTOM4, - NET_TYPE_CUSTOM5, - NET_TYPE_CUSTOM6, - NET_TYPE_CUSTOM7, - NET_TYPE_CUSTOM8, - NET_TYPE_MAX -} TypeNetForm; + NET_TYPE_CUSTOM1 // NET_TYPE_CUSTOM1 is the first id for user netlist format + } TypeNetForm; /* Max pin number per component and footprint */ @@ -119,5 +111,15 @@ eda_global ObjetNetListStruct* g_TabObjNet; void WriteNetList( WinEDA_SchematicFrame* frame, const wxString& FileNameNL, bool use_netnames ); void FreeTabNetList( ObjetNetListStruct* TabNetItems, int NbrNetItems ); +/** Function ReturnUserNetlistTypeName + * to retrieve user netlist type names + * @param first = true: return first name of the list, false = return next + * @return a wxString : name of the type netlist or empty string + * this function must be called first with "first_item" = true + * and after with "first_item" = false to get all the other existing netlist names + */ +#define CUSTOMPANEL_COUNTMAX 8 // Max number of netlist plugins +wxString ReturnUserNetlistTypeName( bool first_item ); + #endif diff --git a/eeschema/netlist_control.cpp b/eeschema/netlist_control.cpp index 8e65a38203..f8218bbf29 100644 --- a/eeschema/netlist_control.cpp +++ b/eeschema/netlist_control.cpp @@ -2,217 +2,323 @@ /* Dialog box for netlist outputs */ /**********************************/ +/* Functions relatives to the dialog creating the netlist for pcbnew. + * The dialo is a notebook with 4 fixed netlist format: + * PCBNEW ORCADPCB2 CADSTAR and SPICE + * and up to CUSTOMPANEL_COUNTMAX (see netlist.h) user programmable format + * calling an external converter with convert an intermediate format to the + * user specific format. + * these external converters are refered there as plugins, + * but there are not really plugins, there are only external binaries + */ + #include "fctsys.h" -// #include "gr_basic.h" #include "common.h" #include "program.h" #include "libcmp.h" #include "general.h" -#include "netlist.h" /* Definitions generales liees au calcul de netliste */ +#include "netlist.h" #include "protos.h" - // ID for configuration: -#define CUSTOM_NETLIST_TITLE wxT("CustomNetlistTitle") -#define CUSTOM_NETLIST_COMMAND wxT("CustomNetlistCommand") +#define CUSTOM_NETLIST_TITLE wxT( "CustomNetlistTitle" ) +#define CUSTOM_NETLIST_COMMAND wxT( "CustomNetlistCommand" ) -/* Routines locales */ - -/* Variable locales */ +/* Loacl variable */ +/* Event id for notebook page buttons: */ enum id_netlist { ID_CREATE_NETLIST = 1550, ID_CURRENT_FORMAT_IS_DEFAULT, ID_RUN_SIMULATOR, ID_SETUP_PLUGIN, + ID_VALIDATE_PLUGIN, + ID_DELETE_PLUGIN, ID_NETLIST_NOTEBOOK }; +/* panel (notebook page) identifiers */ enum panel_netlist_index { - PANELPCBNEW = 0, // Create Netlist format Pcbnew - PANELORCADPCB2, // Create Netlis format OracdPcb2 - PANELCADSTAR, // Create Netlis format OracdPcb2 - PANELSPICE, // Create Netlis format Pspice - PANELCUSTOMBASE // Start auxiliary panels (custom netlists) + PANELPCBNEW = 0, /* Handle Netlist format Pcbnew */ + PANELORCADPCB2, /* Handle Netlist format OracdPcb2 */ + PANELCADSTAR, /* Handle Netlist format CadStar */ + PANELSPICE, /* Handle Netlist format Pspice */ + PANELCUSTOMBASE /* First auxiliary panel (custom netlists). + * others use PANELCUSTOMBASE+1, PANELCUSTOMBASE+2.. */ }; +/* Values returned when the netlist dialog is demiss */ +enum gen_netlist_diag { + NET_OK, + NET_ABORT, + NET_PLUGIN_CHANGE +}; + + +/****************************************************/ +wxString ReturnUserNetlistTypeName( bool first_item ) +/****************************************************/ + +/** Function ReturnUserNetlistTypeName + * to retrieve user netlist type names + * @param first = true: return first name of the list, false = return next + * @return a wxString : name of the type netlist or empty string + * this function must be called first with "first_item" = true + * and after with "first_item" = false to get all the other existing netlist names + */ +{ + static int index; + wxString name, msg; + + if( first_item ) + index = 0; + else + index++; + + msg = CUSTOM_NETLIST_TITLE; + msg << index + 1; + + if( g_EDA_Appl->m_EDA_Config ) + name = g_EDA_Appl->m_EDA_Config->Read( msg ); + + return name; +} + + +/************************/ +/* Class declarations : */ +/************************/ /* wxPanels for creating the NoteBook pages for each netlist format: */ -class EDA_NoteBookPage: public wxPanel +class EDA_NoteBookPage : public wxPanel { public: - int m_IdNetType; - wxCheckBox * m_IsCurrentFormat; - WinEDA_EnterText * m_CommandStringCtrl; - WinEDA_EnterText * m_TitleStringCtrl; - wxButton * m_ButtonCancel; - wxBoxSizer * m_LeftBoxSizer; - wxBoxSizer * m_RightBoxSizer; - wxBoxSizer * m_LowBoxSizer; + int m_IdNetType; + wxCheckBox* m_IsCurrentFormat; + WinEDA_EnterText* m_CommandStringCtrl; + WinEDA_EnterText* m_TitleStringCtrl; + wxButton* m_ButtonCancel; + wxBoxSizer* m_LeftBoxSizer; + wxBoxSizer* m_RightBoxSizer; + wxBoxSizer* m_RightOptionsBoxSizer; + wxBoxSizer* m_LowBoxSizer; - EDA_NoteBookPage(wxNotebook* parent, const wxString & title, - int id_NetType, int idCheckBox, int idCreateFile); - ~EDA_NoteBookPage() {}; + EDA_NoteBookPage( wxNotebook* parent, const wxString& title, + int id_NetType, int idCheckBox, int idCreateFile ); + ~EDA_NoteBookPage() { }; }; -/*****************************************************************************/ -EDA_NoteBookPage::EDA_NoteBookPage(wxNotebook* parent, const wxString & title, - int id_NetType, int idCheckBox, int idCreateFile) : - wxPanel(parent, -1 ) -/*****************************************************************************/ -/* Contructor to create a setup page for one netlist format. - * Used in Netlist format Dialog box creation - */ -{ - SetFont(*g_DialogFont); - m_IdNetType = id_NetType; - m_CommandStringCtrl = NULL; - m_TitleStringCtrl = NULL; - m_IsCurrentFormat = NULL; - m_ButtonCancel = NULL; - - parent->AddPage(this, title, g_NetFormat == m_IdNetType); - - wxBoxSizer * MainBoxSizer = new wxBoxSizer(wxVERTICAL); - SetSizer(MainBoxSizer); - wxBoxSizer * UpperBoxSizer = new wxBoxSizer(wxHORIZONTAL); - m_LowBoxSizer = new wxBoxSizer(wxVERTICAL); - MainBoxSizer->Add(UpperBoxSizer, 0, wxGROW|wxALL, 5); - MainBoxSizer->Add(m_LowBoxSizer, 0, wxGROW|wxALL, 5); - - m_LeftBoxSizer = new wxBoxSizer(wxVERTICAL); - m_RightBoxSizer = new wxBoxSizer(wxVERTICAL); - UpperBoxSizer->Add(m_LeftBoxSizer, 0, wxGROW|wxALL, 5); - UpperBoxSizer->Add(m_RightBoxSizer, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5); - - if( idCheckBox ) - { - wxStaticText * text = new wxStaticText(this, -1, _("Options:")); - m_LeftBoxSizer->Add(text, 0, wxGROW|wxALL, 5); - - m_IsCurrentFormat = new wxCheckBox(this, idCheckBox, _("Default format")); - m_LeftBoxSizer->Add(m_IsCurrentFormat, 0, wxGROW|wxALL, 5); - - if( g_NetFormat == m_IdNetType ) - m_IsCurrentFormat->SetValue(TRUE); - } - - if( idCreateFile ) // Create the 2 standard buttons: Create File and Cancel - { - wxButton * Button; - if( idCreateFile == ID_SETUP_PLUGIN ) - Button = new wxButton(this, idCreateFile, _("&Browse Plugin")); - else - Button = new wxButton(this, idCreateFile, _("&Netlist")); - Button->SetForegroundColour(*wxRED); - m_RightBoxSizer->Add(Button, 0, wxGROW|wxALL, 5); - - m_ButtonCancel = - Button = new wxButton(this, wxID_CANCEL, _("&Cancel")); - Button->SetForegroundColour(*wxBLUE); - m_RightBoxSizer->Add(Button, 0, wxGROW|wxALL, 5); - } -} - - -#define CUSTOMPANEL_COUNTMAX 8 /* Dialog frame for creating netlists */ -class WinEDA_NetlistFrame: public wxDialog +class WinEDA_NetlistFrame : public wxDialog { public: - WinEDA_SchematicFrame * m_Parent; - wxNotebook* m_NoteBook; - EDA_NoteBookPage * m_PanelNetType[4 + CUSTOMPANEL_COUNTMAX]; + WinEDA_SchematicFrame* m_Parent; + wxNotebook* m_NoteBook; + EDA_NoteBookPage* m_PanelNetType[4 + CUSTOMPANEL_COUNTMAX]; - wxRadioBox * m_UseNetNamesInNetlist; + wxRadioBox* m_UseNetNamesInNetlist; public: + // Constructor and destructor - WinEDA_NetlistFrame(WinEDA_SchematicFrame *parent, wxPoint& pos); - ~WinEDA_NetlistFrame() {}; + WinEDA_NetlistFrame( WinEDA_SchematicFrame* parent, wxPoint& pos ); + ~WinEDA_NetlistFrame() { }; private: - void InstallCustomPages(); - void InstallPageSpice(); - void GenNetlist(wxCommandEvent& event); - void RunSimulator(wxCommandEvent& event); - void NetlistUpdateOpt(); - void OnCancelClick(wxCommandEvent& event); - void SelectNetlistType(wxCommandEvent& event); - void SetupPlugin(wxCommandEvent& event); - DECLARE_EVENT_TABLE()}; + void InstallCustomPages(); + void InstallPageSpice(); + void GenNetlist( wxCommandEvent& event ); + void RunSimulator( wxCommandEvent& event ); + void NetlistUpdateOpt(); + void OnCancelClick( wxCommandEvent& event ); + void SelectNetlistType( wxCommandEvent& event ); + void SetupPluginData( wxCommandEvent& event ); + void DeletePluginPanel( wxCommandEvent& event ); + void ValidatePluginPanel( wxCommandEvent& event ); -BEGIN_EVENT_TABLE(WinEDA_NetlistFrame, wxDialog) - EVT_BUTTON(wxID_CANCEL, WinEDA_NetlistFrame::OnCancelClick) - EVT_BUTTON(ID_CREATE_NETLIST, WinEDA_NetlistFrame::GenNetlist) - EVT_BUTTON(ID_SETUP_PLUGIN, WinEDA_NetlistFrame::SetupPlugin) - EVT_CHECKBOX(ID_CURRENT_FORMAT_IS_DEFAULT, WinEDA_NetlistFrame::SelectNetlistType) - EVT_BUTTON(ID_RUN_SIMULATOR, WinEDA_NetlistFrame::RunSimulator) + void WriteCurrentNetlistSetup( void ); + + DECLARE_EVENT_TABLE() +}; + +BEGIN_EVENT_TABLE( WinEDA_NetlistFrame, wxDialog ) +EVT_BUTTON( wxID_CANCEL, WinEDA_NetlistFrame::OnCancelClick ) +EVT_BUTTON( ID_CREATE_NETLIST, WinEDA_NetlistFrame::GenNetlist ) +EVT_BUTTON( ID_SETUP_PLUGIN, WinEDA_NetlistFrame::SetupPluginData ) +EVT_BUTTON( ID_DELETE_PLUGIN, WinEDA_NetlistFrame::DeletePluginPanel ) +EVT_BUTTON( ID_VALIDATE_PLUGIN, WinEDA_NetlistFrame::ValidatePluginPanel ) +EVT_CHECKBOX( ID_CURRENT_FORMAT_IS_DEFAULT, WinEDA_NetlistFrame::SelectNetlistType ) +EVT_BUTTON( ID_RUN_SIMULATOR, WinEDA_NetlistFrame::RunSimulator ) END_EVENT_TABLE() -/****************************************************************/ -void InstallNetlistFrame(WinEDA_SchematicFrame *parent, wxPoint & pos) -/****************************************************************/ +/*********************************************************************/ +void InstallNetlistFrame( WinEDA_SchematicFrame* parent, wxPoint& pos ) +/*********************************************************************/ + /* Installator for the netlist generation dialog box */ { - WinEDA_NetlistFrame * frame = new WinEDA_NetlistFrame(parent, pos); - frame->ShowModal(); - frame->Destroy(); + int ii; + + if ( g_NetFormat < NET_TYPE_PCBNEW ) + g_NetFormat = NET_TYPE_PCBNEW; + + do + { + WinEDA_NetlistFrame* frame = new WinEDA_NetlistFrame( parent, pos ); + + ii = frame->ShowModal(); + frame->Destroy(); + } while( ii == NET_PLUGIN_CHANGE ); + + // If a plugin is removed or added, rebuild and reopen the new dialog } -#define H_SIZE 370 -#define V_SIZE 300 + +/*******************************/ +/* Functions for these classes */ +/*******************************/ + + +/*****************************************************************************/ +EDA_NoteBookPage::EDA_NoteBookPage( wxNotebook* parent, const wxString& title, + int id_NetType, int idCheckBox, int idCreateFile ) : + wxPanel( parent, -1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL | wxBORDER_SUNKEN ) +/*****************************************************************************/ + +/** Contructor to create a setup page for one netlist format. + * Used in Netlist format Dialog box creation + * @param parent = wxNotebook * parent + * @param title = title (name) of the notebook page + * @param id_NetType = netlist type id + * @param idCheckBox = event ID attached to the "format is default" check box + * @param idCreateFile = event ID attached to the "create netlist" button + */ +{ + SetFont( *g_DialogFont ); + m_IdNetType = id_NetType; + m_CommandStringCtrl = NULL; + m_TitleStringCtrl = NULL; + m_IsCurrentFormat = NULL; + m_ButtonCancel = NULL; + + parent->AddPage( this, title, g_NetFormat == m_IdNetType ); + + wxBoxSizer* MainBoxSizer = new wxBoxSizer( wxVERTICAL ); + SetSizer( MainBoxSizer ); + wxBoxSizer* UpperBoxSizer = new wxBoxSizer( wxHORIZONTAL ); + m_LowBoxSizer = new wxBoxSizer( wxVERTICAL ); + MainBoxSizer->Add( UpperBoxSizer, 0, wxGROW | wxALL, 5 ); + MainBoxSizer->Add( m_LowBoxSizer, 0, wxGROW | wxALL, 5 ); + + m_LeftBoxSizer = new wxBoxSizer( wxVERTICAL ); + m_RightBoxSizer = new wxBoxSizer( wxVERTICAL ); + m_RightOptionsBoxSizer = new wxBoxSizer( wxVERTICAL ); + UpperBoxSizer->Add( m_LeftBoxSizer, 0, wxGROW | wxALL, 5 ); + UpperBoxSizer->Add( m_RightBoxSizer, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5 ); + UpperBoxSizer->Add( m_RightOptionsBoxSizer, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5 ); + + if( idCheckBox ) + { + wxStaticText* text = new wxStaticText( this, -1, _( "Options:" ) ); + m_LeftBoxSizer->Add( text, 0, wxGROW | wxALL, 5 ); + + m_IsCurrentFormat = new wxCheckBox( this, idCheckBox, _( "Default format" ) ); + m_LeftBoxSizer->Add( m_IsCurrentFormat, 0, wxGROW | wxALL, 5 ); + + if( g_NetFormat == m_IdNetType ) + m_IsCurrentFormat->SetValue( TRUE ); + } + + /* Create the buttons: Create Neltist or browse Plugin and Cancel + * and a third button for plugins : Remove or Ok button */ + if( idCreateFile ) + { + wxButton* Button; + if( idCreateFile == ID_SETUP_PLUGIN ) /* This is the "add plugin" panel */ + Button = new wxButton( this, idCreateFile, _( "&Browse Plugin" ) ); + else + Button = new wxButton( this, idCreateFile, _( "&Netlist" ) ); + Button->SetForegroundColour( *wxRED ); + m_RightBoxSizer->Add( Button, 0, wxGROW | wxALL, 5 ); + + m_ButtonCancel = + Button = new wxButton( this, wxID_CANCEL, _( "&Cancel" ) ); + Button->SetForegroundColour( *wxBLUE ); + m_RightBoxSizer->Add( Button, 0, wxGROW | wxALL, 5 ); + + /* Add special buttons to plugin panels: + * for panel plugins: added the "delete" button + * for the last panel (add plugin) a Ok button is added + */ + if( idCreateFile == ID_SETUP_PLUGIN ) /* This is the "add plugin" panel: add Ok button */ + { + Button = new wxButton( this, ID_VALIDATE_PLUGIN, _( "&Ok" ) ); + m_RightOptionsBoxSizer->Add( Button, 0, wxGROW | wxALL, 5 ); + } + else if( id_NetType >= PANELCUSTOMBASE ) /* This is a plugin panel: add delete button */ + { + Button = new wxButton( this, ID_DELETE_PLUGIN, _( "&Delete" ) ); + m_RightOptionsBoxSizer->Add( Button, 0, wxGROW | wxALL, 5 ); + } + } +} /*************************************************************************************/ -WinEDA_NetlistFrame::WinEDA_NetlistFrame(WinEDA_SchematicFrame *parent, wxPoint& framepos): - wxDialog(parent, -1, _("Netlist"), framepos, wxSize(H_SIZE, V_SIZE), DIALOG_STYLE | MAYBE_RESIZE_BORDER) +WinEDA_NetlistFrame::WinEDA_NetlistFrame( WinEDA_SchematicFrame* parent, wxPoint& framepos ) : + wxDialog( parent, -1, _( "Netlist" ), framepos, + wxDefaultSize, DIALOG_STYLE | MAYBE_RESIZE_BORDER ) /*************************************************************************************/ + /* Constructor for the netlist generation dialog box */ { -int ii; + int ii; m_Parent = parent; - SetFont(*g_DialogFont); - if( g_NetFormat == NET_TYPE_NOT_INIT ) - g_NetFormat = NET_TYPE_PCBNEW; + SetFont( *g_DialogFont ); - for( ii = 0; ii < PANELCUSTOMBASE + CUSTOMPANEL_COUNTMAX; ii ++ ) + for( ii = 0; ii < PANELCUSTOMBASE + CUSTOMPANEL_COUNTMAX; ii++ ) { m_PanelNetType[ii] = NULL; } - if( (framepos.x == -1) && (framepos.y == -1) ) + if( framepos == wxDefaultPosition ) Centre(); - wxBoxSizer * GeneralBoxSizer = new wxBoxSizer(wxVERTICAL); - SetSizer(GeneralBoxSizer); + wxBoxSizer* GeneralBoxSizer = new wxBoxSizer( wxVERTICAL ); + SetSizer( GeneralBoxSizer ); m_NoteBook = new wxNotebook( this, ID_NETLIST_NOTEBOOK, - wxDefaultPosition, wxSize(H_SIZE - 6, V_SIZE - 28) ); - m_NoteBook->SetFont(*g_DialogFont); - GeneralBoxSizer->Add(m_NoteBook, 0, wxGROW|wxALL, 5); + wxDefaultPosition, wxDefaultSize ); + m_NoteBook->SetFont( *g_DialogFont ); + GeneralBoxSizer->Add( m_NoteBook, 0, wxGROW | wxALL, 5 ); - // Add panels + // Add notebook pages: // Add Panel FORMAT PCBNEW - m_PanelNetType[PANELPCBNEW] = new EDA_NoteBookPage(m_NoteBook, wxT("Pcbnew"), NET_TYPE_PCBNEW, - ID_CURRENT_FORMAT_IS_DEFAULT, ID_CREATE_NETLIST); + m_PanelNetType[PANELPCBNEW] = new EDA_NoteBookPage( m_NoteBook, wxT( + "Pcbnew" ), NET_TYPE_PCBNEW, + ID_CURRENT_FORMAT_IS_DEFAULT, + ID_CREATE_NETLIST ); // Add Panel FORMAT ORCADPCB2 - m_PanelNetType[PANELORCADPCB2] = new EDA_NoteBookPage(m_NoteBook, wxT("OrcadPCB2"), NET_TYPE_ORCADPCB2, - ID_CURRENT_FORMAT_IS_DEFAULT, ID_CREATE_NETLIST); + m_PanelNetType[PANELORCADPCB2] = new EDA_NoteBookPage( m_NoteBook, wxT( + "OrcadPCB2" ), NET_TYPE_ORCADPCB2, + ID_CURRENT_FORMAT_IS_DEFAULT, + ID_CREATE_NETLIST ); // Add Panel FORMAT CADSTAR - m_PanelNetType[PANELCADSTAR] = new EDA_NoteBookPage(m_NoteBook, wxT("CadStar"), NET_TYPE_CADSTAR, - ID_CURRENT_FORMAT_IS_DEFAULT, ID_CREATE_NETLIST); + m_PanelNetType[PANELCADSTAR] = new EDA_NoteBookPage( m_NoteBook, wxT( + "CadStar" ), NET_TYPE_CADSTAR, + ID_CURRENT_FORMAT_IS_DEFAULT, + ID_CREATE_NETLIST ); // Add Panel spice InstallPageSpice(); @@ -220,158 +326,169 @@ int ii; // Add custom panels: InstallCustomPages(); - // Problem in wxMSV >= 2.7.1 : we must call GetSizer for one notebook page - // to have a proper sizer commutation of all pages - m_PanelNetType[PANELPCBNEW]->GetSizer()->Fit(this); - m_PanelNetType[PANELPCBNEW]->GetSizer()->SetSizeHints(this); - - GetSizer()->Fit(this); - GetSizer()->SetSizeHints(this); + GetSizer()->Fit( this ); + GetSizer()->SetSizeHints( this ); } /*************************************************/ void WinEDA_NetlistFrame::InstallPageSpice() /*************************************************/ + /* Create the spice page */ { -wxButton * Button; -EDA_NoteBookPage * page; + wxButton* Button; + EDA_NoteBookPage* page; - page = m_PanelNetType[PANELSPICE] = new EDA_NoteBookPage(m_NoteBook, wxT("Spice"), NET_TYPE_SPICE, 0, 0); + page = m_PanelNetType[PANELSPICE] = new EDA_NoteBookPage( m_NoteBook, wxT( + "Spice" ), NET_TYPE_SPICE, 0, 0 ); - page->m_IsCurrentFormat = new wxCheckBox(page, ID_CURRENT_FORMAT_IS_DEFAULT, _("Default format")); + page->m_IsCurrentFormat = new wxCheckBox( page, ID_CURRENT_FORMAT_IS_DEFAULT, + _( "Default format" ) ); page->m_IsCurrentFormat->SetValue( g_NetFormat == NET_TYPE_SPICE ); - page->m_LeftBoxSizer->Add(page->m_IsCurrentFormat, 0, wxGROW|wxALL, 5); + page->m_LeftBoxSizer->Add( page->m_IsCurrentFormat, 0, wxGROW | wxALL, 5 ); -wxString netlist_opt[2] = { _("Use Net Names"), _("Use Net Numbers") }; - m_UseNetNamesInNetlist = new wxRadioBox(page, -1, _("Netlist Options:"), - wxDefaultPosition, wxDefaultSize, - 2, netlist_opt, 1, wxRA_SPECIFY_COLS); - if( ! g_OptNetListUseNames ) - m_UseNetNamesInNetlist->SetSelection(1); - page->m_LeftBoxSizer->Add(m_UseNetNamesInNetlist, 0, wxGROW|wxALL, 5); + wxString netlist_opt[2] = { _( "Use Net Names" ), _( "Use Net Numbers" ) }; + m_UseNetNamesInNetlist = new wxRadioBox( page, -1, _( "Netlist Options:" ), + wxDefaultPosition, wxDefaultSize, + 2, netlist_opt, 1, wxRA_SPECIFY_COLS ); + if( !g_OptNetListUseNames ) + m_UseNetNamesInNetlist->SetSelection( 1 ); + page->m_LeftBoxSizer->Add( m_UseNetNamesInNetlist, 0, wxGROW | wxALL, 5 ); page->m_CommandStringCtrl = new WinEDA_EnterText( page, - _("Simulator command:"), g_SimulatorCommandLine, - page->m_LowBoxSizer, wxSize(H_SIZE - 10, -1) ); + _( + "Simulator command:" ), + g_SimulatorCommandLine, + page->m_LowBoxSizer, wxDefaultSize ); + // Add buttons - Button = new wxButton( page, ID_CREATE_NETLIST, _("Netlist") ); - Button->SetForegroundColour(*wxRED); - page->m_RightBoxSizer->Add(Button, 0, wxGROW|wxALL, 5); + Button = new wxButton( page, ID_CREATE_NETLIST, _( "Netlist" ) ); + Button->SetForegroundColour( *wxRED ); + page->m_RightBoxSizer->Add( Button, 0, wxGROW | wxALL, 5 ); - Button = new wxButton(page, ID_RUN_SIMULATOR, _("&Run Simulator")); - Button->SetForegroundColour( wxColour(0, 100, 0) ); - page->m_RightBoxSizer->Add(Button, 0, wxGROW|wxALL, 5); + Button = new wxButton( page, ID_RUN_SIMULATOR, _( "&Run Simulator" ) ); + Button->SetForegroundColour( wxColour( 0, 100, 0 ) ); + page->m_RightBoxSizer->Add( Button, 0, wxGROW | wxALL, 5 ); - Button = new wxButton(page, wxID_CANCEL, _("&Cancel")); - Button->SetForegroundColour(*wxBLUE); - page->m_RightBoxSizer->Add(Button, 0, wxGROW|wxALL, 5); + Button = new wxButton( page, wxID_CANCEL, _( "&Cancel" ) ); + Button->SetForegroundColour( *wxBLUE ); + page->m_RightBoxSizer->Add( Button, 0, wxGROW | wxALL, 5 ); } /*************************************************/ void WinEDA_NetlistFrame::InstallCustomPages() /*************************************************/ + /* create the pages for custom netlist format selection: */ { -int ii, CustomCount; -wxString title, previoustitle, msg; -EDA_NoteBookPage * CurrPage; + int ii, CustomCount; + wxString title, previoustitle, msg; + EDA_NoteBookPage* CurrPage; - CustomCount = CUSTOMPANEL_COUNTMAX; - previoustitle = wxT("dummy_title"); + CustomCount = CUSTOMPANEL_COUNTMAX; + previoustitle = wxT( "dummy_title" ); for( ii = 0; ii < CustomCount; ii++ ) { - msg = CUSTOM_NETLIST_TITLE; - msg << ii + 1; - title = m_Parent->m_Parent->m_EDA_Config->Read(msg); + title = ReturnUserNetlistTypeName( ii == 0 ? true : false ); - // Install the panel only if it is the first panel not initialised if( title.IsEmpty() && previoustitle.IsEmpty() ) - break; + break; // No more panel to install + /* Install the panel "Add Plugin" after + * the last initialised panel */ previoustitle = title; if( title.IsEmpty() ) - CurrPage = m_PanelNetType[PANELCUSTOMBASE + ii] = - new EDA_NoteBookPage(m_NoteBook, _("Add Plugin"), - NET_TYPE_CUSTOM1 + ii, - ID_CURRENT_FORMAT_IS_DEFAULT, ID_SETUP_PLUGIN); - else - CurrPage = m_PanelNetType[PANELCUSTOMBASE + ii] = - new EDA_NoteBookPage(m_NoteBook, title, - NET_TYPE_CUSTOM1 + ii, - ID_CURRENT_FORMAT_IS_DEFAULT, ID_CREATE_NETLIST); + CurrPage = + m_PanelNetType[PANELCUSTOMBASE + ii] = + new EDA_NoteBookPage( m_NoteBook, _( "Add Plugin" ), + NET_TYPE_CUSTOM1 + ii, + ID_CURRENT_FORMAT_IS_DEFAULT, ID_SETUP_PLUGIN ); + else /* Install a plugin panel */ + CurrPage = + m_PanelNetType[PANELCUSTOMBASE + ii] = + new EDA_NoteBookPage( m_NoteBook, title, + NET_TYPE_CUSTOM1 + ii, + ID_CURRENT_FORMAT_IS_DEFAULT, ID_CREATE_NETLIST ); msg = CUSTOM_NETLIST_COMMAND; msg << ii + 1; - wxString Command = m_Parent->m_Parent->m_EDA_Config->Read(msg); - CurrPage->m_CommandStringCtrl = new WinEDA_EnterText( CurrPage, - _("Netlist command:"), Command, - CurrPage->m_LowBoxSizer, wxSize(H_SIZE - 10, -1) ); + wxString Command = m_Parent->m_Parent->m_EDA_Config->Read( msg ); + CurrPage->m_CommandStringCtrl = + new WinEDA_EnterText( CurrPage, + _( "Netlist command:" ), Command, + CurrPage->m_LowBoxSizer, + wxDefaultSize ); - CurrPage->m_TitleStringCtrl = new WinEDA_EnterText( CurrPage, - _("Title:"), title, - CurrPage->m_LowBoxSizer, wxSize(H_SIZE - 10, -1) ); + CurrPage->m_TitleStringCtrl = + new WinEDA_EnterText( CurrPage, + _( "Title:" ), title, + CurrPage->m_LowBoxSizer, + wxDefaultSize ); } } /***********************************************************/ -void WinEDA_NetlistFrame::SetupPlugin(wxCommandEvent& event) +void WinEDA_NetlistFrame::SetupPluginData( wxCommandEvent& event ) /***********************************************************/ + /* Browse the plugin files and set the m_CommandStringCtrl field */ { -wxString FullFileName, Mask, Path; - Mask = wxT("*"); - Path = g_EDA_Appl->m_BinDir; - FullFileName = EDA_FileSelector( _("Plugin files:"), - Path, /* Chemin par defaut */ - FullFileName, /* nom fichier par defaut */ - wxEmptyString, /* extension par defaut */ - Mask, /* Masque d'affichage */ - this, - wxFD_OPEN, - TRUE - ); + wxString FullFileName, Mask, Path; + + Mask = wxT( "*" ); + Path = g_EDA_Appl->m_BinDir; + FullFileName = EDA_FileSelector( _( "Plugin files:" ), + Path, /* Chemin par defaut */ + FullFileName, /* nom fichier par defaut */ + wxEmptyString, /* extension par defaut */ + Mask, /* Masque d'affichage */ + this, + wxFD_OPEN, + TRUE + ); if( FullFileName.IsEmpty() ) return; -EDA_NoteBookPage * CurrPage; - CurrPage = (EDA_NoteBookPage *) m_NoteBook->GetCurrentPage(); + EDA_NoteBookPage* CurrPage; + CurrPage = (EDA_NoteBookPage*) m_NoteBook->GetCurrentPage(); if( CurrPage == NULL ) return; - CurrPage->m_CommandStringCtrl->SetValue(FullFileName); + CurrPage->m_CommandStringCtrl->SetValue( FullFileName ); /* Get a title for this page */ wxString title = CurrPage->m_TitleStringCtrl->GetValue(); if( title.IsEmpty() ) - DisplayInfo(this, _("Now, you must choose a title for this netlist control page\nand close the dialog box")); + DisplayInfo( this, + _( + "Do not forget to choose a title for this netlist control page\nand close the dialog box" ) ); } // Fonctions de positionnement des variables d'option /*****************************************************************/ -void WinEDA_NetlistFrame::SelectNetlistType(wxCommandEvent& event) +void WinEDA_NetlistFrame::SelectNetlistType( wxCommandEvent& event ) /*****************************************************************/ { -int ii; -EDA_NoteBookPage * CurrPage; + int ii; + EDA_NoteBookPage* CurrPage; for( ii = 0; ii < PANELCUSTOMBASE + CUSTOMPANEL_COUNTMAX; ii++ ) if( m_PanelNetType[ii] ) - m_PanelNetType[ii]->m_IsCurrentFormat->SetValue(FALSE); + m_PanelNetType[ii]->m_IsCurrentFormat->SetValue( FALSE ); - CurrPage = (EDA_NoteBookPage *) m_NoteBook->GetCurrentPage(); + CurrPage = (EDA_NoteBookPage*) m_NoteBook->GetCurrentPage(); if( CurrPage == NULL ) return; g_NetFormat = CurrPage->m_IdNetType; - CurrPage->m_IsCurrentFormat->SetValue(TRUE); + CurrPage->m_IsCurrentFormat->SetValue( TRUE ); } @@ -379,7 +496,7 @@ EDA_NoteBookPage * CurrPage; void WinEDA_NetlistFrame::NetlistUpdateOpt() /***********************************************/ { -int ii; + int ii; g_SimulatorCommandLine = m_PanelNetType[PANELSPICE]->m_CommandStringCtrl->GetValue(); @@ -400,31 +517,37 @@ int ii; /**********************************************************/ -void WinEDA_NetlistFrame::GenNetlist(wxCommandEvent& event) +void WinEDA_NetlistFrame::GenNetlist( wxCommandEvent& event ) /**********************************************************/ + +/** Function GenNetlist + * Create the netlist file: + * calcualte the filename with the suitable extentions + * and run the netlist creator + */ { -wxString FullFileName, FileExt, Mask; -wxString msg, Command; -int netformat_tmp = g_NetFormat; + wxString FullFileName, FileExt, Mask; + wxString msg, Command; + int netformat_tmp = g_NetFormat; NetlistUpdateOpt(); -EDA_NoteBookPage * CurrPage; + EDA_NoteBookPage* CurrPage; - CurrPage = (EDA_NoteBookPage *) m_NoteBook->GetCurrentPage(); + CurrPage = (EDA_NoteBookPage*) m_NoteBook->GetCurrentPage(); g_NetFormat = CurrPage->m_IdNetType; - /* Calcul du nom du fichier netlist */ + /* Calculate the netlist filename */ FullFileName = ScreenSch->m_FileName; switch( g_NetFormat ) { case NET_TYPE_SPICE: - FileExt = wxT(".cir"); + FileExt = wxT( ".cir" ); break; case NET_TYPE_CADSTAR: - FileExt = wxT(".frp"); + FileExt = wxT( ".frp" ); break; default: @@ -432,36 +555,37 @@ EDA_NoteBookPage * CurrPage; break; } - Mask = wxT("*") + FileExt + wxT("*"); - ChangeFileNameExt(FullFileName, FileExt); + Mask = wxT( "*" ) + FileExt + wxT( "*" ); + ChangeFileNameExt( FullFileName, FileExt ); - FullFileName = EDA_FileSelector( _("Netlist files:"), - wxEmptyString, /* Chemin par defaut */ - FullFileName, /* nom fichier par defaut */ - FileExt, /* extension par defaut */ - Mask, /* Masque d'affichage */ - this, - wxFD_SAVE, - TRUE - ); + FullFileName = EDA_FileSelector( _( "Netlist files:" ), + wxEmptyString, /* Defaut path */ + FullFileName, /* Defaut filename */ + FileExt, /* Defaut extension */ + Mask, /* Mask for filename selection */ + this, + wxFD_SAVE, + TRUE + ); if( FullFileName.IsEmpty() ) return; m_Parent->MsgPanel->EraseMsgBox(); ReAnnotatePowerSymbolsOnly(); - if( CheckAnnotate(m_Parent, 0) ) + if( CheckAnnotate( m_Parent, 0 ) ) { - if( !IsOK( this, _("Must be Annotated, Continue ?") ) ) + if( !IsOK( this, _( "Must be Annotated, Continue ?" ) ) ) return; } /* Cleanup the entire hierarchy */ - EDA_ScreenList ScreenList(NULL); - for( SCH_SCREEN * screen = ScreenList.GetFirst(); screen != NULL; screen = ScreenList.GetNext() ) + EDA_ScreenList ScreenList( NULL ); + for( SCH_SCREEN* screen = ScreenList.GetFirst(); screen != NULL; screen = ScreenList.GetNext() ) { bool ModifyWires; - ModifyWires = screen->SchematicCleanUp(NULL); + ModifyWires = screen->SchematicCleanUp( NULL ); + // if wire list has changed, delete the Undo Redo list to avoid // pointer problems with deleted data if( ModifyWires ) @@ -477,31 +601,81 @@ EDA_NoteBookPage * CurrPage; switch( g_NetFormat ) { default: - WriteNetList(m_Parent, FullFileName, TRUE); + WriteNetList( m_Parent, FullFileName, TRUE ); break; case NET_TYPE_CADSTAR: case NET_TYPE_ORCADPCB2: - WriteNetList(m_Parent, FullFileName, FALSE); + WriteNetList( m_Parent, FullFileName, FALSE ); case NET_TYPE_SPICE: g_OptNetListUseNames = TRUE; // Used for pspice, gnucap if( m_UseNetNamesInNetlist->GetSelection() == 1 ) g_OptNetListUseNames = FALSE; - WriteNetList(m_Parent, FullFileName, g_OptNetListUseNames); + WriteNetList( m_Parent, FullFileName, g_OptNetListUseNames ); break; } + FreeTabNetList( g_TabObjNet, g_NbrObjNet ); g_NetFormat = netformat_tmp; + WriteCurrentNetlistSetup(); + + EndModal( NET_OK ); +} + + +/***********************************************************/ +void WinEDA_NetlistFrame::OnCancelClick( wxCommandEvent& event ) +/***********************************************************/ +{ + EndModal( NET_ABORT ); +} + + +/***********************************************************/ +void WinEDA_NetlistFrame::RunSimulator( wxCommandEvent& event ) +/***********************************************************/ +{ + wxString NetlistFullFileName, ExecFile, CommandLine; + + g_SimulatorCommandLine = + m_PanelNetType[PANELSPICE]->m_CommandStringCtrl->GetValue(); + g_SimulatorCommandLine.Trim( FALSE ); + g_SimulatorCommandLine.Trim( TRUE ); + ExecFile = g_SimulatorCommandLine.BeforeFirst( ' ' ); + + CommandLine = g_SimulatorCommandLine.AfterFirst( ' ' ); + + /* Calculate the netlist filename */ + NetlistFullFileName = ScreenSch->m_FileName; + ChangeFileNameExt( NetlistFullFileName, wxT( ".cir" ) ); + AddDelimiterString( NetlistFullFileName ); + CommandLine += wxT( " " ) + NetlistFullFileName; + + ExecuteFile( this, ExecFile, CommandLine ); +} + + +/*********************************************************/ +void WinEDA_NetlistFrame::WriteCurrentNetlistSetup( void ) +/*********************************************************/ + +/** Function WriteCurrentNetlistSetup + * Write the current netlist options setup in the configuration + */ +{ + wxString msg, Command; + NetlistUpdateOpt(); + // Update the new titles for( int ii = 0; ii < CUSTOMPANEL_COUNTMAX; ii++ ) { - EDA_NoteBookPage * CurrPage = m_PanelNetType[ii + PANELCUSTOMBASE]; + EDA_NoteBookPage* CurrPage = m_PanelNetType[ii + PANELCUSTOMBASE]; if( CurrPage == NULL ) break; - msg = wxT("Custom"); + msg = wxT( "Custom" ); msg << ii + 1; if( CurrPage->m_TitleStringCtrl ) { @@ -510,7 +684,7 @@ EDA_NoteBookPage * CurrPage; { msg = CUSTOM_NETLIST_TITLE; msg << ii + 1; - m_Parent->m_Parent->m_EDA_Config->Write(msg, title); + m_Parent->m_Parent->m_EDA_Config->Write( msg, title ); } } @@ -519,40 +693,55 @@ EDA_NoteBookPage * CurrPage; Command = CurrPage->m_CommandStringCtrl->GetValue(); msg = CUSTOM_NETLIST_COMMAND; msg << ii + 1; - m_Parent->m_Parent->m_EDA_Config->Write(msg, Command); + m_Parent->m_Parent->m_EDA_Config->Write( msg, Command ); } } - EndModal( 0 ); } -/***********************************************************/ -void WinEDA_NetlistFrame::OnCancelClick(wxCommandEvent& event) -/***********************************************************/ +/******************************************************************/ +void WinEDA_NetlistFrame::DeletePluginPanel( wxCommandEvent& event ) +/******************************************************************/ + +/** Function DeletePluginPanel + * Remove a panel relative to a netlist plugin + */ { - EndModal( -1 ); + EDA_NoteBookPage* CurrPage = (EDA_NoteBookPage*) m_NoteBook->GetCurrentPage(); + + CurrPage->m_CommandStringCtrl->SetValue( wxEmptyString ); + CurrPage->m_TitleStringCtrl->SetValue( wxEmptyString ); + if( CurrPage->m_IsCurrentFormat->IsChecked() ) + { + CurrPage->m_IsCurrentFormat->SetValue( FALSE ); + m_PanelNetType[PANELPCBNEW]->m_IsCurrentFormat->SetValue( TRUE ); + } + WriteCurrentNetlistSetup(); + EndModal( NET_PLUGIN_CHANGE ); } -/***********************************************************/ -void WinEDA_NetlistFrame::RunSimulator(wxCommandEvent& event) -/***********************************************************/ +/******************************************************************/ +void WinEDA_NetlistFrame::ValidatePluginPanel( wxCommandEvent& event ) +/******************************************************************/ + +/** Function ValidatePluginPanel + * Validate the panel info relative to a new netlist plugin + */ { -wxString NetlistFullFileName, ExecFile, CommandLine; + EDA_NoteBookPage* CurrPage = (EDA_NoteBookPage*) m_NoteBook->GetCurrentPage(); - g_SimulatorCommandLine = - m_PanelNetType[PANELSPICE]->m_CommandStringCtrl->GetValue(); - g_SimulatorCommandLine.Trim(FALSE); - g_SimulatorCommandLine.Trim(TRUE); - ExecFile = g_SimulatorCommandLine.BeforeFirst(' '); + if( CurrPage->m_CommandStringCtrl->GetValue() == wxEmptyString ) + { + DisplayError( this, _( "Error. You must provide a command String" ) ); + return; + } + if( CurrPage->m_TitleStringCtrl->GetValue() == wxEmptyString ) + { + DisplayError( this, _( "Error. You must provide a Title" ) ); + return; + } - CommandLine = g_SimulatorCommandLine.AfterFirst(' '); - - /* Calcul du nom du fichier netlist */ - NetlistFullFileName = ScreenSch->m_FileName; - ChangeFileNameExt(NetlistFullFileName, wxT(".cir")); - AddDelimiterString(NetlistFullFileName); - CommandLine += wxT(" ") + NetlistFullFileName; - - ExecuteFile(this, ExecFile, CommandLine); + WriteCurrentNetlistSetup(); + EndModal( NET_PLUGIN_CHANGE ); }