Pcbnew: Fixed: fully broken netlist import from eeschema when using time stamp (fully broken also in stable version).
This commit is contained in:
parent
aa51c05dc6
commit
b9ba67c8c3
|
@ -4,6 +4,13 @@ KiCad ChangeLog 2009
|
||||||
Please add newer entries at the top, list the date and your name with
|
Please add newer entries at the top, list the date and your name with
|
||||||
email address.
|
email address.
|
||||||
|
|
||||||
|
2009-apr-24 UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr>
|
||||||
|
================================================================================
|
||||||
|
++Pcbnew:
|
||||||
|
Fixed: fully broken netlist import from eeschema when using time stamp.
|
||||||
|
(normal operation worked fine)
|
||||||
|
Added: alawys print diags in dialog window when reading a netlist
|
||||||
|
|
||||||
2009-apr-17 UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr>
|
2009-apr-17 UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr>
|
||||||
================================================================================
|
================================================================================
|
||||||
++ALL:
|
++ALL:
|
||||||
|
|
|
@ -14,7 +14,6 @@ LIBVIEWER3D = ../3d-viewer/3d-viewer.a
|
||||||
OBJECTS = $(TARGET).o \
|
OBJECTS = $(TARGET).o \
|
||||||
class_cvpcb.o\
|
class_cvpcb.o\
|
||||||
class_board_item.o\
|
class_board_item.o\
|
||||||
memoire.o \
|
|
||||||
cvframe.o\
|
cvframe.o\
|
||||||
dialog_cvpcb_config.o\
|
dialog_cvpcb_config.o\
|
||||||
dialog_cvpcb_config_fbp.o\
|
dialog_cvpcb_config_fbp.o\
|
||||||
|
@ -48,21 +47,11 @@ displayframe.o: displayframe.cpp
|
||||||
|
|
||||||
listboxes.o: listboxes.cpp
|
listboxes.o: listboxes.cpp
|
||||||
|
|
||||||
drawframe.o: ../share/drawframe.cpp
|
|
||||||
$(CXX) -c $(EDACPPFLAGS) -o $@ ../share/$*.cpp
|
|
||||||
|
|
||||||
init.o: init.cpp
|
init.o: init.cpp
|
||||||
|
|
||||||
memoire.o: memoire.cpp
|
|
||||||
|
|
||||||
rdpcad.o: rdpcad.cpp
|
|
||||||
|
|
||||||
class_board_item.o: ../pcbnew/class_board_item.cpp
|
class_board_item.o: ../pcbnew/class_board_item.cpp
|
||||||
$(CXX) -c $(EDACPPFLAGS) -o $@ ../pcbnew/$*.cpp
|
$(CXX) -c $(EDACPPFLAGS) -o $@ ../pcbnew/$*.cpp
|
||||||
|
|
||||||
class_board.o: ../pcbnew/class_board.cpp
|
|
||||||
$(CXX) -c $(EDACPPFLAGS) -o $@ ../pcbnew/$*.cpp
|
|
||||||
|
|
||||||
class_drawsegment.o: ../pcbnew/class_drawsegment.cpp ../pcbnew/class_drawsegment.h
|
class_drawsegment.o: ../pcbnew/class_drawsegment.cpp ../pcbnew/class_drawsegment.h
|
||||||
$(CXX) -c $(EDACPPFLAGS) -o $@ ../pcbnew/$*.cpp
|
$(CXX) -c $(EDACPPFLAGS) -o $@ ../pcbnew/$*.cpp
|
||||||
|
|
||||||
|
@ -83,10 +72,6 @@ class_equipot.o: ../pcbnew/class_equipot.cpp
|
||||||
|
|
||||||
readschematicnetlist.o: readschematicnetlist.cpp
|
readschematicnetlist.o: readschematicnetlist.cpp
|
||||||
|
|
||||||
viewlogi.o: viewlogi.cpp
|
|
||||||
|
|
||||||
viewlnet.o: viewlnet.cpp
|
|
||||||
|
|
||||||
loadcmp.o: loadcmp.cpp
|
loadcmp.o: loadcmp.cpp
|
||||||
|
|
||||||
savecmp.o: savecmp.cpp
|
savecmp.o: savecmp.cpp
|
||||||
|
@ -100,7 +85,7 @@ ioascii.o: ../pcbnew/ioascii.cpp
|
||||||
|
|
||||||
listlib.o: listlib.cpp
|
listlib.o: listlib.cpp
|
||||||
|
|
||||||
cfg.o: cfg.cpp cfg.h
|
cfg.o: cfg.cpp
|
||||||
|
|
||||||
menucfg.o: menucfg.cpp dialog_cvpcb_config.cpp dialog_cvpcb_config.h
|
menucfg.o: menucfg.cpp dialog_cvpcb_config.cpp dialog_cvpcb_config.h
|
||||||
|
|
||||||
|
|
|
@ -46,7 +46,8 @@ set(PCBNEW_SRCS
|
||||||
dialog_graphic_item_properties.cpp
|
dialog_graphic_item_properties.cpp
|
||||||
dialog_graphic_item_properties_base.cpp
|
dialog_graphic_item_properties_base.cpp
|
||||||
# dialog_initpcb.cpp
|
# dialog_initpcb.cpp
|
||||||
# dialog_netlist.cpp
|
dialog_netlist.cpp
|
||||||
|
dialog_netlist_fbp.cpp
|
||||||
dialog_pcb_text_properties.cpp
|
dialog_pcb_text_properties.cpp
|
||||||
zones_non_copper_type_functions.cpp
|
zones_non_copper_type_functions.cpp
|
||||||
dialog_non_copper_zones_properties_base.cpp
|
dialog_non_copper_zones_properties_base.cpp
|
||||||
|
|
|
@ -1,339 +1,83 @@
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
// Name: dialog_netlist.cpp
|
// Name: dialog_netlist.cpp
|
||||||
// Purpose:
|
|
||||||
// Author: jean-pierre Charras
|
// Author: jean-pierre Charras
|
||||||
// Modified by:
|
// Licence: GPL
|
||||||
// Created: 26/02/2006 17:42:19
|
|
||||||
// RCS-ID:
|
|
||||||
// Copyright: License GNU
|
|
||||||
// Licence:
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
// Generated by DialogBlocks (unregistered), 26/02/2006 17:42:19
|
#include "fctsys.h"
|
||||||
|
#include "common.h"
|
||||||
|
#include "pcbnew.h"
|
||||||
|
|
||||||
// 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
|
|
||||||
|
|
||||||
////@begin includes
|
|
||||||
////@end includes
|
|
||||||
|
|
||||||
#include "dialog_netlist.h"
|
#include "dialog_netlist.h"
|
||||||
|
|
||||||
////@begin XPM images
|
extern void ReadPcbNetlist( WinEDA_PcbFrame* aFrame,
|
||||||
////@end XPM images
|
const wxString& aNetlistFullFilename,
|
||||||
|
const wxString& aCmpFullFileName,
|
||||||
|
wxTextCtrl* aMessageWindow,
|
||||||
|
bool aChangeFootprint,
|
||||||
|
bool aDeleteBadTracks,
|
||||||
|
bool aDeleteExtraFootprints,
|
||||||
|
bool aSelect_By_Timestamp );
|
||||||
|
|
||||||
static bool DisplayWarning;
|
extern void TestFor_Duplicate_Missing_And_Extra_Footprints( wxWindow* frame,
|
||||||
|
const wxString& NetlistFullFilename,
|
||||||
|
BOARD* Pcb );
|
||||||
|
|
||||||
/*!
|
|
||||||
* WinEDA_NetlistFrame type definition
|
|
||||||
*/
|
|
||||||
|
|
||||||
IMPLEMENT_DYNAMIC_CLASS( WinEDA_NetlistFrame, wxDialog )
|
|
||||||
|
|
||||||
/*!
|
/*************************************************************************/
|
||||||
* WinEDA_NetlistFrame event table definition
|
void WinEDA_PcbFrame::InstallNetlistFrame( wxDC* DC, const wxPoint& pos )
|
||||||
*/
|
/*************************************************************************/
|
||||||
|
|
||||||
BEGIN_EVENT_TABLE( WinEDA_NetlistFrame, wxDialog )
|
|
||||||
|
|
||||||
////@begin WinEDA_NetlistFrame event table entries
|
|
||||||
EVT_BUTTON( ID_OPEN_NELIST, WinEDA_NetlistFrame::OnOpenNelistClick )
|
|
||||||
|
|
||||||
EVT_BUTTON( ID_READ_NETLIST_FILE, WinEDA_NetlistFrame::OnReadNetlistFileClick )
|
|
||||||
|
|
||||||
EVT_BUTTON( ID_TEST_NETLIST, WinEDA_NetlistFrame::OnTestNetlistClick )
|
|
||||||
|
|
||||||
EVT_BUTTON( ID_COMPILE_RATSNEST, WinEDA_NetlistFrame::OnCompileRatsnestClick )
|
|
||||||
|
|
||||||
EVT_BUTTON( wxID_CANCEL, WinEDA_NetlistFrame::OnCancelClick )
|
|
||||||
|
|
||||||
////@end WinEDA_NetlistFrame event table entries
|
|
||||||
|
|
||||||
END_EVENT_TABLE()
|
|
||||||
|
|
||||||
/*!
|
|
||||||
* WinEDA_NetlistFrame constructors
|
|
||||||
*/
|
|
||||||
|
|
||||||
WinEDA_NetlistFrame::WinEDA_NetlistFrame()
|
|
||||||
{
|
{
|
||||||
|
/* Setup the default netlist file name according to the board file name */
|
||||||
|
wxFileName fn = GetScreen()->m_FileName;
|
||||||
|
|
||||||
|
fn.SetExt( NetExtBuffer );
|
||||||
|
|
||||||
|
DIALOG_NETLIST frame( this, DC, fn.GetFullPath() );
|
||||||
|
|
||||||
|
frame.ShowModal();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
WinEDA_NetlistFrame::WinEDA_NetlistFrame( WinEDA_PcbFrame* parent,
|
DIALOG_NETLIST::DIALOG_NETLIST( WinEDA_PcbFrame* aParent, wxDC * aDC, const wxString & aNetlistFull_Filename )
|
||||||
wxDC* DC,
|
: DIALOG_NETLIST_FBP(aParent)
|
||||||
const wxString& aNetlistFilename,
|
|
||||||
wxWindowID id,
|
|
||||||
const wxString& caption,
|
|
||||||
const wxPoint& pos,
|
|
||||||
const wxSize& size,
|
|
||||||
long style )
|
|
||||||
{
|
{
|
||||||
m_Parent = parent;
|
m_Parent = aParent;
|
||||||
m_DC = DC;
|
m_DC = aDC;
|
||||||
|
m_NetlistFilenameCtrl->SetValue(aNetlistFull_Filename);
|
||||||
|
|
||||||
Create( parent, id, caption, pos, size, style );
|
Init();
|
||||||
|
|
||||||
m_NetlistFilenameCtrl->SetValue( aNetlistFilename );
|
if( GetSizer() )
|
||||||
|
GetSizer()->SetSizeHints( this );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*!
|
void DIALOG_NETLIST::Init()
|
||||||
* WinEDA_NetlistFrame destructor
|
|
||||||
*/
|
|
||||||
|
|
||||||
WinEDA_NetlistFrame::~WinEDA_NetlistFrame()
|
|
||||||
{
|
{
|
||||||
|
SetFocus();
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
void DIALOG_NETLIST::OnOpenNelistClick( wxCommandEvent& event )
|
||||||
* WinEDA_NetlistFrame creator
|
|
||||||
*/
|
|
||||||
|
|
||||||
bool WinEDA_NetlistFrame::Create( wxWindow* parent,
|
|
||||||
wxWindowID id,
|
|
||||||
const wxString& caption,
|
|
||||||
const wxPoint& pos,
|
|
||||||
const wxSize& size,
|
|
||||||
long style )
|
|
||||||
{
|
{
|
||||||
////@begin WinEDA_NetlistFrame member initialisation
|
wxString fullfilename;
|
||||||
m_Select_By_Timestamp = NULL;
|
|
||||||
m_ChangeExistingFootprintCtrl = NULL;
|
|
||||||
m_DeleteBadTracks = NULL;
|
|
||||||
m_DisplayWarningCtrl = NULL;
|
|
||||||
m_RemoveExtraFootprintsCtrl = NULL;
|
|
||||||
m_btClose = NULL;
|
|
||||||
m_NetlistFilenameCtrl = NULL;
|
|
||||||
m_MessageWindow = NULL;
|
|
||||||
StdDialogButtonSizer = NULL;
|
|
||||||
////@end WinEDA_NetlistFrame member initialisation
|
|
||||||
|
|
||||||
////@begin WinEDA_NetlistFrame creation
|
wxFileDialog FilesDialog( this, _( "Netlist Selection:" ), wxGetCwd(),
|
||||||
SetExtraStyle(wxWS_EX_BLOCK_EVENTS);
|
wxEmptyString, NetlistFileWildcard,
|
||||||
wxDialog::Create( parent, id, caption, pos, size, style );
|
wxFD_DEFAULT_STYLE | wxFD_FILE_MUST_EXIST );
|
||||||
|
|
||||||
CreateControls();
|
if( FilesDialog.ShowModal() != wxID_OK )
|
||||||
if (GetSizer())
|
|
||||||
{
|
|
||||||
GetSizer()->SetSizeHints(this);
|
|
||||||
}
|
|
||||||
Centre();
|
|
||||||
////@end WinEDA_NetlistFrame creation
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*!
|
|
||||||
* Control creation for WinEDA_NetlistFrame
|
|
||||||
*/
|
|
||||||
|
|
||||||
void WinEDA_NetlistFrame::CreateControls()
|
|
||||||
{
|
|
||||||
SetFont( *g_DialogFont );
|
|
||||||
|
|
||||||
////@begin WinEDA_NetlistFrame content construction
|
|
||||||
// Generated by DialogBlocks, 29/04/2008 20:56:53 (unregistered)
|
|
||||||
|
|
||||||
WinEDA_NetlistFrame* itemDialog1 = this;
|
|
||||||
|
|
||||||
wxBoxSizer* itemBoxSizer2 = new wxBoxSizer(wxVERTICAL);
|
|
||||||
itemDialog1->SetSizer(itemBoxSizer2);
|
|
||||||
|
|
||||||
wxBoxSizer* itemBoxSizer3 = new wxBoxSizer(wxHORIZONTAL);
|
|
||||||
itemBoxSizer2->Add(itemBoxSizer3, 0, wxGROW|wxLEFT|wxRIGHT|wxTOP, 5);
|
|
||||||
|
|
||||||
wxBoxSizer* itemBoxSizer4 = new wxBoxSizer(wxHORIZONTAL);
|
|
||||||
itemBoxSizer3->Add(itemBoxSizer4, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5);
|
|
||||||
|
|
||||||
wxBoxSizer* itemBoxSizer5 = new wxBoxSizer(wxVERTICAL);
|
|
||||||
itemBoxSizer4->Add(itemBoxSizer5, 0, wxGROW|wxALL, 5);
|
|
||||||
|
|
||||||
wxArrayString m_Select_By_TimestampStrings;
|
|
||||||
m_Select_By_TimestampStrings.Add(_("Reference"));
|
|
||||||
m_Select_By_TimestampStrings.Add(_("Timestamp"));
|
|
||||||
m_Select_By_Timestamp = new wxRadioBox( itemDialog1, ID_SELECTION_FOOTPRINT_MODE, _("Module Selection:"), wxDefaultPosition, wxDefaultSize, m_Select_By_TimestampStrings, 1, wxRA_SPECIFY_COLS );
|
|
||||||
m_Select_By_Timestamp->SetSelection(0);
|
|
||||||
if (WinEDA_NetlistFrame::ShowToolTips())
|
|
||||||
m_Select_By_Timestamp->SetToolTip(_("Select how footprints are recognized:\nby their reference (U1, R3...) (normal setting)\nor their time stamp (special setting after a full schematic reannotation)"));
|
|
||||||
itemBoxSizer5->Add(m_Select_By_Timestamp, 0, wxGROW|wxALL, 5);
|
|
||||||
|
|
||||||
wxArrayString m_ChangeExistingFootprintCtrlStrings;
|
|
||||||
m_ChangeExistingFootprintCtrlStrings.Add(_("Keep"));
|
|
||||||
m_ChangeExistingFootprintCtrlStrings.Add(_("Change"));
|
|
||||||
m_ChangeExistingFootprintCtrl = new wxRadioBox( itemDialog1, ID_KEEP_OR_CHANGE_FOOTPRINTS, _("Exchange Module:"), wxDefaultPosition, wxDefaultSize, m_ChangeExistingFootprintCtrlStrings, 1, wxRA_SPECIFY_COLS );
|
|
||||||
m_ChangeExistingFootprintCtrl->SetSelection(0);
|
|
||||||
if (WinEDA_NetlistFrame::ShowToolTips())
|
|
||||||
m_ChangeExistingFootprintCtrl->SetToolTip(_("Keep or change an existing footprint when the netlist gives a different footprint"));
|
|
||||||
itemBoxSizer5->Add(m_ChangeExistingFootprintCtrl, 0, wxGROW|wxALL, 5);
|
|
||||||
|
|
||||||
itemBoxSizer4->Add(5, 5, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5);
|
|
||||||
|
|
||||||
wxBoxSizer* itemBoxSizer9 = new wxBoxSizer(wxVERTICAL);
|
|
||||||
itemBoxSizer4->Add(itemBoxSizer9, 0, wxGROW|wxALL, 5);
|
|
||||||
|
|
||||||
wxArrayString m_DeleteBadTracksStrings;
|
|
||||||
m_DeleteBadTracksStrings.Add(_("Keep"));
|
|
||||||
m_DeleteBadTracksStrings.Add(_("Delete"));
|
|
||||||
m_DeleteBadTracks = new wxRadioBox( itemDialog1, ID_DELETE_TRACKS_OPTION, _("Bad Tracks Deletion:"), wxDefaultPosition, wxDefaultSize, m_DeleteBadTracksStrings, 1, wxRA_SPECIFY_COLS );
|
|
||||||
m_DeleteBadTracks->SetSelection(0);
|
|
||||||
if (WinEDA_NetlistFrame::ShowToolTips())
|
|
||||||
m_DeleteBadTracks->SetToolTip(_("Keep or delete bad tracks after a netlist change"));
|
|
||||||
itemBoxSizer9->Add(m_DeleteBadTracks, 0, wxGROW|wxALL, 5);
|
|
||||||
|
|
||||||
wxStaticBox* itemStaticBoxSizer11Static = new wxStaticBox(itemDialog1, wxID_ANY, _("Options"));
|
|
||||||
wxStaticBoxSizer* itemStaticBoxSizer11 = new wxStaticBoxSizer(itemStaticBoxSizer11Static, wxVERTICAL);
|
|
||||||
itemBoxSizer9->Add(itemStaticBoxSizer11, 0, wxGROW|wxALL, 5);
|
|
||||||
|
|
||||||
m_DisplayWarningCtrl = new wxCheckBox( itemDialog1, ID_DISPLAY_WARNINGS_OPT, _("Display Warnings"), wxDefaultPosition, wxDefaultSize, wxCHK_2STATE );
|
|
||||||
m_DisplayWarningCtrl->SetValue(false);
|
|
||||||
itemStaticBoxSizer11->Add(m_DisplayWarningCtrl, 0, wxGROW|wxALL, 5);
|
|
||||||
|
|
||||||
m_RemoveExtraFootprintsCtrl = new wxCheckBox( itemDialog1, ID_REMOVE_EXTRA_FOOTPRINTS_OPT, _("Remove Extra Footprints"), wxDefaultPosition, wxDefaultSize, 0 );
|
|
||||||
m_RemoveExtraFootprintsCtrl->SetValue(false);
|
|
||||||
if (WinEDA_NetlistFrame::ShowToolTips())
|
|
||||||
m_RemoveExtraFootprintsCtrl->SetToolTip(_("Remove footprints found on the Board but not in netlist\nNote: only not locked footprints will be removed"));
|
|
||||||
itemStaticBoxSizer11->Add(m_RemoveExtraFootprintsCtrl, 0, wxGROW|wxALL, 5);
|
|
||||||
|
|
||||||
itemBoxSizer3->Add(5, 5, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5);
|
|
||||||
|
|
||||||
wxBoxSizer* itemBoxSizer15 = new wxBoxSizer(wxVERTICAL);
|
|
||||||
itemBoxSizer3->Add(itemBoxSizer15, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5);
|
|
||||||
|
|
||||||
wxButton* itemButton16 = new wxButton( itemDialog1, ID_OPEN_NELIST, _("Browse Netlist Files"), wxDefaultPosition, wxDefaultSize, 0 );
|
|
||||||
itemButton16->SetForegroundColour(wxColour(217, 0, 0));
|
|
||||||
itemBoxSizer15->Add(itemButton16, 0, wxGROW|wxALL, 5);
|
|
||||||
|
|
||||||
wxButton* itemButton17 = new wxButton( itemDialog1, ID_READ_NETLIST_FILE, _("Read Current Netlist"), wxDefaultPosition, wxDefaultSize, 0 );
|
|
||||||
itemButton17->SetForegroundColour(wxColour(0, 128, 0));
|
|
||||||
itemBoxSizer15->Add(itemButton17, 0, wxGROW|wxALL, 5);
|
|
||||||
|
|
||||||
wxButton* itemButton18 = new wxButton( itemDialog1, ID_TEST_NETLIST, _("Footprints Test"), wxDefaultPosition, wxDefaultSize, 0 );
|
|
||||||
if (WinEDA_NetlistFrame::ShowToolTips())
|
|
||||||
itemButton18->SetToolTip(_("Read the current neltist file and list missing and extra footprints"));
|
|
||||||
itemButton18->SetForegroundColour(wxColour(0, 128, 128));
|
|
||||||
itemBoxSizer15->Add(itemButton18, 0, wxGROW|wxALL, 5);
|
|
||||||
|
|
||||||
wxButton* itemButton19 = new wxButton( itemDialog1, ID_COMPILE_RATSNEST, _("Rebuild Board Connectivity"), wxDefaultPosition, wxDefaultSize, 0 );
|
|
||||||
if (WinEDA_NetlistFrame::ShowToolTips())
|
|
||||||
itemButton19->SetToolTip(_("Rebuild the full ratsnest (usefull after a manual pad netname edition)"));
|
|
||||||
itemButton19->SetForegroundColour(wxColour(0, 0, 132));
|
|
||||||
itemBoxSizer15->Add(itemButton19, 0, wxGROW|wxALL, 5);
|
|
||||||
|
|
||||||
m_btClose = new wxButton( itemDialog1, wxID_CANCEL, _("Close"), wxDefaultPosition, wxDefaultSize, 0 );
|
|
||||||
m_btClose->SetDefault();
|
|
||||||
itemBoxSizer15->Add(m_btClose, 0, wxGROW|wxALL, 5);
|
|
||||||
|
|
||||||
wxStaticBox* itemStaticBoxSizer21Static = new wxStaticBox(itemDialog1, wxID_ANY, _("Netlist File:"));
|
|
||||||
wxStaticBoxSizer* itemStaticBoxSizer21 = new wxStaticBoxSizer(itemStaticBoxSizer21Static, wxVERTICAL);
|
|
||||||
itemStaticBoxSizer21Static->SetForegroundColour(wxColour(0, 0, 255));
|
|
||||||
itemBoxSizer2->Add(itemStaticBoxSizer21, 0, wxGROW|wxALL, 5);
|
|
||||||
|
|
||||||
m_NetlistFilenameCtrl = new wxTextCtrl( itemDialog1, ID_TEXT_NETLIST_FILENAME, _T(""), wxDefaultPosition, wxDefaultSize, 0 );
|
|
||||||
itemStaticBoxSizer21->Add(m_NetlistFilenameCtrl, 0, wxGROW|wxALL, 5);
|
|
||||||
|
|
||||||
m_MessageWindow = new wxTextCtrl( itemDialog1, ID_TEXTCTRL, _T(""), wxDefaultPosition, wxSize(-1, 120), wxTE_MULTILINE|wxTE_READONLY );
|
|
||||||
itemBoxSizer2->Add(m_MessageWindow, 1, wxGROW|wxALL, 10);
|
|
||||||
|
|
||||||
wxStaticLine* itemStaticLine24 = new wxStaticLine( itemDialog1, ID_STATICLINE, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
|
|
||||||
itemBoxSizer2->Add(itemStaticLine24, 0, wxGROW|wxLEFT|wxRIGHT, 5);
|
|
||||||
|
|
||||||
StdDialogButtonSizer = new wxStdDialogButtonSizer;
|
|
||||||
|
|
||||||
itemBoxSizer2->Add(StdDialogButtonSizer, 0, wxGROW|wxALL, 10);
|
|
||||||
wxButton* itemButton26 = new wxButton( itemDialog1, wxID_CANCEL, _("&Close"), wxDefaultPosition, wxDefaultSize, 0 );
|
|
||||||
itemButton26->SetForegroundColour(wxColour(0, 0, 255));
|
|
||||||
StdDialogButtonSizer->AddButton(itemButton26);
|
|
||||||
|
|
||||||
StdDialogButtonSizer->Realize();
|
|
||||||
|
|
||||||
// Set validators
|
|
||||||
m_DisplayWarningCtrl->SetValidator( wxGenericValidator(& DisplayWarning) );
|
|
||||||
////@end WinEDA_NetlistFrame content construction
|
|
||||||
|
|
||||||
m_btClose->SetFocus();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*!
|
|
||||||
* Should we show tooltips?
|
|
||||||
*/
|
|
||||||
|
|
||||||
bool WinEDA_NetlistFrame::ShowToolTips()
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*!
|
|
||||||
* Get bitmap resources
|
|
||||||
*/
|
|
||||||
|
|
||||||
wxBitmap WinEDA_NetlistFrame::GetBitmapResource( const wxString& name )
|
|
||||||
{
|
|
||||||
// Bitmap retrieval
|
|
||||||
////@begin WinEDA_NetlistFrame bitmap retrieval
|
|
||||||
wxUnusedVar(name);
|
|
||||||
return wxNullBitmap;
|
|
||||||
////@end WinEDA_NetlistFrame bitmap retrieval
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*!
|
|
||||||
* Get icon resources
|
|
||||||
*/
|
|
||||||
|
|
||||||
wxIcon WinEDA_NetlistFrame::GetIconResource( const wxString& name )
|
|
||||||
{
|
|
||||||
// Icon retrieval
|
|
||||||
////@begin WinEDA_NetlistFrame icon retrieval
|
|
||||||
wxUnusedVar(name);
|
|
||||||
return wxNullIcon;
|
|
||||||
////@end WinEDA_NetlistFrame icon retrieval
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*!
|
|
||||||
* wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_OPEN_NELIST
|
|
||||||
*/
|
|
||||||
|
|
||||||
void WinEDA_NetlistFrame::OnOpenNelistClick( wxCommandEvent& event )
|
|
||||||
{
|
|
||||||
wxString fullfilename, mask( wxT( "*" ) );
|
|
||||||
|
|
||||||
fullfilename = m_NetlistFilenameCtrl->GetValue();
|
|
||||||
mask += NetExtBuffer;
|
|
||||||
|
|
||||||
fullfilename = EDA_FileSelector( _( "Netlist Selection:" ),
|
|
||||||
wxEmptyString, /* Chemin par defaut */
|
|
||||||
fullfilename, /* nom fichier par defaut */
|
|
||||||
NetExtBuffer, /* extension par defaut */
|
|
||||||
mask, /* Masque d'affichage */
|
|
||||||
this,
|
|
||||||
0,
|
|
||||||
TRUE
|
|
||||||
);
|
|
||||||
|
|
||||||
if( fullfilename.IsEmpty() )
|
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
fullfilename = FilesDialog.GetPath( );
|
||||||
|
|
||||||
m_NetlistFilenameCtrl->SetValue( fullfilename );
|
m_NetlistFilenameCtrl->SetValue( fullfilename );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*!
|
void DIALOG_NETLIST::OnReadNetlistFileClick( wxCommandEvent& event )
|
||||||
* wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_READ_NETLIST_FILE
|
|
||||||
*/
|
|
||||||
|
|
||||||
void WinEDA_NetlistFrame::OnReadNetlistFileClick( wxCommandEvent& event )
|
|
||||||
{
|
{
|
||||||
wxFileName fn = m_NetlistFilenameCtrl->GetValue();
|
wxFileName fn = m_NetlistFilenameCtrl->GetValue();
|
||||||
fn.SetExt( NetCmpExtBuffer );
|
fn.SetExt( NetCmpExtBuffer );
|
||||||
|
@ -342,17 +86,12 @@ void WinEDA_NetlistFrame::OnReadNetlistFileClick( wxCommandEvent& event )
|
||||||
fn.GetFullPath(), m_MessageWindow,
|
fn.GetFullPath(), m_MessageWindow,
|
||||||
m_ChangeExistingFootprintCtrl->GetSelection() == 1 ? TRUE : FALSE,
|
m_ChangeExistingFootprintCtrl->GetSelection() == 1 ? TRUE : FALSE,
|
||||||
m_DeleteBadTracks->GetSelection() == 1 ? TRUE : FALSE,
|
m_DeleteBadTracks->GetSelection() == 1 ? TRUE : FALSE,
|
||||||
m_RemoveExtraFootprintsCtrl->IsChecked(),
|
m_RemoveExtraFootprintsCtrl->GetSelection() == 1 ? TRUE : FALSE,
|
||||||
m_Select_By_Timestamp->GetSelection() == 1 ? TRUE : FALSE,
|
m_Select_By_Timestamp->GetSelection() == 1 ? TRUE : FALSE );
|
||||||
m_DisplayWarningCtrl->IsChecked());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*!
|
void DIALOG_NETLIST::OnTestFootprintsClick( wxCommandEvent& event )
|
||||||
* wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_TEST_NETLIST
|
|
||||||
*/
|
|
||||||
|
|
||||||
void WinEDA_NetlistFrame::OnTestNetlistClick( wxCommandEvent& event )
|
|
||||||
{
|
{
|
||||||
TestFor_Duplicate_Missing_And_Extra_Footprints( this, m_NetlistFilenameCtrl->GetValue(), m_Parent->GetBoard() );
|
TestFor_Duplicate_Missing_And_Extra_Footprints( this, m_NetlistFilenameCtrl->GetValue(), m_Parent->GetBoard() );
|
||||||
}
|
}
|
||||||
|
@ -362,7 +101,7 @@ void WinEDA_NetlistFrame::OnTestNetlistClick( wxCommandEvent& event )
|
||||||
* wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_COMPILE_RATSNEST
|
* wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_COMPILE_RATSNEST
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void WinEDA_NetlistFrame::OnCompileRatsnestClick( wxCommandEvent& event )
|
void DIALOG_NETLIST::OnCompileRatsnestClick( wxCommandEvent& event )
|
||||||
{
|
{
|
||||||
m_Parent->Compile_Ratsnest( m_DC, TRUE );
|
m_Parent->Compile_Ratsnest( m_DC, TRUE );
|
||||||
}
|
}
|
||||||
|
@ -372,7 +111,7 @@ void WinEDA_NetlistFrame::OnCompileRatsnestClick( wxCommandEvent& event )
|
||||||
* wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_CANCEL
|
* wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_CANCEL
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void WinEDA_NetlistFrame::OnCancelClick( wxCommandEvent& event )
|
void DIALOG_NETLIST::OnCancelClick( wxCommandEvent& event )
|
||||||
{
|
{
|
||||||
EndModal( -1 );
|
EndModal( -1 );
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,13 +1,7 @@
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
// Name: dialog_netlist.h
|
// Name: dialog_netlist.h
|
||||||
// Purpose:
|
/// Author: jean-pierre Charras
|
||||||
// Author: jean-pierre Charras
|
// Licence: GPL
|
||||||
// Modified by:
|
|
||||||
// Created: 26/02/2006 17:42:19
|
|
||||||
// RCS-ID:
|
|
||||||
// Copyright: License GNU
|
|
||||||
// Licence:
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
// Generated by DialogBlocks (unregistered), 26/02/2006 17:42:19
|
// Generated by DialogBlocks (unregistered), 26/02/2006 17:42:19
|
||||||
|
@ -15,132 +9,29 @@
|
||||||
#ifndef _DIALOG_NETLIST_H_
|
#ifndef _DIALOG_NETLIST_H_
|
||||||
#define _DIALOG_NETLIST_H_
|
#define _DIALOG_NETLIST_H_
|
||||||
|
|
||||||
/*!
|
#include "dialog_netlist_fbp.h"
|
||||||
* Includes
|
|
||||||
*/
|
|
||||||
|
|
||||||
////@begin includes
|
|
||||||
#include "wx/valgen.h"
|
|
||||||
#include "wx/statline.h"
|
|
||||||
////@end includes
|
|
||||||
|
|
||||||
/*!
|
|
||||||
* Forward declarations
|
|
||||||
*/
|
|
||||||
|
|
||||||
////@begin forward declarations
|
|
||||||
class wxStdDialogButtonSizer;
|
|
||||||
////@end forward declarations
|
|
||||||
|
|
||||||
/*!
|
|
||||||
* Control identifiers
|
|
||||||
*/
|
|
||||||
|
|
||||||
////@begin control identifiers
|
|
||||||
#define ID_DIALOG 10000
|
|
||||||
#define ID_SELECTION_FOOTPRINT_MODE 10005
|
|
||||||
#define ID_KEEP_OR_CHANGE_FOOTPRINTS 10007
|
|
||||||
#define ID_DELETE_TRACKS_OPTION 10006
|
|
||||||
#define ID_DISPLAY_WARNINGS_OPT 10008
|
|
||||||
#define ID_REMOVE_EXTRA_FOOTPRINTS_OPT 10011
|
|
||||||
#define ID_OPEN_NELIST 10001
|
|
||||||
#define ID_READ_NETLIST_FILE 10002
|
|
||||||
#define ID_TEST_NETLIST 10003
|
|
||||||
#define ID_COMPILE_RATSNEST 10004
|
|
||||||
#define ID_TEXT_NETLIST_FILENAME 10012
|
|
||||||
#define ID_TEXTCTRL 10009
|
|
||||||
#define ID_STATICLINE 10010
|
|
||||||
#define SYMBOL_WINEDA_NETLISTFRAME_STYLE wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER
|
|
||||||
#define SYMBOL_WINEDA_NETLISTFRAME_TITLE _("Netlist Dialog")
|
|
||||||
#define SYMBOL_WINEDA_NETLISTFRAME_IDNAME ID_DIALOG
|
|
||||||
#define SYMBOL_WINEDA_NETLISTFRAME_SIZE wxSize(400, 300)
|
|
||||||
#define SYMBOL_WINEDA_NETLISTFRAME_POSITION wxDefaultPosition
|
|
||||||
////@end control identifiers
|
|
||||||
|
|
||||||
/*!
|
|
||||||
* Compatibility
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef wxCLOSE_BOX
|
|
||||||
#define wxCLOSE_BOX 0x1000
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/*!
|
class DIALOG_NETLIST : public DIALOG_NETLIST_FBP
|
||||||
* WinEDA_NetlistFrame class declaration
|
|
||||||
*/
|
|
||||||
|
|
||||||
class WinEDA_NetlistFrame: public wxDialog
|
|
||||||
{
|
{
|
||||||
DECLARE_DYNAMIC_CLASS( WinEDA_NetlistFrame )
|
private:
|
||||||
DECLARE_EVENT_TABLE()
|
WinEDA_PcbFrame * m_Parent;
|
||||||
|
wxDC * m_DC;
|
||||||
|
|
||||||
public:
|
|
||||||
/// Constructors
|
|
||||||
WinEDA_NetlistFrame();
|
|
||||||
WinEDA_NetlistFrame(WinEDA_PcbFrame* parent,
|
|
||||||
wxDC* DC,
|
|
||||||
const wxString& aNetlistFilename,
|
|
||||||
wxWindowID id = SYMBOL_WINEDA_NETLISTFRAME_IDNAME, const wxString& caption = SYMBOL_WINEDA_NETLISTFRAME_TITLE, const wxPoint& pos = SYMBOL_WINEDA_NETLISTFRAME_POSITION, const wxSize& size = SYMBOL_WINEDA_NETLISTFRAME_SIZE, long style = SYMBOL_WINEDA_NETLISTFRAME_STYLE );
|
|
||||||
|
|
||||||
/// Creation
|
public:
|
||||||
bool Create( wxWindow* parent, wxWindowID id = SYMBOL_WINEDA_NETLISTFRAME_IDNAME, const wxString& caption = SYMBOL_WINEDA_NETLISTFRAME_TITLE, const wxPoint& pos = SYMBOL_WINEDA_NETLISTFRAME_POSITION, const wxSize& size = SYMBOL_WINEDA_NETLISTFRAME_SIZE, long style = SYMBOL_WINEDA_NETLISTFRAME_STYLE );
|
DIALOG_NETLIST( WinEDA_PcbFrame* aParent, wxDC * aDC, const wxString & aNetlistFull_Filename );
|
||||||
|
~DIALOG_NETLIST() {};
|
||||||
|
|
||||||
/// Destructor
|
|
||||||
~WinEDA_NetlistFrame();
|
|
||||||
|
|
||||||
/// Initialises member variables
|
|
||||||
void Init();
|
void Init();
|
||||||
|
// Virtual event handlers, overide them in your derived class
|
||||||
/// Creates the controls and sizers
|
|
||||||
void CreateControls();
|
|
||||||
|
|
||||||
////@begin WinEDA_NetlistFrame event handler declarations
|
|
||||||
|
|
||||||
/// wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_OPEN_NELIST
|
|
||||||
void OnOpenNelistClick( wxCommandEvent& event );
|
void OnOpenNelistClick( wxCommandEvent& event );
|
||||||
|
|
||||||
/// wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_READ_NETLIST_FILE
|
|
||||||
void OnReadNetlistFileClick( wxCommandEvent& event );
|
void OnReadNetlistFileClick( wxCommandEvent& event );
|
||||||
|
void OnTestFootprintsClick( wxCommandEvent& event );
|
||||||
/// wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_TEST_NETLIST
|
|
||||||
void OnTestNetlistClick( wxCommandEvent& event );
|
|
||||||
|
|
||||||
/// wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_COMPILE_RATSNEST
|
|
||||||
void OnCompileRatsnestClick( wxCommandEvent& event );
|
void OnCompileRatsnestClick( wxCommandEvent& event );
|
||||||
|
|
||||||
/// wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_CANCEL
|
|
||||||
void OnCancelClick( wxCommandEvent& event );
|
void OnCancelClick( wxCommandEvent& event );
|
||||||
|
|
||||||
////@end WinEDA_NetlistFrame event handler declarations
|
|
||||||
|
|
||||||
////@begin WinEDA_NetlistFrame member function declarations
|
|
||||||
|
|
||||||
/// Retrieves bitmap resources
|
|
||||||
wxBitmap GetBitmapResource( const wxString& name );
|
|
||||||
|
|
||||||
/// Retrieves icon resources
|
|
||||||
wxIcon GetIconResource( const wxString& name );
|
|
||||||
////@end WinEDA_NetlistFrame member function declarations
|
|
||||||
|
|
||||||
/// Should we show tooltips?
|
|
||||||
static bool ShowToolTips();
|
|
||||||
|
|
||||||
////@begin WinEDA_NetlistFrame member variables
|
|
||||||
wxRadioBox* m_Select_By_Timestamp;
|
|
||||||
wxRadioBox* m_ChangeExistingFootprintCtrl;
|
|
||||||
wxRadioBox* m_DeleteBadTracks;
|
|
||||||
wxCheckBox* m_DisplayWarningCtrl;
|
|
||||||
wxCheckBox* m_RemoveExtraFootprintsCtrl;
|
|
||||||
wxButton* m_btClose;
|
|
||||||
wxTextCtrl* m_NetlistFilenameCtrl;
|
|
||||||
wxTextCtrl* m_MessageWindow;
|
|
||||||
wxStdDialogButtonSizer* StdDialogButtonSizer;
|
|
||||||
////@end WinEDA_NetlistFrame member variables
|
|
||||||
WinEDA_PcbFrame* m_Parent;
|
|
||||||
wxDC* m_DC;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// _DIALOG_NETLIST_H_
|
#endif // _DIALOG_NETLIST_H_
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1 +0,0 @@
|
||||||
#include "wx/msw/wx.rc"
|
|
|
@ -0,0 +1,128 @@
|
||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
// C++ code generated with wxFormBuilder (version Apr 16 2008)
|
||||||
|
// http://www.wxformbuilder.org/
|
||||||
|
//
|
||||||
|
// PLEASE DO "NOT" EDIT THIS FILE!
|
||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#include "dialog_netlist_fbp.h"
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
DIALOG_NETLIST_FBP::DIALOG_NETLIST_FBP( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )
|
||||||
|
{
|
||||||
|
this->SetSizeHints( wxDefaultSize, wxDefaultSize );
|
||||||
|
|
||||||
|
wxBoxSizer* bMainSizer;
|
||||||
|
bMainSizer = new wxBoxSizer( wxVERTICAL );
|
||||||
|
|
||||||
|
wxBoxSizer* bUpperSizer;
|
||||||
|
bUpperSizer = new wxBoxSizer( wxHORIZONTAL );
|
||||||
|
|
||||||
|
wxBoxSizer* bLeftSizer;
|
||||||
|
bLeftSizer = new wxBoxSizer( wxVERTICAL );
|
||||||
|
|
||||||
|
wxString m_Select_By_TimestampChoices[] = { _("Reference"), _("Timestamp") };
|
||||||
|
int m_Select_By_TimestampNChoices = sizeof( m_Select_By_TimestampChoices ) / sizeof( wxString );
|
||||||
|
m_Select_By_Timestamp = new wxRadioBox( this, wxID_ANY, _("Module Selection:"), wxDefaultPosition, wxDefaultSize, m_Select_By_TimestampNChoices, m_Select_By_TimestampChoices, 1, wxRA_SPECIFY_COLS );
|
||||||
|
m_Select_By_Timestamp->SetSelection( 0 );
|
||||||
|
m_Select_By_Timestamp->SetToolTip( _("Select how footprints are recognized:\nby their reference (U1, R3...) (normal setting)\nor their time stamp (special setting after a full schematic reannotation)") );
|
||||||
|
|
||||||
|
bLeftSizer->Add( m_Select_By_Timestamp, 0, wxALL|wxEXPAND, 5 );
|
||||||
|
|
||||||
|
wxString m_ChangeExistingFootprintCtrlChoices[] = { _("Keep"), _("Change") };
|
||||||
|
int m_ChangeExistingFootprintCtrlNChoices = sizeof( m_ChangeExistingFootprintCtrlChoices ) / sizeof( wxString );
|
||||||
|
m_ChangeExistingFootprintCtrl = new wxRadioBox( this, wxID_ANY, _("Exchange Module:"), wxDefaultPosition, wxDefaultSize, m_ChangeExistingFootprintCtrlNChoices, m_ChangeExistingFootprintCtrlChoices, 1, wxRA_SPECIFY_COLS );
|
||||||
|
m_ChangeExistingFootprintCtrl->SetSelection( 0 );
|
||||||
|
m_ChangeExistingFootprintCtrl->SetToolTip( _("Keep or change an existing footprint when the netlist gives a different footprint") );
|
||||||
|
|
||||||
|
bLeftSizer->Add( m_ChangeExistingFootprintCtrl, 0, wxALL|wxEXPAND, 5 );
|
||||||
|
|
||||||
|
bUpperSizer->Add( bLeftSizer, 1, wxEXPAND, 5 );
|
||||||
|
|
||||||
|
wxBoxSizer* bMiddleSizer;
|
||||||
|
bMiddleSizer = new wxBoxSizer( wxVERTICAL );
|
||||||
|
|
||||||
|
wxString m_DeleteBadTracksChoices[] = { _("Keep"), _("Delete") };
|
||||||
|
int m_DeleteBadTracksNChoices = sizeof( m_DeleteBadTracksChoices ) / sizeof( wxString );
|
||||||
|
m_DeleteBadTracks = new wxRadioBox( this, wxID_ANY, _("Bad Tracks Deletion:"), wxDefaultPosition, wxDefaultSize, m_DeleteBadTracksNChoices, m_DeleteBadTracksChoices, 1, wxRA_SPECIFY_COLS );
|
||||||
|
m_DeleteBadTracks->SetSelection( 0 );
|
||||||
|
m_DeleteBadTracks->SetToolTip( _("Keep or delete bad tracks after a netlist change") );
|
||||||
|
|
||||||
|
bMiddleSizer->Add( m_DeleteBadTracks, 0, wxALL|wxEXPAND, 5 );
|
||||||
|
|
||||||
|
wxString m_RemoveExtraFootprintsCtrlChoices[] = { _("Keep"), _("Delete") };
|
||||||
|
int m_RemoveExtraFootprintsCtrlNChoices = sizeof( m_RemoveExtraFootprintsCtrlChoices ) / sizeof( wxString );
|
||||||
|
m_RemoveExtraFootprintsCtrl = new wxRadioBox( this, wxID_ANY, _("Extra Footprints"), wxDefaultPosition, wxDefaultSize, m_RemoveExtraFootprintsCtrlNChoices, m_RemoveExtraFootprintsCtrlChoices, 1, wxRA_SPECIFY_COLS );
|
||||||
|
m_RemoveExtraFootprintsCtrl->SetSelection( 0 );
|
||||||
|
m_RemoveExtraFootprintsCtrl->SetToolTip( _("Remove footprints found on the Board but not in netlist\nNote: only not locked footprints will be removed") );
|
||||||
|
|
||||||
|
bMiddleSizer->Add( m_RemoveExtraFootprintsCtrl, 0, wxALL|wxEXPAND, 5 );
|
||||||
|
|
||||||
|
bUpperSizer->Add( bMiddleSizer, 1, wxEXPAND, 5 );
|
||||||
|
|
||||||
|
wxBoxSizer* bRightSizerButtons;
|
||||||
|
bRightSizerButtons = new wxBoxSizer( wxVERTICAL );
|
||||||
|
|
||||||
|
m_button1 = new wxButton( this, ID_OPEN_NELIST, _("Browse Netlist Files"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
|
bRightSizerButtons->Add( m_button1, 0, wxALL|wxEXPAND, 5 );
|
||||||
|
|
||||||
|
m_button2 = new wxButton( this, ID_READ_NETLIST_FILE, _("Read Current Netlist"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
|
m_button2->SetToolTip( _("Read the current netlist and update connections and connectivity info") );
|
||||||
|
|
||||||
|
bRightSizerButtons->Add( m_button2, 0, wxALL|wxEXPAND, 5 );
|
||||||
|
|
||||||
|
m_button3 = new wxButton( this, ID_TEST_NETLIST, _("Footprints Test"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
|
m_button3->SetToolTip( _("Read the current neltist file and list missing and extra footprints") );
|
||||||
|
|
||||||
|
bRightSizerButtons->Add( m_button3, 0, wxALL|wxEXPAND, 5 );
|
||||||
|
|
||||||
|
m_button4 = new wxButton( this, ID_COMPILE_RATSNEST, _("Rebuild Board Connectivity"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
|
m_button4->SetToolTip( _("Rebuild the full ratsnest (usefull after a manual pad netname edition)") );
|
||||||
|
|
||||||
|
bRightSizerButtons->Add( m_button4, 0, wxALL|wxEXPAND, 5 );
|
||||||
|
|
||||||
|
m_button5 = new wxButton( this, wxID_ANY, _("Close"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
|
bRightSizerButtons->Add( m_button5, 0, wxALL|wxEXPAND, 5 );
|
||||||
|
|
||||||
|
bUpperSizer->Add( bRightSizerButtons, 0, wxALIGN_CENTER_VERTICAL, 5 );
|
||||||
|
|
||||||
|
bMainSizer->Add( bUpperSizer, 1, wxEXPAND, 5 );
|
||||||
|
|
||||||
|
m_staticline1 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
|
||||||
|
bMainSizer->Add( m_staticline1, 0, wxEXPAND | wxALL, 5 );
|
||||||
|
|
||||||
|
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 );
|
||||||
|
|
||||||
|
m_NetlistFilenameCtrl = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
|
bMainSizer->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 );
|
||||||
|
|
||||||
|
m_MessageWindow = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_CHARWRAP|wxTE_MULTILINE|wxTE_READONLY|wxTE_WORDWRAP );
|
||||||
|
bMainSizer->Add( m_MessageWindow, 1, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
|
||||||
|
|
||||||
|
this->SetSizer( bMainSizer );
|
||||||
|
this->Layout();
|
||||||
|
|
||||||
|
// Connect Events
|
||||||
|
m_button1->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_NETLIST_FBP::OnOpenNelistClick ), NULL, this );
|
||||||
|
m_button2->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_NETLIST_FBP::OnReadNetlistFileClick ), NULL, this );
|
||||||
|
m_button3->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_NETLIST_FBP::OnTestFootprintsClick ), NULL, this );
|
||||||
|
m_button4->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_NETLIST_FBP::OnCompileRatsnestClick ), NULL, this );
|
||||||
|
m_button5->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_NETLIST_FBP::OnCancelClick ), NULL, this );
|
||||||
|
}
|
||||||
|
|
||||||
|
DIALOG_NETLIST_FBP::~DIALOG_NETLIST_FBP()
|
||||||
|
{
|
||||||
|
// Disconnect Events
|
||||||
|
m_button1->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_NETLIST_FBP::OnOpenNelistClick ), NULL, this );
|
||||||
|
m_button2->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_NETLIST_FBP::OnReadNetlistFileClick ), NULL, this );
|
||||||
|
m_button3->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_NETLIST_FBP::OnTestFootprintsClick ), NULL, this );
|
||||||
|
m_button4->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_NETLIST_FBP::OnCompileRatsnestClick ), NULL, this );
|
||||||
|
m_button5->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_NETLIST_FBP::OnCancelClick ), NULL, this );
|
||||||
|
}
|
|
@ -0,0 +1,862 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
|
||||||
|
<wxFormBuilder_Project>
|
||||||
|
<FileVersion major="1" minor="9" />
|
||||||
|
<object class="Project" expanded="1">
|
||||||
|
<property name="class_decoration"></property>
|
||||||
|
<property name="code_generation">C++</property>
|
||||||
|
<property name="disconnect_events">1</property>
|
||||||
|
<property name="encoding">UTF-8</property>
|
||||||
|
<property name="event_generation">connect</property>
|
||||||
|
<property name="file">dialog_netlist_fbp</property>
|
||||||
|
<property name="first_id">1000</property>
|
||||||
|
<property name="help_provider">none</property>
|
||||||
|
<property name="internationalize">1</property>
|
||||||
|
<property name="name">dialog_netlist_fbp</property>
|
||||||
|
<property name="namespace"></property>
|
||||||
|
<property name="path">.</property>
|
||||||
|
<property name="precompiled_header"></property>
|
||||||
|
<property name="relative_path">1</property>
|
||||||
|
<property name="use_enum">1</property>
|
||||||
|
<property name="use_microsoft_bom">0</property>
|
||||||
|
<object class="Dialog" expanded="1">
|
||||||
|
<property name="bg"></property>
|
||||||
|
<property name="center"></property>
|
||||||
|
<property name="context_help"></property>
|
||||||
|
<property name="enabled">1</property>
|
||||||
|
<property name="extra_style"></property>
|
||||||
|
<property name="fg"></property>
|
||||||
|
<property name="font"></property>
|
||||||
|
<property name="hidden">0</property>
|
||||||
|
<property name="id">wxID_CANCEL</property>
|
||||||
|
<property name="maximum_size"></property>
|
||||||
|
<property name="minimum_size"></property>
|
||||||
|
<property name="name">DIALOG_NETLIST_FBP</property>
|
||||||
|
<property name="pos"></property>
|
||||||
|
<property name="size">519,431</property>
|
||||||
|
<property name="style">wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER</property>
|
||||||
|
<property name="subclass"></property>
|
||||||
|
<property name="title">Netlist Dialog</property>
|
||||||
|
<property name="tooltip"></property>
|
||||||
|
<property name="window_extra_style"></property>
|
||||||
|
<property name="window_name"></property>
|
||||||
|
<property name="window_style"></property>
|
||||||
|
<event name="OnActivate"></event>
|
||||||
|
<event name="OnActivateApp"></event>
|
||||||
|
<event name="OnChar"></event>
|
||||||
|
<event name="OnClose"></event>
|
||||||
|
<event name="OnEnterWindow"></event>
|
||||||
|
<event name="OnEraseBackground"></event>
|
||||||
|
<event name="OnHibernate"></event>
|
||||||
|
<event name="OnIconize"></event>
|
||||||
|
<event name="OnIdle"></event>
|
||||||
|
<event name="OnInitDialog"></event>
|
||||||
|
<event name="OnKeyDown"></event>
|
||||||
|
<event name="OnKeyUp"></event>
|
||||||
|
<event name="OnKillFocus"></event>
|
||||||
|
<event name="OnLeaveWindow"></event>
|
||||||
|
<event name="OnLeftDClick"></event>
|
||||||
|
<event name="OnLeftDown"></event>
|
||||||
|
<event name="OnLeftUp"></event>
|
||||||
|
<event name="OnMiddleDClick"></event>
|
||||||
|
<event name="OnMiddleDown"></event>
|
||||||
|
<event name="OnMiddleUp"></event>
|
||||||
|
<event name="OnMotion"></event>
|
||||||
|
<event name="OnMouseEvents"></event>
|
||||||
|
<event name="OnMouseWheel"></event>
|
||||||
|
<event name="OnPaint"></event>
|
||||||
|
<event name="OnRightDClick"></event>
|
||||||
|
<event name="OnRightDown"></event>
|
||||||
|
<event name="OnRightUp"></event>
|
||||||
|
<event name="OnSetFocus"></event>
|
||||||
|
<event name="OnSize"></event>
|
||||||
|
<event name="OnUpdateUI"></event>
|
||||||
|
<object class="wxBoxSizer" expanded="1">
|
||||||
|
<property name="minimum_size"></property>
|
||||||
|
<property name="name">bMainSizer</property>
|
||||||
|
<property name="orient">wxVERTICAL</property>
|
||||||
|
<property name="permission">none</property>
|
||||||
|
<object class="sizeritem" expanded="1">
|
||||||
|
<property name="border">5</property>
|
||||||
|
<property name="flag">wxEXPAND</property>
|
||||||
|
<property name="proportion">1</property>
|
||||||
|
<object class="wxBoxSizer" expanded="1">
|
||||||
|
<property name="minimum_size"></property>
|
||||||
|
<property name="name">bUpperSizer</property>
|
||||||
|
<property name="orient">wxHORIZONTAL</property>
|
||||||
|
<property name="permission">none</property>
|
||||||
|
<object class="sizeritem" expanded="1">
|
||||||
|
<property name="border">5</property>
|
||||||
|
<property name="flag">wxEXPAND</property>
|
||||||
|
<property name="proportion">1</property>
|
||||||
|
<object class="wxBoxSizer" expanded="1">
|
||||||
|
<property name="minimum_size"></property>
|
||||||
|
<property name="name">bLeftSizer</property>
|
||||||
|
<property name="orient">wxVERTICAL</property>
|
||||||
|
<property name="permission">none</property>
|
||||||
|
<object class="sizeritem" expanded="1">
|
||||||
|
<property name="border">5</property>
|
||||||
|
<property name="flag">wxALL|wxEXPAND</property>
|
||||||
|
<property name="proportion">0</property>
|
||||||
|
<object class="wxRadioBox" expanded="1">
|
||||||
|
<property name="bg"></property>
|
||||||
|
<property name="choices">"Reference" "Timestamp"</property>
|
||||||
|
<property name="context_help"></property>
|
||||||
|
<property name="enabled">1</property>
|
||||||
|
<property name="fg"></property>
|
||||||
|
<property name="font"></property>
|
||||||
|
<property name="hidden">0</property>
|
||||||
|
<property name="id">wxID_ANY</property>
|
||||||
|
<property name="label">Module Selection:</property>
|
||||||
|
<property name="majorDimension">1</property>
|
||||||
|
<property name="maximum_size"></property>
|
||||||
|
<property name="minimum_size"></property>
|
||||||
|
<property name="name">m_Select_By_Timestamp</property>
|
||||||
|
<property name="permission">protected</property>
|
||||||
|
<property name="pos"></property>
|
||||||
|
<property name="selection">0</property>
|
||||||
|
<property name="size"></property>
|
||||||
|
<property name="style">wxRA_SPECIFY_COLS</property>
|
||||||
|
<property name="subclass"></property>
|
||||||
|
<property name="tooltip">Select how footprints are recognized:
by their reference (U1, R3...) (normal setting)
or their time stamp (special setting after a full schematic reannotation)</property>
|
||||||
|
<property name="window_extra_style"></property>
|
||||||
|
<property name="window_name"></property>
|
||||||
|
<property name="window_style"></property>
|
||||||
|
<event name="OnChar"></event>
|
||||||
|
<event name="OnEnterWindow"></event>
|
||||||
|
<event name="OnEraseBackground"></event>
|
||||||
|
<event name="OnKeyDown"></event>
|
||||||
|
<event name="OnKeyUp"></event>
|
||||||
|
<event name="OnKillFocus"></event>
|
||||||
|
<event name="OnLeaveWindow"></event>
|
||||||
|
<event name="OnLeftDClick"></event>
|
||||||
|
<event name="OnLeftDown"></event>
|
||||||
|
<event name="OnLeftUp"></event>
|
||||||
|
<event name="OnMiddleDClick"></event>
|
||||||
|
<event name="OnMiddleDown"></event>
|
||||||
|
<event name="OnMiddleUp"></event>
|
||||||
|
<event name="OnMotion"></event>
|
||||||
|
<event name="OnMouseEvents"></event>
|
||||||
|
<event name="OnMouseWheel"></event>
|
||||||
|
<event name="OnPaint"></event>
|
||||||
|
<event name="OnRadioBox"></event>
|
||||||
|
<event name="OnRightDClick"></event>
|
||||||
|
<event name="OnRightDown"></event>
|
||||||
|
<event name="OnRightUp"></event>
|
||||||
|
<event name="OnSetFocus"></event>
|
||||||
|
<event name="OnSize"></event>
|
||||||
|
<event name="OnUpdateUI"></event>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="sizeritem" expanded="1">
|
||||||
|
<property name="border">5</property>
|
||||||
|
<property name="flag">wxALL|wxEXPAND</property>
|
||||||
|
<property name="proportion">0</property>
|
||||||
|
<object class="wxRadioBox" expanded="1">
|
||||||
|
<property name="bg"></property>
|
||||||
|
<property name="choices">"Keep" "Change"</property>
|
||||||
|
<property name="context_help"></property>
|
||||||
|
<property name="enabled">1</property>
|
||||||
|
<property name="fg"></property>
|
||||||
|
<property name="font"></property>
|
||||||
|
<property name="hidden">0</property>
|
||||||
|
<property name="id">wxID_ANY</property>
|
||||||
|
<property name="label">Exchange Module:</property>
|
||||||
|
<property name="majorDimension">1</property>
|
||||||
|
<property name="maximum_size"></property>
|
||||||
|
<property name="minimum_size"></property>
|
||||||
|
<property name="name">m_ChangeExistingFootprintCtrl</property>
|
||||||
|
<property name="permission">protected</property>
|
||||||
|
<property name="pos"></property>
|
||||||
|
<property name="selection">0</property>
|
||||||
|
<property name="size"></property>
|
||||||
|
<property name="style">wxRA_SPECIFY_COLS</property>
|
||||||
|
<property name="subclass"></property>
|
||||||
|
<property name="tooltip">Keep or change an existing footprint when the netlist gives a different footprint</property>
|
||||||
|
<property name="window_extra_style"></property>
|
||||||
|
<property name="window_name"></property>
|
||||||
|
<property name="window_style"></property>
|
||||||
|
<event name="OnChar"></event>
|
||||||
|
<event name="OnEnterWindow"></event>
|
||||||
|
<event name="OnEraseBackground"></event>
|
||||||
|
<event name="OnKeyDown"></event>
|
||||||
|
<event name="OnKeyUp"></event>
|
||||||
|
<event name="OnKillFocus"></event>
|
||||||
|
<event name="OnLeaveWindow"></event>
|
||||||
|
<event name="OnLeftDClick"></event>
|
||||||
|
<event name="OnLeftDown"></event>
|
||||||
|
<event name="OnLeftUp"></event>
|
||||||
|
<event name="OnMiddleDClick"></event>
|
||||||
|
<event name="OnMiddleDown"></event>
|
||||||
|
<event name="OnMiddleUp"></event>
|
||||||
|
<event name="OnMotion"></event>
|
||||||
|
<event name="OnMouseEvents"></event>
|
||||||
|
<event name="OnMouseWheel"></event>
|
||||||
|
<event name="OnPaint"></event>
|
||||||
|
<event name="OnRadioBox"></event>
|
||||||
|
<event name="OnRightDClick"></event>
|
||||||
|
<event name="OnRightDown"></event>
|
||||||
|
<event name="OnRightUp"></event>
|
||||||
|
<event name="OnSetFocus"></event>
|
||||||
|
<event name="OnSize"></event>
|
||||||
|
<event name="OnUpdateUI"></event>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="sizeritem" expanded="1">
|
||||||
|
<property name="border">5</property>
|
||||||
|
<property name="flag">wxEXPAND</property>
|
||||||
|
<property name="proportion">1</property>
|
||||||
|
<object class="wxBoxSizer" expanded="1">
|
||||||
|
<property name="minimum_size"></property>
|
||||||
|
<property name="name">bMiddleSizer</property>
|
||||||
|
<property name="orient">wxVERTICAL</property>
|
||||||
|
<property name="permission">none</property>
|
||||||
|
<object class="sizeritem" expanded="1">
|
||||||
|
<property name="border">5</property>
|
||||||
|
<property name="flag">wxALL|wxEXPAND</property>
|
||||||
|
<property name="proportion">0</property>
|
||||||
|
<object class="wxRadioBox" expanded="1">
|
||||||
|
<property name="bg"></property>
|
||||||
|
<property name="choices">"Keep" "Delete"</property>
|
||||||
|
<property name="context_help"></property>
|
||||||
|
<property name="enabled">1</property>
|
||||||
|
<property name="fg"></property>
|
||||||
|
<property name="font"></property>
|
||||||
|
<property name="hidden">0</property>
|
||||||
|
<property name="id">wxID_ANY</property>
|
||||||
|
<property name="label">Bad Tracks Deletion:</property>
|
||||||
|
<property name="majorDimension">1</property>
|
||||||
|
<property name="maximum_size"></property>
|
||||||
|
<property name="minimum_size"></property>
|
||||||
|
<property name="name">m_DeleteBadTracks</property>
|
||||||
|
<property name="permission">protected</property>
|
||||||
|
<property name="pos"></property>
|
||||||
|
<property name="selection">0</property>
|
||||||
|
<property name="size"></property>
|
||||||
|
<property name="style">wxRA_SPECIFY_COLS</property>
|
||||||
|
<property name="subclass"></property>
|
||||||
|
<property name="tooltip">Keep or delete bad tracks after a netlist change</property>
|
||||||
|
<property name="window_extra_style"></property>
|
||||||
|
<property name="window_name"></property>
|
||||||
|
<property name="window_style"></property>
|
||||||
|
<event name="OnChar"></event>
|
||||||
|
<event name="OnEnterWindow"></event>
|
||||||
|
<event name="OnEraseBackground"></event>
|
||||||
|
<event name="OnKeyDown"></event>
|
||||||
|
<event name="OnKeyUp"></event>
|
||||||
|
<event name="OnKillFocus"></event>
|
||||||
|
<event name="OnLeaveWindow"></event>
|
||||||
|
<event name="OnLeftDClick"></event>
|
||||||
|
<event name="OnLeftDown"></event>
|
||||||
|
<event name="OnLeftUp"></event>
|
||||||
|
<event name="OnMiddleDClick"></event>
|
||||||
|
<event name="OnMiddleDown"></event>
|
||||||
|
<event name="OnMiddleUp"></event>
|
||||||
|
<event name="OnMotion"></event>
|
||||||
|
<event name="OnMouseEvents"></event>
|
||||||
|
<event name="OnMouseWheel"></event>
|
||||||
|
<event name="OnPaint"></event>
|
||||||
|
<event name="OnRadioBox"></event>
|
||||||
|
<event name="OnRightDClick"></event>
|
||||||
|
<event name="OnRightDown"></event>
|
||||||
|
<event name="OnRightUp"></event>
|
||||||
|
<event name="OnSetFocus"></event>
|
||||||
|
<event name="OnSize"></event>
|
||||||
|
<event name="OnUpdateUI"></event>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="sizeritem" expanded="1">
|
||||||
|
<property name="border">5</property>
|
||||||
|
<property name="flag">wxALL|wxEXPAND</property>
|
||||||
|
<property name="proportion">0</property>
|
||||||
|
<object class="wxRadioBox" expanded="1">
|
||||||
|
<property name="bg"></property>
|
||||||
|
<property name="choices">"Keep" "Delete"</property>
|
||||||
|
<property name="context_help"></property>
|
||||||
|
<property name="enabled">1</property>
|
||||||
|
<property name="fg"></property>
|
||||||
|
<property name="font"></property>
|
||||||
|
<property name="hidden">0</property>
|
||||||
|
<property name="id">wxID_ANY</property>
|
||||||
|
<property name="label">Extra Footprints</property>
|
||||||
|
<property name="majorDimension">1</property>
|
||||||
|
<property name="maximum_size"></property>
|
||||||
|
<property name="minimum_size"></property>
|
||||||
|
<property name="name">m_RemoveExtraFootprintsCtrl</property>
|
||||||
|
<property name="permission">protected</property>
|
||||||
|
<property name="pos"></property>
|
||||||
|
<property name="selection">0</property>
|
||||||
|
<property name="size"></property>
|
||||||
|
<property name="style">wxRA_SPECIFY_COLS</property>
|
||||||
|
<property name="subclass"></property>
|
||||||
|
<property name="tooltip">Remove footprints found on the Board but not in netlist
Note: only not locked footprints will be removed</property>
|
||||||
|
<property name="window_extra_style"></property>
|
||||||
|
<property name="window_name"></property>
|
||||||
|
<property name="window_style"></property>
|
||||||
|
<event name="OnChar"></event>
|
||||||
|
<event name="OnEnterWindow"></event>
|
||||||
|
<event name="OnEraseBackground"></event>
|
||||||
|
<event name="OnKeyDown"></event>
|
||||||
|
<event name="OnKeyUp"></event>
|
||||||
|
<event name="OnKillFocus"></event>
|
||||||
|
<event name="OnLeaveWindow"></event>
|
||||||
|
<event name="OnLeftDClick"></event>
|
||||||
|
<event name="OnLeftDown"></event>
|
||||||
|
<event name="OnLeftUp"></event>
|
||||||
|
<event name="OnMiddleDClick"></event>
|
||||||
|
<event name="OnMiddleDown"></event>
|
||||||
|
<event name="OnMiddleUp"></event>
|
||||||
|
<event name="OnMotion"></event>
|
||||||
|
<event name="OnMouseEvents"></event>
|
||||||
|
<event name="OnMouseWheel"></event>
|
||||||
|
<event name="OnPaint"></event>
|
||||||
|
<event name="OnRadioBox"></event>
|
||||||
|
<event name="OnRightDClick"></event>
|
||||||
|
<event name="OnRightDown"></event>
|
||||||
|
<event name="OnRightUp"></event>
|
||||||
|
<event name="OnSetFocus"></event>
|
||||||
|
<event name="OnSize"></event>
|
||||||
|
<event name="OnUpdateUI"></event>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="sizeritem" expanded="1">
|
||||||
|
<property name="border">5</property>
|
||||||
|
<property name="flag">wxALIGN_CENTER_VERTICAL</property>
|
||||||
|
<property name="proportion">0</property>
|
||||||
|
<object class="wxBoxSizer" expanded="1">
|
||||||
|
<property name="minimum_size"></property>
|
||||||
|
<property name="name">bRightSizerButtons</property>
|
||||||
|
<property name="orient">wxVERTICAL</property>
|
||||||
|
<property name="permission">none</property>
|
||||||
|
<object class="sizeritem" expanded="1">
|
||||||
|
<property name="border">5</property>
|
||||||
|
<property name="flag">wxALL|wxEXPAND</property>
|
||||||
|
<property name="proportion">0</property>
|
||||||
|
<object class="wxButton" expanded="1">
|
||||||
|
<property name="bg"></property>
|
||||||
|
<property name="context_help"></property>
|
||||||
|
<property name="default">0</property>
|
||||||
|
<property name="enabled">1</property>
|
||||||
|
<property name="fg"></property>
|
||||||
|
<property name="font"></property>
|
||||||
|
<property name="hidden">0</property>
|
||||||
|
<property name="id">ID_OPEN_NELIST</property>
|
||||||
|
<property name="label">Browse Netlist Files</property>
|
||||||
|
<property name="maximum_size"></property>
|
||||||
|
<property name="minimum_size"></property>
|
||||||
|
<property name="name">m_button1</property>
|
||||||
|
<property name="permission">protected</property>
|
||||||
|
<property name="pos"></property>
|
||||||
|
<property name="size"></property>
|
||||||
|
<property name="style"></property>
|
||||||
|
<property name="subclass"></property>
|
||||||
|
<property name="tooltip"></property>
|
||||||
|
<property name="window_extra_style"></property>
|
||||||
|
<property name="window_name"></property>
|
||||||
|
<property name="window_style"></property>
|
||||||
|
<event name="OnButtonClick">OnOpenNelistClick</event>
|
||||||
|
<event name="OnChar"></event>
|
||||||
|
<event name="OnEnterWindow"></event>
|
||||||
|
<event name="OnEraseBackground"></event>
|
||||||
|
<event name="OnKeyDown"></event>
|
||||||
|
<event name="OnKeyUp"></event>
|
||||||
|
<event name="OnKillFocus"></event>
|
||||||
|
<event name="OnLeaveWindow"></event>
|
||||||
|
<event name="OnLeftDClick"></event>
|
||||||
|
<event name="OnLeftDown"></event>
|
||||||
|
<event name="OnLeftUp"></event>
|
||||||
|
<event name="OnMiddleDClick"></event>
|
||||||
|
<event name="OnMiddleDown"></event>
|
||||||
|
<event name="OnMiddleUp"></event>
|
||||||
|
<event name="OnMotion"></event>
|
||||||
|
<event name="OnMouseEvents"></event>
|
||||||
|
<event name="OnMouseWheel"></event>
|
||||||
|
<event name="OnPaint"></event>
|
||||||
|
<event name="OnRightDClick"></event>
|
||||||
|
<event name="OnRightDown"></event>
|
||||||
|
<event name="OnRightUp"></event>
|
||||||
|
<event name="OnSetFocus"></event>
|
||||||
|
<event name="OnSize"></event>
|
||||||
|
<event name="OnUpdateUI"></event>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="sizeritem" expanded="1">
|
||||||
|
<property name="border">5</property>
|
||||||
|
<property name="flag">wxALL|wxEXPAND</property>
|
||||||
|
<property name="proportion">0</property>
|
||||||
|
<object class="wxButton" expanded="1">
|
||||||
|
<property name="bg"></property>
|
||||||
|
<property name="context_help"></property>
|
||||||
|
<property name="default">0</property>
|
||||||
|
<property name="enabled">1</property>
|
||||||
|
<property name="fg"></property>
|
||||||
|
<property name="font"></property>
|
||||||
|
<property name="hidden">0</property>
|
||||||
|
<property name="id">ID_READ_NETLIST_FILE</property>
|
||||||
|
<property name="label">Read Current Netlist</property>
|
||||||
|
<property name="maximum_size"></property>
|
||||||
|
<property name="minimum_size"></property>
|
||||||
|
<property name="name">m_button2</property>
|
||||||
|
<property name="permission">protected</property>
|
||||||
|
<property name="pos"></property>
|
||||||
|
<property name="size"></property>
|
||||||
|
<property name="style"></property>
|
||||||
|
<property name="subclass"></property>
|
||||||
|
<property name="tooltip">Read the current netlist and update connections and connectivity info</property>
|
||||||
|
<property name="window_extra_style"></property>
|
||||||
|
<property name="window_name"></property>
|
||||||
|
<property name="window_style"></property>
|
||||||
|
<event name="OnButtonClick">OnReadNetlistFileClick</event>
|
||||||
|
<event name="OnChar"></event>
|
||||||
|
<event name="OnEnterWindow"></event>
|
||||||
|
<event name="OnEraseBackground"></event>
|
||||||
|
<event name="OnKeyDown"></event>
|
||||||
|
<event name="OnKeyUp"></event>
|
||||||
|
<event name="OnKillFocus"></event>
|
||||||
|
<event name="OnLeaveWindow"></event>
|
||||||
|
<event name="OnLeftDClick"></event>
|
||||||
|
<event name="OnLeftDown"></event>
|
||||||
|
<event name="OnLeftUp"></event>
|
||||||
|
<event name="OnMiddleDClick"></event>
|
||||||
|
<event name="OnMiddleDown"></event>
|
||||||
|
<event name="OnMiddleUp"></event>
|
||||||
|
<event name="OnMotion"></event>
|
||||||
|
<event name="OnMouseEvents"></event>
|
||||||
|
<event name="OnMouseWheel"></event>
|
||||||
|
<event name="OnPaint"></event>
|
||||||
|
<event name="OnRightDClick"></event>
|
||||||
|
<event name="OnRightDown"></event>
|
||||||
|
<event name="OnRightUp"></event>
|
||||||
|
<event name="OnSetFocus"></event>
|
||||||
|
<event name="OnSize"></event>
|
||||||
|
<event name="OnUpdateUI"></event>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="sizeritem" expanded="1">
|
||||||
|
<property name="border">5</property>
|
||||||
|
<property name="flag">wxALL|wxEXPAND</property>
|
||||||
|
<property name="proportion">0</property>
|
||||||
|
<object class="wxButton" expanded="1">
|
||||||
|
<property name="bg"></property>
|
||||||
|
<property name="context_help"></property>
|
||||||
|
<property name="default">0</property>
|
||||||
|
<property name="enabled">1</property>
|
||||||
|
<property name="fg"></property>
|
||||||
|
<property name="font"></property>
|
||||||
|
<property name="hidden">0</property>
|
||||||
|
<property name="id">ID_TEST_NETLIST</property>
|
||||||
|
<property name="label">Footprints Test</property>
|
||||||
|
<property name="maximum_size"></property>
|
||||||
|
<property name="minimum_size"></property>
|
||||||
|
<property name="name">m_button3</property>
|
||||||
|
<property name="permission">protected</property>
|
||||||
|
<property name="pos"></property>
|
||||||
|
<property name="size"></property>
|
||||||
|
<property name="style"></property>
|
||||||
|
<property name="subclass"></property>
|
||||||
|
<property name="tooltip">Read the current neltist file and list missing and extra footprints</property>
|
||||||
|
<property name="window_extra_style"></property>
|
||||||
|
<property name="window_name"></property>
|
||||||
|
<property name="window_style"></property>
|
||||||
|
<event name="OnButtonClick">OnTestFootprintsClick</event>
|
||||||
|
<event name="OnChar"></event>
|
||||||
|
<event name="OnEnterWindow"></event>
|
||||||
|
<event name="OnEraseBackground"></event>
|
||||||
|
<event name="OnKeyDown"></event>
|
||||||
|
<event name="OnKeyUp"></event>
|
||||||
|
<event name="OnKillFocus"></event>
|
||||||
|
<event name="OnLeaveWindow"></event>
|
||||||
|
<event name="OnLeftDClick"></event>
|
||||||
|
<event name="OnLeftDown"></event>
|
||||||
|
<event name="OnLeftUp"></event>
|
||||||
|
<event name="OnMiddleDClick"></event>
|
||||||
|
<event name="OnMiddleDown"></event>
|
||||||
|
<event name="OnMiddleUp"></event>
|
||||||
|
<event name="OnMotion"></event>
|
||||||
|
<event name="OnMouseEvents"></event>
|
||||||
|
<event name="OnMouseWheel"></event>
|
||||||
|
<event name="OnPaint"></event>
|
||||||
|
<event name="OnRightDClick"></event>
|
||||||
|
<event name="OnRightDown"></event>
|
||||||
|
<event name="OnRightUp"></event>
|
||||||
|
<event name="OnSetFocus"></event>
|
||||||
|
<event name="OnSize"></event>
|
||||||
|
<event name="OnUpdateUI"></event>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="sizeritem" expanded="1">
|
||||||
|
<property name="border">5</property>
|
||||||
|
<property name="flag">wxALL|wxEXPAND</property>
|
||||||
|
<property name="proportion">0</property>
|
||||||
|
<object class="wxButton" expanded="1">
|
||||||
|
<property name="bg"></property>
|
||||||
|
<property name="context_help"></property>
|
||||||
|
<property name="default">0</property>
|
||||||
|
<property name="enabled">1</property>
|
||||||
|
<property name="fg"></property>
|
||||||
|
<property name="font"></property>
|
||||||
|
<property name="hidden">0</property>
|
||||||
|
<property name="id">ID_COMPILE_RATSNEST</property>
|
||||||
|
<property name="label">Rebuild Board Connectivity</property>
|
||||||
|
<property name="maximum_size"></property>
|
||||||
|
<property name="minimum_size"></property>
|
||||||
|
<property name="name">m_button4</property>
|
||||||
|
<property name="permission">protected</property>
|
||||||
|
<property name="pos"></property>
|
||||||
|
<property name="size"></property>
|
||||||
|
<property name="style"></property>
|
||||||
|
<property name="subclass"></property>
|
||||||
|
<property name="tooltip">Rebuild the full ratsnest (usefull after a manual pad netname edition)</property>
|
||||||
|
<property name="window_extra_style"></property>
|
||||||
|
<property name="window_name"></property>
|
||||||
|
<property name="window_style"></property>
|
||||||
|
<event name="OnButtonClick">OnCompileRatsnestClick</event>
|
||||||
|
<event name="OnChar"></event>
|
||||||
|
<event name="OnEnterWindow"></event>
|
||||||
|
<event name="OnEraseBackground"></event>
|
||||||
|
<event name="OnKeyDown"></event>
|
||||||
|
<event name="OnKeyUp"></event>
|
||||||
|
<event name="OnKillFocus"></event>
|
||||||
|
<event name="OnLeaveWindow"></event>
|
||||||
|
<event name="OnLeftDClick"></event>
|
||||||
|
<event name="OnLeftDown"></event>
|
||||||
|
<event name="OnLeftUp"></event>
|
||||||
|
<event name="OnMiddleDClick"></event>
|
||||||
|
<event name="OnMiddleDown"></event>
|
||||||
|
<event name="OnMiddleUp"></event>
|
||||||
|
<event name="OnMotion"></event>
|
||||||
|
<event name="OnMouseEvents"></event>
|
||||||
|
<event name="OnMouseWheel"></event>
|
||||||
|
<event name="OnPaint"></event>
|
||||||
|
<event name="OnRightDClick"></event>
|
||||||
|
<event name="OnRightDown"></event>
|
||||||
|
<event name="OnRightUp"></event>
|
||||||
|
<event name="OnSetFocus"></event>
|
||||||
|
<event name="OnSize"></event>
|
||||||
|
<event name="OnUpdateUI"></event>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="sizeritem" expanded="1">
|
||||||
|
<property name="border">5</property>
|
||||||
|
<property name="flag">wxALL|wxEXPAND</property>
|
||||||
|
<property name="proportion">0</property>
|
||||||
|
<object class="wxButton" expanded="1">
|
||||||
|
<property name="bg"></property>
|
||||||
|
<property name="context_help"></property>
|
||||||
|
<property name="default">0</property>
|
||||||
|
<property name="enabled">1</property>
|
||||||
|
<property name="fg"></property>
|
||||||
|
<property name="font"></property>
|
||||||
|
<property name="hidden">0</property>
|
||||||
|
<property name="id">wxID_ANY</property>
|
||||||
|
<property name="label">Close</property>
|
||||||
|
<property name="maximum_size"></property>
|
||||||
|
<property name="minimum_size"></property>
|
||||||
|
<property name="name">m_button5</property>
|
||||||
|
<property name="permission">protected</property>
|
||||||
|
<property name="pos"></property>
|
||||||
|
<property name="size"></property>
|
||||||
|
<property name="style"></property>
|
||||||
|
<property name="subclass"></property>
|
||||||
|
<property name="tooltip"></property>
|
||||||
|
<property name="window_extra_style"></property>
|
||||||
|
<property name="window_name"></property>
|
||||||
|
<property name="window_style"></property>
|
||||||
|
<event name="OnButtonClick">OnCancelClick</event>
|
||||||
|
<event name="OnChar"></event>
|
||||||
|
<event name="OnEnterWindow"></event>
|
||||||
|
<event name="OnEraseBackground"></event>
|
||||||
|
<event name="OnKeyDown"></event>
|
||||||
|
<event name="OnKeyUp"></event>
|
||||||
|
<event name="OnKillFocus"></event>
|
||||||
|
<event name="OnLeaveWindow"></event>
|
||||||
|
<event name="OnLeftDClick"></event>
|
||||||
|
<event name="OnLeftDown"></event>
|
||||||
|
<event name="OnLeftUp"></event>
|
||||||
|
<event name="OnMiddleDClick"></event>
|
||||||
|
<event name="OnMiddleDown"></event>
|
||||||
|
<event name="OnMiddleUp"></event>
|
||||||
|
<event name="OnMotion"></event>
|
||||||
|
<event name="OnMouseEvents"></event>
|
||||||
|
<event name="OnMouseWheel"></event>
|
||||||
|
<event name="OnPaint"></event>
|
||||||
|
<event name="OnRightDClick"></event>
|
||||||
|
<event name="OnRightDown"></event>
|
||||||
|
<event name="OnRightUp"></event>
|
||||||
|
<event name="OnSetFocus"></event>
|
||||||
|
<event name="OnSize"></event>
|
||||||
|
<event name="OnUpdateUI"></event>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="sizeritem" expanded="1">
|
||||||
|
<property name="border">5</property>
|
||||||
|
<property name="flag">wxEXPAND | wxALL</property>
|
||||||
|
<property name="proportion">0</property>
|
||||||
|
<object class="wxStaticLine" expanded="1">
|
||||||
|
<property name="bg"></property>
|
||||||
|
<property name="context_help"></property>
|
||||||
|
<property name="enabled">1</property>
|
||||||
|
<property name="fg"></property>
|
||||||
|
<property name="font"></property>
|
||||||
|
<property name="hidden">0</property>
|
||||||
|
<property name="id">wxID_ANY</property>
|
||||||
|
<property name="maximum_size"></property>
|
||||||
|
<property name="minimum_size"></property>
|
||||||
|
<property name="name">m_staticline1</property>
|
||||||
|
<property name="permission">protected</property>
|
||||||
|
<property name="pos"></property>
|
||||||
|
<property name="size"></property>
|
||||||
|
<property name="style">wxLI_HORIZONTAL</property>
|
||||||
|
<property name="subclass"></property>
|
||||||
|
<property name="tooltip"></property>
|
||||||
|
<property name="window_extra_style"></property>
|
||||||
|
<property name="window_name"></property>
|
||||||
|
<property name="window_style"></property>
|
||||||
|
<event name="OnChar"></event>
|
||||||
|
<event name="OnEnterWindow"></event>
|
||||||
|
<event name="OnEraseBackground"></event>
|
||||||
|
<event name="OnKeyDown"></event>
|
||||||
|
<event name="OnKeyUp"></event>
|
||||||
|
<event name="OnKillFocus"></event>
|
||||||
|
<event name="OnLeaveWindow"></event>
|
||||||
|
<event name="OnLeftDClick"></event>
|
||||||
|
<event name="OnLeftDown"></event>
|
||||||
|
<event name="OnLeftUp"></event>
|
||||||
|
<event name="OnMiddleDClick"></event>
|
||||||
|
<event name="OnMiddleDown"></event>
|
||||||
|
<event name="OnMiddleUp"></event>
|
||||||
|
<event name="OnMotion"></event>
|
||||||
|
<event name="OnMouseEvents"></event>
|
||||||
|
<event name="OnMouseWheel"></event>
|
||||||
|
<event name="OnPaint"></event>
|
||||||
|
<event name="OnRightDClick"></event>
|
||||||
|
<event name="OnRightDown"></event>
|
||||||
|
<event name="OnRightUp"></event>
|
||||||
|
<event name="OnSetFocus"></event>
|
||||||
|
<event name="OnSize"></event>
|
||||||
|
<event name="OnUpdateUI"></event>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="sizeritem" expanded="1">
|
||||||
|
<property name="border">5</property>
|
||||||
|
<property name="flag">wxTOP|wxRIGHT|wxLEFT</property>
|
||||||
|
<property name="proportion">0</property>
|
||||||
|
<object class="wxStaticText" expanded="1">
|
||||||
|
<property name="bg"></property>
|
||||||
|
<property name="context_help"></property>
|
||||||
|
<property name="enabled">1</property>
|
||||||
|
<property name="fg"></property>
|
||||||
|
<property name="font"></property>
|
||||||
|
<property name="hidden">0</property>
|
||||||
|
<property name="id">wxID_ANY</property>
|
||||||
|
<property name="label">Netlist File:</property>
|
||||||
|
<property name="maximum_size"></property>
|
||||||
|
<property name="minimum_size"></property>
|
||||||
|
<property name="name">m_staticTextNetfilename</property>
|
||||||
|
<property name="permission">protected</property>
|
||||||
|
<property name="pos"></property>
|
||||||
|
<property name="size"></property>
|
||||||
|
<property name="style"></property>
|
||||||
|
<property name="subclass"></property>
|
||||||
|
<property name="tooltip"></property>
|
||||||
|
<property name="window_extra_style"></property>
|
||||||
|
<property name="window_name"></property>
|
||||||
|
<property name="window_style"></property>
|
||||||
|
<property name="wrap">-1</property>
|
||||||
|
<event name="OnChar"></event>
|
||||||
|
<event name="OnEnterWindow"></event>
|
||||||
|
<event name="OnEraseBackground"></event>
|
||||||
|
<event name="OnKeyDown"></event>
|
||||||
|
<event name="OnKeyUp"></event>
|
||||||
|
<event name="OnKillFocus"></event>
|
||||||
|
<event name="OnLeaveWindow"></event>
|
||||||
|
<event name="OnLeftDClick"></event>
|
||||||
|
<event name="OnLeftDown"></event>
|
||||||
|
<event name="OnLeftUp"></event>
|
||||||
|
<event name="OnMiddleDClick"></event>
|
||||||
|
<event name="OnMiddleDown"></event>
|
||||||
|
<event name="OnMiddleUp"></event>
|
||||||
|
<event name="OnMotion"></event>
|
||||||
|
<event name="OnMouseEvents"></event>
|
||||||
|
<event name="OnMouseWheel"></event>
|
||||||
|
<event name="OnPaint"></event>
|
||||||
|
<event name="OnRightDClick"></event>
|
||||||
|
<event name="OnRightDown"></event>
|
||||||
|
<event name="OnRightUp"></event>
|
||||||
|
<event name="OnSetFocus"></event>
|
||||||
|
<event name="OnSize"></event>
|
||||||
|
<event name="OnUpdateUI"></event>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="sizeritem" expanded="1">
|
||||||
|
<property name="border">5</property>
|
||||||
|
<property name="flag">wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT</property>
|
||||||
|
<property name="proportion">0</property>
|
||||||
|
<object class="wxTextCtrl" expanded="1">
|
||||||
|
<property name="bg"></property>
|
||||||
|
<property name="context_help"></property>
|
||||||
|
<property name="enabled">1</property>
|
||||||
|
<property name="fg"></property>
|
||||||
|
<property name="font"></property>
|
||||||
|
<property name="hidden">0</property>
|
||||||
|
<property name="id">wxID_ANY</property>
|
||||||
|
<property name="maximum_size"></property>
|
||||||
|
<property name="maxlength">0</property>
|
||||||
|
<property name="minimum_size"></property>
|
||||||
|
<property name="name">m_NetlistFilenameCtrl</property>
|
||||||
|
<property name="permission">protected</property>
|
||||||
|
<property name="pos"></property>
|
||||||
|
<property name="size"></property>
|
||||||
|
<property name="style"></property>
|
||||||
|
<property name="subclass"></property>
|
||||||
|
<property name="tooltip"></property>
|
||||||
|
<property name="value"></property>
|
||||||
|
<property name="window_extra_style"></property>
|
||||||
|
<property name="window_name"></property>
|
||||||
|
<property name="window_style"></property>
|
||||||
|
<event name="OnChar"></event>
|
||||||
|
<event name="OnEnterWindow"></event>
|
||||||
|
<event name="OnEraseBackground"></event>
|
||||||
|
<event name="OnKeyDown"></event>
|
||||||
|
<event name="OnKeyUp"></event>
|
||||||
|
<event name="OnKillFocus"></event>
|
||||||
|
<event name="OnLeaveWindow"></event>
|
||||||
|
<event name="OnLeftDClick"></event>
|
||||||
|
<event name="OnLeftDown"></event>
|
||||||
|
<event name="OnLeftUp"></event>
|
||||||
|
<event name="OnMiddleDClick"></event>
|
||||||
|
<event name="OnMiddleDown"></event>
|
||||||
|
<event name="OnMiddleUp"></event>
|
||||||
|
<event name="OnMotion"></event>
|
||||||
|
<event name="OnMouseEvents"></event>
|
||||||
|
<event name="OnMouseWheel"></event>
|
||||||
|
<event name="OnPaint"></event>
|
||||||
|
<event name="OnRightDClick"></event>
|
||||||
|
<event name="OnRightDown"></event>
|
||||||
|
<event name="OnRightUp"></event>
|
||||||
|
<event name="OnSetFocus"></event>
|
||||||
|
<event name="OnSize"></event>
|
||||||
|
<event name="OnText"></event>
|
||||||
|
<event name="OnTextEnter"></event>
|
||||||
|
<event name="OnTextMaxLen"></event>
|
||||||
|
<event name="OnTextURL"></event>
|
||||||
|
<event name="OnUpdateUI"></event>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="sizeritem" expanded="1">
|
||||||
|
<property name="border">5</property>
|
||||||
|
<property name="flag">wxTOP|wxRIGHT|wxLEFT</property>
|
||||||
|
<property name="proportion">0</property>
|
||||||
|
<object class="wxStaticText" expanded="1">
|
||||||
|
<property name="bg"></property>
|
||||||
|
<property name="context_help"></property>
|
||||||
|
<property name="enabled">1</property>
|
||||||
|
<property name="fg"></property>
|
||||||
|
<property name="font"></property>
|
||||||
|
<property name="hidden">0</property>
|
||||||
|
<property name="id">wxID_ANY</property>
|
||||||
|
<property name="label">Messages:</property>
|
||||||
|
<property name="maximum_size"></property>
|
||||||
|
<property name="minimum_size"></property>
|
||||||
|
<property name="name">m_staticText1</property>
|
||||||
|
<property name="permission">protected</property>
|
||||||
|
<property name="pos"></property>
|
||||||
|
<property name="size"></property>
|
||||||
|
<property name="style"></property>
|
||||||
|
<property name="subclass"></property>
|
||||||
|
<property name="tooltip"></property>
|
||||||
|
<property name="window_extra_style"></property>
|
||||||
|
<property name="window_name"></property>
|
||||||
|
<property name="window_style"></property>
|
||||||
|
<property name="wrap">-1</property>
|
||||||
|
<event name="OnChar"></event>
|
||||||
|
<event name="OnEnterWindow"></event>
|
||||||
|
<event name="OnEraseBackground"></event>
|
||||||
|
<event name="OnKeyDown"></event>
|
||||||
|
<event name="OnKeyUp"></event>
|
||||||
|
<event name="OnKillFocus"></event>
|
||||||
|
<event name="OnLeaveWindow"></event>
|
||||||
|
<event name="OnLeftDClick"></event>
|
||||||
|
<event name="OnLeftDown"></event>
|
||||||
|
<event name="OnLeftUp"></event>
|
||||||
|
<event name="OnMiddleDClick"></event>
|
||||||
|
<event name="OnMiddleDown"></event>
|
||||||
|
<event name="OnMiddleUp"></event>
|
||||||
|
<event name="OnMotion"></event>
|
||||||
|
<event name="OnMouseEvents"></event>
|
||||||
|
<event name="OnMouseWheel"></event>
|
||||||
|
<event name="OnPaint"></event>
|
||||||
|
<event name="OnRightDClick"></event>
|
||||||
|
<event name="OnRightDown"></event>
|
||||||
|
<event name="OnRightUp"></event>
|
||||||
|
<event name="OnSetFocus"></event>
|
||||||
|
<event name="OnSize"></event>
|
||||||
|
<event name="OnUpdateUI"></event>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="sizeritem" expanded="1">
|
||||||
|
<property name="border">5</property>
|
||||||
|
<property name="flag">wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT</property>
|
||||||
|
<property name="proportion">1</property>
|
||||||
|
<object class="wxTextCtrl" expanded="1">
|
||||||
|
<property name="bg"></property>
|
||||||
|
<property name="context_help"></property>
|
||||||
|
<property name="enabled">1</property>
|
||||||
|
<property name="fg"></property>
|
||||||
|
<property name="font"></property>
|
||||||
|
<property name="hidden">0</property>
|
||||||
|
<property name="id">wxID_ANY</property>
|
||||||
|
<property name="maximum_size"></property>
|
||||||
|
<property name="maxlength">0</property>
|
||||||
|
<property name="minimum_size"></property>
|
||||||
|
<property name="name">m_MessageWindow</property>
|
||||||
|
<property name="permission">protected</property>
|
||||||
|
<property name="pos"></property>
|
||||||
|
<property name="size"></property>
|
||||||
|
<property name="style">wxTE_CHARWRAP|wxTE_MULTILINE|wxTE_READONLY|wxTE_WORDWRAP</property>
|
||||||
|
<property name="subclass"></property>
|
||||||
|
<property name="tooltip"></property>
|
||||||
|
<property name="value"></property>
|
||||||
|
<property name="window_extra_style"></property>
|
||||||
|
<property name="window_name"></property>
|
||||||
|
<property name="window_style"></property>
|
||||||
|
<event name="OnChar"></event>
|
||||||
|
<event name="OnEnterWindow"></event>
|
||||||
|
<event name="OnEraseBackground"></event>
|
||||||
|
<event name="OnKeyDown"></event>
|
||||||
|
<event name="OnKeyUp"></event>
|
||||||
|
<event name="OnKillFocus"></event>
|
||||||
|
<event name="OnLeaveWindow"></event>
|
||||||
|
<event name="OnLeftDClick"></event>
|
||||||
|
<event name="OnLeftDown"></event>
|
||||||
|
<event name="OnLeftUp"></event>
|
||||||
|
<event name="OnMiddleDClick"></event>
|
||||||
|
<event name="OnMiddleDown"></event>
|
||||||
|
<event name="OnMiddleUp"></event>
|
||||||
|
<event name="OnMotion"></event>
|
||||||
|
<event name="OnMouseEvents"></event>
|
||||||
|
<event name="OnMouseWheel"></event>
|
||||||
|
<event name="OnPaint"></event>
|
||||||
|
<event name="OnRightDClick"></event>
|
||||||
|
<event name="OnRightDown"></event>
|
||||||
|
<event name="OnRightUp"></event>
|
||||||
|
<event name="OnSetFocus"></event>
|
||||||
|
<event name="OnSize"></event>
|
||||||
|
<event name="OnText"></event>
|
||||||
|
<event name="OnTextEnter"></event>
|
||||||
|
<event name="OnTextMaxLen"></event>
|
||||||
|
<event name="OnTextURL"></event>
|
||||||
|
<event name="OnUpdateUI"></event>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
</wxFormBuilder_Project>
|
|
@ -0,0 +1,73 @@
|
||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
// C++ code generated with wxFormBuilder (version Apr 16 2008)
|
||||||
|
// http://www.wxformbuilder.org/
|
||||||
|
//
|
||||||
|
// PLEASE DO "NOT" EDIT THIS FILE!
|
||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#ifndef __dialog_netlist_fbp__
|
||||||
|
#define __dialog_netlist_fbp__
|
||||||
|
|
||||||
|
#include <wx/intl.h>
|
||||||
|
|
||||||
|
#include <wx/string.h>
|
||||||
|
#include <wx/radiobox.h>
|
||||||
|
#include <wx/gdicmn.h>
|
||||||
|
#include <wx/font.h>
|
||||||
|
#include <wx/colour.h>
|
||||||
|
#include <wx/settings.h>
|
||||||
|
#include <wx/sizer.h>
|
||||||
|
#include <wx/button.h>
|
||||||
|
#include <wx/statline.h>
|
||||||
|
#include <wx/stattext.h>
|
||||||
|
#include <wx/textctrl.h>
|
||||||
|
#include <wx/dialog.h>
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
/// Class DIALOG_NETLIST_FBP
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
class DIALOG_NETLIST_FBP : public wxDialog
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
|
||||||
|
protected:
|
||||||
|
enum
|
||||||
|
{
|
||||||
|
ID_OPEN_NELIST = 1000,
|
||||||
|
ID_READ_NETLIST_FILE,
|
||||||
|
ID_TEST_NETLIST,
|
||||||
|
ID_COMPILE_RATSNEST,
|
||||||
|
};
|
||||||
|
|
||||||
|
wxRadioBox* m_Select_By_Timestamp;
|
||||||
|
wxRadioBox* m_ChangeExistingFootprintCtrl;
|
||||||
|
wxRadioBox* m_DeleteBadTracks;
|
||||||
|
wxRadioBox* m_RemoveExtraFootprintsCtrl;
|
||||||
|
wxButton* m_button1;
|
||||||
|
wxButton* m_button2;
|
||||||
|
wxButton* m_button3;
|
||||||
|
wxButton* m_button4;
|
||||||
|
wxButton* m_button5;
|
||||||
|
wxStaticLine* m_staticline1;
|
||||||
|
wxStaticText* m_staticTextNetfilename;
|
||||||
|
wxTextCtrl* m_NetlistFilenameCtrl;
|
||||||
|
wxStaticText* m_staticText1;
|
||||||
|
wxTextCtrl* m_MessageWindow;
|
||||||
|
|
||||||
|
// Virtual event handlers, overide them in your derived class
|
||||||
|
virtual void OnOpenNelistClick( wxCommandEvent& event ){ event.Skip(); }
|
||||||
|
virtual void OnReadNetlistFileClick( wxCommandEvent& event ){ event.Skip(); }
|
||||||
|
virtual void OnTestFootprintsClick( wxCommandEvent& event ){ event.Skip(); }
|
||||||
|
virtual void OnCompileRatsnestClick( wxCommandEvent& event ){ event.Skip(); }
|
||||||
|
virtual void OnCancelClick( wxCommandEvent& event ){ event.Skip(); }
|
||||||
|
|
||||||
|
|
||||||
|
public:
|
||||||
|
DIALOG_NETLIST_FBP( wxWindow* parent, wxWindowID id = wxID_CANCEL, const wxString& title = _("Netlist Dialog"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 519,431 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
|
||||||
|
~DIALOG_NETLIST_FBP();
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif //__dialog_netlist_fbp__
|
|
@ -55,6 +55,8 @@ OBJECTS= $(TARGET).o\
|
||||||
set_grid.o \
|
set_grid.o \
|
||||||
pcbcfg.o \
|
pcbcfg.o \
|
||||||
netlist.o \
|
netlist.o \
|
||||||
|
dialog_netlist.o \
|
||||||
|
dialog_netlist_fbp.o \
|
||||||
affiche.o \
|
affiche.o \
|
||||||
swap_layers.o \
|
swap_layers.o \
|
||||||
tracepcb.o \
|
tracepcb.o \
|
||||||
|
@ -152,7 +154,7 @@ pcbnew.o: pcbnew.cpp pcbnew.h pcbplot.h drag.h \
|
||||||
|
|
||||||
pcbcfg.o: pcbcfg.cpp pcbcfg.h pcbplot.h
|
pcbcfg.o: pcbcfg.cpp pcbcfg.h pcbplot.h
|
||||||
|
|
||||||
netlist.o: netlist.cpp dialog_netlist.cpp dialog_netlist.h
|
netlist.o: netlist.cpp dialog_netlist.h
|
||||||
|
|
||||||
gen_modules_placefile.o: gen_modules_placefile.cpp
|
gen_modules_placefile.o: gen_modules_placefile.cpp
|
||||||
|
|
||||||
|
|
|
@ -1,83 +1,85 @@
|
||||||
/************************************/
|
/***********************/
|
||||||
/* PCBNEW: traitement des netlistes */
|
/* PCBNEW: netlist.cpp */
|
||||||
/************************************/
|
/***********************/
|
||||||
|
|
||||||
/* Fichier NETLIST.CPP */
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Fonction de lecture de la netliste pour:
|
* Function to read a netlist. Whele readint a netlis:
|
||||||
* - Chargement modules et nouvelles connexions
|
* - Load new footprints
|
||||||
* - Test des modules (modules manquants ou en trop
|
* - Initialise net info
|
||||||
* - Recalcul du chevelu
|
* - Test for missing or extra footprints
|
||||||
|
* - Recalculate ratsnest
|
||||||
*
|
*
|
||||||
* Remarque importante:
|
* Important remark:
|
||||||
* Lors de la lecture de la netliste pour Chargement modules
|
* When reading a netlist Pcbnew must identify existing footprints (link between existing footprints an components in netlist)
|
||||||
* et nouvelles connexions, l'identification des modules peut se faire selon
|
* This identification can be from 2 fields:
|
||||||
* 2 criteres:
|
* - The reference (U2, R5 ..): this is the normal mode
|
||||||
* - la reference (U2, R5 ..): c'est le mode normal
|
* - The Time Stamp (Signature Temporelle), useful after a full schematic reannotation
|
||||||
* - le Time Stamp (Signature Temporelle), a utiliser apres reannotation
|
* because references can be changed for the same schematic.
|
||||||
* d'un schema, donc apres modification des references sans pourtant
|
* So when reading a netlist this identification ReadPcbNetlist() has aselection of the way to identify footprints.
|
||||||
* avoir reellement modifie le schema
|
* If we want to fully reannotate a schematic this sequence must be used
|
||||||
|
* SAVE your board !!!
|
||||||
|
* Create and read the netlist (to ensure all info is correct, mainly references and time stamp)
|
||||||
|
* Reannotate the schematic (references will be changed, but not time stamp)
|
||||||
|
* Recreate and read the new netlist using the Time Stamp identification (that reinit the new references)
|
||||||
*/
|
*/
|
||||||
#include "fctsys.h"
|
#include "fctsys.h"
|
||||||
#include "gr_basic.h"
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "class_drawpanel.h"
|
#include "class_drawpanel.h"
|
||||||
#include "confirm.h"
|
#include "confirm.h"
|
||||||
#include "kicad_string.h"
|
#include "kicad_string.h"
|
||||||
#include "gestfich.h"
|
#include "gestfich.h"
|
||||||
#include "pcbnew.h"
|
#include "pcbnew.h"
|
||||||
#include "autorout.h"
|
|
||||||
|
#include "dialog_netlist.h"
|
||||||
|
|
||||||
#include "protos.h"
|
#include "protos.h"
|
||||||
|
|
||||||
#define TESTONLY 1 /* ctes utilisees lors de l'appel a */
|
// constants used by ReadPcbNetlist():
|
||||||
#define READMODULE 0 /* ReadPcbNetlist() */
|
#define TESTONLY 1
|
||||||
|
#define READMODULE 0
|
||||||
|
|
||||||
/* Structures locales */
|
/* Structures locales */
|
||||||
class MODULEtoLOAD : public EDA_BaseStruct
|
class MODULEtoLOAD
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
wxString m_LibName;
|
wxString m_LibName;
|
||||||
wxString m_CmpName;
|
wxString m_CmpName;
|
||||||
wxString m_Path;
|
wxString m_TimeStampPath;
|
||||||
|
MODULEtoLOAD* m_Next;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
MODULEtoLOAD( const wxString& libname,
|
MODULEtoLOAD( const wxString& libname,
|
||||||
const wxString& cmpname,
|
const wxString& cmpname,
|
||||||
int timestamp,
|
const wxString& timestamp_path )
|
||||||
const wxString& path );
|
{
|
||||||
|
m_LibName = libname;
|
||||||
|
m_CmpName = cmpname;
|
||||||
|
m_TimeStampPath = timestamp_path;
|
||||||
|
m_Next = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
~MODULEtoLOAD() { };
|
~MODULEtoLOAD() { };
|
||||||
|
|
||||||
MODULEtoLOAD* Next() const { return (MODULEtoLOAD*) Pnext; }
|
MODULEtoLOAD* Next() const { return (MODULEtoLOAD*) m_Next; }
|
||||||
|
void SetNext( MODULEtoLOAD* next ) { m_Next = next; }
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Fonctions locales : */
|
/* Fonctions locales : */
|
||||||
static void SortListModulesToLoadByLibname( int NbModules );
|
static void SortListModulesToLoadByLibname( int NbModules );
|
||||||
static void TestFor_Duplicate_Missing_And_Extra_Footprints( wxWindow* frame,
|
|
||||||
const wxString& NetlistFullFilename,
|
|
||||||
BOARD* Pcb );
|
|
||||||
static int BuildFootprintsListFromNetlistFile( const wxString& aNetlistFullFilename,
|
static int BuildFootprintsListFromNetlistFile( const wxString& aNetlistFullFilename,
|
||||||
wxArrayString& aBufName );
|
wxArrayString& aBufName );
|
||||||
static bool OpenNetlistFile( const wxString& aFullFileName );
|
static bool OpenNetlistFile( const wxString& aFullFileName );
|
||||||
static void AddToList( const wxString& NameLibCmp,
|
static void AddToList( const wxString& NameLibCmp,
|
||||||
const wxString& NameCmp,
|
const wxString& NameCmp,
|
||||||
int TimeStamp,
|
const wxString& TimeStampPath );
|
||||||
const wxString& path );
|
static int SetPadNetName( wxWindow* aFrame,
|
||||||
static int SetPadNetName( wxWindow* aFrame, char* Text, MODULE* Module );
|
char* Text,
|
||||||
static void ReadPcbNetlist( WinEDA_PcbFrame* aFrame,
|
MODULE* Module,
|
||||||
const wxString& aNetlistFullFilename,
|
wxTextCtrl* aMessageWindow );
|
||||||
const wxString& aCmpFullFileName,
|
|
||||||
wxTextCtrl* aMessageWindow,
|
|
||||||
bool aChangeFootprint,
|
|
||||||
bool aDeleteBadTracks,
|
|
||||||
bool aDeleteExtraFootprints,
|
|
||||||
bool aSelect_By_Timestamp,
|
|
||||||
bool aVerbose );
|
|
||||||
static int ReadListeModules( const wxString& CmpFullFileName,
|
static int ReadListeModules( const wxString& CmpFullFileName,
|
||||||
const wxString* RefCmp,
|
const wxString* RefCmp,
|
||||||
long TimeStamp,
|
const wxString* TimeStampPath,
|
||||||
wxString& NameModule );
|
wxString& NameModule );
|
||||||
static MODULE* ReadNetModule( WinEDA_PcbFrame* aFrame,
|
static MODULE* ReadNetModule( WinEDA_PcbFrame* aFrame,
|
||||||
wxTextCtrl* aMessageWindow,
|
wxTextCtrl* aMessageWindow,
|
||||||
|
@ -94,37 +96,14 @@ static void LoadListeModules( WinEDA_PcbFrame* aPcbFrame, wxDC* DC );
|
||||||
static int s_NbNewModules;
|
static int s_NbNewModules;
|
||||||
static MODULEtoLOAD* s_ModuleToLoad_List;
|
static MODULEtoLOAD* s_ModuleToLoad_List;
|
||||||
FILE* source;
|
FILE* source;
|
||||||
static int DisplayWarningCount;
|
|
||||||
|
|
||||||
/*****************************/
|
|
||||||
/* class WinEDA_NetlistFrame */
|
|
||||||
/*****************************/
|
|
||||||
#include "dialog_netlist.cpp"
|
|
||||||
|
|
||||||
|
|
||||||
/*************************************************************************/
|
|
||||||
void WinEDA_PcbFrame::InstallNetlistFrame( wxDC* DC, const wxPoint& pos )
|
|
||||||
/*************************************************************************/
|
|
||||||
{
|
|
||||||
/* Setup the default netlist file name according to the board file name */
|
|
||||||
wxFileName fn = GetScreen()->m_FileName;
|
|
||||||
|
|
||||||
fn.SetExt( NetExtBuffer );
|
|
||||||
|
|
||||||
WinEDA_NetlistFrame* frame = new WinEDA_NetlistFrame( this, DC,
|
|
||||||
fn.GetFullPath() );
|
|
||||||
|
|
||||||
frame->ShowModal();
|
|
||||||
frame->Destroy();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/************************************************************************/
|
/************************************************************************/
|
||||||
bool OpenNetlistFile( const wxString& aFullFileName )
|
bool OpenNetlistFile( const wxString& aFullFileName )
|
||||||
/************************************************************************/
|
/************************************************************************/
|
||||||
|
|
||||||
/*
|
/** function OpenNetlistFile
|
||||||
* routine de selection et d'ouverture du fichier Netlist
|
* used to open a netlist file
|
||||||
*/
|
*/
|
||||||
{
|
{
|
||||||
if( aFullFileName.IsEmpty() )
|
if( aFullFileName.IsEmpty() )
|
||||||
|
@ -139,7 +118,7 @@ bool OpenNetlistFile( const wxString& aFullFileName )
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
return TRUE;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -151,14 +130,17 @@ void ReadPcbNetlist( WinEDA_PcbFrame* aFrame,
|
||||||
bool aChangeFootprint,
|
bool aChangeFootprint,
|
||||||
bool aDeleteBadTracks,
|
bool aDeleteBadTracks,
|
||||||
bool aDeleteExtraFootprints,
|
bool aDeleteExtraFootprints,
|
||||||
bool aSelect_By_Timestamp,
|
bool aSelect_By_Timestamp )
|
||||||
bool aVerbose )
|
|
||||||
/********************************************************************************/
|
/********************************************************************************/
|
||||||
|
|
||||||
/* mise a jour des empreintes :
|
/** Function ReadPcbNetlist
|
||||||
* corrige les Net Names, les textes, les "TIME STAMP"
|
* Update footprints (load missing footprints and delete on request extra footprints)
|
||||||
|
* Update connectivity info ( Net Name list )
|
||||||
|
* Update Reference, value and "TIME STAMP"
|
||||||
|
* @param aNetlistFullFilename = netlist file name (*.net)
|
||||||
|
* @param aCmpFullFileName = cmp/footprint list file name (*.cmp) if not found, only the netmist will be used
|
||||||
*
|
*
|
||||||
* Analyse les lignes:
|
* the format of the netlist is something like:
|
||||||
# EESchema Netlist Version 1.0 generee le 18/5/2005-12:30:22
|
# EESchema Netlist Version 1.0 generee le 18/5/2005-12:30:22
|
||||||
* (
|
* (
|
||||||
* ( 40C08647 $noname R20 4,7K {Lib=R}
|
* ( 40C08647 $noname R20 4,7K {Lib=R}
|
||||||
|
@ -170,7 +152,7 @@ void ReadPcbNetlist( WinEDA_PcbFrame* aFrame,
|
||||||
* ( 2 MODA_1 )
|
* ( 2 MODA_1 )
|
||||||
* )
|
* )
|
||||||
* }
|
* }
|
||||||
#End
|
* #End
|
||||||
*/
|
*/
|
||||||
{
|
{
|
||||||
int LineNum, State, Comment;
|
int LineNum, State, Comment;
|
||||||
|
@ -179,19 +161,16 @@ void ReadPcbNetlist( WinEDA_PcbFrame* aFrame,
|
||||||
char Line[256];
|
char Line[256];
|
||||||
char* Text;
|
char* Text;
|
||||||
int UseFichCmp = 1;
|
int UseFichCmp = 1;
|
||||||
wxString msg;
|
|
||||||
|
|
||||||
if( aVerbose )
|
|
||||||
DisplayWarningCount = 8;
|
|
||||||
else
|
|
||||||
DisplayWarningCount = 0;
|
|
||||||
|
|
||||||
if( !OpenNetlistFile( aNetlistFullFilename ) )
|
if( !OpenNetlistFile( aNetlistFullFilename ) )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
msg = _( "Read Netlist " ) + aNetlistFullFilename;
|
|
||||||
if( aMessageWindow )
|
if( aMessageWindow )
|
||||||
aMessageWindow->AppendText( msg );
|
{
|
||||||
|
wxString msg;
|
||||||
|
msg.Printf( _( "Reading Netlist \"%s\"" ), GetChars( aNetlistFullFilename ) );
|
||||||
|
aMessageWindow->AppendText( msg + wxT( "\n" ) );
|
||||||
|
}
|
||||||
|
|
||||||
aFrame->GetScreen()->SetModify();
|
aFrame->GetScreen()->SetModify();
|
||||||
aFrame->GetBoard()->m_Status_Pcb = 0; State = 0; LineNum = 0; Comment = 0;
|
aFrame->GetBoard()->m_Status_Pcb = 0; State = 0; LineNum = 0; Comment = 0;
|
||||||
|
@ -199,7 +178,7 @@ void ReadPcbNetlist( WinEDA_PcbFrame* aFrame,
|
||||||
|
|
||||||
wxBusyCursor dummy; // Shows an hourglass while calculating
|
wxBusyCursor dummy; // Shows an hourglass while calculating
|
||||||
|
|
||||||
/* First read of the netlist: Build the list of footprints to load (new footprints)
|
/* First, read the netlist: Build the list of footprints to load (new footprints)
|
||||||
*/
|
*/
|
||||||
while( GetLine( source, Line, &LineNum ) )
|
while( GetLine( source, Line, &LineNum ) )
|
||||||
{
|
{
|
||||||
|
@ -265,13 +244,13 @@ void ReadPcbNetlist( WinEDA_PcbFrame* aFrame,
|
||||||
{
|
{
|
||||||
Text = StrPurge( Line );
|
Text = StrPurge( Line );
|
||||||
|
|
||||||
if( Comment ) /* Commentaires en cours */
|
if( Comment ) /* we are reading a commment */
|
||||||
{
|
{
|
||||||
if( ( Text = strchr( Text, '}' ) ) == NULL )
|
if( ( Text = strchr( Text, '}' ) ) == NULL ) /* this is the end of a comment */
|
||||||
continue;
|
continue;
|
||||||
Comment = 0;
|
Comment = 0;
|
||||||
}
|
}
|
||||||
if( *Text == '{' ) /* Commentaires */
|
if( *Text == '{' ) /* this is the beginning of a comment */
|
||||||
{
|
{
|
||||||
Comment = 1;
|
Comment = 1;
|
||||||
if( ( Text = strchr( Text, '}' ) ) == NULL )
|
if( ( Text = strchr( Text, '}' ) ) == NULL )
|
||||||
|
@ -293,11 +272,11 @@ void ReadPcbNetlist( WinEDA_PcbFrame* aFrame,
|
||||||
READMODULE,
|
READMODULE,
|
||||||
aSelect_By_Timestamp,
|
aSelect_By_Timestamp,
|
||||||
aChangeFootprint );
|
aChangeFootprint );
|
||||||
if( Module == NULL )
|
if( Module == NULL ) // the module could not be created (perhaps footprint not found in library)
|
||||||
{ /* empreinte non trouvee dans la netliste */
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
else /* Raz netnames sur pads */
|
else /* clear pads netnames */
|
||||||
{
|
{
|
||||||
PtPad = Module->m_Pads;
|
PtPad = Module->m_Pads;
|
||||||
for( ; PtPad != NULL; PtPad = (D_PAD*) PtPad->Next() )
|
for( ; PtPad != NULL; PtPad = (D_PAD*) PtPad->Next() )
|
||||||
|
@ -312,7 +291,7 @@ void ReadPcbNetlist( WinEDA_PcbFrame* aFrame,
|
||||||
{
|
{
|
||||||
if( Module )
|
if( Module )
|
||||||
{
|
{
|
||||||
SetPadNetName( NULL, Text, Module );
|
SetPadNetName( NULL, Text, Module, aMessageWindow );
|
||||||
}
|
}
|
||||||
State--;
|
State--;
|
||||||
}
|
}
|
||||||
|
@ -321,21 +300,23 @@ void ReadPcbNetlist( WinEDA_PcbFrame* aFrame,
|
||||||
fclose( source );
|
fclose( source );
|
||||||
|
|
||||||
// Delete footprints not found in netlist:
|
// Delete footprints not found in netlist:
|
||||||
if ( aDeleteExtraFootprints )
|
if( aDeleteExtraFootprints )
|
||||||
{
|
{
|
||||||
wxArrayString ModuleListFromNetlist;
|
wxArrayString ModuleListFromNetlist;
|
||||||
/* Build list of modules in the netlist */
|
/* Build list of modules in the netlist */
|
||||||
int NbModulesNetListe = BuildFootprintsListFromNetlistFile( aNetlistFullFilename, ModuleListFromNetlist );
|
int NbModulesNetListe = BuildFootprintsListFromNetlistFile(
|
||||||
|
aNetlistFullFilename,
|
||||||
|
ModuleListFromNetlist );
|
||||||
if( NbModulesNetListe )
|
if( NbModulesNetListe )
|
||||||
{
|
{
|
||||||
MODULE * NextModule;
|
MODULE* NextModule;
|
||||||
Module = aFrame->GetBoard()->m_Modules;
|
Module = aFrame->GetBoard()->m_Modules;
|
||||||
bool ask_for_confirmation = true;
|
bool ask_for_confirmation = true;
|
||||||
for( ; Module != NULL; Module = NextModule )
|
for( ; Module != NULL; Module = NextModule )
|
||||||
{
|
{
|
||||||
int ii;
|
int ii;
|
||||||
NextModule = Module->Next();
|
NextModule = Module->Next();
|
||||||
if ( (Module->m_ModuleStatus & MODULE_is_LOCKED) )
|
if( (Module->m_ModuleStatus & MODULE_is_LOCKED) )
|
||||||
continue;
|
continue;
|
||||||
for( ii = 0; ii < NbModulesNetListe; ii++ )
|
for( ii = 0; ii < NbModulesNetListe; ii++ )
|
||||||
{
|
{
|
||||||
|
@ -348,10 +329,10 @@ void ReadPcbNetlist( WinEDA_PcbFrame* aFrame,
|
||||||
|
|
||||||
if( ii == NbModulesNetListe ) /* Module not found in netlist */
|
if( ii == NbModulesNetListe ) /* Module not found in netlist */
|
||||||
{
|
{
|
||||||
if ( ask_for_confirmation )
|
if( ask_for_confirmation )
|
||||||
{
|
{
|
||||||
ask_for_confirmation = false;
|
ask_for_confirmation = false;
|
||||||
if ( ! IsOK( NULL, _("Ok to delete footprints not in netlist ?") ) )
|
if( !IsOK( NULL, _( "Ok to delete footprints not in netlist ?" ) ) )
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
aFrame->Delete_Module( Module, NULL, false );
|
aFrame->Delete_Module( Module, NULL, false );
|
||||||
|
@ -361,14 +342,14 @@ void ReadPcbNetlist( WinEDA_PcbFrame* aFrame,
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Rebuild the connectivity */
|
/* Rebuild the connectivity */
|
||||||
aFrame->Compile_Ratsnest( NULL, TRUE );
|
aFrame->Compile_Ratsnest( NULL, true );
|
||||||
|
|
||||||
if( aFrame->GetBoard()->m_Track )
|
if( aFrame->GetBoard()->m_Track )
|
||||||
{
|
{
|
||||||
if( aDeleteBadTracks ) // Remove erroneous tracks
|
if( aDeleteBadTracks ) // Remove erroneous tracks
|
||||||
{
|
{
|
||||||
Netliste_Controle_piste( aFrame, NULL, TRUE );
|
Netliste_Controle_piste( aFrame, NULL, true );
|
||||||
aFrame->Compile_Ratsnest( NULL, TRUE );
|
aFrame->Compile_Ratsnest( NULL, true );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -407,12 +388,11 @@ MODULE* ReadNetModule( WinEDA_PcbFrame* aFrame,
|
||||||
{
|
{
|
||||||
MODULE* Module;
|
MODULE* Module;
|
||||||
char* text;
|
char* text;
|
||||||
wxString TextTimeStamp;
|
wxString TimeStampPath;
|
||||||
wxString TextNameLibMod;
|
wxString TextNameLibMod;
|
||||||
wxString TextValeur;
|
wxString TextValeur;
|
||||||
wxString TextCmpName;
|
wxString TextCmpName;
|
||||||
wxString NameLibCmp;
|
wxString NameLibCmp;
|
||||||
unsigned long TimeStamp = 0;
|
|
||||||
int Error = 0;
|
int Error = 0;
|
||||||
char Line[1024];
|
char Line[1024];
|
||||||
bool Found;
|
bool Found;
|
||||||
|
@ -424,7 +404,7 @@ MODULE* ReadNetModule( WinEDA_PcbFrame* aFrame,
|
||||||
if( ( text = strtok( Line, " ()\t\n" ) ) == NULL )
|
if( ( text = strtok( Line, " ()\t\n" ) ) == NULL )
|
||||||
Error = 1;
|
Error = 1;
|
||||||
else
|
else
|
||||||
TextTimeStamp = CONV_FROM_UTF8( text );
|
TimeStampPath = CONV_FROM_UTF8( text );
|
||||||
|
|
||||||
if( ( text = strtok( NULL, " ()\t\n" ) ) == NULL )
|
if( ( text = strtok( NULL, " ()\t\n" ) ) == NULL )
|
||||||
Error = 1;
|
Error = 1;
|
||||||
|
@ -444,27 +424,24 @@ MODULE* ReadNetModule( WinEDA_PcbFrame* aFrame,
|
||||||
if( Error > 0 )
|
if( Error > 0 )
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
wxString LocalTimeStamp = TextTimeStamp.AfterLast( '/' );
|
|
||||||
LocalTimeStamp.ToULong( &TimeStamp, 16 );
|
|
||||||
|
|
||||||
/* Tst si composant deja charge */
|
/* Tst si composant deja charge */
|
||||||
Module = aFrame->GetBoard()->m_Modules;
|
Module = aFrame->GetBoard()->m_Modules;
|
||||||
MODULE* NextModule;
|
MODULE* NextModule;
|
||||||
for( Found = FALSE; Module != NULL; Module = NextModule )
|
|
||||||
|
for( Found = false; Module != NULL; Module = NextModule )
|
||||||
{
|
{
|
||||||
NextModule = Module->Next();
|
NextModule = Module->Next();
|
||||||
if( aSelect_By_Timestamp ) /* Reconnaissance par signature temporelle */
|
if( aSelect_By_Timestamp ) /* identification by time stamp */
|
||||||
{
|
{
|
||||||
//if( TimeStamp == Module->m_TimeStamp )
|
if( TimeStampPath.CmpNoCase( Module->m_Path ) == 0 )
|
||||||
if( TextTimeStamp.CmpNoCase( Module->m_Path ) )
|
Found = true;
|
||||||
Found = TRUE;
|
|
||||||
}
|
}
|
||||||
else /* Reconnaissance par Reference */
|
else /* identification by Reference */
|
||||||
{
|
{
|
||||||
if( TextCmpName.CmpNoCase( Module->m_Reference->m_Text ) == 0 )
|
if( TextCmpName.CmpNoCase( Module->m_Reference->m_Text ) == 0 )
|
||||||
Found = TRUE;
|
Found = true;
|
||||||
}
|
}
|
||||||
if( Found ) // Test si module (m_LibRef) et module specifie en netlist concordent
|
if( Found ) // test footprint matching for existing modules: current m_LibRef and module name in netlist must match
|
||||||
{
|
{
|
||||||
if( TstOnly != TESTONLY )
|
if( TstOnly != TESTONLY )
|
||||||
{
|
{
|
||||||
|
@ -472,108 +449,94 @@ MODULE* ReadNetModule( WinEDA_PcbFrame* aFrame,
|
||||||
if( *UseFichCmp )
|
if( *UseFichCmp )
|
||||||
{
|
{
|
||||||
if( aSelect_By_Timestamp )
|
if( aSelect_By_Timestamp )
|
||||||
{ /* Reconnaissance par signature temporelle */
|
{
|
||||||
*UseFichCmp = ReadListeModules( aCmpFullFileName,
|
*UseFichCmp = ReadListeModules( aCmpFullFileName,
|
||||||
NULL,
|
NULL,
|
||||||
TimeStamp,
|
&TimeStampPath,
|
||||||
NameLibCmp );
|
NameLibCmp );
|
||||||
}
|
}
|
||||||
else /* Reconnaissance par Reference */
|
else
|
||||||
{
|
{
|
||||||
*UseFichCmp = ReadListeModules( aCmpFullFileName,
|
*UseFichCmp = ReadListeModules( aCmpFullFileName,
|
||||||
&TextCmpName,
|
&TextCmpName,
|
||||||
0l,
|
NULL,
|
||||||
NameLibCmp );
|
NameLibCmp );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if( Module->m_LibRef.CmpNoCase( NameLibCmp ) != 0 )
|
if( Module->m_LibRef.CmpNoCase( NameLibCmp ) != 0 ) // Module Mismatch: Current module and module specified in netlist are different.
|
||||||
{ // Module Mismatch: Current module and module specified in netlist are diff.
|
{
|
||||||
if( aChangeFootprint )
|
if( aChangeFootprint ) // footprint exchange allowed:
|
||||||
{
|
{
|
||||||
MODULE* NewModule =
|
MODULE* NewModule =
|
||||||
aFrame->Get_Librairie_Module( wxEmptyString, NameLibCmp, TRUE );
|
aFrame->Get_Librairie_Module( wxEmptyString, NameLibCmp, true );
|
||||||
if( NewModule ) /* Nouveau module trouve : changement de module */
|
if( NewModule ) /* Change old module to the new module (and delete the old one)*/
|
||||||
Module = aFrame->Exchange_Module( NULL, Module, NewModule );
|
Module = aFrame->Exchange_Module( NULL, Module, NewModule );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
wxString msg;
|
wxString msg;
|
||||||
if( aMessageWindow )
|
|
||||||
{
|
|
||||||
msg.Printf(
|
msg.Printf(
|
||||||
_( "Cmp %s: Mismatch! module is [%s] and netlist said [%s]\n" ),
|
_(
|
||||||
|
"Component \"%s\": Mismatch! module is [%s] and netlist said [%s]\n" ),
|
||||||
TextCmpName.GetData(), Module->m_LibRef.GetData(),
|
TextCmpName.GetData(), Module->m_LibRef.GetData(),
|
||||||
NameLibCmp.GetData() );
|
NameLibCmp.GetData() );
|
||||||
|
|
||||||
|
if( aMessageWindow )
|
||||||
aMessageWindow->AppendText( msg );
|
aMessageWindow->AppendText( msg );
|
||||||
}
|
}
|
||||||
if( DisplayWarningCount > 0 )
|
|
||||||
{
|
|
||||||
DisplayError( NULL, msg, 2 );
|
|
||||||
DisplayWarningCount--;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if( Module == NULL ) /* Module a charger */
|
if( Module == NULL ) /* a new module must be loaded from libs */
|
||||||
{
|
{
|
||||||
NameLibCmp = TextNameLibMod;
|
|
||||||
|
|
||||||
if( *UseFichCmp )
|
if( *UseFichCmp )
|
||||||
{
|
{
|
||||||
if( aSelect_By_Timestamp == 1 )
|
if( aSelect_By_Timestamp == 1 )
|
||||||
{ /* Reconnaissance par signature temporelle */
|
|
||||||
*UseFichCmp = ReadListeModules( aCmpFullFileName, NULL, TimeStamp, NameLibCmp );
|
|
||||||
}
|
|
||||||
else /* Reconnaissance par Reference */
|
|
||||||
{
|
{
|
||||||
*UseFichCmp = ReadListeModules( aCmpFullFileName, &TextCmpName, 0l, NameLibCmp );
|
*UseFichCmp = ReadListeModules( aCmpFullFileName, NULL, &TimeStampPath, NameLibCmp );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
*UseFichCmp = ReadListeModules( aCmpFullFileName, &TextCmpName, NULL, NameLibCmp );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if( TstOnly == TESTONLY )
|
if( TstOnly == TESTONLY )
|
||||||
AddToList( NameLibCmp, TextCmpName, TimeStamp, TextTimeStamp );
|
AddToList( NameLibCmp, TextCmpName, TimeStampPath );
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if( aMessageWindow && (DisplayWarningCount> 0) )
|
if( aMessageWindow )
|
||||||
{
|
{
|
||||||
wxString msg;
|
wxString msg;
|
||||||
msg.Printf( _( "Component [%s] not found" ), TextCmpName.GetData() );
|
msg.Printf( _( "Component [%s] not found" ), TextCmpName.GetData() );
|
||||||
aMessageWindow->AppendText( msg + wxT( "\n" ) );
|
aMessageWindow->AppendText( msg + wxT( "\n" ) );
|
||||||
DisplayError( NULL, msg, 2 );
|
|
||||||
DisplayWarningCount--;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return NULL; /* Le module n'avait pas pu etre charge */
|
return NULL; /* Le module n'avait pas pu etre charge */
|
||||||
}
|
}
|
||||||
|
|
||||||
/* mise a jour des reperes ( nom et ref "Time Stamp") si module charge */
|
/* Fields update ( reference, value and "Time Stamp") */
|
||||||
Module->m_Reference->m_Text = TextCmpName;
|
Module->m_Reference->m_Text = TextCmpName;
|
||||||
Module->m_Value->m_Text = TextValeur;
|
Module->m_Value->m_Text = TextValeur;
|
||||||
Module->m_TimeStamp = TimeStamp;
|
Module->m_Path = TimeStampPath;
|
||||||
Module->m_Path = TextTimeStamp;
|
|
||||||
|
|
||||||
#if defined (DEBUG)
|
|
||||||
printf( "in ReadNetModule() m_Path = %s\n",
|
|
||||||
CONV_TO_UTF8( Module->m_Path ) );
|
|
||||||
#endif
|
|
||||||
|
|
||||||
return Module; /* composant trouve */
|
return Module; /* composant trouve */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/********************************************************************/
|
/*******************************************************************************************/
|
||||||
int SetPadNetName( wxWindow* frame, char* Text, MODULE* Module )
|
int SetPadNetName( wxWindow* frame, char* Text, MODULE* Module, wxTextCtrl* aMessageWindow )
|
||||||
/********************************************************************/
|
/*******************************************************************************************/
|
||||||
|
|
||||||
/** Function SetPadNetName
|
/** Function SetPadNetName
|
||||||
* Update a pad netname in a given footprint
|
* Update a pad netname in a given footprint
|
||||||
* @param Text = Text from netlist (format: (pad = net) )
|
* @param Text = Text from netlist (format: (pad = net) )
|
||||||
* @param Module = the given footprint
|
* @param Module = the given footprint
|
||||||
|
* @param aMessageWindow = a wxTextCtrl to print error and warning message (can be NULL)
|
||||||
*/
|
*/
|
||||||
{
|
{
|
||||||
D_PAD* pad;
|
D_PAD* pad;
|
||||||
|
@ -599,23 +562,25 @@ int SetPadNetName( wxWindow* frame, char* Text, MODULE* Module )
|
||||||
pad = Module->m_Pads; trouve = FALSE;
|
pad = Module->m_Pads; trouve = FALSE;
|
||||||
for( ; pad != NULL; pad = (D_PAD*) pad->Next() )
|
for( ; pad != NULL; pad = (D_PAD*) pad->Next() )
|
||||||
{
|
{
|
||||||
if( strnicmp( TextPinName, pad->m_Padname, 4 ) == 0 )
|
if( strnicmp( TextPinName, pad->m_Padname, 4 ) == 0 ) /* trouve */
|
||||||
{ /* trouve */
|
{
|
||||||
trouve = TRUE;
|
trouve = true;
|
||||||
if( *TextNetName != '?' )
|
if( *TextNetName != '?' )
|
||||||
pad->SetNetname( CONV_FROM_UTF8( TextNetName ) );
|
pad->SetNetname( CONV_FROM_UTF8( TextNetName ) );
|
||||||
else
|
else
|
||||||
pad->SetNetname( wxEmptyString);
|
pad->SetNetname( wxEmptyString );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if( !trouve && (DisplayWarningCount > 0) )
|
if( !trouve )
|
||||||
|
{
|
||||||
|
if( aMessageWindow )
|
||||||
{
|
{
|
||||||
wxString pin_name = CONV_FROM_UTF8( TextPinName );
|
wxString pin_name = CONV_FROM_UTF8( TextPinName );
|
||||||
Msg.Printf( _( "Module [%s]: Pad [%s] not found" ),
|
Msg.Printf( _( "Module [%s]: Pad [%s] not found" ),
|
||||||
Module->m_Reference->m_Text.GetData(), pin_name.GetData() );
|
Module->m_Reference->m_Text.GetData(), pin_name.GetData() );
|
||||||
DisplayError( frame, Msg, 1 );
|
aMessageWindow->AppendText( Msg + wxT( "\n" ) );
|
||||||
DisplayWarningCount--;
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return trouve;
|
return trouve;
|
||||||
|
@ -626,54 +591,44 @@ int SetPadNetName( wxWindow* frame, char* Text, MODULE* Module )
|
||||||
MODULE* WinEDA_PcbFrame::ListAndSelectModuleName( void )
|
MODULE* WinEDA_PcbFrame::ListAndSelectModuleName( void )
|
||||||
/*****************************************************/
|
/*****************************************************/
|
||||||
|
|
||||||
/* liste les noms des modules du PCB
|
/**
|
||||||
* Retourne:
|
* build and shows a list of existing modules on board
|
||||||
* un pointeur sur le module selectionne
|
* The user can slect a module from this list
|
||||||
* NULL si pas de selection
|
* @return a pointer to the selected module or NULL
|
||||||
*/
|
*/
|
||||||
{
|
{
|
||||||
int ii, jj, nb_empr;
|
int ii, jj;
|
||||||
MODULE* Module;
|
MODULE* Module;
|
||||||
WinEDAListBox* ListBox;
|
|
||||||
const wxChar** ListNames = NULL;
|
|
||||||
|
|
||||||
if( GetBoard()->m_Modules == NULL )
|
if( GetBoard()->m_Modules == NULL )
|
||||||
{
|
{
|
||||||
DisplayError( this, _( "No Modules" ) ); return 0;
|
DisplayError( this, _( "No Modules" ) ); return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Calcul du nombre des modules */
|
WinEDAListBox listbox( this, _( "Components" ), NULL, wxEmptyString );
|
||||||
nb_empr = 0; Module = (MODULE*) GetBoard()->m_Modules;
|
|
||||||
for( ; Module != NULL; Module = (MODULE*) Module->Next() )
|
|
||||||
nb_empr++;
|
|
||||||
|
|
||||||
ListNames = (const wxChar**) MyZMalloc( (nb_empr + 1) * sizeof(wxChar*) );
|
|
||||||
Module = (MODULE*) GetBoard()->m_Modules;
|
Module = (MODULE*) GetBoard()->m_Modules;
|
||||||
for( ii = 0; Module != NULL; Module = (MODULE*) Module->Next(), ii++ )
|
for( ; Module != NULL; Module = (MODULE*) Module->Next() )
|
||||||
{
|
{
|
||||||
ListNames[ii] = Module->m_Reference->m_Text.GetData();
|
listbox.Append( Module->m_Reference->m_Text );
|
||||||
}
|
}
|
||||||
|
|
||||||
ListBox = new WinEDAListBox( this, _( "Components" ),
|
ii = listbox.ShowModal();
|
||||||
ListNames, wxEmptyString );
|
|
||||||
ii = ListBox->ShowModal(); ListBox->Destroy();
|
|
||||||
|
|
||||||
|
if( ii < 0 )
|
||||||
if( ii < 0 ) /* Pas de selection */
|
|
||||||
{
|
{
|
||||||
Module = NULL;
|
Module = NULL;
|
||||||
}
|
}
|
||||||
else /* Recherche du module selectionne */
|
else /* Search for the selected footprint */
|
||||||
{
|
{
|
||||||
|
wxString ref = listbox.GetTextSelection();
|
||||||
Module = (MODULE*) GetBoard()->m_Modules;
|
Module = (MODULE*) GetBoard()->m_Modules;
|
||||||
for( jj = 0; Module != NULL; Module = (MODULE*) Module->Next(), jj++ )
|
for( jj = 0; Module != NULL; Module = (MODULE*) Module->Next(), jj++ )
|
||||||
{
|
{
|
||||||
if( Module->m_Reference->m_Text.Cmp( ListNames[ii] ) == 0 )
|
if( Module->m_Reference->m_Text.Cmp( ref ) == 0 )
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
free( ListNames );
|
|
||||||
return Module;
|
return Module;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -707,7 +662,8 @@ void TestFor_Duplicate_Missing_And_Extra_Footprints( wxWindow* aFrame,
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Construction de la liste des references des modules de la netliste */
|
/* Construction de la liste des references des modules de la netliste */
|
||||||
NbModulesNetListe = BuildFootprintsListFromNetlistFile( aNetlistFullFilename, ModuleListFromNetlist );
|
NbModulesNetListe = BuildFootprintsListFromNetlistFile( aNetlistFullFilename,
|
||||||
|
ModuleListFromNetlist );
|
||||||
if( NbModulesNetListe < 0 )
|
if( NbModulesNetListe < 0 )
|
||||||
return; /* File not found */
|
return; /* File not found */
|
||||||
|
|
||||||
|
@ -785,7 +741,8 @@ void TestFor_Duplicate_Missing_And_Extra_Footprints( wxWindow* aFrame,
|
||||||
|
|
||||||
|
|
||||||
/***************************************************************************************/
|
/***************************************************************************************/
|
||||||
int BuildFootprintsListFromNetlistFile( const wxString& aNetlistFullFilename, wxArrayString& aBufName )
|
int BuildFootprintsListFromNetlistFile( const wxString& aNetlistFullFilename,
|
||||||
|
wxArrayString& aBufName )
|
||||||
/***************************************************************************************/
|
/***************************************************************************************/
|
||||||
|
|
||||||
/** Function BuildFootprintsListFromNetlistFile
|
/** Function BuildFootprintsListFromNetlistFile
|
||||||
|
@ -855,14 +812,14 @@ int BuildFootprintsListFromNetlistFile( const wxString& aNetlistFullFilename, wx
|
||||||
|
|
||||||
|
|
||||||
/*****************************************************************************************/
|
/*****************************************************************************************/
|
||||||
int ReadListeModules( const wxString& CmpFullFileName, const wxString* RefCmp, long TimeStamp,
|
int ReadListeModules( const wxString& CmpFullFileName, const wxString* RefCmp,
|
||||||
wxString& NameModule )
|
const wxString* TimeStamp, wxString& NameModule )
|
||||||
/*****************************************************************************************/
|
/*****************************************************************************************/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Lit le fichier .CMP donnant l'equivalence Modules / Composants
|
* Lit le fichier .CMP donnant l'equivalence Modules / Composants
|
||||||
* Retourne:
|
* Retourne:
|
||||||
* Si ce fichier existe:
|
* Si ce fichier existe retourne :
|
||||||
* 1 et le nom module dans NameModule
|
* 1 et le nom module dans NameModule
|
||||||
* -1 si module non trouve en fichier
|
* -1 si module non trouve en fichier
|
||||||
* sinon 0;
|
* sinon 0;
|
||||||
|
@ -877,14 +834,14 @@ int ReadListeModules( const wxString& CmpFullFileName, const wxString* RefCmp, l
|
||||||
* Cmp-Mod V01 Genere par PcbNew le 29/10/2003-13:11:6
|
* Cmp-Mod V01 Genere par PcbNew le 29/10/2003-13:11:6
|
||||||
*
|
*
|
||||||
* BeginCmp
|
* BeginCmp
|
||||||
* TimeStamp = 322D3011;
|
* TimeStamp = /322D3011;
|
||||||
* Reference = BUS1;
|
* Reference = BUS1;
|
||||||
* ValeurCmp = BUSPC;
|
* ValeurCmp = BUSPC;
|
||||||
* IdModule = BUS_PC;
|
* IdModule = BUS_PC;
|
||||||
* EndCmp
|
* EndCmp
|
||||||
*
|
*
|
||||||
* BeginCmp
|
* BeginCmp
|
||||||
* TimeStamp = 32307DE2;
|
* TimeStamp = /32307DE2/AA450F67;
|
||||||
* Reference = C1;
|
* Reference = C1;
|
||||||
* ValeurCmp = 47uF;
|
* ValeurCmp = 47uF;
|
||||||
* IdModule = CP6;
|
* IdModule = CP6;
|
||||||
|
@ -892,9 +849,8 @@ int ReadListeModules( const wxString& CmpFullFileName, const wxString* RefCmp, l
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
{
|
{
|
||||||
wxString refcurrcmp, idmod;
|
wxString refcurrcmp, timestamp, idmod;
|
||||||
char ia[1024];
|
char ia[1024];
|
||||||
int timestamp;
|
|
||||||
char* ptcar;
|
char* ptcar;
|
||||||
FILE* FichCmp;
|
FILE* FichCmp;
|
||||||
|
|
||||||
|
@ -919,7 +875,7 @@ int ReadListeModules( const wxString& CmpFullFileName, const wxString* RefCmp, l
|
||||||
/* Ici une description de 1 composant commence */
|
/* Ici une description de 1 composant commence */
|
||||||
refcurrcmp.Empty();
|
refcurrcmp.Empty();
|
||||||
idmod.Empty();
|
idmod.Empty();
|
||||||
timestamp = -1;
|
timestamp.Empty();
|
||||||
while( fgets( ia, sizeof(ia), FichCmp ) != NULL )
|
while( fgets( ia, sizeof(ia), FichCmp ) != NULL )
|
||||||
{
|
{
|
||||||
if( strnicmp( ia, "EndCmp", 6 ) == 0 )
|
if( strnicmp( ia, "EndCmp", 6 ) == 0 )
|
||||||
|
@ -947,7 +903,7 @@ int ReadListeModules( const wxString& CmpFullFileName, const wxString* RefCmp, l
|
||||||
ptcar = ia + 11;
|
ptcar = ia + 11;
|
||||||
ptcar = strtok( ptcar, " =;\t\n" );
|
ptcar = strtok( ptcar, " =;\t\n" );
|
||||||
if( ptcar )
|
if( ptcar )
|
||||||
sscanf( ptcar, "%X", ×tamp );
|
timestamp = CONV_FROM_UTF8( ptcar );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -956,16 +912,16 @@ int ReadListeModules( const wxString& CmpFullFileName, const wxString* RefCmp, l
|
||||||
/* Test du Composant lu en fichier: est-il le bon */
|
/* Test du Composant lu en fichier: est-il le bon */
|
||||||
if( RefCmp )
|
if( RefCmp )
|
||||||
{
|
{
|
||||||
if( RefCmp->CmpNoCase( refcurrcmp ) == 0 )
|
if( RefCmp->CmpNoCase( refcurrcmp ) == 0 ) //Found!
|
||||||
{
|
{
|
||||||
fclose( FichCmp );
|
fclose( FichCmp );
|
||||||
NameModule = idmod;
|
NameModule = idmod;
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if( TimeStamp != -1 )
|
else if( TimeStamp )
|
||||||
{
|
{
|
||||||
if( TimeStamp == timestamp )
|
if( TimeStamp->CmpNoCase( timestamp ) == 0 && !timestamp.IsEmpty() ) //Found
|
||||||
{
|
{
|
||||||
fclose( FichCmp );
|
fclose( FichCmp );
|
||||||
NameModule = idmod;
|
NameModule = idmod;
|
||||||
|
@ -980,8 +936,7 @@ int ReadListeModules( const wxString& CmpFullFileName, const wxString* RefCmp, l
|
||||||
|
|
||||||
|
|
||||||
/***********************************************************************************/
|
/***********************************************************************************/
|
||||||
void AddToList( const wxString& NameLibCmp, const wxString& CmpName,
|
void AddToList( const wxString& NameLibCmp, const wxString& CmpName, const wxString& path )
|
||||||
int TimeStamp, const wxString& path )
|
|
||||||
/************************************************************************************/
|
/************************************************************************************/
|
||||||
|
|
||||||
/* Fontion copiant en memoire de travail les caracteristiques
|
/* Fontion copiant en memoire de travail les caracteristiques
|
||||||
|
@ -990,7 +945,7 @@ void AddToList( const wxString& NameLibCmp, const wxString& CmpName,
|
||||||
{
|
{
|
||||||
MODULEtoLOAD* NewMod;
|
MODULEtoLOAD* NewMod;
|
||||||
|
|
||||||
NewMod = new MODULEtoLOAD( NameLibCmp, CmpName, TimeStamp, path );
|
NewMod = new MODULEtoLOAD( NameLibCmp, CmpName, path );
|
||||||
NewMod->SetNext( s_ModuleToLoad_List );
|
NewMod->SetNext( s_ModuleToLoad_List );
|
||||||
s_ModuleToLoad_List = NewMod;
|
s_ModuleToLoad_List = NewMod;
|
||||||
s_NbNewModules++;
|
s_NbNewModules++;
|
||||||
|
@ -1050,8 +1005,8 @@ void LoadListeModules( WinEDA_PcbFrame* aPcbFrame, wxDC* DC )
|
||||||
|
|
||||||
/* Update schematic links : reference "Time Stamp" and schematic hierarchical path */
|
/* Update schematic links : reference "Time Stamp" and schematic hierarchical path */
|
||||||
Module->m_Reference->m_Text = cmp->m_CmpName;
|
Module->m_Reference->m_Text = cmp->m_CmpName;
|
||||||
Module->m_TimeStamp = cmp->m_TimeStamp;
|
Module->m_TimeStamp = GetTimeStamp();
|
||||||
Module->m_Path = cmp->m_Path;
|
Module->m_Path = cmp->m_TimeStampPath;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -1067,8 +1022,8 @@ void LoadListeModules( WinEDA_PcbFrame* aPcbFrame, wxDC* DC )
|
||||||
|
|
||||||
Module = newmodule;
|
Module = newmodule;
|
||||||
Module->m_Reference->m_Text = cmp->m_CmpName;
|
Module->m_Reference->m_Text = cmp->m_CmpName;
|
||||||
Module->m_TimeStamp = cmp->m_TimeStamp;
|
Module->m_TimeStamp = GetTimeStamp();
|
||||||
Module->m_Path = cmp->m_Path;
|
Module->m_Path = cmp->m_TimeStampPath;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1121,15 +1076,3 @@ void SortListModulesToLoadByLibname( int NbModules )
|
||||||
|
|
||||||
free( base_list );
|
free( base_list );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*****************************************************************************/
|
|
||||||
MODULEtoLOAD::MODULEtoLOAD( const wxString& libname, const wxString& cmpname,
|
|
||||||
int timestamp, const wxString& path ) : EDA_BaseStruct( TYPE_NOT_INIT )
|
|
||||||
/*****************************************************************************/
|
|
||||||
{
|
|
||||||
m_LibName = libname;
|
|
||||||
m_CmpName = cmpname;
|
|
||||||
m_TimeStamp = timestamp;
|
|
||||||
m_Path = path;
|
|
||||||
}
|
|
||||||
|
|
Loading…
Reference in New Issue