Netlist dialog redesigned, netlist.cpp code modified

This commit is contained in:
charras 2008-03-22 18:08:44 +00:00
parent 154be142cb
commit 72357970aa
15 changed files with 1290 additions and 618 deletions

View File

@ -5,6 +5,14 @@ Started 2007-June-11
Please add newer entries at the top, list the date and your name with Please add newer entries at the top, list the date and your name with
email address. email address.
2008-Mar-21 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+pcbnew
Netlist dialog redesigned, netlist.cpp code modified
and added an option to remove not locked footprints
when not found in netlist
2008-Mar-21 UPDATE Dick Hollenbeck <dick@softplc.com> 2008-Mar-21 UPDATE Dick Hollenbeck <dick@softplc.com>
================================================================================ ================================================================================
+pcbnew +pcbnew

View File

@ -298,7 +298,9 @@ void AddMenusForComponent( wxMenu* PopMenu, SCH_COMPONENT* Component )
if( !Component->m_Flags ) if( !Component->m_Flags )
{ {
msg = AddHotkeyName( _( "Move Component" ), s_Schematic_Hokeys_Descr, HK_MOVE_COMPONENT ); msg = _( "Move Component" );
msg << wxT(" ") << Component->GetFieldValue( REFERENCE );
msg = AddHotkeyName( msg, s_Schematic_Hokeys_Descr, HK_MOVE_COMPONENT );
ADD_MENUITEM( PopMenu, ID_POPUP_SCH_MOVE_CMP_REQUEST, ADD_MENUITEM( PopMenu, ID_POPUP_SCH_MOVE_CMP_REQUEST,
msg, move_xpm ); msg, move_xpm );
msg = AddHotkeyName( _( "Drag Component" ), s_Schematic_Hokeys_Descr, HK_DRAG_COMPONENT ); msg = AddHotkeyName( _( "Drag Component" ), s_Schematic_Hokeys_Descr, HK_DRAG_COMPONENT );

View File

@ -441,7 +441,7 @@ public:
// Footprint edition (see also WinEDA_BasePcbFrame) // Footprint edition (see also WinEDA_BasePcbFrame)
void StartMove_Module( MODULE* module, wxDC* DC ); void StartMove_Module( MODULE* module, wxDC* DC );
bool Delete_Module( MODULE* module, wxDC* DC ); bool Delete_Module( MODULE* module, wxDC* DC, bool aAskBeforeDeleting );
// loading modules: see WinEDA_BasePcbFrame // loading modules: see WinEDA_BasePcbFrame

View File

@ -1,17 +1,17 @@
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
// Name: dialog_netlist.cpp // Name: dialog_netlist.cpp
// Purpose: // Purpose:
// Author: jean-pierre Charras // Author: jean-pierre Charras
// Modified by: // Modified by:
// Created: 26/02/2006 17:42:19 // Created: 26/02/2006 17:42:19
// RCS-ID: // RCS-ID:
// Copyright: License GNU // Copyright: License GNU
// Licence: // Licence:
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
// Generated by DialogBlocks (unregistered), 26/02/2006 17:42:19 // Generated by DialogBlocks (unregistered), 26/02/2006 17:42:19
// For compilers that support precompilation, includes "wx/wx.h". // For compilers that support precompilation, includes "wx/wx.h".
#include "wx/wxprec.h" #include "wx/wxprec.h"
@ -31,6 +31,8 @@
////@begin XPM images ////@begin XPM images
////@end XPM images ////@end XPM images
static bool DisplayWarning;
/*! /*!
* WinEDA_NetlistFrame type definition * WinEDA_NetlistFrame type definition
*/ */
@ -62,36 +64,55 @@ END_EVENT_TABLE()
* WinEDA_NetlistFrame constructors * WinEDA_NetlistFrame constructors
*/ */
WinEDA_NetlistFrame::WinEDA_NetlistFrame( ) WinEDA_NetlistFrame::WinEDA_NetlistFrame()
{ {
} }
WinEDA_NetlistFrame::WinEDA_NetlistFrame( WinEDA_PcbFrame* parent, wxDC * DC,
wxWindowID id, const wxString& caption, const wxPoint& pos, const wxSize& size, long style ) WinEDA_NetlistFrame::WinEDA_NetlistFrame( WinEDA_PcbFrame* parent,
wxDC* DC,
const wxString& aNetlistFilename,
wxWindowID id,
const wxString& caption,
const wxPoint& pos,
const wxSize& size,
long style )
{ {
m_Parent = parent; m_Parent = parent;
m_DC = DC; m_DC = DC;
/* Setup the NETLIST file name according to the board file name */
NetNameBuffer = m_Parent->m_CurrentScreen->m_FileName;
ChangeFileNameExt(NetNameBuffer, NetExtBuffer);
Create(parent, id, caption, pos, size, style); Create( parent, id, caption, pos, size, style );
wxString title = GetTitle() + NetNameBuffer; m_NetlistFilenameCtrl->SetValue( aNetlistFilename );
SetTitle(title); }
/*!
* WinEDA_NetlistFrame destructor
*/
WinEDA_NetlistFrame::~WinEDA_NetlistFrame()
{
} }
/*! /*!
* WinEDA_NetlistFrame creator * WinEDA_NetlistFrame creator
*/ */
bool WinEDA_NetlistFrame::Create( wxWindow* parent, wxWindowID id, const wxString& caption, const wxPoint& pos, const wxSize& size, long style ) bool WinEDA_NetlistFrame::Create( wxWindow* parent,
wxWindowID id,
const wxString& caption,
const wxPoint& pos,
const wxSize& size,
long style )
{ {
////@begin WinEDA_NetlistFrame member initialisation ////@begin WinEDA_NetlistFrame member initialisation
m_Select_By_Timestamp = NULL; m_Select_By_Timestamp = NULL;
m_ChangeExistingFootprintCtrl = NULL;
m_DeleteBadTracks = NULL; m_DeleteBadTracks = NULL;
m_ChangeExistantModuleCtrl = NULL;
m_DisplayWarningCtrl = NULL; m_DisplayWarningCtrl = NULL;
m_RemoveExtraFootprintsCtrl = NULL;
m_NetlistFilenameCtrl = NULL;
m_MessageWindow = NULL; m_MessageWindow = NULL;
StdDialogButtonSizer = NULL; StdDialogButtonSizer = NULL;
////@end WinEDA_NetlistFrame member initialisation ////@end WinEDA_NetlistFrame member initialisation
@ -110,15 +131,17 @@ bool WinEDA_NetlistFrame::Create( wxWindow* parent, wxWindowID id, const wxStrin
return true; return true;
} }
/*! /*!
* Control creation for WinEDA_NetlistFrame * Control creation for WinEDA_NetlistFrame
*/ */
void WinEDA_NetlistFrame::CreateControls() void WinEDA_NetlistFrame::CreateControls()
{ {
SetFont( *g_DialogFont ); SetFont( *g_DialogFont );
////@begin WinEDA_NetlistFrame content construction ////@begin WinEDA_NetlistFrame content construction
// Generated by DialogBlocks, 13/11/2007 15:31:19 (unregistered) // Generated by DialogBlocks, 22/03/2008 18:44:52 (unregistered)
WinEDA_NetlistFrame* itemDialog1 = this; WinEDA_NetlistFrame* itemDialog1 = this;
@ -128,67 +151,103 @@ void WinEDA_NetlistFrame::CreateControls()
wxBoxSizer* itemBoxSizer3 = new wxBoxSizer(wxHORIZONTAL); wxBoxSizer* itemBoxSizer3 = new wxBoxSizer(wxHORIZONTAL);
itemBoxSizer2->Add(itemBoxSizer3, 0, wxGROW|wxLEFT|wxRIGHT|wxTOP, 5); itemBoxSizer2->Add(itemBoxSizer3, 0, wxGROW|wxLEFT|wxRIGHT|wxTOP, 5);
wxBoxSizer* itemBoxSizer4 = new wxBoxSizer(wxVERTICAL); wxBoxSizer* itemBoxSizer4 = new wxBoxSizer(wxHORIZONTAL);
itemBoxSizer3->Add(itemBoxSizer4, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5); 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; wxArrayString m_Select_By_TimestampStrings;
m_Select_By_TimestampStrings.Add(_("Reference")); m_Select_By_TimestampStrings.Add(_("Reference"));
m_Select_By_TimestampStrings.Add(_("Timestamp")); m_Select_By_TimestampStrings.Add(_("Timestamp"));
m_Select_By_Timestamp = new wxRadioBox( itemDialog1, ID_RADIOBOX, _("Module Selection:"), wxDefaultPosition, wxDefaultSize, m_Select_By_TimestampStrings, 1, wxRA_SPECIFY_COLS ); 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); m_Select_By_Timestamp->SetSelection(0);
itemBoxSizer4->Add(m_Select_By_Timestamp, 0, wxGROW|wxALL, 5); if (WinEDA_NetlistFrame::ShowToolTips())
m_Select_By_Timestamp->SetToolTip(_("Select how footprints are reconized:\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; wxArrayString m_DeleteBadTracksStrings;
m_DeleteBadTracksStrings.Add(_("Keep")); m_DeleteBadTracksStrings.Add(_("Keep"));
m_DeleteBadTracksStrings.Add(_("Delete")); m_DeleteBadTracksStrings.Add(_("Delete"));
m_DeleteBadTracks = new wxRadioBox( itemDialog1, ID_RADIOBOX1, _("Bad Tracks Deletion:"), wxDefaultPosition, wxDefaultSize, m_DeleteBadTracksStrings, 1, wxRA_SPECIFY_COLS ); m_DeleteBadTracks = new wxRadioBox( itemDialog1, ID_DELETE_TRACKS_OPTION, _("Bad Tracks Deletion:"), wxDefaultPosition, wxDefaultSize, m_DeleteBadTracksStrings, 1, wxRA_SPECIFY_COLS );
m_DeleteBadTracks->SetSelection(0); m_DeleteBadTracks->SetSelection(0);
itemBoxSizer4->Add(m_DeleteBadTracks, 0, wxGROW|wxALL, 5); if (WinEDA_NetlistFrame::ShowToolTips())
m_DeleteBadTracks->SetToolTip(_("Keep or delete bad tracks after a netlist change"));
itemBoxSizer9->Add(m_DeleteBadTracks, 0, wxGROW|wxALL, 5);
wxArrayString m_ChangeExistantModuleCtrlStrings; wxStaticBox* itemStaticBoxSizer11Static = new wxStaticBox(itemDialog1, wxID_ANY, _("Options"));
m_ChangeExistantModuleCtrlStrings.Add(_("Keep")); wxStaticBoxSizer* itemStaticBoxSizer11 = new wxStaticBoxSizer(itemStaticBoxSizer11Static, wxVERTICAL);
m_ChangeExistantModuleCtrlStrings.Add(_("Change")); itemBoxSizer9->Add(itemStaticBoxSizer11, 0, wxGROW|wxALL, 5);
m_ChangeExistantModuleCtrl = new wxRadioBox( itemDialog1, ID_RADIOBOX2, _("Exchange Module:"), wxDefaultPosition, wxDefaultSize, m_ChangeExistantModuleCtrlStrings, 1, wxRA_SPECIFY_COLS );
m_ChangeExistantModuleCtrl->SetSelection(0);
itemBoxSizer4->Add(m_ChangeExistantModuleCtrl, 0, wxGROW|wxALL, 5);
m_DisplayWarningCtrl = new wxCheckBox( itemDialog1, ID_CHECKBOX, _("Display Warnings"), wxDefaultPosition, wxDefaultSize, wxCHK_2STATE ); m_DisplayWarningCtrl = new wxCheckBox( itemDialog1, ID_DISPLAY_WARNINGS_OPT, _("Display Warnings"), wxDefaultPosition, wxDefaultSize, wxCHK_2STATE );
m_DisplayWarningCtrl->SetValue(false); m_DisplayWarningCtrl->SetValue(false);
itemBoxSizer4->Add(m_DisplayWarningCtrl, 0, wxGROW|wxLEFT|wxRIGHT|wxTOP, 5); 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); itemBoxSizer3->Add(5, 5, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxBoxSizer* itemBoxSizer10 = new wxBoxSizer(wxVERTICAL); wxBoxSizer* itemBoxSizer15 = new wxBoxSizer(wxVERTICAL);
itemBoxSizer3->Add(itemBoxSizer10, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5); itemBoxSizer3->Add(itemBoxSizer15, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5);
wxButton* itemButton11 = new wxButton( itemDialog1, ID_OPEN_NELIST, _("Select"), wxDefaultPosition, wxDefaultSize, 0 ); wxButton* itemButton16 = new wxButton( itemDialog1, ID_OPEN_NELIST, _("Browse Netlist Files"), wxDefaultPosition, wxDefaultSize, 0 );
itemButton11->SetForegroundColour(wxColour(217, 0, 0)); itemButton16->SetForegroundColour(wxColour(217, 0, 0));
itemBoxSizer10->Add(itemButton11, 0, wxGROW|wxALL, 5); itemBoxSizer15->Add(itemButton16, 0, wxGROW|wxALL, 5);
wxButton* itemButton12 = new wxButton( itemDialog1, ID_READ_NETLIST_FILE, _("Read"), wxDefaultPosition, wxDefaultSize, 0 ); wxButton* itemButton17 = new wxButton( itemDialog1, ID_READ_NETLIST_FILE, _("Read Current Netlist"), wxDefaultPosition, wxDefaultSize, 0 );
itemButton12->SetForegroundColour(wxColour(0, 128, 0)); itemButton17->SetForegroundColour(wxColour(0, 128, 0));
itemBoxSizer10->Add(itemButton12, 0, wxGROW|wxALL, 5); itemBoxSizer15->Add(itemButton17, 0, wxGROW|wxALL, 5);
wxButton* itemButton13 = new wxButton( itemDialog1, ID_TEST_NETLIST, _("Module Test"), wxDefaultPosition, wxDefaultSize, 0 ); wxButton* itemButton18 = new wxButton( itemDialog1, ID_TEST_NETLIST, _("Footprints Test"), wxDefaultPosition, wxDefaultSize, 0 );
itemButton13->SetForegroundColour(wxColour(0, 128, 128)); if (WinEDA_NetlistFrame::ShowToolTips())
itemBoxSizer10->Add(itemButton13, 0, wxGROW|wxALL, 5); 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* itemButton14 = new wxButton( itemDialog1, ID_COMPILE_RATSNEST, _("Compile"), wxDefaultPosition, wxDefaultSize, 0 ); wxButton* itemButton19 = new wxButton( itemDialog1, ID_COMPILE_RATSNEST, _("Rebuild Board Connectivity"), wxDefaultPosition, wxDefaultSize, 0 );
itemButton14->SetForegroundColour(wxColour(0, 0, 132)); if (WinEDA_NetlistFrame::ShowToolTips())
itemBoxSizer10->Add(itemButton14, 0, wxGROW|wxALL, 5); 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);
wxStaticBox* itemStaticBoxSizer20Static = new wxStaticBox(itemDialog1, wxID_ANY, _("Netlist File:"));
wxStaticBoxSizer* itemStaticBoxSizer20 = new wxStaticBoxSizer(itemStaticBoxSizer20Static, wxVERTICAL);
itemStaticBoxSizer20Static->SetForegroundColour(wxColour(0, 0, 255));
itemBoxSizer2->Add(itemStaticBoxSizer20, 0, wxGROW|wxALL, 5);
m_NetlistFilenameCtrl = new wxTextCtrl( itemDialog1, ID_TEXT_NETLIST_FILENAME, _T(""), wxDefaultPosition, wxDefaultSize, 0 );
itemStaticBoxSizer20->Add(m_NetlistFilenameCtrl, 0, wxGROW|wxALL, 5);
m_MessageWindow = new wxTextCtrl( itemDialog1, ID_TEXTCTRL, _T(""), wxDefaultPosition, wxSize(-1, 120), wxTE_MULTILINE|wxTE_READONLY ); m_MessageWindow = new wxTextCtrl( itemDialog1, ID_TEXTCTRL, _T(""), wxDefaultPosition, wxSize(-1, 120), wxTE_MULTILINE|wxTE_READONLY );
itemBoxSizer2->Add(m_MessageWindow, 1, wxGROW|wxALL, 10); itemBoxSizer2->Add(m_MessageWindow, 1, wxGROW|wxALL, 10);
wxStaticLine* itemStaticLine16 = new wxStaticLine( itemDialog1, ID_STATICLINE, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL ); wxStaticLine* itemStaticLine23 = new wxStaticLine( itemDialog1, ID_STATICLINE, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
itemBoxSizer2->Add(itemStaticLine16, 0, wxGROW|wxLEFT|wxRIGHT, 5); itemBoxSizer2->Add(itemStaticLine23, 0, wxGROW|wxLEFT|wxRIGHT, 5);
StdDialogButtonSizer = new wxStdDialogButtonSizer; StdDialogButtonSizer = new wxStdDialogButtonSizer;
itemBoxSizer2->Add(StdDialogButtonSizer, 0, wxGROW|wxALL, 10); itemBoxSizer2->Add(StdDialogButtonSizer, 0, wxGROW|wxALL, 10);
wxButton* itemButton18 = new wxButton( itemDialog1, wxID_CANCEL, _("&Cancel"), wxDefaultPosition, wxDefaultSize, 0 ); wxButton* itemButton25 = new wxButton( itemDialog1, wxID_CANCEL, _("&Close"), wxDefaultPosition, wxDefaultSize, 0 );
itemButton18->SetForegroundColour(wxColour(0, 0, 255)); itemButton25->SetForegroundColour(wxColour(0, 0, 255));
StdDialogButtonSizer->AddButton(itemButton18); StdDialogButtonSizer->AddButton(itemButton25);
StdDialogButtonSizer->Realize(); StdDialogButtonSizer->Realize();
@ -197,6 +256,7 @@ void WinEDA_NetlistFrame::CreateControls()
////@end WinEDA_NetlistFrame content construction ////@end WinEDA_NetlistFrame content construction
} }
/*! /*!
* Should we show tooltips? * Should we show tooltips?
*/ */
@ -206,6 +266,7 @@ bool WinEDA_NetlistFrame::ShowToolTips()
return true; return true;
} }
/*! /*!
* Get bitmap resources * Get bitmap resources
*/ */
@ -219,6 +280,7 @@ wxBitmap WinEDA_NetlistFrame::GetBitmapResource( const wxString& name )
////@end WinEDA_NetlistFrame bitmap retrieval ////@end WinEDA_NetlistFrame bitmap retrieval
} }
/*! /*!
* Get icon resources * Get icon resources
*/ */
@ -231,42 +293,76 @@ wxIcon WinEDA_NetlistFrame::GetIconResource( const wxString& name )
return wxNullIcon; return wxNullIcon;
////@end WinEDA_NetlistFrame icon retrieval ////@end WinEDA_NetlistFrame icon retrieval
} }
/*! /*!
* wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_OPEN_NELIST * wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_OPEN_NELIST
*/ */
void WinEDA_NetlistFrame::OnOpenNelistClick( wxCommandEvent& event ) void WinEDA_NetlistFrame::OnOpenNelistClick( wxCommandEvent& event )
{ {
Set_NetlisteName(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;
m_NetlistFilenameCtrl->SetValue( fullfilename );
} }
/*! /*!
* wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_READ_NETLIST_FILE * wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_READ_NETLIST_FILE
*/ */
void WinEDA_NetlistFrame::OnReadNetlistFileClick( wxCommandEvent& event ) void WinEDA_NetlistFrame::OnReadNetlistFileClick( wxCommandEvent& event )
{ {
ReadPcbNetlist(event); wxString CmpFullFileName;
CmpFullFileName = m_NetlistFilenameCtrl->GetValue();
ChangeFileNameExt( CmpFullFileName, NetCmpExtBuffer );
ReadPcbNetlist( m_Parent, m_NetlistFilenameCtrl->GetValue(),
CmpFullFileName,
m_MessageWindow,
m_ChangeExistingFootprintCtrl->GetSelection() == 1 ? TRUE : FALSE,
m_DeleteBadTracks->GetSelection() == 1 ? TRUE : FALSE,
m_RemoveExtraFootprintsCtrl->IsChecked(),
m_Select_By_Timestamp->GetSelection() == 1 ? TRUE : FALSE,
m_DisplayWarningCtrl->IsChecked());
} }
/*! /*!
* wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_TEST_NETLIST * wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_TEST_NETLIST
*/ */
void WinEDA_NetlistFrame::OnTestNetlistClick( wxCommandEvent& event ) void WinEDA_NetlistFrame::OnTestNetlistClick( wxCommandEvent& event )
{ {
ModulesControle(event); TestFor_Duplicate_Missing_And_Extra_Footprints( this, m_NetlistFilenameCtrl->GetValue(), m_Parent->m_Pcb);
} }
/*! /*!
* 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 WinEDA_NetlistFrame::OnCompileRatsnestClick( wxCommandEvent& event )
{ {
m_Parent->Compile_Ratsnest(m_DC, TRUE); m_Parent->Compile_Ratsnest( m_DC, TRUE );
} }
/*! /*!
* wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_CANCEL * wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_CANCEL
*/ */

View File

@ -1,12 +1,13 @@
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
// Name: dialog_netlist.h // Name: dialog_netlist.h
// Purpose: // Purpose:
// Author: jean-pierre Charras // Author: jean-pierre Charras
// Modified by: // Modified by:
// Created: 26/02/2006 17:42:19 // Created: 26/02/2006 17:42:19
// RCS-ID: // RCS-ID:
// Copyright: License GNU // Copyright: License GNU
// Licence: // Licence:
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
// Generated by DialogBlocks (unregistered), 26/02/2006 17:42:19 // Generated by DialogBlocks (unregistered), 26/02/2006 17:42:19
@ -14,7 +15,6 @@
#ifndef _DIALOG_NETLIST_H_ #ifndef _DIALOG_NETLIST_H_
#define _DIALOG_NETLIST_H_ #define _DIALOG_NETLIST_H_
/*! /*!
* Includes * Includes
*/ */
@ -38,18 +38,20 @@ class wxStdDialogButtonSizer;
////@begin control identifiers ////@begin control identifiers
#define ID_DIALOG 10000 #define ID_DIALOG 10000
#define ID_RADIOBOX 10005 #define ID_SELECTION_FOOTPRINT_MODE 10005
#define ID_RADIOBOX1 10006 #define ID_KEEP_OR_CHANGE_FOOTPRINTS 10007
#define ID_RADIOBOX2 10007 #define ID_DELETE_TRACKS_OPTION 10006
#define ID_CHECKBOX 10008 #define ID_DISPLAY_WARNINGS_OPT 10008
#define ID_REMOVE_EXTRA_FOOTPRINTS_OPT 10011
#define ID_OPEN_NELIST 10001 #define ID_OPEN_NELIST 10001
#define ID_READ_NETLIST_FILE 10002 #define ID_READ_NETLIST_FILE 10002
#define ID_TEST_NETLIST 10003 #define ID_TEST_NETLIST 10003
#define ID_COMPILE_RATSNEST 10004 #define ID_COMPILE_RATSNEST 10004
#define ID_TEXT_NETLIST_FILENAME 10012
#define ID_TEXTCTRL 10009 #define ID_TEXTCTRL 10009
#define ID_STATICLINE 10010 #define ID_STATICLINE 10010
#define SYMBOL_WINEDA_NETLISTFRAME_STYLE wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER #define SYMBOL_WINEDA_NETLISTFRAME_STYLE wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER
#define SYMBOL_WINEDA_NETLISTFRAME_TITLE _("Netlist: ") #define SYMBOL_WINEDA_NETLISTFRAME_TITLE _("Netlist Dialog")
#define SYMBOL_WINEDA_NETLISTFRAME_IDNAME ID_DIALOG #define SYMBOL_WINEDA_NETLISTFRAME_IDNAME ID_DIALOG
#define SYMBOL_WINEDA_NETLISTFRAME_SIZE wxSize(400, 300) #define SYMBOL_WINEDA_NETLISTFRAME_SIZE wxSize(400, 300)
#define SYMBOL_WINEDA_NETLISTFRAME_POSITION wxDefaultPosition #define SYMBOL_WINEDA_NETLISTFRAME_POSITION wxDefaultPosition
@ -63,24 +65,33 @@ class wxStdDialogButtonSizer;
#define wxCLOSE_BOX 0x1000 #define wxCLOSE_BOX 0x1000
#endif #endif
/*! /*!
* WinEDA_NetlistFrame class declaration * WinEDA_NetlistFrame class declaration
*/ */
class WinEDA_NetlistFrame: public wxDialog class WinEDA_NetlistFrame: public wxDialog
{ {
DECLARE_DYNAMIC_CLASS( WinEDA_NetlistFrame ) DECLARE_DYNAMIC_CLASS( WinEDA_NetlistFrame )
DECLARE_EVENT_TABLE() DECLARE_EVENT_TABLE()
public: public:
/// Constructors /// Constructors
WinEDA_NetlistFrame( ); WinEDA_NetlistFrame();
WinEDA_NetlistFrame( WinEDA_PcbFrame* parent,wxDC * DC, WinEDA_NetlistFrame(WinEDA_PcbFrame* 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 ); 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 /// Creation
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 ); 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 );
/// Destructor
~WinEDA_NetlistFrame();
/// Initialises member variables
void Init();
/// Creates the controls and sizers /// Creates the controls and sizers
void CreateControls(); void CreateControls();
@ -115,31 +126,20 @@ public:
/// Should we show tooltips? /// Should we show tooltips?
static bool ShowToolTips(); static bool ShowToolTips();
void ReadPcbNetlist(wxCommandEvent& event);
void Set_NetlisteName(wxCommandEvent& event);
bool OpenNetlistFile(wxCommandEvent& event);
int BuildListeNetModules(wxCommandEvent& event, wxArrayString & BufName);
void ModulesControle(wxCommandEvent& event);
int ReadListeModules(const wxString * RefCmp, long TimeStamp, wxString & NameModule);
int SetPadNetName( char * Line, MODULE * Module);
MODULE * ReadNetModule( char * Text, int * UseFichCmp, int TstOnly);
void AddToList(const wxString & NameLibCmp,
const wxString & NameCmp,
int TimeStamp,
const wxString& path);
void LoadListeModules(wxDC *DC);
////@begin WinEDA_NetlistFrame member variables ////@begin WinEDA_NetlistFrame member variables
wxRadioBox* m_Select_By_Timestamp; wxRadioBox* m_Select_By_Timestamp;
wxRadioBox* m_ChangeExistingFootprintCtrl;
wxRadioBox* m_DeleteBadTracks; wxRadioBox* m_DeleteBadTracks;
wxRadioBox* m_ChangeExistantModuleCtrl;
wxCheckBox* m_DisplayWarningCtrl; wxCheckBox* m_DisplayWarningCtrl;
wxCheckBox* m_RemoveExtraFootprintsCtrl;
wxTextCtrl* m_NetlistFilenameCtrl;
wxTextCtrl* m_MessageWindow; wxTextCtrl* m_MessageWindow;
wxStdDialogButtonSizer* StdDialogButtonSizer; wxStdDialogButtonSizer* StdDialogButtonSizer;
////@end WinEDA_NetlistFrame member variables ////@end WinEDA_NetlistFrame member variables
WinEDA_PcbFrame * m_Parent; WinEDA_PcbFrame* m_Parent;
wxDC * m_DC; wxDC* m_DC;
}; };
#endif #endif
// _DIALOG_NETLIST_H_
// _DIALOG_NETLIST_H_

View File

@ -108,10 +108,12 @@
<bool name="use_resource_archive">0</bool> <bool name="use_resource_archive">0</bool>
<bool name="use_generated_xrc_cpp">0</bool> <bool name="use_generated_xrc_cpp">0</bool>
<bool name="always_generate_xrc">1</bool> <bool name="always_generate_xrc">1</bool>
<bool name="use_id_name_for_name">0</bool>
<bool name="archive_xrc_files">1</bool> <bool name="archive_xrc_files">1</bool>
<bool name="archive_image_files">1</bool> <bool name="archive_image_files">1</bool>
<bool name="archive_all_image_files">0</bool> <bool name="archive_all_image_files">0</bool>
<bool name="xrc_retain_relative_paths">1</bool> <bool name="xrc_retain_relative_paths">1</bool>
<bool name="xrc_generate_id_tags">0</bool>
</header> </header>
<data> <data>
<document> <document>
@ -199,7 +201,7 @@
<long name="title-mode">0</long> <long name="title-mode">0</long>
<long name="locked">1</long> <long name="locked">1</long>
<document> <document>
<string name="title">"Netlist: "</string> <string name="title">"Netlist Dialog"</string>
<string name="type">"dialog-document"</string> <string name="type">"dialog-document"</string>
<string name="filename">""</string> <string name="filename">""</string>
<string name="icon-name">"dialog"</string> <string name="icon-name">"dialog"</string>
@ -224,7 +226,7 @@
<string name="proxy-Implementation filename">"dialog_netlist.cpp"</string> <string name="proxy-Implementation filename">"dialog_netlist.cpp"</string>
<string name="proxy-Header filename">"dialog_netlist.h"</string> <string name="proxy-Header filename">"dialog_netlist.h"</string>
<string name="proxy-XRC filename">""</string> <string name="proxy-XRC filename">""</string>
<string name="proxy-Title">"Netlist: "</string> <string name="proxy-Title">"Netlist Dialog"</string>
<bool name="proxy-Centre">1</bool> <bool name="proxy-Centre">1</bool>
<string name="proxy-Icon">""</string> <string name="proxy-Icon">""</string>
<bool name="proxy-Dialog units">0</bool> <bool name="proxy-Dialog units">0</bool>
@ -246,7 +248,6 @@
<bool name="proxy-wxDEFAULT_DIALOG_STYLE">1</bool> <bool name="proxy-wxDEFAULT_DIALOG_STYLE">1</bool>
<bool name="proxy-wxCAPTION">0</bool> <bool name="proxy-wxCAPTION">0</bool>
<bool name="proxy-wxRESIZE_BORDER">1</bool> <bool name="proxy-wxRESIZE_BORDER">1</bool>
<bool name="proxy-wxTHICK_FRAME">0</bool>
<bool name="proxy-wxSYSTEM_MENU">0</bool> <bool name="proxy-wxSYSTEM_MENU">0</bool>
<bool name="proxy-wxSTAY_ON_TOP">0</bool> <bool name="proxy-wxSTAY_ON_TOP">0</bool>
<bool name="proxy-wxDIALOG_NO_PARENT">0</bool> <bool name="proxy-wxDIALOG_NO_PARENT">0</bool>
@ -319,7 +320,7 @@
<bool name="proxy-wxFIXED_MINSIZE">0</bool> <bool name="proxy-wxFIXED_MINSIZE">0</bool>
<string name="proxy-Platform">"&lt;Any platform&gt;"</string> <string name="proxy-Platform">"&lt;Any platform&gt;"</string>
<document> <document>
<string name="title">"wxBoxSizer V"</string> <string name="title">"wxBoxSizer H"</string>
<string name="type">"dialog-control-document"</string> <string name="type">"dialog-control-document"</string>
<string name="filename">""</string> <string name="filename">""</string>
<string name="icon-name">"sizer"</string> <string name="icon-name">"sizer"</string>
@ -329,7 +330,7 @@
<long name="locked">0</long> <long name="locked">0</long>
<string name="created">"26/3/2006"</string> <string name="created">"26/3/2006"</string>
<string name="proxy-type">"wbBoxSizerProxy"</string> <string name="proxy-type">"wbBoxSizerProxy"</string>
<string name="proxy-Orientation">"Vertical"</string> <string name="proxy-Orientation">"Horizontal"</string>
<string name="proxy-Member variable name">""</string> <string name="proxy-Member variable name">""</string>
<string name="proxy-AlignH">"Centre"</string> <string name="proxy-AlignH">"Centre"</string>
<string name="proxy-AlignV">"Centre"</string> <string name="proxy-AlignV">"Centre"</string>
@ -344,56 +345,20 @@
<bool name="proxy-wxFIXED_MINSIZE">0</bool> <bool name="proxy-wxFIXED_MINSIZE">0</bool>
<string name="proxy-Platform">"&lt;Any platform&gt;"</string> <string name="proxy-Platform">"&lt;Any platform&gt;"</string>
<document> <document>
<string name="title">"wxRadioBox: ID_RADIOBOX"</string> <string name="title">"wxBoxSizer V"</string>
<string name="type">"dialog-control-document"</string> <string name="type">"dialog-control-document"</string>
<string name="filename">""</string> <string name="filename">""</string>
<string name="icon-name">"radiobox"</string> <string name="icon-name">"sizer"</string>
<long name="is-transient">0</long> <long name="is-transient">0</long>
<long name="owns-file">1</long> <long name="owns-file">1</long>
<long name="title-mode">0</long> <long name="title-mode">0</long>
<long name="locked">0</long> <long name="locked">0</long>
<string name="created">"26/3/2006"</string> <string name="created">"22/3/2008"</string>
<string name="proxy-type">"wbRadioBoxProxy"</string> <string name="proxy-type">"wbBoxSizerProxy"</string>
<string name="proxy-Id name">"ID_RADIOBOX"</string> <string name="proxy-Orientation">"Vertical"</string>
<long name="proxy-Id value">10005</long> <string name="proxy-Member variable name">""</string>
<string name="proxy-Class">"wxRadioBox"</string> <string name="proxy-AlignH">"Centre"</string>
<string name="proxy-Base class">"wxRadioBox"</string> <string name="proxy-AlignV">"Expand"</string>
<bool name="proxy-External implementation">1</bool>
<bool name="proxy-Separate files">0</bool>
<string name="proxy-Implementation filename">""</string>
<string name="proxy-Header filename">""</string>
<string name="proxy-Member variable name">"m_Select_By_Timestamp"</string>
<string name="proxy-Label">"Module Selection:"</string>
<long name="proxy-Major dimension count">1</long>
<string name="proxy-Items">"Reference|Timestamp"</string>
<long name="proxy-Initial value">0</long>
<string name="proxy-Help text">""</string>
<string name="proxy-Tooltip text">""</string>
<string name="proxy-Background colour">""</string>
<string name="proxy-Foreground colour">""</string>
<string name="proxy-Font">""</string>
<bool name="proxy-Hidden">0</bool>
<bool name="proxy-Enabled">1</bool>
<string name="proxy-Platform">"&lt;Any platform&gt;"</string>
<string name="proxy-Data variable">""</string>
<string name="proxy-Data validator">""</string>
<string name="proxy-Data source">""</string>
<string name="proxy-Data class name">""</string>
<string name="proxy-Data class implementation filename">""</string>
<string name="proxy-Data class header filename">""</string>
<string name="proxy-Data class manager window">""</string>
<bool name="proxy-wxRA_SPECIFY_ROWS">0</bool>
<bool name="proxy-wxRA_SPECIFY_COLS">1</bool>
<bool name="proxy-wxWANTS_CHARS">0</bool>
<bool name="proxy-wxNO_FULL_REPAINT_ON_RESIZE">0</bool>
<bool name="proxy-wxFULL_REPAINT_ON_RESIZE">0</bool>
<string name="proxy-Custom styles">""</string>
<long name="proxy-X">-1</long>
<long name="proxy-Y">-1</long>
<long name="proxy-Width">-1</long>
<long name="proxy-Height">-1</long>
<string name="proxy-AlignH">"Expand"</string>
<string name="proxy-AlignV">"Centre"</string>
<long name="proxy-Stretch factor">0</long> <long name="proxy-Stretch factor">0</long>
<long name="proxy-Border">5</long> <long name="proxy-Border">5</long>
<bool name="proxy-wxLEFT">1</bool> <bool name="proxy-wxLEFT">1</bool>
@ -403,60 +368,179 @@
<bool name="proxy-wxSHAPED">0</bool> <bool name="proxy-wxSHAPED">0</bool>
<bool name="proxy-wxADJUST_MINSIZE">0</bool> <bool name="proxy-wxADJUST_MINSIZE">0</bool>
<bool name="proxy-wxFIXED_MINSIZE">0</bool> <bool name="proxy-wxFIXED_MINSIZE">0</bool>
<string name="proxy-Custom arguments">""</string> <string name="proxy-Platform">"&lt;Any platform&gt;"</string>
<string name="proxy-Custom ctor arguments">""</string> <document>
<string name="title">"wxRadioBox: ID_SELECTION_FOOTPRINT_MODE"</string>
<string name="type">"dialog-control-document"</string>
<string name="filename">""</string>
<string name="icon-name">"radiobox"</string>
<long name="is-transient">0</long>
<long name="owns-file">1</long>
<long name="title-mode">0</long>
<long name="locked">0</long>
<string name="created">"22/3/2008"</string>
<string name="proxy-type">"wbRadioBoxProxy"</string>
<string name="proxy-Id name">"ID_SELECTION_FOOTPRINT_MODE"</string>
<long name="proxy-Id value">10005</long>
<string name="proxy-Name">""</string>
<string name="proxy-Class">"wxRadioBox"</string>
<string name="proxy-Base class">"wxRadioBox"</string>
<bool name="proxy-External implementation">1</bool>
<bool name="proxy-Separate files">0</bool>
<string name="proxy-Implementation filename">""</string>
<string name="proxy-Header filename">""</string>
<string name="proxy-Member variable name">"m_Select_By_Timestamp"</string>
<string name="proxy-Label">"Module Selection:"</string>
<long name="proxy-Major dimension count">1</long>
<string name="proxy-Items">"Reference|Timestamp"</string>
<long name="proxy-Initial value">0</long>
<string name="proxy-Help text">""</string>
<string name="proxy-Tooltip text">"Select how footprints are reconized:
by their reference (U1, R3...) (normal setting)
or their time stamp (special setting after a full schematic reannotation)"</string>
<string name="proxy-Background colour">""</string>
<string name="proxy-Foreground colour">""</string>
<string name="proxy-Font">""</string>
<bool name="proxy-Hidden">0</bool>
<bool name="proxy-Enabled">1</bool>
<string name="proxy-Platform">"&lt;Any platform&gt;"</string>
<string name="proxy-Data variable">""</string>
<string name="proxy-Data validator">""</string>
<string name="proxy-Data source">""</string>
<string name="proxy-Data class name">""</string>
<string name="proxy-Data class implementation filename">""</string>
<string name="proxy-Data class header filename">""</string>
<string name="proxy-Data class manager window">""</string>
<bool name="proxy-wxRA_SPECIFY_ROWS">0</bool>
<bool name="proxy-wxRA_SPECIFY_COLS">1</bool>
<bool name="proxy-wxWANTS_CHARS">0</bool>
<bool name="proxy-wxNO_FULL_REPAINT_ON_RESIZE">0</bool>
<bool name="proxy-wxFULL_REPAINT_ON_RESIZE">0</bool>
<string name="proxy-Custom styles">""</string>
<long name="proxy-X">-1</long>
<long name="proxy-Y">-1</long>
<long name="proxy-Width">-1</long>
<long name="proxy-Height">-1</long>
<string name="proxy-AlignH">"Expand"</string>
<string name="proxy-AlignV">"Centre"</string>
<long name="proxy-Stretch factor">0</long>
<long name="proxy-Border">5</long>
<bool name="proxy-wxLEFT">1</bool>
<bool name="proxy-wxRIGHT">1</bool>
<bool name="proxy-wxTOP">1</bool>
<bool name="proxy-wxBOTTOM">1</bool>
<bool name="proxy-wxSHAPED">0</bool>
<bool name="proxy-wxADJUST_MINSIZE">0</bool>
<bool name="proxy-wxFIXED_MINSIZE">0</bool>
<string name="proxy-Custom arguments">""</string>
<string name="proxy-Custom ctor arguments">""</string>
</document>
<document>
<string name="title">"wxRadioBox: ID_KEEP_OR_CHANGE_FOOTPRINTS"</string>
<string name="type">"dialog-control-document"</string>
<string name="filename">""</string>
<string name="icon-name">"radiobox"</string>
<long name="is-transient">0</long>
<long name="owns-file">1</long>
<long name="title-mode">0</long>
<long name="locked">0</long>
<string name="created">"22/3/2008"</string>
<string name="proxy-type">"wbRadioBoxProxy"</string>
<string name="proxy-Id name">"ID_KEEP_OR_CHANGE_FOOTPRINTS"</string>
<long name="proxy-Id value">10007</long>
<string name="proxy-Name">""</string>
<string name="proxy-Class">"wxRadioBox"</string>
<string name="proxy-Base class">"wxRadioBox"</string>
<bool name="proxy-External implementation">1</bool>
<bool name="proxy-Separate files">0</bool>
<string name="proxy-Implementation filename">""</string>
<string name="proxy-Header filename">""</string>
<string name="proxy-Member variable name">"m_ChangeExistingFootprintCtrl"</string>
<string name="proxy-Label">"Exchange Module:"</string>
<long name="proxy-Major dimension count">1</long>
<string name="proxy-Items">"Keep|Change"</string>
<long name="proxy-Initial value">0</long>
<string name="proxy-Help text">""</string>
<string name="proxy-Tooltip text">"Keep or change an existing footprint when the netlist gives a different footprint"</string>
<string name="proxy-Background colour">""</string>
<string name="proxy-Foreground colour">""</string>
<string name="proxy-Font">""</string>
<bool name="proxy-Hidden">0</bool>
<bool name="proxy-Enabled">1</bool>
<string name="proxy-Platform">"&lt;Any platform&gt;"</string>
<string name="proxy-Data variable">""</string>
<string name="proxy-Data validator">""</string>
<string name="proxy-Data source">""</string>
<string name="proxy-Data class name">""</string>
<string name="proxy-Data class implementation filename">""</string>
<string name="proxy-Data class header filename">""</string>
<string name="proxy-Data class manager window">""</string>
<bool name="proxy-wxRA_SPECIFY_ROWS">0</bool>
<bool name="proxy-wxRA_SPECIFY_COLS">1</bool>
<bool name="proxy-wxWANTS_CHARS">0</bool>
<bool name="proxy-wxNO_FULL_REPAINT_ON_RESIZE">0</bool>
<bool name="proxy-wxFULL_REPAINT_ON_RESIZE">0</bool>
<string name="proxy-Custom styles">""</string>
<long name="proxy-X">-1</long>
<long name="proxy-Y">-1</long>
<long name="proxy-Width">-1</long>
<long name="proxy-Height">-1</long>
<string name="proxy-AlignH">"Expand"</string>
<string name="proxy-AlignV">"Centre"</string>
<long name="proxy-Stretch factor">0</long>
<long name="proxy-Border">5</long>
<bool name="proxy-wxLEFT">1</bool>
<bool name="proxy-wxRIGHT">1</bool>
<bool name="proxy-wxTOP">1</bool>
<bool name="proxy-wxBOTTOM">1</bool>
<bool name="proxy-wxSHAPED">0</bool>
<bool name="proxy-wxADJUST_MINSIZE">0</bool>
<bool name="proxy-wxFIXED_MINSIZE">0</bool>
<string name="proxy-Custom arguments">""</string>
<string name="proxy-Custom ctor arguments">""</string>
</document>
</document> </document>
<document> <document>
<string name="title">"wxRadioBox: ID_RADIOBOX1"</string> <string name="title">"Spacer"</string>
<string name="type">"dialog-control-document"</string> <string name="type">"dialog-control-document"</string>
<string name="filename">""</string> <string name="filename">""</string>
<string name="icon-name">"radiobox"</string> <string name="icon-name">"spacer"</string>
<long name="is-transient">0</long> <long name="is-transient">0</long>
<long name="owns-file">1</long> <long name="owns-file">1</long>
<long name="title-mode">0</long> <long name="title-mode">0</long>
<long name="locked">0</long> <long name="locked">0</long>
<string name="created">"26/3/2006"</string> <string name="created">"22/3/2008"</string>
<string name="proxy-type">"wbRadioBoxProxy"</string> <string name="proxy-type">"wbSpacerProxy"</string>
<string name="proxy-Id name">"ID_RADIOBOX1"</string> <long name="proxy-Width">5</long>
<long name="proxy-Id value">10006</long> <long name="proxy-Height">5</long>
<string name="proxy-Class">"wxRadioBox"</string> <string name="proxy-AlignH">"Centre"</string>
<string name="proxy-Base class">"wxRadioBox"</string>
<bool name="proxy-External implementation">1</bool>
<bool name="proxy-Separate files">0</bool>
<string name="proxy-Implementation filename">""</string>
<string name="proxy-Header filename">""</string>
<string name="proxy-Member variable name">"m_DeleteBadTracks"</string>
<string name="proxy-Label">"Bad Tracks Deletion:"</string>
<long name="proxy-Major dimension count">1</long>
<string name="proxy-Items">"Keep|Delete"</string>
<long name="proxy-Initial value">0</long>
<string name="proxy-Help text">""</string>
<string name="proxy-Tooltip text">""</string>
<string name="proxy-Background colour">""</string>
<string name="proxy-Foreground colour">""</string>
<string name="proxy-Font">""</string>
<bool name="proxy-Hidden">0</bool>
<bool name="proxy-Enabled">1</bool>
<string name="proxy-Platform">"&lt;Any platform&gt;"</string>
<string name="proxy-Data variable">""</string>
<string name="proxy-Data validator">""</string>
<string name="proxy-Data source">""</string>
<string name="proxy-Data class name">""</string>
<string name="proxy-Data class implementation filename">""</string>
<string name="proxy-Data class header filename">""</string>
<string name="proxy-Data class manager window">""</string>
<bool name="proxy-wxRA_SPECIFY_ROWS">0</bool>
<bool name="proxy-wxRA_SPECIFY_COLS">1</bool>
<bool name="proxy-wxWANTS_CHARS">0</bool>
<bool name="proxy-wxNO_FULL_REPAINT_ON_RESIZE">0</bool>
<bool name="proxy-wxFULL_REPAINT_ON_RESIZE">0</bool>
<string name="proxy-Custom styles">""</string>
<long name="proxy-X">-1</long>
<long name="proxy-Y">-1</long>
<long name="proxy-Width">-1</long>
<long name="proxy-Height">-1</long>
<string name="proxy-AlignH">"Expand"</string>
<string name="proxy-AlignV">"Centre"</string> <string name="proxy-AlignV">"Centre"</string>
<long name="proxy-Stretch factor">1</long>
<long name="proxy-Border">5</long>
<bool name="proxy-wxLEFT">1</bool>
<bool name="proxy-wxRIGHT">1</bool>
<bool name="proxy-wxTOP">1</bool>
<bool name="proxy-wxBOTTOM">1</bool>
<bool name="proxy-wxSHAPED">0</bool>
<bool name="proxy-wxADJUST_MINSIZE">0</bool>
<bool name="proxy-wxFIXED_MINSIZE">0</bool>
<string name="proxy-Platform">"&lt;Any platform&gt;"</string>
</document>
<document>
<string name="title">"wxBoxSizer V"</string>
<string name="type">"dialog-control-document"</string>
<string name="filename">""</string>
<string name="icon-name">"sizer"</string>
<long name="is-transient">0</long>
<long name="owns-file">1</long>
<long name="title-mode">0</long>
<long name="locked">0</long>
<string name="created">"22/3/2008"</string>
<string name="proxy-type">"wbBoxSizerProxy"</string>
<string name="proxy-Orientation">"Vertical"</string>
<string name="proxy-Member variable name">""</string>
<string name="proxy-AlignH">"Centre"</string>
<string name="proxy-AlignV">"Expand"</string>
<long name="proxy-Stretch factor">0</long> <long name="proxy-Stretch factor">0</long>
<long name="proxy-Border">5</long> <long name="proxy-Border">5</long>
<bool name="proxy-wxLEFT">1</bool> <bool name="proxy-wxLEFT">1</bool>
@ -466,134 +550,235 @@
<bool name="proxy-wxSHAPED">0</bool> <bool name="proxy-wxSHAPED">0</bool>
<bool name="proxy-wxADJUST_MINSIZE">0</bool> <bool name="proxy-wxADJUST_MINSIZE">0</bool>
<bool name="proxy-wxFIXED_MINSIZE">0</bool> <bool name="proxy-wxFIXED_MINSIZE">0</bool>
<string name="proxy-Custom arguments">""</string>
<string name="proxy-Custom ctor arguments">""</string>
</document>
<document>
<string name="title">"wxRadioBox: ID_RADIOBOX2"</string>
<string name="type">"dialog-control-document"</string>
<string name="filename">""</string>
<string name="icon-name">"radiobox"</string>
<long name="is-transient">0</long>
<long name="owns-file">1</long>
<long name="title-mode">0</long>
<long name="locked">0</long>
<string name="created">"26/3/2006"</string>
<string name="proxy-type">"wbRadioBoxProxy"</string>
<string name="proxy-Id name">"ID_RADIOBOX2"</string>
<long name="proxy-Id value">10007</long>
<string name="proxy-Class">"wxRadioBox"</string>
<string name="proxy-Base class">"wxRadioBox"</string>
<bool name="proxy-External implementation">1</bool>
<bool name="proxy-Separate files">0</bool>
<string name="proxy-Implementation filename">""</string>
<string name="proxy-Header filename">""</string>
<string name="proxy-Member variable name">"m_ChangeExistantModuleCtrl"</string>
<string name="proxy-Label">"Exchange Module:"</string>
<long name="proxy-Major dimension count">1</long>
<string name="proxy-Items">"Keep|Change"</string>
<long name="proxy-Initial value">0</long>
<string name="proxy-Help text">""</string>
<string name="proxy-Tooltip text">""</string>
<string name="proxy-Background colour">""</string>
<string name="proxy-Foreground colour">""</string>
<string name="proxy-Font">""</string>
<bool name="proxy-Hidden">0</bool>
<bool name="proxy-Enabled">1</bool>
<string name="proxy-Platform">"&lt;Any platform&gt;"</string> <string name="proxy-Platform">"&lt;Any platform&gt;"</string>
<string name="proxy-Data variable">""</string> <document>
<string name="proxy-Data validator">""</string> <string name="title">"wxRadioBox: ID_DELETE_TRACKS_OPTION"</string>
<string name="proxy-Data source">""</string> <string name="type">"dialog-control-document"</string>
<string name="proxy-Data class name">""</string> <string name="filename">""</string>
<string name="proxy-Data class implementation filename">""</string> <string name="icon-name">"radiobox"</string>
<string name="proxy-Data class header filename">""</string> <long name="is-transient">0</long>
<string name="proxy-Data class manager window">""</string> <long name="owns-file">1</long>
<bool name="proxy-wxRA_SPECIFY_ROWS">0</bool> <long name="title-mode">0</long>
<bool name="proxy-wxRA_SPECIFY_COLS">1</bool> <long name="locked">0</long>
<bool name="proxy-wxWANTS_CHARS">0</bool> <string name="created">"22/3/2008"</string>
<bool name="proxy-wxNO_FULL_REPAINT_ON_RESIZE">0</bool> <string name="proxy-type">"wbRadioBoxProxy"</string>
<bool name="proxy-wxFULL_REPAINT_ON_RESIZE">0</bool> <string name="proxy-Id name">"ID_DELETE_TRACKS_OPTION"</string>
<string name="proxy-Custom styles">""</string> <long name="proxy-Id value">10006</long>
<long name="proxy-X">-1</long> <string name="proxy-Name">""</string>
<long name="proxy-Y">-1</long> <string name="proxy-Class">"wxRadioBox"</string>
<long name="proxy-Width">-1</long> <string name="proxy-Base class">"wxRadioBox"</string>
<long name="proxy-Height">-1</long> <bool name="proxy-External implementation">1</bool>
<string name="proxy-AlignH">"Expand"</string> <bool name="proxy-Separate files">0</bool>
<string name="proxy-AlignV">"Centre"</string> <string name="proxy-Implementation filename">""</string>
<long name="proxy-Stretch factor">0</long> <string name="proxy-Header filename">""</string>
<long name="proxy-Border">5</long> <string name="proxy-Member variable name">"m_DeleteBadTracks"</string>
<bool name="proxy-wxLEFT">1</bool> <string name="proxy-Label">"Bad Tracks Deletion:"</string>
<bool name="proxy-wxRIGHT">1</bool> <long name="proxy-Major dimension count">1</long>
<bool name="proxy-wxTOP">1</bool> <string name="proxy-Items">"Keep|Delete"</string>
<bool name="proxy-wxBOTTOM">1</bool> <long name="proxy-Initial value">0</long>
<bool name="proxy-wxSHAPED">0</bool> <string name="proxy-Help text">""</string>
<bool name="proxy-wxADJUST_MINSIZE">0</bool> <string name="proxy-Tooltip text">"Keep or delete bad tracks after a netlist change"</string>
<bool name="proxy-wxFIXED_MINSIZE">0</bool> <string name="proxy-Background colour">""</string>
<string name="proxy-Custom arguments">""</string> <string name="proxy-Foreground colour">""</string>
<string name="proxy-Custom ctor arguments">""</string> <string name="proxy-Font">""</string>
</document> <bool name="proxy-Hidden">0</bool>
<document> <bool name="proxy-Enabled">1</bool>
<string name="title">"wxCheckBox: ID_CHECKBOX"</string> <string name="proxy-Platform">"&lt;Any platform&gt;"</string>
<string name="type">"dialog-control-document"</string> <string name="proxy-Data variable">""</string>
<string name="filename">""</string> <string name="proxy-Data validator">""</string>
<string name="icon-name">"checkbox"</string> <string name="proxy-Data source">""</string>
<long name="is-transient">0</long> <string name="proxy-Data class name">""</string>
<long name="owns-file">1</long> <string name="proxy-Data class implementation filename">""</string>
<long name="title-mode">0</long> <string name="proxy-Data class header filename">""</string>
<long name="locked">0</long> <string name="proxy-Data class manager window">""</string>
<string name="created">"26/3/2006"</string> <bool name="proxy-wxRA_SPECIFY_ROWS">0</bool>
<string name="proxy-type">"wbCheckBoxProxy"</string> <bool name="proxy-wxRA_SPECIFY_COLS">1</bool>
<string name="proxy-Id name">"ID_CHECKBOX"</string> <bool name="proxy-wxWANTS_CHARS">0</bool>
<long name="proxy-Id value">10008</long> <bool name="proxy-wxNO_FULL_REPAINT_ON_RESIZE">0</bool>
<string name="proxy-Class">"wxCheckBox"</string> <bool name="proxy-wxFULL_REPAINT_ON_RESIZE">0</bool>
<string name="proxy-Base class">"wxCheckBox"</string> <string name="proxy-Custom styles">""</string>
<bool name="proxy-External implementation">1</bool> <long name="proxy-X">-1</long>
<bool name="proxy-Separate files">0</bool> <long name="proxy-Y">-1</long>
<string name="proxy-Implementation filename">""</string> <long name="proxy-Width">-1</long>
<string name="proxy-Header filename">""</string> <long name="proxy-Height">-1</long>
<string name="proxy-Member variable name">"m_DisplayWarningCtrl"</string> <string name="proxy-AlignH">"Expand"</string>
<string name="proxy-Label">"Display Warnings"</string> <string name="proxy-AlignV">"Centre"</string>
<bool name="proxy-Initial value">0</bool> <long name="proxy-Stretch factor">0</long>
<string name="proxy-Help text">""</string> <long name="proxy-Border">5</long>
<string name="proxy-Tooltip text">""</string> <bool name="proxy-wxLEFT">1</bool>
<string name="proxy-Data variable">"DisplayWarning"</string> <bool name="proxy-wxRIGHT">1</bool>
<string name="proxy-Data validator">"wxGenericValidator(&amp; %VARIABLE%)"</string> <bool name="proxy-wxTOP">1</bool>
<string name="proxy-Data source">""</string> <bool name="proxy-wxBOTTOM">1</bool>
<string name="proxy-Data class name">""</string> <bool name="proxy-wxSHAPED">0</bool>
<string name="proxy-Data class implementation filename">""</string> <bool name="proxy-wxADJUST_MINSIZE">0</bool>
<string name="proxy-Data class header filename">""</string> <bool name="proxy-wxFIXED_MINSIZE">0</bool>
<string name="proxy-Data class manager window">""</string> <string name="proxy-Custom arguments">""</string>
<string name="proxy-Background colour">""</string> <string name="proxy-Custom ctor arguments">""</string>
<string name="proxy-Foreground colour">""</string> </document>
<string name="proxy-Font">""</string> <document>
<bool name="proxy-Hidden">0</bool> <string name="title">"wxStaticBoxSizer V"</string>
<bool name="proxy-Enabled">1</bool> <string name="type">"dialog-control-document"</string>
<string name="proxy-Platform">"&lt;Any platform&gt;"</string> <string name="filename">""</string>
<bool name="proxy-wxALIGN_RIGHT">0</bool> <string name="icon-name">"sizer"</string>
<bool name="proxy-wxCHK_2STATE">1</bool> <long name="is-transient">0</long>
<bool name="proxy-wxCHK_3STATE">0</bool> <long name="owns-file">1</long>
<bool name="proxy-wxCHK_ALLOW_3RD_STATE_FOR_USER">0</bool> <long name="title-mode">0</long>
<bool name="proxy-wxWANTS_CHARS">0</bool> <long name="locked">0</long>
<bool name="proxy-wxNO_FULL_REPAINT_ON_RESIZE">0</bool> <string name="created">"22/3/2008"</string>
<bool name="proxy-wxFULL_REPAINT_ON_RESIZE">0</bool> <string name="proxy-type">"wbStaticBoxSizerProxy"</string>
<string name="proxy-Custom styles">""</string> <string name="proxy-Id name">"wxID_ANY"</string>
<long name="proxy-X">-1</long> <long name="proxy-Id value">-1</long>
<long name="proxy-Y">-1</long> <string name="proxy-Label">"Options"</string>
<long name="proxy-Width">-1</long> <string name="proxy-Member variable name">""</string>
<long name="proxy-Height">-1</long> <string name="proxy-Sizer member variable name">""</string>
<string name="proxy-AlignH">"Expand"</string> <string name="proxy-Foreground colour">""</string>
<string name="proxy-AlignV">"Centre"</string> <string name="proxy-Font">""</string>
<long name="proxy-Stretch factor">0</long> <bool name="proxy-Hidden">0</bool>
<long name="proxy-Border">5</long> <bool name="proxy-Enabled">1</bool>
<bool name="proxy-wxLEFT">1</bool> <string name="proxy-Static box class">"wxStaticBox"</string>
<bool name="proxy-wxRIGHT">1</bool> <string name="proxy-Orientation">"Vertical"</string>
<bool name="proxy-wxTOP">1</bool> <string name="proxy-AlignH">"Expand"</string>
<bool name="proxy-wxBOTTOM">0</bool> <string name="proxy-AlignV">"Centre"</string>
<bool name="proxy-wxSHAPED">0</bool> <long name="proxy-Stretch factor">0</long>
<bool name="proxy-wxADJUST_MINSIZE">0</bool> <long name="proxy-Border">5</long>
<bool name="proxy-wxFIXED_MINSIZE">0</bool> <bool name="proxy-wxLEFT">1</bool>
<string name="proxy-Custom arguments">""</string> <bool name="proxy-wxRIGHT">1</bool>
<string name="proxy-Custom ctor arguments">""</string> <bool name="proxy-wxTOP">1</bool>
<bool name="proxy-wxBOTTOM">1</bool>
<bool name="proxy-wxSHAPED">0</bool>
<bool name="proxy-wxADJUST_MINSIZE">0</bool>
<bool name="proxy-wxFIXED_MINSIZE">0</bool>
<string name="proxy-Platform">"&lt;Any platform&gt;"</string>
<document>
<string name="title">"wxCheckBox: ID_DISPLAY_WARNINGS_OPT"</string>
<string name="type">"dialog-control-document"</string>
<string name="filename">""</string>
<string name="icon-name">"checkbox"</string>
<long name="is-transient">0</long>
<long name="owns-file">1</long>
<long name="title-mode">0</long>
<long name="locked">0</long>
<string name="created">"22/3/2008"</string>
<string name="proxy-type">"wbCheckBoxProxy"</string>
<string name="proxy-Id name">"ID_DISPLAY_WARNINGS_OPT"</string>
<long name="proxy-Id value">10008</long>
<string name="proxy-Name">""</string>
<string name="proxy-Class">"wxCheckBox"</string>
<string name="proxy-Base class">"wxCheckBox"</string>
<bool name="proxy-External implementation">1</bool>
<bool name="proxy-Separate files">0</bool>
<string name="proxy-Implementation filename">""</string>
<string name="proxy-Header filename">""</string>
<string name="proxy-Member variable name">"m_DisplayWarningCtrl"</string>
<string name="proxy-Label">"Display Warnings"</string>
<bool name="proxy-Initial value">0</bool>
<string name="proxy-Help text">""</string>
<string name="proxy-Tooltip text">""</string>
<string name="proxy-Data variable">"DisplayWarning"</string>
<string name="proxy-Data validator">"wxGenericValidator(&amp; %VARIABLE%)"</string>
<string name="proxy-Data source">""</string>
<string name="proxy-Data class name">""</string>
<string name="proxy-Data class implementation filename">""</string>
<string name="proxy-Data class header filename">""</string>
<string name="proxy-Data class manager window">""</string>
<string name="proxy-Background colour">""</string>
<string name="proxy-Foreground colour">""</string>
<string name="proxy-Font">""</string>
<bool name="proxy-Hidden">0</bool>
<bool name="proxy-Enabled">1</bool>
<string name="proxy-Platform">"&lt;Any platform&gt;"</string>
<bool name="proxy-wxALIGN_RIGHT">0</bool>
<bool name="proxy-wxCHK_2STATE">1</bool>
<bool name="proxy-wxCHK_3STATE">0</bool>
<bool name="proxy-wxCHK_ALLOW_3RD_STATE_FOR_USER">0</bool>
<bool name="proxy-wxWANTS_CHARS">0</bool>
<bool name="proxy-wxNO_FULL_REPAINT_ON_RESIZE">0</bool>
<bool name="proxy-wxFULL_REPAINT_ON_RESIZE">0</bool>
<string name="proxy-Custom styles">""</string>
<long name="proxy-X">-1</long>
<long name="proxy-Y">-1</long>
<long name="proxy-Width">-1</long>
<long name="proxy-Height">-1</long>
<string name="proxy-AlignH">"Expand"</string>
<string name="proxy-AlignV">"Centre"</string>
<long name="proxy-Stretch factor">0</long>
<long name="proxy-Border">5</long>
<bool name="proxy-wxLEFT">1</bool>
<bool name="proxy-wxRIGHT">1</bool>
<bool name="proxy-wxTOP">1</bool>
<bool name="proxy-wxBOTTOM">1</bool>
<bool name="proxy-wxSHAPED">0</bool>
<bool name="proxy-wxADJUST_MINSIZE">0</bool>
<bool name="proxy-wxFIXED_MINSIZE">0</bool>
<string name="proxy-Custom arguments">""</string>
<string name="proxy-Custom ctor arguments">""</string>
</document>
<document>
<string name="title">"wxCheckBox: ID_REMOVE_EXTRA_FOOTPRINTS_OPT"</string>
<string name="type">"dialog-control-document"</string>
<string name="filename">""</string>
<string name="icon-name">"checkbox"</string>
<long name="is-transient">0</long>
<long name="owns-file">1</long>
<long name="title-mode">0</long>
<long name="locked">0</long>
<string name="created">"22/3/2008"</string>
<string name="proxy-type">"wbCheckBoxProxy"</string>
<string name="proxy-Id name">"ID_REMOVE_EXTRA_FOOTPRINTS_OPT"</string>
<long name="proxy-Id value">10011</long>
<string name="proxy-Name">""</string>
<string name="proxy-Class">"wxCheckBox"</string>
<string name="proxy-Base class">"wxCheckBox"</string>
<bool name="proxy-External implementation">1</bool>
<bool name="proxy-Separate files">0</bool>
<string name="proxy-Implementation filename">""</string>
<string name="proxy-Header filename">""</string>
<string name="proxy-Member variable name">"m_RemoveExtraFootprintsCtrl"</string>
<string name="proxy-Label">"Remove Extra Footprints"</string>
<bool name="proxy-Initial value">0</bool>
<string name="proxy-Help text">""</string>
<string name="proxy-Tooltip text">"Remove footprints found on the Board but not in netlist
Note: only not locked footprints will be removed"</string>
<string name="proxy-Data variable">""</string>
<string name="proxy-Data validator">""</string>
<string name="proxy-Data source">""</string>
<string name="proxy-Data class name">""</string>
<string name="proxy-Data class implementation filename">""</string>
<string name="proxy-Data class header filename">""</string>
<string name="proxy-Data class manager window">""</string>
<string name="proxy-Background colour">""</string>
<string name="proxy-Foreground colour">""</string>
<string name="proxy-Font">""</string>
<bool name="proxy-Hidden">0</bool>
<bool name="proxy-Enabled">1</bool>
<string name="proxy-Platform">"&lt;Any platform&gt;"</string>
<bool name="proxy-wxALIGN_RIGHT">0</bool>
<bool name="proxy-wxCHK_2STATE">0</bool>
<bool name="proxy-wxCHK_3STATE">0</bool>
<bool name="proxy-wxCHK_ALLOW_3RD_STATE_FOR_USER">0</bool>
<bool name="proxy-wxWANTS_CHARS">0</bool>
<bool name="proxy-wxNO_FULL_REPAINT_ON_RESIZE">0</bool>
<bool name="proxy-wxFULL_REPAINT_ON_RESIZE">0</bool>
<string name="proxy-Custom styles">""</string>
<long name="proxy-X">-1</long>
<long name="proxy-Y">-1</long>
<long name="proxy-Width">-1</long>
<long name="proxy-Height">-1</long>
<string name="proxy-AlignH">"Expand"</string>
<string name="proxy-AlignV">"Centre"</string>
<long name="proxy-Stretch factor">0</long>
<long name="proxy-Border">5</long>
<bool name="proxy-wxLEFT">1</bool>
<bool name="proxy-wxRIGHT">1</bool>
<bool name="proxy-wxTOP">1</bool>
<bool name="proxy-wxBOTTOM">1</bool>
<bool name="proxy-wxSHAPED">0</bool>
<bool name="proxy-wxADJUST_MINSIZE">0</bool>
<bool name="proxy-wxFIXED_MINSIZE">0</bool>
<string name="proxy-Custom arguments">""</string>
<string name="proxy-Custom ctor arguments">""</string>
</document>
</document>
</document> </document>
</document> </document>
<document> <document>
@ -661,6 +846,7 @@
<string name="event-handler-0">"wxEVT_COMMAND_BUTTON_CLICKED|OnOpenNelistClick|||"</string> <string name="event-handler-0">"wxEVT_COMMAND_BUTTON_CLICKED|OnOpenNelistClick|||"</string>
<string name="proxy-Id name">"ID_OPEN_NELIST"</string> <string name="proxy-Id name">"ID_OPEN_NELIST"</string>
<long name="proxy-Id value">10001</long> <long name="proxy-Id value">10001</long>
<string name="proxy-Name">""</string>
<string name="proxy-Class">"wxButton"</string> <string name="proxy-Class">"wxButton"</string>
<string name="proxy-Base class">"wxButton"</string> <string name="proxy-Base class">"wxButton"</string>
<bool name="proxy-External implementation">1</bool> <bool name="proxy-External implementation">1</bool>
@ -668,7 +854,7 @@
<string name="proxy-Implementation filename">""</string> <string name="proxy-Implementation filename">""</string>
<string name="proxy-Header filename">""</string> <string name="proxy-Header filename">""</string>
<string name="proxy-Member variable name">""</string> <string name="proxy-Member variable name">""</string>
<string name="proxy-Label">"Select"</string> <string name="proxy-Label">"Browse Netlist Files"</string>
<bool name="proxy-Default">0</bool> <bool name="proxy-Default">0</bool>
<string name="proxy-Help text">""</string> <string name="proxy-Help text">""</string>
<string name="proxy-Tooltip text">""</string> <string name="proxy-Tooltip text">""</string>
@ -727,6 +913,7 @@
<string name="event-handler-0">"wxEVT_COMMAND_BUTTON_CLICKED|OnReadNetlistFileClick"</string> <string name="event-handler-0">"wxEVT_COMMAND_BUTTON_CLICKED|OnReadNetlistFileClick"</string>
<string name="proxy-Id name">"ID_READ_NETLIST_FILE"</string> <string name="proxy-Id name">"ID_READ_NETLIST_FILE"</string>
<long name="proxy-Id value">10002</long> <long name="proxy-Id value">10002</long>
<string name="proxy-Name">""</string>
<string name="proxy-Class">"wxButton"</string> <string name="proxy-Class">"wxButton"</string>
<string name="proxy-Base class">"wxButton"</string> <string name="proxy-Base class">"wxButton"</string>
<bool name="proxy-External implementation">1</bool> <bool name="proxy-External implementation">1</bool>
@ -734,7 +921,7 @@
<string name="proxy-Implementation filename">""</string> <string name="proxy-Implementation filename">""</string>
<string name="proxy-Header filename">""</string> <string name="proxy-Header filename">""</string>
<string name="proxy-Member variable name">""</string> <string name="proxy-Member variable name">""</string>
<string name="proxy-Label">"Read"</string> <string name="proxy-Label">"Read Current Netlist"</string>
<bool name="proxy-Default">0</bool> <bool name="proxy-Default">0</bool>
<string name="proxy-Help text">""</string> <string name="proxy-Help text">""</string>
<string name="proxy-Tooltip text">""</string> <string name="proxy-Tooltip text">""</string>
@ -793,6 +980,7 @@
<string name="event-handler-0">"wxEVT_COMMAND_BUTTON_CLICKED|OnTestNetlistClick"</string> <string name="event-handler-0">"wxEVT_COMMAND_BUTTON_CLICKED|OnTestNetlistClick"</string>
<string name="proxy-Id name">"ID_TEST_NETLIST"</string> <string name="proxy-Id name">"ID_TEST_NETLIST"</string>
<long name="proxy-Id value">10003</long> <long name="proxy-Id value">10003</long>
<string name="proxy-Name">""</string>
<string name="proxy-Class">"wxButton"</string> <string name="proxy-Class">"wxButton"</string>
<string name="proxy-Base class">"wxButton"</string> <string name="proxy-Base class">"wxButton"</string>
<bool name="proxy-External implementation">1</bool> <bool name="proxy-External implementation">1</bool>
@ -800,10 +988,10 @@
<string name="proxy-Implementation filename">""</string> <string name="proxy-Implementation filename">""</string>
<string name="proxy-Header filename">""</string> <string name="proxy-Header filename">""</string>
<string name="proxy-Member variable name">""</string> <string name="proxy-Member variable name">""</string>
<string name="proxy-Label">"Module Test"</string> <string name="proxy-Label">"Footprints Test"</string>
<bool name="proxy-Default">0</bool> <bool name="proxy-Default">0</bool>
<string name="proxy-Help text">""</string> <string name="proxy-Help text">""</string>
<string name="proxy-Tooltip text">""</string> <string name="proxy-Tooltip text">"Read the current neltist file and list missing and extra footprints"</string>
<string name="proxy-Data variable">""</string> <string name="proxy-Data variable">""</string>
<string name="proxy-Data validator">""</string> <string name="proxy-Data validator">""</string>
<string name="proxy-Data source">""</string> <string name="proxy-Data source">""</string>
@ -859,6 +1047,7 @@
<string name="event-handler-0">"wxEVT_COMMAND_BUTTON_CLICKED|OnCompileRatsnestClick"</string> <string name="event-handler-0">"wxEVT_COMMAND_BUTTON_CLICKED|OnCompileRatsnestClick"</string>
<string name="proxy-Id name">"ID_COMPILE_RATSNEST"</string> <string name="proxy-Id name">"ID_COMPILE_RATSNEST"</string>
<long name="proxy-Id value">10004</long> <long name="proxy-Id value">10004</long>
<string name="proxy-Name">""</string>
<string name="proxy-Class">"wxButton"</string> <string name="proxy-Class">"wxButton"</string>
<string name="proxy-Base class">"wxButton"</string> <string name="proxy-Base class">"wxButton"</string>
<bool name="proxy-External implementation">1</bool> <bool name="proxy-External implementation">1</bool>
@ -866,10 +1055,10 @@
<string name="proxy-Implementation filename">""</string> <string name="proxy-Implementation filename">""</string>
<string name="proxy-Header filename">""</string> <string name="proxy-Header filename">""</string>
<string name="proxy-Member variable name">""</string> <string name="proxy-Member variable name">""</string>
<string name="proxy-Label">"Compile"</string> <string name="proxy-Label">"Rebuild Board Connectivity"</string>
<bool name="proxy-Default">0</bool> <bool name="proxy-Default">0</bool>
<string name="proxy-Help text">""</string> <string name="proxy-Help text">""</string>
<string name="proxy-Tooltip text">""</string> <string name="proxy-Tooltip text">"Rebuild the full ratsnest (usefull after a manual pad netname edition)"</string>
<string name="proxy-Data variable">""</string> <string name="proxy-Data variable">""</string>
<string name="proxy-Data validator">""</string> <string name="proxy-Data validator">""</string>
<string name="proxy-Data source">""</string> <string name="proxy-Data source">""</string>
@ -913,6 +1102,123 @@
</document> </document>
</document> </document>
</document> </document>
<document>
<string name="title">"wxStaticBoxSizer V"</string>
<string name="type">"dialog-control-document"</string>
<string name="filename">""</string>
<string name="icon-name">"sizer"</string>
<long name="is-transient">0</long>
<long name="owns-file">1</long>
<long name="title-mode">0</long>
<long name="locked">0</long>
<string name="created">"22/3/2008"</string>
<string name="proxy-type">"wbStaticBoxSizerProxy"</string>
<string name="proxy-Id name">"wxID_ANY"</string>
<long name="proxy-Id value">-1</long>
<string name="proxy-Label">"Netlist File:"</string>
<string name="proxy-Member variable name">""</string>
<string name="proxy-Sizer member variable name">""</string>
<string name="proxy-Foreground colour">"0000FF"</string>
<string name="proxy-Font">""</string>
<bool name="proxy-Hidden">0</bool>
<bool name="proxy-Enabled">1</bool>
<string name="proxy-Static box class">"wxStaticBox"</string>
<string name="proxy-Orientation">"Vertical"</string>
<string name="proxy-AlignH">"Expand"</string>
<string name="proxy-AlignV">"Centre"</string>
<long name="proxy-Stretch factor">0</long>
<long name="proxy-Border">5</long>
<bool name="proxy-wxLEFT">1</bool>
<bool name="proxy-wxRIGHT">1</bool>
<bool name="proxy-wxTOP">1</bool>
<bool name="proxy-wxBOTTOM">1</bool>
<bool name="proxy-wxSHAPED">0</bool>
<bool name="proxy-wxADJUST_MINSIZE">0</bool>
<bool name="proxy-wxFIXED_MINSIZE">0</bool>
<string name="proxy-Platform">"&lt;Any platform&gt;"</string>
<document>
<string name="title">"wxTextCtrl: ID_TEXT_NETLIST_FILENAME"</string>
<string name="type">"dialog-control-document"</string>
<string name="filename">""</string>
<string name="icon-name">"textctrl"</string>
<long name="is-transient">0</long>
<long name="owns-file">1</long>
<long name="title-mode">0</long>
<long name="locked">0</long>
<string name="created">"22/3/2008"</string>
<string name="proxy-type">"wbTextCtrlProxy"</string>
<string name="proxy-Id name">"ID_TEXT_NETLIST_FILENAME"</string>
<long name="proxy-Id value">10012</long>
<string name="proxy-Name">""</string>
<string name="proxy-Class">"wxTextCtrl"</string>
<string name="proxy-Base class">"wxTextCtrl"</string>
<bool name="proxy-External implementation">1</bool>
<bool name="proxy-Separate files">0</bool>
<string name="proxy-Implementation filename">""</string>
<string name="proxy-Header filename">""</string>
<string name="proxy-Member variable name">"m_NetlistFilenameCtrl"</string>
<string name="proxy-Initial value">""</string>
<long name="proxy-Max length">0</long>
<string name="proxy-Help text">""</string>
<string name="proxy-Tooltip text">""</string>
<string name="proxy-Background colour">""</string>
<string name="proxy-Foreground colour">""</string>
<string name="proxy-Font">""</string>
<bool name="proxy-Hidden">0</bool>
<bool name="proxy-Enabled">1</bool>
<string name="proxy-Platform">"&lt;Any platform&gt;"</string>
<string name="proxy-Data variable">""</string>
<string name="proxy-Data validator">""</string>
<string name="proxy-Data source">""</string>
<string name="proxy-Data class name">""</string>
<string name="proxy-Data class implementation filename">""</string>
<string name="proxy-Data class header filename">""</string>
<string name="proxy-Data class manager window">""</string>
<bool name="proxy-wxTE_MULTILINE">0</bool>
<bool name="proxy-wxTE_PROCESS_ENTER">0</bool>
<bool name="proxy-wxTE_PROCESS_TAB">0</bool>
<bool name="proxy-wxTE_PASSWORD">0</bool>
<bool name="proxy-wxTE_READONLY">0</bool>
<bool name="proxy-wxTE_RICH">0</bool>
<bool name="proxy-wxTE_RICH2">0</bool>
<bool name="proxy-wxTE_AUTO_URL">0</bool>
<bool name="proxy-wxTE_NOHIDESEL">0</bool>
<bool name="proxy-wxTE_LEFT">0</bool>
<bool name="proxy-wxTE_CENTRE">0</bool>
<bool name="proxy-wxTE_RIGHT">0</bool>
<bool name="proxy-wxHSCROLL">0</bool>
<bool name="proxy-wxTE_CHARWRAP">0</bool>
<bool name="proxy-wxTE_WORDWRAP">0</bool>
<bool name="proxy-wxTE_CAPITALIZE">0</bool>
<bool name="proxy-wxNO_BORDER">0</bool>
<bool name="proxy-wxSIMPLE_BORDER">0</bool>
<bool name="proxy-wxDOUBLE_BORDER">0</bool>
<bool name="proxy-wxSUNKEN_BORDER">0</bool>
<bool name="proxy-wxRAISED_BORDER">0</bool>
<bool name="proxy-wxSTATIC_BORDER">0</bool>
<bool name="proxy-wxWANTS_CHARS">0</bool>
<bool name="proxy-wxNO_FULL_REPAINT_ON_RESIZE">0</bool>
<bool name="proxy-wxFULL_REPAINT_ON_RESIZE">0</bool>
<string name="proxy-Custom styles">""</string>
<long name="proxy-X">-1</long>
<long name="proxy-Y">-1</long>
<long name="proxy-Width">-1</long>
<long name="proxy-Height">-1</long>
<string name="proxy-AlignH">"Expand"</string>
<string name="proxy-AlignV">"Centre"</string>
<long name="proxy-Stretch factor">0</long>
<long name="proxy-Border">5</long>
<bool name="proxy-wxLEFT">1</bool>
<bool name="proxy-wxRIGHT">1</bool>
<bool name="proxy-wxTOP">1</bool>
<bool name="proxy-wxBOTTOM">1</bool>
<bool name="proxy-wxSHAPED">0</bool>
<bool name="proxy-wxADJUST_MINSIZE">0</bool>
<bool name="proxy-wxFIXED_MINSIZE">0</bool>
<string name="proxy-Custom arguments">""</string>
<string name="proxy-Custom ctor arguments">""</string>
</document>
</document>
<document> <document>
<string name="title">"wxTextCtrl: ID_TEXTCTRL"</string> <string name="title">"wxTextCtrl: ID_TEXTCTRL"</string>
<string name="type">"dialog-control-document"</string> <string name="type">"dialog-control-document"</string>
@ -926,6 +1232,7 @@
<string name="proxy-type">"wbTextCtrlProxy"</string> <string name="proxy-type">"wbTextCtrlProxy"</string>
<string name="proxy-Id name">"ID_TEXTCTRL"</string> <string name="proxy-Id name">"ID_TEXTCTRL"</string>
<long name="proxy-Id value">10009</long> <long name="proxy-Id value">10009</long>
<string name="proxy-Name">""</string>
<string name="proxy-Class">"wxTextCtrl"</string> <string name="proxy-Class">"wxTextCtrl"</string>
<string name="proxy-Base class">"wxTextCtrl"</string> <string name="proxy-Base class">"wxTextCtrl"</string>
<bool name="proxy-External implementation">1</bool> <bool name="proxy-External implementation">1</bool>
@ -1007,6 +1314,7 @@
<string name="proxy-type">"wbStaticLineProxy"</string> <string name="proxy-type">"wbStaticLineProxy"</string>
<string name="proxy-Id name">"ID_STATICLINE"</string> <string name="proxy-Id name">"ID_STATICLINE"</string>
<long name="proxy-Id value">10010</long> <long name="proxy-Id value">10010</long>
<string name="proxy-Name">""</string>
<string name="proxy-Class">"wxStaticLine"</string> <string name="proxy-Class">"wxStaticLine"</string>
<string name="proxy-Base class">"wxStaticLine"</string> <string name="proxy-Base class">"wxStaticLine"</string>
<bool name="proxy-External implementation">1</bool> <bool name="proxy-External implementation">1</bool>
@ -1094,6 +1402,7 @@
<string name="event-handler-0">"wxEVT_COMMAND_BUTTON_CLICKED|OnCancelClick|NONE||"</string> <string name="event-handler-0">"wxEVT_COMMAND_BUTTON_CLICKED|OnCancelClick|NONE||"</string>
<string name="proxy-Id name">"wxID_CANCEL"</string> <string name="proxy-Id name">"wxID_CANCEL"</string>
<long name="proxy-Id value">5101</long> <long name="proxy-Id value">5101</long>
<string name="proxy-Name">""</string>
<string name="proxy-Class">"wxButton"</string> <string name="proxy-Class">"wxButton"</string>
<string name="proxy-Base class">"wxButton"</string> <string name="proxy-Base class">"wxButton"</string>
<bool name="proxy-External implementation">1</bool> <bool name="proxy-External implementation">1</bool>
@ -1101,7 +1410,7 @@
<string name="proxy-Implementation filename">""</string> <string name="proxy-Implementation filename">""</string>
<string name="proxy-Header filename">""</string> <string name="proxy-Header filename">""</string>
<string name="proxy-Member variable name">""</string> <string name="proxy-Member variable name">""</string>
<string name="proxy-Label">"&amp;Cancel"</string> <string name="proxy-Label">"&amp;Close"</string>
<bool name="proxy-Default">0</bool> <bool name="proxy-Default">0</bool>
<string name="proxy-Help text">""</string> <string name="proxy-Help text">""</string>
<string name="proxy-Tooltip text">""</string> <string name="proxy-Tooltip text">""</string>

View File

@ -592,7 +592,7 @@ void WinEDA_PcbFrame::Process_Special_Functions( wxCommandEvent& event )
if( !GetCurItem() || GetCurItem()->Type() != TYPEMODULE ) if( !GetCurItem() || GetCurItem()->Type() != TYPEMODULE )
break; break;
if( Delete_Module( (MODULE*) GetCurItem(), &dc ) ) if( Delete_Module( (MODULE*) GetCurItem(), &dc, true ) )
{ {
SetCurItem( NULL ); SetCurItem( NULL );
} }
@ -1023,7 +1023,7 @@ void WinEDA_PcbFrame::RemoveStruct( BOARD_ITEM* Item, wxDC* DC )
switch( Item->Type() ) switch( Item->Type() )
{ {
case TYPEMODULE: case TYPEMODULE:
Delete_Module( (MODULE*) Item, DC ); Delete_Module( (MODULE*) Item, DC, true );
break; break;
case TYPECOTATION: case TYPECOTATION:

View File

@ -263,9 +263,9 @@ void Montre_Position_Empreinte( WinEDA_DrawPanel* panel, wxDC* DC, bool erase )
} }
/**************************************************************/ /*****************************************************************************************/
bool WinEDA_PcbFrame::Delete_Module( MODULE* module, wxDC* DC ) bool WinEDA_PcbFrame::Delete_Module( MODULE* module, wxDC* DC, bool aAskBeforeDeleting )
/**************************************************************/ /******************************************************************************************/
/** /**
* Function Delete Module * Function Delete Module
@ -273,6 +273,7 @@ bool WinEDA_PcbFrame::Delete_Module( MODULE* module, wxDC* DC )
* The net rastenes and pad list are recalcualed * The net rastenes and pad list are recalcualed
* @param module = footprint to delete * @param module = footprint to delete
* @param DC = currentDevice Context. if NULL: do not redraw new ratsnets and dirty rectange * @param DC = currentDevice Context. if NULL: do not redraw new ratsnets and dirty rectange
* @param aPromptBeforeDeleting : if true: ask for confirmation before deleting
*/ */
{ {
EDA_BaseStruct* PtBack, * PtNext; EDA_BaseStruct* PtBack, * PtNext;
@ -285,12 +286,15 @@ bool WinEDA_PcbFrame::Delete_Module( MODULE* module, wxDC* DC )
/* Confirmation de l'effacement */ /* Confirmation de l'effacement */
module->Display_Infos( this ); module->Display_Infos( this );
msg << _( "Delete Module" ) << wxT( " " ) << module->m_Reference->m_Text if ( aAskBeforeDeleting )
<< wxT( " (" ) << _( "Value " ) << module->m_Value->m_Text
<< wxT( ") ?" );
if( !IsOK( this, msg ) )
{ {
return FALSE; msg << _( "Delete Module" ) << wxT( " " ) << module->m_Reference->m_Text
<< wxT( " (" ) << _( "Value " ) << module->m_Value->m_Text
<< wxT( ") ?" );
if( !IsOK( this, msg ) )
{
return FALSE;
}
} }
m_CurrentScreen->SetModify(); m_CurrentScreen->SetModify();
@ -332,7 +336,7 @@ bool WinEDA_PcbFrame::Delete_Module( MODULE* module, wxDC* DC )
void BOARD::Change_Side_Module( MODULE* Module, wxDC* DC ) void BOARD::Change_Side_Module( MODULE* Module, wxDC* DC )
/****************************************************************************/ /****************************************************************************/
/** /**
* Function Change_Side_Module * Function Change_Side_Module
* Filp a footprint (switch layer from component or component to copper) * Filp a footprint (switch layer from component or component to copper)
* The mirroring is made from X axis * The mirroring is made from X axis
@ -483,7 +487,7 @@ void BOARD::Change_Side_Module( MODULE* Module, wxDC* DC )
pt_texte->m_Miroir = 1; pt_texte->m_Miroir = 1;
NEGATE_AND_NORMALIZE_ANGLE_POS( pt_texte->m_Orient ); NEGATE_AND_NORMALIZE_ANGLE_POS( pt_texte->m_Orient );
pt_texte->SetLayer( Module->GetLayer() ); pt_texte->SetLayer( Module->GetLayer() );
pt_texte->SetLayer( ChangeSideNumLayer( pt_texte->GetLayer() ) ); pt_texte->SetLayer( ChangeSideNumLayer( pt_texte->GetLayer() ) );
if( Module->GetLayer() == COPPER_LAYER_N ) if( Module->GetLayer() == COPPER_LAYER_N )
@ -517,7 +521,7 @@ void BOARD::Change_Side_Module( MODULE* Module, wxDC* DC )
if( DC && m_PcbFrame ) if( DC && m_PcbFrame )
{ {
Module->Draw( m_PcbFrame->DrawPanel, DC, wxPoint( 0, 0 ), GR_OR ); Module->Draw( m_PcbFrame->DrawPanel, DC, wxPoint( 0, 0 ), GR_OR );
/* affichage chevelu general si necessaire */ /* affichage chevelu general si necessaire */
m_PcbFrame->ReCompile_Ratsnest_After_Changes( DC ); m_PcbFrame->ReCompile_Ratsnest_After_Changes( DC );
} }
@ -753,7 +757,7 @@ void WinEDA_BasePcbFrame::Rotate_Module( wxDC* DC, MODULE* module,
if( !(module->m_Flags & IS_MOVED) ) /* Rotation simple */ if( !(module->m_Flags & IS_MOVED) ) /* Rotation simple */
{ {
module->Draw( DrawPanel, DC, wxPoint( 0, 0 ), GR_OR ); module->Draw( DrawPanel, DC, wxPoint( 0, 0 ), GR_OR );
/* Reaffichage chevelu general si necessaire */ /* Reaffichage chevelu general si necessaire */
ReCompile_Ratsnest_After_Changes( DC ); ReCompile_Ratsnest_After_Changes( DC );
} }

View File

@ -28,7 +28,8 @@
#include "protos.h" #include "protos.h"
#define TESTONLY 1 /* ctes utilisees lors de l'appel a */ #define TESTONLY 1 /* ctes utilisees lors de l'appel a */
#define READMODULE 0 /* ReadNetModuleORCADPCB */ #define READMODULE 0 /* ReadPcbNetlist() */
/* Structures locales */ /* Structures locales */
class MODULEtoLOAD : public EDA_BaseStruct class MODULEtoLOAD : public EDA_BaseStruct
@ -41,22 +42,53 @@ public:
public: public:
MODULEtoLOAD( const wxString& libname, MODULEtoLOAD( const wxString& libname,
const wxString& cmpname, const wxString& cmpname,
int timestamp, int timestamp,
const wxString& path); const wxString& path );
~MODULEtoLOAD() { }; ~MODULEtoLOAD() { };
MODULEtoLOAD* Next() { return (MODULEtoLOAD*) Pnext; } MODULEtoLOAD* Next() { return (MODULEtoLOAD*) Pnext; }
}; };
/* 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,
wxArrayString& aBufName );
static bool OpenNetlistFile( const wxString& aFullFileName );
static void AddToList( const wxString& NameLibCmp,
const wxString& NameCmp,
int TimeStamp,
const wxString& path );
static int SetPadNetName( wxWindow* aFrame, char* Text, MODULE* Module );
static void ReadPcbNetlist( WinEDA_PcbFrame* aFrame,
const wxString& aNetlistFullFilename,
const wxString& aCmpFullFileName,
wxTextCtrl* aMessageWindow,
bool aChangeFootprint,
bool aDeleteBadTracks,
bool aDeleteExtraFootprints,
bool aSelect_By_Timestamp,
bool aVerbose );
static int ReadListeModules( const wxString& CmpFullFileName,
const wxString* RefCmp,
long TimeStamp,
wxString& NameModule );
static MODULE* ReadNetModule( WinEDA_PcbFrame* aFrame,
wxTextCtrl* aMessageWindow,
const wxString& CmpFullFileName,
char* Text,
int* UseFichCmp,
int TstOnly,
bool Select_By_Timestamp,
bool aChangeFootprint );
static void LoadListeModules( WinEDA_PcbFrame* aPcbFrame, wxDC* DC );
/* Variables locales */ /* Variables locales */
static int s_NbNewModules; static int s_NbNewModules;
static MODULEtoLOAD* s_ModuleToLoad_List; static MODULEtoLOAD* s_ModuleToLoad_List;
FILE* source; FILE* source;
static bool ChangeExistantModule;
static bool DisplayWarning = TRUE;
static int DisplayWarningCount; static int DisplayWarningCount;
/*****************************/ /*****************************/
@ -69,49 +101,52 @@ static int DisplayWarningCount;
void WinEDA_PcbFrame::InstallNetlistFrame( wxDC* DC, const wxPoint& pos ) void WinEDA_PcbFrame::InstallNetlistFrame( wxDC* DC, const wxPoint& pos )
/*************************************************************************/ /*************************************************************************/
{ {
WinEDA_NetlistFrame* frame = new WinEDA_NetlistFrame( this, DC ); /* Setup the default netlist file name according to the board file name */
wxString default_netfilename = GetScreen()->m_FileName;
ChangeFileNameExt( default_netfilename, NetExtBuffer );
WinEDA_NetlistFrame* frame = new WinEDA_NetlistFrame( this, DC, default_netfilename );
frame->ShowModal(); frame->Destroy(); frame->ShowModal(); frame->Destroy();
} }
/***************************************************************/ /************************************************************************/
bool WinEDA_NetlistFrame::OpenNetlistFile( wxCommandEvent& event ) bool OpenNetlistFile( const wxString& aFullFileName )
/***************************************************************/ /************************************************************************/
/* /*
* routine de selection et d'ouverture du fichier Netlist * routine de selection et d'ouverture du fichier Netlist
*/ */
{ {
wxString FullFileName; if( aFullFileName.IsEmpty() )
wxString msg; return FALSE; /* No filename: exit */
if( NetNameBuffer.IsEmpty() ) /* Pas de nom specifie */ source = wxFopen( aFullFileName, wxT( "rt" ) );
Set_NetlisteName( event );
if( NetNameBuffer.IsEmpty() )
return FALSE; /* toujours Pas de nom specifie */
FullFileName = NetNameBuffer;
source = wxFopen( FullFileName, wxT( "rt" ) );
if( source == 0 ) if( source == 0 )
{ {
msg.Printf( _( "Netlist file %s not found" ), FullFileName.GetData() ); wxString msg;
DisplayError( this, msg ); msg.Printf( _( "Netlist file %s not found" ), aFullFileName.GetData() );
DisplayError( NULL, msg );
return FALSE; return FALSE;
} }
msg = wxT( "Netlist " ); msg << FullFileName;
SetTitle( msg );
return TRUE; return TRUE;
} }
/**************************************************************/ /*******************************************************************************/
void WinEDA_NetlistFrame::ReadPcbNetlist( wxCommandEvent& event ) void ReadPcbNetlist( WinEDA_PcbFrame* aFrame,
/**************************************************************/ const wxString& aNetlistFullFilename,
const wxString& aCmpFullFileName,
wxTextCtrl* aMessageWindow,
bool aChangeFootprint,
bool aDeleteBadTracks,
bool aDeleteExtraFootprints,
bool aSelect_By_Timestamp,
bool aVerbose )
/********************************************************************************/
/* mise a jour des empreintes : /* mise a jour des empreintes :
* corrige les Net Names, les textes, les "TIME STAMP" * corrige les Net Names, les textes, les "TIME STAMP"
@ -139,37 +174,37 @@ void WinEDA_NetlistFrame::ReadPcbNetlist( wxCommandEvent& event )
int UseFichCmp = 1; int UseFichCmp = 1;
wxString msg; wxString msg;
ChangeExistantModule = m_ChangeExistantModuleCtrl->GetSelection() == 1 ? TRUE : FALSE; if( aVerbose )
DisplayWarning = m_DisplayWarningCtrl->GetValue();
if( DisplayWarning )
DisplayWarningCount = 8; DisplayWarningCount = 8;
else else
DisplayWarningCount = 0; DisplayWarningCount = 0;
if( !OpenNetlistFile( event ) ) if( !OpenNetlistFile( aNetlistFullFilename ) )
return; return;
msg = _( "Read Netlist " ) + NetNameBuffer; msg = _( "Read Netlist " ) + aNetlistFullFilename;
m_MessageWindow->AppendText( msg ); if( aMessageWindow )
aMessageWindow->AppendText( msg );
m_Parent->m_CurrentScreen->SetModify(); aFrame->m_CurrentScreen->SetModify();
m_Parent->m_Pcb->m_Status_Pcb = 0; State = 0; LineNum = 0; Comment = 0; aFrame->m_Pcb->m_Status_Pcb = 0; State = 0; LineNum = 0; Comment = 0;
s_NbNewModules = 0; s_NbNewModules = 0;
/* Premiere lecture de la netliste: etablissement de la liste wxBusyCursor dummy; // Shows an hourglass while calculating
* des modules a charger
/* First read of the netlist: Build the list of footprints to load (new footprints)
*/ */
while( GetLine( source, Line, &LineNum ) ) while( GetLine( source, Line, &LineNum ) )
{ {
Text = StrPurge( Line ); Text = StrPurge( Line );
if( Comment ) /* Commentaires en cours */ if( Comment ) /* Comments in progress */
{ {
if( ( Text = strchr( Text, '}' ) ) == NULL ) if( ( Text = strchr( Text, '}' ) ) == NULL )
continue; continue;
Comment = 0; Comment = 0;
} }
if( *Text == '{' ) /* Commentaires */ if( *Text == '{' ) /* Start Comment */
{ {
Comment = 1; Comment = 1;
if( ( Text = strchr( Text, '}' ) ) == NULL ) if( ( Text = strchr( Text, '}' ) ) == NULL )
@ -184,7 +219,14 @@ void WinEDA_NetlistFrame::ReadPcbNetlist( wxCommandEvent& event )
if( State == 2 ) if( State == 2 )
{ {
Module = ReadNetModule( Text, &UseFichCmp, TESTONLY ); Module = ReadNetModule( aFrame,
aMessageWindow,
aCmpFullFileName,
Text,
&UseFichCmp,
TESTONLY,
aSelect_By_Timestamp,
aChangeFootprint );
continue; continue;
} }
@ -194,10 +236,10 @@ void WinEDA_NetlistFrame::ReadPcbNetlist( wxCommandEvent& event )
} }
} }
/* Chargement des nouveaux modules */ /* Load new footprints */
if( s_NbNewModules ) if( s_NbNewModules )
{ {
LoadListeModules( m_DC ); LoadListeModules( aFrame, NULL );
// Free module list: // Free module list:
MODULEtoLOAD* item, * next_item; MODULEtoLOAD* item, * next_item;
@ -210,7 +252,7 @@ void WinEDA_NetlistFrame::ReadPcbNetlist( wxCommandEvent& event )
s_ModuleToLoad_List = NULL; s_ModuleToLoad_List = NULL;
} }
/* Relecture de la netliste, tous les modules sont ici charges */ /* Second read , All footprints are on board, one must update the schematic info (pad netnames) */
fseek( source, 0, SEEK_SET ); LineNum = 0; fseek( source, 0, SEEK_SET ); LineNum = 0;
while( GetLine( source, Line, &LineNum ) ) while( GetLine( source, Line, &LineNum ) )
{ {
@ -236,7 +278,14 @@ void WinEDA_NetlistFrame::ReadPcbNetlist( wxCommandEvent& event )
if( State == 2 ) if( State == 2 )
{ {
Module = ReadNetModule( Text, &UseFichCmp, READMODULE ); Module = ReadNetModule( aFrame,
aMessageWindow,
aCmpFullFileName,
Text,
&UseFichCmp,
READMODULE,
aSelect_By_Timestamp,
aChangeFootprint );
if( Module == NULL ) if( Module == NULL )
{ /* empreinte non trouvee dans la netliste */ { /* empreinte non trouvee dans la netliste */
continue; continue;
@ -256,7 +305,7 @@ void WinEDA_NetlistFrame::ReadPcbNetlist( wxCommandEvent& event )
{ {
if( Module ) if( Module )
{ {
SetPadNetName( Text, Module ); SetPadNetName( NULL, Text, Module );
} }
State--; State--;
} }
@ -264,30 +313,75 @@ void WinEDA_NetlistFrame::ReadPcbNetlist( wxCommandEvent& event )
fclose( source ); fclose( source );
/* Mise a jour et Cleanup du circuit imprime: */ // Delete footprints not found in netlist:
m_Parent->Compile_Ratsnest( m_DC, TRUE ); if ( aDeleteExtraFootprints )
if( m_Parent->m_Pcb->m_Track )
{ {
if( m_DeleteBadTracks->GetSelection() == 1 ) wxArrayString ModuleListFromNetlist;
/* Build list of modules in the netlist */
int NbModulesNetListe = BuildFootprintsListFromNetlistFile( aNetlistFullFilename, ModuleListFromNetlist );
if( NbModulesNetListe )
{ {
wxBeginBusyCursor();; MODULE * NextModule;
Netliste_Controle_piste( m_Parent, m_DC, TRUE ); Module = aFrame->m_Pcb->m_Modules;
m_Parent->Compile_Ratsnest( m_DC, TRUE ); bool ask_for_confirmation = true;
wxEndBusyCursor();; for( ; Module != NULL; Module = NextModule )
{
int ii;
NextModule = Module->Next();
if ( (Module->m_ModuleStatus & MODULE_is_LOCKED) )
continue;
for( ii = 0; ii < NbModulesNetListe; ii++ )
{
if( Module->m_Reference->m_Text.CmpNoCase(
ModuleListFromNetlist[ii] ) == 0 )
{
break; /* Module trouve en netliste */
}
}
if( ii == NbModulesNetListe ) /* Module not found in netlist */
{
if ( ask_for_confirmation )
{
ask_for_confirmation = false;
if ( ! IsOK( NULL, _("Ok to delete footprints not in netlist ?") ) )
break;
}
aFrame->Delete_Module( Module, NULL, false );
}
}
} }
} }
m_Parent->m_Pcb->Display_Infos( m_Parent ); /* Rebuild the connectivity */
aFrame->Compile_Ratsnest( NULL, TRUE );
if( aFrame->m_Pcb->m_Track )
{
if( aDeleteBadTracks ) // Remove erroneous tracks
{
Netliste_Controle_piste( aFrame, NULL, TRUE );
aFrame->Compile_Ratsnest( NULL, TRUE );
}
}
aFrame->DrawPanel->Refresh();
aFrame->m_Pcb->Display_Infos( aFrame );
} }
/****************************************************************************/ /****************************************************************************/
MODULE* WinEDA_NetlistFrame::ReadNetModule( char* Text, int* UseFichCmp, MODULE* ReadNetModule( WinEDA_PcbFrame* aFrame,
int TstOnly ) wxTextCtrl* aMessageWindow,
const wxString& aCmpFullFileName,
char* Text,
int* UseFichCmp,
int TstOnly,
bool aSelect_By_Timestamp,
bool aChangeFootprint )
/****************************************************************************/ /****************************************************************************/
/* charge la description d'une empreinte ,netliste type PCBNEW /* charge la description d'une empreinte, netliste type PCBNEW
* et met a jour le module correspondant * et met a jour le module correspondant
* *
* Si TstOnly == 0 si le module n'existe pas, il est charge * Si TstOnly == 0 si le module n'existe pas, il est charge
@ -343,19 +437,19 @@ MODULE* WinEDA_NetlistFrame::ReadNetModule( char* Text, int* UseFichCmp,
if( Error > 0 ) if( Error > 0 )
return NULL; return NULL;
wxString LocalTimeStamp = TextTimeStamp.AfterLast('/'); wxString LocalTimeStamp = TextTimeStamp.AfterLast( '/' );
LocalTimeStamp.ToULong( &TimeStamp, 16 ); LocalTimeStamp.ToULong( &TimeStamp, 16 );
/* Tst si composant deja charge */ /* Tst si composant deja charge */
Module = (MODULE*) m_Parent->m_Pcb->m_Modules; Module = aFrame->m_Pcb->m_Modules;
MODULE* NextModule; MODULE* NextModule;
for( Found = FALSE; Module != NULL; Module = NextModule ) for( Found = FALSE; Module != NULL; Module = NextModule )
{ {
NextModule = (MODULE*) Module->Pnext; NextModule = Module->Next();
if( m_Select_By_Timestamp->GetSelection() == 1 ) /* Reconnaissance par signature temporelle */ if( aSelect_By_Timestamp ) /* Reconnaissance par signature temporelle */
{ {
//if( TimeStamp == Module->m_TimeStamp ) //if( TimeStamp == Module->m_TimeStamp )
if(TextTimeStamp.CmpNoCase(Module->m_Path)) if( TextTimeStamp.CmpNoCase( Module->m_Path ) )
Found = TRUE; Found = TRUE;
} }
else /* Reconnaissance par Reference */ else /* Reconnaissance par Reference */
@ -370,35 +464,44 @@ MODULE* WinEDA_NetlistFrame::ReadNetModule( char* Text, int* UseFichCmp,
NameLibCmp = TextNameLibMod; NameLibCmp = TextNameLibMod;
if( *UseFichCmp ) if( *UseFichCmp )
{ {
if( m_Select_By_Timestamp->GetSelection() == 1 ) if( aSelect_By_Timestamp )
{ /* Reconnaissance par signature temporelle */ { /* Reconnaissance par signature temporelle */
*UseFichCmp = ReadListeModules( NULL, TimeStamp, NameLibCmp ); *UseFichCmp = ReadListeModules( aCmpFullFileName,
NULL,
TimeStamp,
NameLibCmp );
} }
else /* Reconnaissance par Reference */ else /* Reconnaissance par Reference */
{ {
*UseFichCmp = ReadListeModules( &TextCmpName, 0l, NameLibCmp ); *UseFichCmp = ReadListeModules( aCmpFullFileName,
&TextCmpName,
0l,
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 diff. { // Module Mismatch: Current module and module specified in netlist are diff.
if( ChangeExistantModule ) if( aChangeFootprint )
{ {
MODULE* NewModule = MODULE* NewModule =
m_Parent->Get_Librairie_Module( this, wxEmptyString, NameLibCmp, TRUE ); aFrame->Get_Librairie_Module( NULL, wxEmptyString, NameLibCmp, TRUE );
if( NewModule ) /* Nouveau module trouve : changement de module */ if( NewModule ) /* Nouveau module trouve : changement de module */
Module = m_Parent->Exchange_Module( this, Module, NewModule ); Module = aFrame->Exchange_Module( NULL, Module, NewModule );
} }
else else
{ {
wxString msg; wxString msg;
msg.Printf( if( aMessageWindow )
_( "Cmp %s: Mismatch! module is [%s] and netlist said [%s]\n" ), {
TextCmpName.GetData(), Module->m_LibRef.GetData(), msg.Printf(
NameLibCmp.GetData() ); _( "Cmp %s: Mismatch! module is [%s] and netlist said [%s]\n" ),
m_MessageWindow->AppendText( msg ); TextCmpName.GetData(), Module->m_LibRef.GetData(),
NameLibCmp.GetData() );
aMessageWindow->AppendText( msg );
}
if( DisplayWarningCount > 0 ) if( DisplayWarningCount > 0 )
{ {
DisplayError( this, msg, 2 ); DisplayError( NULL, msg, 2 );
DisplayWarningCount--; DisplayWarningCount--;
} }
} }
@ -414,13 +517,13 @@ MODULE* WinEDA_NetlistFrame::ReadNetModule( char* Text, int* UseFichCmp,
if( *UseFichCmp ) if( *UseFichCmp )
{ {
if( m_Select_By_Timestamp->GetSelection() == 1 ) if( aSelect_By_Timestamp == 1 )
{ /* Reconnaissance par signature temporelle */ { /* Reconnaissance par signature temporelle */
*UseFichCmp = ReadListeModules( NULL, TimeStamp, NameLibCmp ); *UseFichCmp = ReadListeModules( aCmpFullFileName, NULL, TimeStamp, NameLibCmp );
} }
else /* Reconnaissance par Reference */ else /* Reconnaissance par Reference */
{ {
*UseFichCmp = ReadListeModules( &TextCmpName, 0l, NameLibCmp ); *UseFichCmp = ReadListeModules( aCmpFullFileName, &TextCmpName, 0l, NameLibCmp );
} }
} }
@ -429,12 +532,12 @@ MODULE* WinEDA_NetlistFrame::ReadNetModule( char* Text, int* UseFichCmp,
AddToList( NameLibCmp, TextCmpName, TimeStamp, TextTimeStamp ); AddToList( NameLibCmp, TextCmpName, TimeStamp, TextTimeStamp );
else else
{ {
wxString msg; if( aMessageWindow && (DisplayWarningCount> 0) )
msg.Printf( _( "Component [%s] not found" ), TextCmpName.GetData() );
m_MessageWindow->AppendText( msg + wxT( "\n" ) );
if( DisplayWarningCount> 0 )
{ {
DisplayError( this, msg, 2 ); wxString msg;
msg.Printf( _( "Component [%s] not found" ), TextCmpName.GetData() );
aMessageWindow->AppendText( msg + wxT( "\n" ) );
DisplayError( NULL, msg, 2 );
DisplayWarningCount--; DisplayWarningCount--;
} }
} }
@ -447,9 +550,9 @@ MODULE* WinEDA_NetlistFrame::ReadNetModule( char* Text, int* UseFichCmp,
Module->m_TimeStamp = TimeStamp; Module->m_TimeStamp = TimeStamp;
Module->m_Path = TextTimeStamp; Module->m_Path = TextTimeStamp;
#if defined(DEBUG) #if defined (DEBUG)
printf("in ReadNetModule() m_Path = %s\n", printf( "in ReadNetModule() m_Path = %s\n",
CONV_TO_UTF8(Module->m_Path) ); CONV_TO_UTF8( Module->m_Path ) );
#endif #endif
return Module; /* composant trouve */ return Module; /* composant trouve */
@ -457,14 +560,13 @@ MODULE* WinEDA_NetlistFrame::ReadNetModule( char* Text, int* UseFichCmp,
/********************************************************************/ /********************************************************************/
int WinEDA_NetlistFrame::SetPadNetName( char* Text, MODULE* Module ) int SetPadNetName( wxWindow* frame, char* Text, MODULE* Module )
/********************************************************************/ /********************************************************************/
/* /** Function SetPadNetName
* Met a jour le netname de 1 pastille, Netliste ORCADPCB * Update a pad netname in a given footprint
* entree : * @param Text = Text from netlist (format: (pad = net) )
* Text = ligne de netliste lue ( (pad = net) ) * @param Module = the given footprint
* Module = adresse de la structure MODULE a qui appartient les pads
*/ */
{ {
D_PAD* pad; D_PAD* pad;
@ -504,8 +606,8 @@ int WinEDA_NetlistFrame::SetPadNetName( char* Text, MODULE* Module )
{ {
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( this, Msg, 1 ); DisplayError( frame, Msg, 1 );
DisplayWarningCount--; DisplayWarningCount--;
} }
@ -514,7 +616,7 @@ int WinEDA_NetlistFrame::SetPadNetName( char* Text, MODULE* Module )
/*****************************************************/ /*****************************************************/
MODULE* WinEDA_PcbFrame::ListAndSelectModuleName() MODULE* WinEDA_PcbFrame::ListAndSelectModuleName( void )
/*****************************************************/ /*****************************************************/
/* liste les noms des modules du PCB /* liste les noms des modules du PCB
@ -538,7 +640,7 @@ MODULE* WinEDA_PcbFrame::ListAndSelectModuleName()
for( ; Module != NULL; Module = (MODULE*) Module->Pnext ) for( ; Module != NULL; Module = (MODULE*) Module->Pnext )
nb_empr++; nb_empr++;
ListNames = (const wxChar**) MyZMalloc( (nb_empr + 1) * sizeof(wxChar *) ); ListNames = (const wxChar**) MyZMalloc( (nb_empr + 1) * sizeof(wxChar*) );
Module = (MODULE*) m_Pcb->m_Modules; Module = (MODULE*) m_Pcb->m_Modules;
for( ii = 0; Module != NULL; Module = (MODULE*) Module->Pnext, ii++ ) for( ii = 0; Module != NULL; Module = (MODULE*) Module->Pnext, ii++ )
{ {
@ -546,7 +648,7 @@ MODULE* WinEDA_PcbFrame::ListAndSelectModuleName()
} }
ListBox = new WinEDAListBox( this, _( "Components" ), ListBox = new WinEDAListBox( this, _( "Components" ),
ListNames, wxEmptyString ); ListNames, wxEmptyString );
ii = ListBox->ShowModal(); ListBox->Destroy(); ii = ListBox->ShowModal(); ListBox->Destroy();
@ -569,53 +671,54 @@ MODULE* WinEDA_PcbFrame::ListAndSelectModuleName()
} }
/***************************************************************/ /*****************************************************************************************/
void WinEDA_NetlistFrame::ModulesControle( wxCommandEvent& event ) void TestFor_Duplicate_Missing_And_Extra_Footprints( wxWindow* aFrame,
/***************************************************************/ const wxString& aNetlistFullFilename,
BOARD* aPcb )
/******************************************************************************************/
/* donne la liste : /** Function TestFor_Duplicate_Missing_And_Extra_Footprints
* 1 - des empreintes doubl<EFBFBD>es sur le PCB * Build a list from the given board and netlist :
* 2 - des empreintes manquantes par rapport a la netliste * 1 - for duplicate footprints on board
* 3 - des empreintes suppl<EFBFBD>mentaires par rapport a la netliste * 2 - for missing footprints
* 3 - for footprints not in netlist
* @param aFrame = current active frame
* @param aNetlistFullFilename = the given netlist
* @param aPcb = the given board
*/ */
#define MAX_LEN_TXT 32 #define MAX_LEN_TXT 32
{ {
int ii, NbModulesPcb; int ii;
MODULE* Module, * pt_aux; MODULE* Module, * pt_aux;
int NbModulesNetListe, nberr = 0; int NbModulesNetListe, nberr = 0;
WinEDA_TextFrame* List; WinEDA_TextFrame* List;
wxArrayString ModuleListFromNetlist; wxArrayString ModuleListFromNetlist;
/* determination du nombre des modules du PCB*/ if( aPcb->m_Modules == NULL )
NbModulesPcb = 0; Module = (MODULE*) m_Parent->m_Pcb->m_Modules;
for( ; Module != NULL; Module = (MODULE*) Module->Pnext )
NbModulesPcb++;
if( NbModulesPcb == 0 )
{ {
DisplayError( this, _( "No modules" ), 10 ); return; DisplayInfo( aFrame, _( "No modules" ), 10 ); return;
} }
/* Construction de la liste des references des modules de la netliste */ /* Construction de la liste des references des modules de la netliste */
NbModulesNetListe = BuildListeNetModules( event, ModuleListFromNetlist ); NbModulesNetListe = BuildFootprintsListFromNetlistFile( aNetlistFullFilename, ModuleListFromNetlist );
if( NbModulesNetListe < 0 ) if( NbModulesNetListe < 0 )
return; /* fichier non trouve */ return; /* File not found */
if( NbModulesNetListe == 0 ) if( NbModulesNetListe == 0 )
{ {
DisplayError( this, _( "No modules in NetList" ), 10 ); return; DisplayError( aFrame, _( "No modules in NetList" ), 10 ); return;
} }
List = new WinEDA_TextFrame( this, _( "Check Modules" ) ); List = new WinEDA_TextFrame( aFrame, _( "Check Modules" ) );
/* recherche des doubles */ /* recherche des doubles */
List->Append( _( "Duplicates" ) ); List->Append( _( "Duplicates" ) );
Module = (MODULE*) m_Parent->m_Pcb->m_Modules; Module = aPcb->m_Modules;
for( ; Module != NULL; Module = (MODULE*) Module->Pnext ) for( ; Module != NULL; Module = Module->Next() )
{ {
pt_aux = (MODULE*) Module->Pnext; pt_aux = Module->Next();
for( ; pt_aux != NULL; pt_aux = (MODULE*) pt_aux->Pnext ) for( ; pt_aux != NULL; pt_aux = pt_aux->Next() )
{ {
if( Module->m_Reference->m_Text.CmpNoCase( pt_aux->m_Reference->m_Text ) == 0 ) if( Module->m_Reference->m_Text.CmpNoCase( pt_aux->m_Reference->m_Text ) == 0 )
{ {
@ -631,8 +734,8 @@ void WinEDA_NetlistFrame::ModulesControle( wxCommandEvent& event )
for( ii = 0; ii < NbModulesNetListe; ii++ ) for( ii = 0; ii < NbModulesNetListe; ii++ )
{ {
Module = (MODULE*) m_Parent->m_Pcb->m_Modules; Module = (MODULE*) aPcb->m_Modules;
for( ; Module != NULL; Module = (MODULE*) Module->Pnext ) for( ; Module != NULL; Module = Module->Next() )
{ {
if( Module->m_Reference->m_Text.CmpNoCase( if( Module->m_Reference->m_Text.CmpNoCase(
ModuleListFromNetlist[ii] ) == 0 ) ModuleListFromNetlist[ii] ) == 0 )
@ -651,7 +754,7 @@ void WinEDA_NetlistFrame::ModulesControle( wxCommandEvent& event )
/* recherche des modules supplementaires (i.e. Non en Netliste) */ /* recherche des modules supplementaires (i.e. Non en Netliste) */
List->Append( _( "Not in Netlist:" ) ); List->Append( _( "Not in Netlist:" ) );
Module = (MODULE*) m_Parent->m_Pcb->m_Modules; Module = (MODULE*) aPcb->m_Modules;
for( ; Module != NULL; Module = Module->Next() ) for( ; Module != NULL; Module = Module->Next() )
{ {
for( ii = 0; ii < NbModulesNetListe; ii++ ) for( ii = 0; ii < NbModulesNetListe; ii++ )
@ -659,7 +762,7 @@ void WinEDA_NetlistFrame::ModulesControle( wxCommandEvent& event )
if( Module->m_Reference->m_Text.CmpNoCase( if( Module->m_Reference->m_Text.CmpNoCase(
ModuleListFromNetlist[ii] ) == 0 ) ModuleListFromNetlist[ii] ) == 0 )
{ {
break;/* Module trouve en netliste */ break; /* Module trouve en netliste */
} }
} }
@ -674,13 +777,15 @@ void WinEDA_NetlistFrame::ModulesControle( wxCommandEvent& event )
} }
/**************************************************************************************************/ /***************************************************************************************/
int WinEDA_NetlistFrame::BuildListeNetModules( wxCommandEvent& event, wxArrayString& BufName ) int BuildFootprintsListFromNetlistFile( const wxString& aNetlistFullFilename, wxArrayString& aBufName )
/**************************************************************************************************/ /***************************************************************************************/
/* /** Function BuildFootprintsListFromNetlistFile
* charge en BufName la liste des noms des modules de la netliste, * Fill BufName with footprints names read from the netlist.
* retourne le nombre des modules cit<EFBFBD>s dans la netliste * @param aNetlistFullFilename = netlist file name
* @param BufName = wxArrayString to fill with footprint names
* @return Footprint count, or -1 if netlist file cannot opened
*/ */
{ {
int textlen; int textlen;
@ -688,7 +793,7 @@ int WinEDA_NetlistFrame::BuildListeNetModules( wxCommandEvent& event, wxArrayStr
int State, LineNum, Comment; int State, LineNum, Comment;
char Line[1024], * Text, * LibModName; char Line[1024], * Text, * LibModName;
if( !OpenNetlistFile( event ) ) if( !OpenNetlistFile( aNetlistFullFilename ) )
return -1; return -1;
State = 0; LineNum = 0; Comment = 0; State = 0; LineNum = 0; Comment = 0;
@ -720,14 +825,14 @@ int WinEDA_NetlistFrame::BuildListeNetModules( wxCommandEvent& event, wxArrayStr
{ {
int Error = 0; int Error = 0;
if( strtok( Line, " ()\t\n" ) == NULL ) if( strtok( Line, " ()\t\n" ) == NULL )
Error = 1; /* TimeStamp */ Error = 1; /* TimeStamp */
if( ( LibModName = strtok( NULL, " ()\t\n" ) ) == NULL ) if( ( LibModName = strtok( NULL, " ()\t\n" ) ) == NULL )
Error = 1; /* nom Lib */ Error = 1; /* nom Lib */
/* Lecture du nom (reference) du composant: */ /* Lecture du nom (reference) du composant: */
if( ( Text = strtok( NULL, " ()\t\n" ) ) == NULL ) if( ( Text = strtok( NULL, " ()\t\n" ) ) == NULL )
Error = 1; Error = 1;
nb_modules_lus++; nb_modules_lus++;
BufName.Add( CONV_FROM_UTF8( Text ) ); aBufName.Add( CONV_FROM_UTF8( Text ) );
continue; continue;
} }
@ -743,8 +848,8 @@ int WinEDA_NetlistFrame::BuildListeNetModules( wxCommandEvent& event, wxArrayStr
/*****************************************************************************************/ /*****************************************************************************************/
int WinEDA_NetlistFrame::ReadListeModules( const wxString* RefCmp, long TimeStamp, int ReadListeModules( const wxString& CmpFullFileName, const wxString* RefCmp, long TimeStamp,
wxString& NameModule ) wxString& NameModule )
/*****************************************************************************************/ /*****************************************************************************************/
/* /*
@ -780,7 +885,6 @@ int WinEDA_NetlistFrame::ReadListeModules( const wxString* RefCmp, long TimeStam
* *
*/ */
{ {
wxString CmpFullFileName;
wxString refcurrcmp, idmod; wxString refcurrcmp, idmod;
char ia[1024]; char ia[1024];
int timestamp; int timestamp;
@ -790,16 +894,13 @@ int WinEDA_NetlistFrame::ReadListeModules( const wxString* RefCmp, long TimeStam
if( (RefCmp == NULL) && (TimeStamp == 0) ) if( (RefCmp == NULL) && (TimeStamp == 0) )
return 0; return 0;
CmpFullFileName = NetNameBuffer;
ChangeFileNameExt( CmpFullFileName, NetCmpExtBuffer );
FichCmp = wxFopen( CmpFullFileName, wxT( "rt" ) ); FichCmp = wxFopen( CmpFullFileName, wxT( "rt" ) );
if( FichCmp == NULL ) if( FichCmp == NULL )
{ {
wxString msg; wxString msg;
msg.Printf( _( "File <%s> not found, use Netlist for lib module selection" ), msg.Printf( _( "File <%s> not found, use Netlist for lib module selection" ),
CmpFullFileName.GetData() ); CmpFullFileName.GetData() );
DisplayError( this, msg, 20 ); DisplayError( NULL, msg, 20 );
return 0; return 0;
} }
@ -871,38 +972,9 @@ int WinEDA_NetlistFrame::ReadListeModules( const wxString* RefCmp, long TimeStam
} }
/***************************************************************/
void WinEDA_NetlistFrame::Set_NetlisteName( wxCommandEvent& event )
/***************************************************************/
/* Selection un nouveau nom de netliste
* Affiche la liste des fichiers netlistes pour selection sur liste
*/
{
wxString fullfilename, mask( wxT( "*" ) );
mask += NetExtBuffer;
fullfilename = EDA_FileSelector( _( "Netlist Selection:" ),
wxEmptyString, /* Chemin par defaut */
NetNameBuffer, /* nom fichier par defaut */
NetExtBuffer, /* extension par defaut */
mask, /* Masque d'affichage */
this,
0,
TRUE
);
if( fullfilename.IsEmpty() )
return;
NetNameBuffer = fullfilename;
SetTitle( fullfilename );
}
/***********************************************************************************/ /***********************************************************************************/
void WinEDA_NetlistFrame::AddToList( const wxString& NameLibCmp, const wxString& CmpName, void AddToList( const wxString& NameLibCmp, const wxString& CmpName,
int TimeStamp, const wxString& path) int TimeStamp, const wxString& path )
/************************************************************************************/ /************************************************************************************/
/* Fontion copiant en memoire de travail les caracteristiques /* Fontion copiant en memoire de travail les caracteristiques
@ -919,7 +991,7 @@ void WinEDA_NetlistFrame::AddToList( const wxString& NameLibCmp, const wxString&
/***************************************************************/ /***************************************************************/
void WinEDA_NetlistFrame::LoadListeModules( wxDC* DC ) void LoadListeModules( WinEDA_PcbFrame* aPcbFrame, wxDC* DC )
/***************************************************************/ /***************************************************************/
/* Routine de chargement des nouveaux modules en une seule lecture des /* Routine de chargement des nouveaux modules en une seule lecture des
@ -931,7 +1003,7 @@ void WinEDA_NetlistFrame::LoadListeModules( wxDC* DC )
MODULEtoLOAD* ref, * cmp; MODULEtoLOAD* ref, * cmp;
int ii; int ii;
MODULE* Module = NULL; MODULE* Module = NULL;
wxPoint OldPos = m_Parent->m_CurrentScreen->m_Curseur; wxPoint OldPos = aPcbFrame->m_CurrentScreen->m_Curseur;
if( s_NbNewModules == 0 ) if( s_NbNewModules == 0 )
return; return;
@ -939,47 +1011,47 @@ void WinEDA_NetlistFrame::LoadListeModules( wxDC* DC )
SortListModulesToLoadByLibname( s_NbNewModules ); SortListModulesToLoadByLibname( s_NbNewModules );
ref = cmp = s_ModuleToLoad_List; ref = cmp = s_ModuleToLoad_List;
// Calcul de la coordonn<6E>e de placement des modules: // Calculate the footprint "best" position:
if( m_Parent->SetBoardBoundaryBoxFromEdgesOnly() ) if( aPcbFrame->SetBoardBoundaryBoxFromEdgesOnly() )
{ {
m_Parent->m_CurrentScreen->m_Curseur.x = m_Parent->m_Pcb->m_BoundaryBox.GetRight() + 5000; aPcbFrame->m_CurrentScreen->m_Curseur.x = aPcbFrame->m_Pcb->m_BoundaryBox.GetRight() +
m_Parent->m_CurrentScreen->m_Curseur.y = m_Parent->m_Pcb->m_BoundaryBox.GetBottom() + 5000;
10000; aPcbFrame->m_CurrentScreen->m_Curseur.y = aPcbFrame->m_Pcb->m_BoundaryBox.GetBottom() +
10000;
} }
else else
{ {
m_Parent->m_CurrentScreen->m_Curseur = wxPoint( 0, 0 ); aPcbFrame->m_CurrentScreen->m_Curseur = wxPoint( 0, 0 );
} }
for( ii = 0; ii < s_NbNewModules; ii++, cmp = cmp->Next() ) for( ii = 0; ii < s_NbNewModules; ii++, cmp = cmp->Next() )
{ {
if( (ii == 0) || ( ref->m_LibName != cmp->m_LibName) ) if( (ii == 0) || ( ref->m_LibName != cmp->m_LibName) )
{ /* Nouveau Module a charger */ { /* New footprint : must be loaded from a library */
Module = m_Parent->Get_Librairie_Module( this, wxEmptyString, cmp->m_LibName, FALSE ); Module = aPcbFrame->Get_Librairie_Module( NULL, wxEmptyString, cmp->m_LibName, FALSE );
ref = cmp; ref = cmp;
if( Module == NULL ) if( Module == NULL )
{ {
wxString msg; wxString msg;
msg.Printf( _( "Component [%s]: footprint <%s> not found" ), msg.Printf( _( "Component [%s]: footprint <%s> not found" ),
cmp->m_CmpName.GetData(), cmp->m_LibName.GetData() ); cmp->m_CmpName.GetData(), cmp->m_LibName.GetData() );
DisplayError( this, msg ); DisplayError( NULL, msg );
continue; continue;
} }
m_Parent->Place_Module( Module, DC ); aPcbFrame->Place_Module( Module, DC );
/* mise a jour des reperes ( nom et ref "Time Stamp") /* Update schematic links : reference "Time Stamp" and schematic hierarchical path */
* si module charge */
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 = cmp->m_TimeStamp;
Module->m_Path = cmp->m_Path; Module->m_Path = cmp->m_Path;
} }
else else
{ {
/* module deja charge, on peut le dupliquer */ /* Footprint already loaded from a library, duplicate it (faster) */
MODULE* newmodule; MODULE* newmodule;
if( Module == NULL ) if( Module == NULL )
continue; /* module non existant en libr */ continue; /* module non existant en libr */
newmodule = new MODULE( m_Parent->m_Pcb ); newmodule = new MODULE( aPcbFrame->m_Pcb );
newmodule->Copy( Module ); newmodule->Copy( Module );
newmodule->AddToChain( Module ); newmodule->AddToChain( Module );
Module = newmodule; Module = newmodule;
@ -989,7 +1061,7 @@ void WinEDA_NetlistFrame::LoadListeModules( wxDC* DC )
} }
} }
m_Parent->m_CurrentScreen->m_Curseur = OldPos; aPcbFrame->m_CurrentScreen->m_Curseur = OldPos;
} }
@ -1013,7 +1085,7 @@ void SortListModulesToLoadByLibname( int NbModules )
MODULEtoLOAD** base_list, * item; MODULEtoLOAD** base_list, * item;
int ii; int ii;
base_list = (MODULEtoLOAD**) MyMalloc( NbModules * sizeof(MODULEtoLOAD *) ); base_list = (MODULEtoLOAD**) MyMalloc( NbModules * sizeof(MODULEtoLOAD*) );
for( ii = 0, item = s_ModuleToLoad_List; ii < NbModules; ii++ ) for( ii = 0, item = s_ModuleToLoad_List; ii < NbModules; ii++ )
{ {
@ -1021,8 +1093,8 @@ void SortListModulesToLoadByLibname( int NbModules )
item = item->Next(); item = item->Next();
} }
qsort( base_list, NbModules, sizeof(MODULEtoLOAD *), qsort( base_list, NbModules, sizeof(MODULEtoLOAD*),
( int( * ) ( const void*, const void* ) )SortByLibName ); ( int( * ) ( const void*, const void* ) )SortByLibName );
// Reconstruction du chainage: // Reconstruction du chainage:
s_ModuleToLoad_List = *base_list; s_ModuleToLoad_List = *base_list;
@ -1048,5 +1120,5 @@ MODULEtoLOAD::MODULEtoLOAD( const wxString& libname, const wxString& cmpname,
m_LibName = libname; m_LibName = libname;
m_CmpName = cmpname; m_CmpName = cmpname;
m_TimeStamp = timestamp; m_TimeStamp = timestamp;
m_Path = path; m_Path = path;
} }

View File

@ -169,8 +169,7 @@ eda_global wxString g_SaveFileName // File Name for periodic saving
( wxT( "$savepcb" ) ) ( wxT( "$savepcb" ) )
#endif #endif
; ;
eda_global wxString NetNameBuffer; // Netlist file extension eda_global wxString NetExtBuffer // Netlist file extension
eda_global wxString NetExtBuffer
#ifdef MAIN #ifdef MAIN
( wxT( ".net" ) ) ( wxT( ".net" ) )
#endif #endif

View File

@ -247,7 +247,7 @@ static int gen_rats_block_to_block( WinEDA_DrawPanel* DrawPanel, wxDC* DC,
// we memorise the "best" current values for merging // we memorise the "best" current values for merging
current_num_block = curr_pad->m_logical_connexion; current_num_block = curr_pad->m_logical_connexion;
dist_min = current_dist; dist_min = current_dist;
pt_liste_pad_tmp = pt_liste_pad_aux; pt_liste_pad_tmp = pt_liste_pad_aux;
pt_liste_pad_block1 = pt_liste_pad; pt_liste_pad_block1 = pt_liste_pad;
} }
@ -389,7 +389,7 @@ static int gen_rats_pad_to_pad( WinEDA_DrawPanel* DrawPanel, wxDC* DC,
g_pt_chevelu->pad_start = ref_pad; g_pt_chevelu->pad_start = ref_pad;
g_pt_chevelu->pad_end = pad; g_pt_chevelu->pad_end = pad;
if( DisplayRastnestInProgress ) if( DisplayRastnestInProgress && DC )
{ {
GRLine( &DrawPanel->m_ClipBox, DC, g_pt_chevelu->pad_start->m_Pos.x, GRLine( &DrawPanel->m_ClipBox, DC, g_pt_chevelu->pad_start->m_Pos.x,
g_pt_chevelu->pad_start->m_Pos.y, g_pt_chevelu->pad_start->m_Pos.y,
@ -483,10 +483,10 @@ void WinEDA_BasePcbFrame::Build_Board_Ratsnest( wxDC* DC )
DisplayRastnestInProgress = TRUE; DisplayRastnestInProgress = TRUE;
g_pt_chevelu = m_Pcb->m_Ratsnest; g_pt_chevelu = m_Pcb->m_Ratsnest;
pt_liste_pad = pt_start_liste = m_Pcb->m_Pads; pt_liste_pad = pt_start_liste = m_Pcb->m_Pads;
pt_liste_pad_limite = pt_start_liste + m_Pcb->m_NbPads; pt_liste_pad_limite = pt_start_liste + m_Pcb->m_NbPads;
current_net_code = 1; // 1er net_code a analyser (net_code = 0 -> no connect) current_net_code = 1; // 1er net_code a analyser (net_code = 0 -> no connect)
equipot = m_Pcb->m_Equipots; equipot = m_Pcb->m_Equipots;
noconn = 0; noconn = 0;
@ -494,14 +494,14 @@ void WinEDA_BasePcbFrame::Build_Board_Ratsnest( wxDC* DC )
{ {
pt_deb_liste_ch = g_pt_chevelu; pt_deb_liste_ch = g_pt_chevelu;
pad = *pt_liste_pad; pad = *pt_liste_pad;
/* Skip the not connected pads */ /* Skip the not connected pads */
if( pad->GetNet() == 0 ) if( pad->GetNet() == 0 )
{ {
pt_liste_pad++; pt_start_liste = pt_liste_pad; pt_liste_pad++; pt_start_liste = pt_liste_pad;
continue; continue;
} }
/* Search the end of pad list des pads for the current net */ /* Search the end of pad list des pads for the current net */
num_block = pad->m_logical_connexion; num_block = pad->m_logical_connexion;
nbpads = 0; nbpads = 0;
@ -509,11 +509,11 @@ void WinEDA_BasePcbFrame::Build_Board_Ratsnest( wxDC* DC )
{ {
if( pt_end_liste >= pt_liste_pad_limite ) if( pt_end_liste >= pt_liste_pad_limite )
break; break;
pad = *pt_end_liste; pad = *pt_end_liste;
if( pad->GetNet() != current_net_code ) if( pad->GetNet() != current_net_code )
break; break;
nbpads++; nbpads++;
if( num_block < pad->m_logical_connexion ) if( num_block < pad->m_logical_connexion )
num_block = pad->m_logical_connexion; num_block = pad->m_logical_connexion;
@ -566,8 +566,8 @@ void WinEDA_BasePcbFrame::Build_Board_Ratsnest( wxDC* DC )
// erase the ratsnest displayed on screen if needed // erase the ratsnest displayed on screen if needed
CHEVELU* Chevelu = (CHEVELU*) m_Pcb->m_Ratsnest; CHEVELU* Chevelu = (CHEVELU*) m_Pcb->m_Ratsnest;
GRSetDrawMode( DC, GR_XOR ); if ( DC ) GRSetDrawMode( DC, GR_XOR );
for( ii = m_Pcb->GetNumRatsnests(); ii > 0; ii--, Chevelu++ ) for( ii = m_Pcb->GetNumRatsnests(); ii > 0; ii--, Chevelu++ )
{ {
if( !g_Show_Ratsnest ) if( !g_Show_Ratsnest )
@ -733,7 +733,7 @@ static int tst_rats_pad_to_pad( WinEDA_DrawPanel* DrawPanel, wxDC* DC,
for( chevelu = start_rat_list; chevelu < end_rat_list; chevelu++ ) for( chevelu = start_rat_list; chevelu < end_rat_list; chevelu++ )
{ {
pad_start = chevelu->pad_start; pad_start = chevelu->pad_start;
pad_end = chevelu->pad_end; pad_end = chevelu->pad_end;
/* Update the block if the 2 pads are not connected : a new block is created /* Update the block if the 2 pads are not connected : a new block is created
@ -878,7 +878,7 @@ void WinEDA_BasePcbFrame::recalcule_pad_net_code()
{ {
if( (*pad_courant)->m_Netname.IsEmpty() ) // pad not connected if( (*pad_courant)->m_Netname.IsEmpty() ) // pad not connected
{ {
(*pad_courant)->SetNet( 0 ); (*pad_courant)->SetNet( 0 );
continue; continue;
} }
@ -965,7 +965,7 @@ void WinEDA_BasePcbFrame::recalcule_pad_net_code()
MyFree( BufPtEquipot ); MyFree( BufPtEquipot );
m_Pcb->m_Status_Pcb |= NET_CODES_OK; m_Pcb->m_Status_Pcb |= NET_CODES_OK;
m_Pcb->SetAreasNetCodesFromNetNames(); m_Pcb->SetAreasNetCodesFromNetNames();
} }
@ -1089,7 +1089,7 @@ char* WinEDA_BasePcbFrame::build_ratsnest_module( wxDC* DC, MODULE* Module )
build_liste_pads(); build_liste_pads();
/* Compute the "local" ratsnest if needed (when this footprint starts move) /* Compute the "local" ratsnest if needed (when this footprint starts move)
and the list of external pads to consider, i.e pads in others footprints which are "connected" to and the list of external pads to consider, i.e pads in others footprints which are "connected" to
a pad in the current footprint a pad in the current footprint
*/ */
if( (m_Pcb->m_Status_Pcb & CHEVELU_LOCAL_OK) != 0 ) if( (m_Pcb->m_Status_Pcb & CHEVELU_LOCAL_OK) != 0 )
@ -1127,7 +1127,7 @@ char* WinEDA_BasePcbFrame::build_ratsnest_module( wxDC* DC, MODULE* Module )
pad_ref = pt_liste_ref[ii]; pad_ref = pt_liste_ref[ii];
if( pad_ref->GetNet() == current_net_code ) if( pad_ref->GetNet() == current_net_code )
continue; continue;
current_net_code = pad_ref->GetNet(); current_net_code = pad_ref->GetNet();
pt_liste_generale = m_Pcb->m_Pads; pt_liste_generale = m_Pcb->m_Pads;
@ -1142,10 +1142,10 @@ char* WinEDA_BasePcbFrame::build_ratsnest_module( wxDC* DC, MODULE* Module )
pad_externe->m_logical_connexion = 0; pad_externe->m_logical_connexion = 0;
pad_externe->m_physical_connexion = 0; pad_externe->m_physical_connexion = 0;
*pt_liste_pad = pad_externe; *pt_liste_pad = pad_externe;
pt_liste_pad++; pt_liste_pad++;
nb_pads_externes++; nb_pads_externes++;
} }
} }
@ -1164,9 +1164,9 @@ char* WinEDA_BasePcbFrame::build_ratsnest_module( wxDC* DC, MODULE* Module )
g_pt_chevelu = local_liste_chevelu; g_pt_chevelu = local_liste_chevelu;
pt_liste_pad = pt_start_liste = (LISTE_PAD*) adr_lowmem; pt_liste_pad = pt_start_liste = (LISTE_PAD*) adr_lowmem;
pt_liste_pad_limite = pt_liste_pad + nb_pads_ref; pt_liste_pad_limite = pt_liste_pad + nb_pads_ref;
current_net_code = (*pt_liste_pad)->GetNet(); current_net_code = (*pt_liste_pad)->GetNet();
for( ; pt_liste_pad < pt_liste_pad_limite; ) for( ; pt_liste_pad < pt_liste_pad_limite; )
@ -1270,7 +1270,7 @@ calcul_chevelu_ext:
local_chevelu->SetNet( pad_ref->GetNet() ); local_chevelu->SetNet( pad_ref->GetNet() );
local_chevelu->dist = distance; local_chevelu->dist = distance;
local_chevelu->status = 0; local_chevelu->status = 0;
increment = 1; increment = 1;
} }
} }
@ -1302,6 +1302,8 @@ void WinEDA_BasePcbFrame::trace_ratsnest_module( wxDC* DC )
CHEVELU* local_chevelu; CHEVELU* local_chevelu;
int ii; int ii;
if ( DC == NULL )
return;
if( (m_Pcb->m_Status_Pcb & CHEVELU_LOCAL_OK) == 0 ) if( (m_Pcb->m_Status_Pcb & CHEVELU_LOCAL_OK) == 0 )
return; return;
@ -1457,7 +1459,7 @@ int* WinEDA_BasePcbFrame::build_ratsnest_pad( EDA_BaseStruct* ref,
else if( nb_local_chevelu ) else if( nb_local_chevelu )
{ {
*pt_coord = refpos.x; *pt_coord = refpos.x;
*(pt_coord + 1) = refpos.y; *(pt_coord + 1) = refpos.y;
} }
@ -1479,6 +1481,9 @@ void WinEDA_BasePcbFrame::trace_ratsnest_pad( wxDC* DC )
int ii; int ii;
int refX, refY; int refX, refY;
if ( DC == NULL )
return;
if( (m_Pcb->m_Status_Pcb & LISTE_CHEVELU_OK) == 0 ) if( (m_Pcb->m_Status_Pcb & LISTE_CHEVELU_OK) == 0 )
return; return;

View File

@ -196,7 +196,7 @@ int WinEDA_ExchangeModuleFrame::Maj_ListeCmp(
/* /*
* Met a jour le fichier name.CMP (s'il existe) apres un echange de module * Met a jour le fichier name.CMP (s'il existe) apres un echange de module
* (par la commande changeMod), si les modules sont geres par ce fichier * (par la commande changeMod), si les modules sont geres par ce fichier
* *
* Si ShowError != 0 affiche message d'erreur si le fichier .cmp n'est pas * Si ShowError != 0 affiche message d'erreur si le fichier .cmp n'est pas
* trouve. * trouve.
* Retoure 1 si erreur * Retoure 1 si erreur
@ -211,10 +211,7 @@ int WinEDA_ExchangeModuleFrame::Maj_ListeCmp(
return 0; /* pas de changement de nom */ return 0; /* pas de changement de nom */
/* Calcul nom fichier CMP par changement de l'extension du nom netliste */ /* Calcul nom fichier CMP par changement de l'extension du nom netliste */
if( NetNameBuffer == wxEmptyString ) FileNameCmp = m_Parent->m_CurrentScreen->m_FileName;
FileNameCmp = m_Parent->m_CurrentScreen->m_FileName;
else
FileNameCmp = NetNameBuffer;
ChangeFileNameExt( FileNameCmp, NetCmpExtBuffer ); ChangeFileNameExt( FileNameCmp, NetCmpExtBuffer );
// Modification du fichier .cmp correcpondant // Modification du fichier .cmp correcpondant
@ -617,10 +614,7 @@ bool WinEDA_PcbFrame::RecreateCmpFileFromBoard()
} }
/* Calcul nom fichier CMP par changement de l'extension du nom netliste */ /* Calcul nom fichier CMP par changement de l'extension du nom netliste */
if( NetNameBuffer == wxEmptyString ) FullFileNameCmp = m_CurrentScreen->m_FileName;
FullFileNameCmp = m_CurrentScreen->m_FileName;
else
FullFileNameCmp = NetNameBuffer;
ChangeFileNameExt( FullFileNameCmp, NetCmpExtBuffer ); ChangeFileNameExt( FullFileNameCmp, NetCmpExtBuffer );
mask = wxT( "*" ) + NetCmpExtBuffer; mask = wxT( "*" ) + NetCmpExtBuffer;

View File

@ -42,7 +42,7 @@ BEGIN_EVENT_TABLE( WinEDA_PrintFrame, wxDialog )
EVT_BUTTON( ID_PRINT_EXECUTE, WinEDA_PrintFrame::OnPrintExecuteClick ) EVT_BUTTON( ID_PRINT_EXECUTE, WinEDA_PrintFrame::OnPrintExecuteClick )
EVT_BUTTON( wxID_CLOSE, WinEDA_PrintFrame::OnCloseClick ) EVT_BUTTON( wxID_CANCEL, WinEDA_PrintFrame::OnCancelClick )
////@end WinEDA_PrintFrame event table entries ////@end WinEDA_PrintFrame event table entries
@ -91,10 +91,11 @@ bool WinEDA_PrintFrame::Create( wxWindow* parent, wxWindowID id, const wxString&
m_ColorOption = NULL; m_ColorOption = NULL;
m_PagesOptionPcb = NULL; m_PagesOptionPcb = NULL;
m_PagesOptionEeschema = NULL; m_PagesOptionEeschema = NULL;
m_CloseButton = NULL;
////@end WinEDA_PrintFrame member initialisation ////@end WinEDA_PrintFrame member initialisation
////@begin WinEDA_PrintFrame creation ////@begin WinEDA_PrintFrame creation
SetExtraStyle(GetExtraStyle()|wxWS_EX_BLOCK_EVENTS); SetExtraStyle(wxWS_EX_BLOCK_EVENTS);
wxDialog::Create( parent, id, caption, pos, size, style ); wxDialog::Create( parent, id, caption, pos, size, style );
CreateControls(); CreateControls();
@ -116,7 +117,7 @@ void WinEDA_PrintFrame::CreateControls()
SetFont(*g_DialogFont); SetFont(*g_DialogFont);
////@begin WinEDA_PrintFrame content construction ////@begin WinEDA_PrintFrame content construction
// Generated by DialogBlocks, 24/01/2007 16:36:31 (unregistered) // Generated by DialogBlocks, 22/03/2008 08:33:38 (unregistered)
WinEDA_PrintFrame* itemDialog1 = this; WinEDA_PrintFrame* itemDialog1 = this;
@ -132,18 +133,17 @@ void WinEDA_PrintFrame::CreateControls()
wxBoxSizer* itemBoxSizer5 = new wxBoxSizer(wxVERTICAL); wxBoxSizer* itemBoxSizer5 = new wxBoxSizer(wxVERTICAL);
itemBoxSizer2->Add(itemBoxSizer5, 0, wxGROW|wxALL, 5); itemBoxSizer2->Add(itemBoxSizer5, 0, wxGROW|wxALL, 5);
wxString m_ScaleOptionStrings[] = { wxArrayString m_ScaleOptionStrings;
_("fit in page"), m_ScaleOptionStrings.Add(_("fit in page"));
_("Scale 0.5"), m_ScaleOptionStrings.Add(_("Scale 0.5"));
_("Scale 0.7"), m_ScaleOptionStrings.Add(_("Scale 0.7"));
_("Approx. Scale 1"), m_ScaleOptionStrings.Add(_("Approx. Scale 1"));
_("Accurate Scale 1"), m_ScaleOptionStrings.Add(_("Accurate Scale 1"));
_("Scale 1.4"), m_ScaleOptionStrings.Add(_("Scale 1.4"));
_("Scale 2"), m_ScaleOptionStrings.Add(_("Scale 2"));
_("Scale 3"), m_ScaleOptionStrings.Add(_("Scale 3"));
_("Scale 4") m_ScaleOptionStrings.Add(_("Scale 4"));
}; m_ScaleOption = new wxRadioBox( itemDialog1, ID_SET_PRINT_SCALE, _("Approx. Scale:"), wxDefaultPosition, wxDefaultSize, m_ScaleOptionStrings, 1, wxRA_SPECIFY_COLS );
m_ScaleOption = new wxRadioBox( itemDialog1, ID_SET_PRINT_SCALE, _("Approx. Scale:"), wxDefaultPosition, wxDefaultSize, 9, m_ScaleOptionStrings, 1, wxRA_SPECIFY_COLS );
m_ScaleOption->SetSelection(0); m_ScaleOption->SetSelection(0);
itemBoxSizer5->Add(m_ScaleOption, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5); itemBoxSizer5->Add(m_ScaleOption, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
@ -179,27 +179,24 @@ void WinEDA_PrintFrame::CreateControls()
m_Print_Mirror->SetValue(false); m_Print_Mirror->SetValue(false);
itemStaticBoxSizer13->Add(m_Print_Mirror, 0, wxGROW|wxALL, 5); itemStaticBoxSizer13->Add(m_Print_Mirror, 0, wxGROW|wxALL, 5);
wxString m_ColorOptionStrings[] = { wxArrayString m_ColorOptionStrings;
_("Color"), m_ColorOptionStrings.Add(_("Color"));
_("Black") m_ColorOptionStrings.Add(_("Black"));
}; m_ColorOption = new wxRadioBox( itemDialog1, ID_SET_BW, _("Color Print:"), wxDefaultPosition, wxDefaultSize, m_ColorOptionStrings, 1, wxRA_SPECIFY_COLS );
m_ColorOption = new wxRadioBox( itemDialog1, ID_SET_BW, _("Color Print:"), wxDefaultPosition, wxDefaultSize, 2, m_ColorOptionStrings, 1, wxRA_SPECIFY_COLS );
m_ColorOption->SetSelection(0); m_ColorOption->SetSelection(0);
itemBoxSizer12->Add(m_ColorOption, 0, wxGROW|wxALL, 5); itemBoxSizer12->Add(m_ColorOption, 0, wxGROW|wxALL, 5);
wxString m_PagesOptionPcbStrings[] = { wxArrayString m_PagesOptionPcbStrings;
_("1 page per layer"), m_PagesOptionPcbStrings.Add(_("1 Page per Layer"));
_("Single Page") m_PagesOptionPcbStrings.Add(_("Single Page"));
}; m_PagesOptionPcb = new wxRadioBox( itemDialog1, ID_PRINT_ALL_IN_ONE, _("Page Print:"), wxDefaultPosition, wxDefaultSize, m_PagesOptionPcbStrings, 1, wxRA_SPECIFY_COLS );
m_PagesOptionPcb = new wxRadioBox( itemDialog1, ID_PRINT_ALL_IN_ONE, _("Page Print:"), wxDefaultPosition, wxDefaultSize, 2, m_PagesOptionPcbStrings, 1, wxRA_SPECIFY_COLS );
m_PagesOptionPcb->SetSelection(0); m_PagesOptionPcb->SetSelection(0);
itemBoxSizer12->Add(m_PagesOptionPcb, 0, wxGROW|wxALL, 5); itemBoxSizer12->Add(m_PagesOptionPcb, 0, wxGROW|wxALL, 5);
wxString m_PagesOptionEeschemaStrings[] = { wxArrayString m_PagesOptionEeschemaStrings;
_("Current"), m_PagesOptionEeschemaStrings.Add(_("Current"));
_("All") m_PagesOptionEeschemaStrings.Add(_("All"));
}; m_PagesOptionEeschema = new wxRadioBox( itemDialog1, ID_PRINT_ALL, _("Page Print:"), wxDefaultPosition, wxDefaultSize, m_PagesOptionEeschemaStrings, 1, wxRA_SPECIFY_COLS );
m_PagesOptionEeschema = new wxRadioBox( itemDialog1, ID_PRINT_ALL, _("Page Print:"), wxDefaultPosition, wxDefaultSize, 2, m_PagesOptionEeschemaStrings, 1, wxRA_SPECIFY_COLS );
m_PagesOptionEeschema->SetSelection(0); m_PagesOptionEeschema->SetSelection(0);
itemBoxSizer12->Add(m_PagesOptionEeschema, 0, wxGROW|wxALL, 5); itemBoxSizer12->Add(m_PagesOptionEeschema, 0, wxGROW|wxALL, 5);
@ -222,8 +219,9 @@ void WinEDA_PrintFrame::CreateControls()
itemButton25->SetForegroundColour(wxColour(0, 128, 64)); itemButton25->SetForegroundColour(wxColour(0, 128, 64));
itemBoxSizer21->Add(itemButton25, 0, wxGROW|wxALL, 5); itemBoxSizer21->Add(itemButton25, 0, wxGROW|wxALL, 5);
wxButton* itemButton26 = new wxButton( itemDialog1, wxID_CLOSE, _("&Close"), wxDefaultPosition, wxDefaultSize, 0 ); m_CloseButton = new wxButton( itemDialog1, wxID_CANCEL, _("&Close"), wxDefaultPosition, wxDefaultSize, 0 );
itemBoxSizer21->Add(itemButton26, 0, wxGROW|wxALL, 5); m_CloseButton->SetDefault();
itemBoxSizer21->Add(m_CloseButton, 0, wxGROW|wxALL, 5);
// Set validators // Set validators
m_ScaleOption->SetValidator( wxGenericValidator(& s_Scale_Select) ); m_ScaleOption->SetValidator( wxGenericValidator(& s_Scale_Select) );
@ -233,6 +231,7 @@ void WinEDA_PrintFrame::CreateControls()
m_PagesOptionEeschema->SetValidator( wxGenericValidator(& s_OptionPrintPage) ); m_PagesOptionEeschema->SetValidator( wxGenericValidator(& s_OptionPrintPage) );
////@end WinEDA_PrintFrame content construction ////@end WinEDA_PrintFrame content construction
m_CloseButton->SetFocus( ); // add this line to close dialog by the escape key
m_DialogPenWidth = new WinEDA_ValueCtrl(this, _("Pen width mini"), s_PrintPenMinWidth, m_DialogPenWidth = new WinEDA_ValueCtrl(this, _("Pen width mini"), s_PrintPenMinWidth,
g_UnitMetric, m_DialogPenWidthSizer, m_Parent->m_InternalUnits); g_UnitMetric, m_DialogPenWidthSizer, m_Parent->m_InternalUnits);
@ -304,7 +303,7 @@ void WinEDA_PrintFrame::OnPrintExecuteClick( wxCommandEvent& event )
* wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_CLOSE * wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_CLOSE
*/ */
void WinEDA_PrintFrame::OnCloseClick( wxCommandEvent& event ) void WinEDA_PrintFrame::OnCancelClick( wxCommandEvent& event )
{ {
OnClosePrintDialog(); OnClosePrintDialog();
} }

View File

@ -99,8 +99,8 @@ public:
/// wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_PRINT_EXECUTE /// wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_PRINT_EXECUTE
void OnPrintExecuteClick( wxCommandEvent& event ); void OnPrintExecuteClick( wxCommandEvent& event );
/// wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_CLOSE /// wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_CANCEL
void OnCloseClick( wxCommandEvent& event ); void OnCancelClick( wxCommandEvent& event );
////@end WinEDA_PrintFrame event handler declarations ////@end WinEDA_PrintFrame event handler declarations
@ -142,6 +142,7 @@ public:
wxRadioBox* m_ColorOption; wxRadioBox* m_ColorOption;
wxRadioBox* m_PagesOptionPcb; wxRadioBox* m_PagesOptionPcb;
wxRadioBox* m_PagesOptionEeschema; wxRadioBox* m_PagesOptionEeschema;
wxButton* m_CloseButton;
////@end WinEDA_PrintFrame member variables ////@end WinEDA_PrintFrame member variables
WinEDA_DrawFrame * m_Parent; WinEDA_DrawFrame * m_Parent;

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="windows-1252"?> <?xml version="1.0" encoding="UTF-8"?>
<anthemion-project version="1.0.0.0" xmlns="http://www.anthemion.co.uk"> <anthemion-project version="1.0.0.0" xmlns="http://www.anthemion.co.uk">
<header> <header>
<long name="name_counter">0</long> <long name="name_counter">0</long>
@ -6,13 +6,14 @@
<string name="title">""</string> <string name="title">""</string>
<string name="author">""</string> <string name="author">""</string>
<string name="description">""</string> <string name="description">""</string>
<long name="doc_count">33</long>
<string name="xrc_filename">""</string> <string name="xrc_filename">""</string>
<bool name="convert_images_to_xpm">0</bool> <bool name="convert_images_to_xpm">0</bool>
<bool name="inline_images">0</bool> <bool name="inline_images">0</bool>
<bool name="generate_cpp_for_xrc">0</bool> <bool name="generate_cpp_for_xrc">0</bool>
<long name="working_mode">1</long>
<bool name="use_help_text_for_tooltips">1</bool> <bool name="use_help_text_for_tooltips">1</bool>
<bool name="translate_strings">1</bool> <bool name="translate_strings">1</bool>
<bool name="make_unicode_strings">1</bool>
<bool name="extract_strings">0</bool> <bool name="extract_strings">0</bool>
<string name="user_name">"jean-pierre Charras"</string> <string name="user_name">"jean-pierre Charras"</string>
<string name="copyright_string">"License GNU"</string> <string name="copyright_string">"License GNU"</string>
@ -44,12 +45,6 @@
// Licence: // Licence:
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
"</string>
<string name="cpp_function_comment">"
/*!
* %BODY%
*/
"</string> "</string>
<string name="cpp_symbols_file_comment">"///////////////////////////////////////////////////////////////////////////// <string name="cpp_symbols_file_comment">"/////////////////////////////////////////////////////////////////////////////
// Name: %SYMBOLS-FILENAME% // Name: %SYMBOLS-FILENAME%
@ -83,6 +78,14 @@
#include &quot;wx/wx.h&quot; #include &quot;wx/wx.h&quot;
#endif #endif
"</string>
<string name="cpp_function_declaration_comment">" /// %BODY%
"</string>
<string name="cpp_function_implementation_comment">"
/*!
* %BODY%
*/
"</string> "</string>
<string name="resource_file_header">"app_resources.h"</string> <string name="resource_file_header">"app_resources.h"</string>
<string name="resource_file_implementation">"app_resources.cpp"</string> <string name="resource_file_implementation">"app_resources.cpp"</string>
@ -94,6 +97,7 @@
<string name="external_symbol_filenames">""</string> <string name="external_symbol_filenames">""</string>
<string name="configuration">"&lt;None&gt;"</string> <string name="configuration">"&lt;None&gt;"</string>
<string name="source_encoding">"&lt;System&gt;"</string> <string name="source_encoding">"&lt;System&gt;"</string>
<string name="xrc_encoding">"utf-8"</string>
<string name="project_encoding">"&lt;System&gt;"</string> <string name="project_encoding">"&lt;System&gt;"</string>
<string name="resource_archive">""</string> <string name="resource_archive">""</string>
<long name="text_file_type">0</long> <long name="text_file_type">0</long>
@ -104,9 +108,12 @@
<bool name="use_resource_archive">0</bool> <bool name="use_resource_archive">0</bool>
<bool name="use_generated_xrc_cpp">0</bool> <bool name="use_generated_xrc_cpp">0</bool>
<bool name="always_generate_xrc">1</bool> <bool name="always_generate_xrc">1</bool>
<bool name="use_id_name_for_name">0</bool>
<bool name="archive_xrc_files">1</bool> <bool name="archive_xrc_files">1</bool>
<bool name="archive_image_files">1</bool> <bool name="archive_image_files">1</bool>
<bool name="archive_all_image_files">0</bool>
<bool name="xrc_retain_relative_paths">1</bool> <bool name="xrc_retain_relative_paths">1</bool>
<bool name="xrc_generate_id_tags">0</bool>
</header> </header>
<data> <data>
<document> <document>
@ -183,7 +190,7 @@
<long name="is-transient">1</long> <long name="is-transient">1</long>
<long name="owns-file">1</long> <long name="owns-file">1</long>
<long name="title-mode">0</long> <long name="title-mode">0</long>
<long name="locked">0</long> <long name="locked">1</long>
<document> <document>
<string name="title">"Windows"</string> <string name="title">"Windows"</string>
<string name="type">"html-document"</string> <string name="type">"html-document"</string>
@ -207,7 +214,10 @@
<long name="base-id">10000</long> <long name="base-id">10000</long>
<bool name="use-id-prefix">0</bool> <bool name="use-id-prefix">0</bool>
<string name="id-prefix">""</string> <string name="id-prefix">""</string>
<bool name="use-id-suffix">0</bool>
<string name="id-suffix">""</string>
<long name="use-xrc">0</long> <long name="use-xrc">0</long>
<long name="working-mode">0</long>
<string name="proxy-Id name">"ID_DIALOG"</string> <string name="proxy-Id name">"ID_DIALOG"</string>
<long name="proxy-Id value">10000</long> <long name="proxy-Id value">10000</long>
<string name="proxy-Class">"WinEDA_PrintFrame"</string> <string name="proxy-Class">"WinEDA_PrintFrame"</string>
@ -228,10 +238,16 @@
<bool name="proxy-Hidden">0</bool> <bool name="proxy-Hidden">0</bool>
<bool name="proxy-Enabled">1</bool> <bool name="proxy-Enabled">1</bool>
<string name="proxy-Platform">"&lt;Any platform&gt;"</string> <string name="proxy-Platform">"&lt;Any platform&gt;"</string>
<string name="proxy-Data source">""</string>
<string name="proxy-Data class name">""</string>
<string name="proxy-Data class implementation filename">""</string>
<string name="proxy-Data class header filename">""</string>
<string name="proxy-Data class manager window">""</string>
<string name="proxy-Texture">""</string>
<string name="proxy-Texture style">"Tiled"</string>
<bool name="proxy-wxDEFAULT_DIALOG_STYLE">0</bool> <bool name="proxy-wxDEFAULT_DIALOG_STYLE">0</bool>
<bool name="proxy-wxCAPTION">1</bool> <bool name="proxy-wxCAPTION">1</bool>
<bool name="proxy-wxRESIZE_BORDER">0</bool> <bool name="proxy-wxRESIZE_BORDER">0</bool>
<bool name="proxy-wxTHICK_FRAME">0</bool>
<bool name="proxy-wxSYSTEM_MENU">1</bool> <bool name="proxy-wxSYSTEM_MENU">1</bool>
<bool name="proxy-wxSTAY_ON_TOP">0</bool> <bool name="proxy-wxSTAY_ON_TOP">0</bool>
<bool name="proxy-wxDIALOG_NO_PARENT">0</bool> <bool name="proxy-wxDIALOG_NO_PARENT">0</bool>
@ -260,6 +276,7 @@
<long name="proxy-Y">-1</long> <long name="proxy-Y">-1</long>
<long name="proxy-Width">400</long> <long name="proxy-Width">400</long>
<long name="proxy-Height">300</long> <long name="proxy-Height">300</long>
<bool name="proxy-AUI manager">0</bool>
<string name="proxy-Event sources">""</string> <string name="proxy-Event sources">""</string>
<document> <document>
<string name="title">"wxBoxSizer H"</string> <string name="title">"wxBoxSizer H"</string>
@ -368,7 +385,13 @@
<string name="event-handler-0">"wxEVT_COMMAND_RADIOBOX_SELECTED|OnSetPrintScaleSelected"</string> <string name="event-handler-0">"wxEVT_COMMAND_RADIOBOX_SELECTED|OnSetPrintScaleSelected"</string>
<string name="proxy-Id name">"ID_SET_PRINT_SCALE"</string> <string name="proxy-Id name">"ID_SET_PRINT_SCALE"</string>
<long name="proxy-Id value">10004</long> <long name="proxy-Id value">10004</long>
<string name="proxy-Name">""</string>
<string name="proxy-Class">"wxRadioBox"</string> <string name="proxy-Class">"wxRadioBox"</string>
<string name="proxy-Base class">"wxRadioBox"</string>
<bool name="proxy-External implementation">1</bool>
<bool name="proxy-Separate files">0</bool>
<string name="proxy-Implementation filename">""</string>
<string name="proxy-Header filename">""</string>
<string name="proxy-Member variable name">"m_ScaleOption"</string> <string name="proxy-Member variable name">"m_ScaleOption"</string>
<string name="proxy-Label">"Approx. Scale:"</string> <string name="proxy-Label">"Approx. Scale:"</string>
<long name="proxy-Major dimension count">1</long> <long name="proxy-Major dimension count">1</long>
@ -384,6 +407,11 @@
<string name="proxy-Platform">"&lt;Any platform&gt;"</string> <string name="proxy-Platform">"&lt;Any platform&gt;"</string>
<string name="proxy-Data variable">"s_Scale_Select"</string> <string name="proxy-Data variable">"s_Scale_Select"</string>
<string name="proxy-Data validator">"wxGenericValidator(&amp; %VARIABLE%)"</string> <string name="proxy-Data validator">"wxGenericValidator(&amp; %VARIABLE%)"</string>
<string name="proxy-Data source">""</string>
<string name="proxy-Data class name">""</string>
<string name="proxy-Data class implementation filename">""</string>
<string name="proxy-Data class header filename">""</string>
<string name="proxy-Data class manager window">""</string>
<bool name="proxy-wxRA_SPECIFY_ROWS">0</bool> <bool name="proxy-wxRA_SPECIFY_ROWS">0</bool>
<bool name="proxy-wxRA_SPECIFY_COLS">1</bool> <bool name="proxy-wxRA_SPECIFY_COLS">1</bool>
<bool name="proxy-wxWANTS_CHARS">0</bool> <bool name="proxy-wxWANTS_CHARS">0</bool>
@ -421,7 +449,13 @@
<string name="proxy-type">"wbStaticTextProxy"</string> <string name="proxy-type">"wbStaticTextProxy"</string>
<string name="proxy-Id name">"wxID_STATIC"</string> <string name="proxy-Id name">"wxID_STATIC"</string>
<long name="proxy-Id value">5105</long> <long name="proxy-Id value">5105</long>
<string name="proxy-Name">""</string>
<string name="proxy-Class">"wxStaticText"</string> <string name="proxy-Class">"wxStaticText"</string>
<string name="proxy-Base class">"wxStaticText"</string>
<bool name="proxy-External implementation">1</bool>
<bool name="proxy-Separate files">0</bool>
<string name="proxy-Implementation filename">""</string>
<string name="proxy-Header filename">""</string>
<string name="proxy-Member variable name">"m_FineAdjustXscaleTitle"</string> <string name="proxy-Member variable name">"m_FineAdjustXscaleTitle"</string>
<string name="proxy-Label">"X Scale Adjust"</string> <string name="proxy-Label">"X Scale Adjust"</string>
<long name="proxy-Wrapping width">-1</long> <long name="proxy-Wrapping width">-1</long>
@ -435,6 +469,11 @@
<string name="proxy-Platform">"&lt;Any platform&gt;"</string> <string name="proxy-Platform">"&lt;Any platform&gt;"</string>
<string name="proxy-Data variable">""</string> <string name="proxy-Data variable">""</string>
<string name="proxy-Data validator">""</string> <string name="proxy-Data validator">""</string>
<string name="proxy-Data source">""</string>
<string name="proxy-Data class name">""</string>
<string name="proxy-Data class implementation filename">""</string>
<string name="proxy-Data class header filename">""</string>
<string name="proxy-Data class manager window">""</string>
<bool name="proxy-wxALIGN_LEFT">0</bool> <bool name="proxy-wxALIGN_LEFT">0</bool>
<bool name="proxy-wxALIGN_RIGHT">0</bool> <bool name="proxy-wxALIGN_RIGHT">0</bool>
<bool name="proxy-wxALIGN_CENTRE">0</bool> <bool name="proxy-wxALIGN_CENTRE">0</bool>
@ -480,7 +519,13 @@
<string name="proxy-type">"wbTextCtrlProxy"</string> <string name="proxy-type">"wbTextCtrlProxy"</string>
<string name="proxy-Id name">"ID_TEXTCTRL"</string> <string name="proxy-Id name">"ID_TEXTCTRL"</string>
<long name="proxy-Id value">10009</long> <long name="proxy-Id value">10009</long>
<string name="proxy-Name">""</string>
<string name="proxy-Class">"wxTextCtrl"</string> <string name="proxy-Class">"wxTextCtrl"</string>
<string name="proxy-Base class">"wxTextCtrl"</string>
<bool name="proxy-External implementation">1</bool>
<bool name="proxy-Separate files">0</bool>
<string name="proxy-Implementation filename">""</string>
<string name="proxy-Header filename">""</string>
<string name="proxy-Member variable name">"m_FineAdjustXscaleOpt"</string> <string name="proxy-Member variable name">"m_FineAdjustXscaleOpt"</string>
<string name="proxy-Initial value">""</string> <string name="proxy-Initial value">""</string>
<long name="proxy-Max length">0</long> <long name="proxy-Max length">0</long>
@ -494,6 +539,11 @@
<string name="proxy-Platform">"&lt;Any platform&gt;"</string> <string name="proxy-Platform">"&lt;Any platform&gt;"</string>
<string name="proxy-Data variable">""</string> <string name="proxy-Data variable">""</string>
<string name="proxy-Data validator">""</string> <string name="proxy-Data validator">""</string>
<string name="proxy-Data source">""</string>
<string name="proxy-Data class name">""</string>
<string name="proxy-Data class implementation filename">""</string>
<string name="proxy-Data class header filename">""</string>
<string name="proxy-Data class manager window">""</string>
<bool name="proxy-wxTE_MULTILINE">0</bool> <bool name="proxy-wxTE_MULTILINE">0</bool>
<bool name="proxy-wxTE_PROCESS_ENTER">0</bool> <bool name="proxy-wxTE_PROCESS_ENTER">0</bool>
<bool name="proxy-wxTE_PROCESS_TAB">0</bool> <bool name="proxy-wxTE_PROCESS_TAB">0</bool>
@ -507,8 +557,9 @@
<bool name="proxy-wxTE_CENTRE">0</bool> <bool name="proxy-wxTE_CENTRE">0</bool>
<bool name="proxy-wxTE_RIGHT">0</bool> <bool name="proxy-wxTE_RIGHT">0</bool>
<bool name="proxy-wxHSCROLL">0</bool> <bool name="proxy-wxHSCROLL">0</bool>
<bool name="proxy-wxTE_LINEWRAP">0</bool> <bool name="proxy-wxTE_CHARWRAP">0</bool>
<bool name="proxy-wxTE_WORDWRAP">0</bool> <bool name="proxy-wxTE_WORDWRAP">0</bool>
<bool name="proxy-wxTE_CAPITALIZE">0</bool>
<bool name="proxy-wxNO_BORDER">0</bool> <bool name="proxy-wxNO_BORDER">0</bool>
<bool name="proxy-wxSIMPLE_BORDER">0</bool> <bool name="proxy-wxSIMPLE_BORDER">0</bool>
<bool name="proxy-wxDOUBLE_BORDER">0</bool> <bool name="proxy-wxDOUBLE_BORDER">0</bool>
@ -550,7 +601,13 @@
<string name="proxy-type">"wbStaticTextProxy"</string> <string name="proxy-type">"wbStaticTextProxy"</string>
<string name="proxy-Id name">"wxID_STATIC"</string> <string name="proxy-Id name">"wxID_STATIC"</string>
<long name="proxy-Id value">5105</long> <long name="proxy-Id value">5105</long>
<string name="proxy-Name">""</string>
<string name="proxy-Class">"wxStaticText"</string> <string name="proxy-Class">"wxStaticText"</string>
<string name="proxy-Base class">"wxStaticText"</string>
<bool name="proxy-External implementation">1</bool>
<bool name="proxy-Separate files">0</bool>
<string name="proxy-Implementation filename">""</string>
<string name="proxy-Header filename">""</string>
<string name="proxy-Member variable name">"m_FineAdjustYscaleTitle"</string> <string name="proxy-Member variable name">"m_FineAdjustYscaleTitle"</string>
<string name="proxy-Label">"Y Scale Adjust"</string> <string name="proxy-Label">"Y Scale Adjust"</string>
<long name="proxy-Wrapping width">-1</long> <long name="proxy-Wrapping width">-1</long>
@ -564,6 +621,11 @@
<string name="proxy-Platform">"&lt;Any platform&gt;"</string> <string name="proxy-Platform">"&lt;Any platform&gt;"</string>
<string name="proxy-Data variable">""</string> <string name="proxy-Data variable">""</string>
<string name="proxy-Data validator">""</string> <string name="proxy-Data validator">""</string>
<string name="proxy-Data source">""</string>
<string name="proxy-Data class name">""</string>
<string name="proxy-Data class implementation filename">""</string>
<string name="proxy-Data class header filename">""</string>
<string name="proxy-Data class manager window">""</string>
<bool name="proxy-wxALIGN_LEFT">0</bool> <bool name="proxy-wxALIGN_LEFT">0</bool>
<bool name="proxy-wxALIGN_RIGHT">0</bool> <bool name="proxy-wxALIGN_RIGHT">0</bool>
<bool name="proxy-wxALIGN_CENTRE">0</bool> <bool name="proxy-wxALIGN_CENTRE">0</bool>
@ -609,7 +671,13 @@
<string name="proxy-type">"wbTextCtrlProxy"</string> <string name="proxy-type">"wbTextCtrlProxy"</string>
<string name="proxy-Id name">"ID_TEXTCTRL1"</string> <string name="proxy-Id name">"ID_TEXTCTRL1"</string>
<long name="proxy-Id value">10010</long> <long name="proxy-Id value">10010</long>
<string name="proxy-Name">""</string>
<string name="proxy-Class">"wxTextCtrl"</string> <string name="proxy-Class">"wxTextCtrl"</string>
<string name="proxy-Base class">"wxTextCtrl"</string>
<bool name="proxy-External implementation">1</bool>
<bool name="proxy-Separate files">0</bool>
<string name="proxy-Implementation filename">""</string>
<string name="proxy-Header filename">""</string>
<string name="proxy-Member variable name">"m_FineAdjustYscaleOpt"</string> <string name="proxy-Member variable name">"m_FineAdjustYscaleOpt"</string>
<string name="proxy-Initial value">""</string> <string name="proxy-Initial value">""</string>
<long name="proxy-Max length">0</long> <long name="proxy-Max length">0</long>
@ -623,6 +691,11 @@
<string name="proxy-Platform">"&lt;Any platform&gt;"</string> <string name="proxy-Platform">"&lt;Any platform&gt;"</string>
<string name="proxy-Data variable">""</string> <string name="proxy-Data variable">""</string>
<string name="proxy-Data validator">""</string> <string name="proxy-Data validator">""</string>
<string name="proxy-Data source">""</string>
<string name="proxy-Data class name">""</string>
<string name="proxy-Data class implementation filename">""</string>
<string name="proxy-Data class header filename">""</string>
<string name="proxy-Data class manager window">""</string>
<bool name="proxy-wxTE_MULTILINE">0</bool> <bool name="proxy-wxTE_MULTILINE">0</bool>
<bool name="proxy-wxTE_PROCESS_ENTER">0</bool> <bool name="proxy-wxTE_PROCESS_ENTER">0</bool>
<bool name="proxy-wxTE_PROCESS_TAB">0</bool> <bool name="proxy-wxTE_PROCESS_TAB">0</bool>
@ -636,8 +709,9 @@
<bool name="proxy-wxTE_CENTRE">0</bool> <bool name="proxy-wxTE_CENTRE">0</bool>
<bool name="proxy-wxTE_RIGHT">0</bool> <bool name="proxy-wxTE_RIGHT">0</bool>
<bool name="proxy-wxHSCROLL">0</bool> <bool name="proxy-wxHSCROLL">0</bool>
<bool name="proxy-wxTE_LINEWRAP">0</bool> <bool name="proxy-wxTE_CHARWRAP">0</bool>
<bool name="proxy-wxTE_WORDWRAP">0</bool> <bool name="proxy-wxTE_WORDWRAP">0</bool>
<bool name="proxy-wxTE_CAPITALIZE">0</bool>
<bool name="proxy-wxNO_BORDER">0</bool> <bool name="proxy-wxNO_BORDER">0</bool>
<bool name="proxy-wxSIMPLE_BORDER">0</bool> <bool name="proxy-wxSIMPLE_BORDER">0</bool>
<bool name="proxy-wxDOUBLE_BORDER">0</bool> <bool name="proxy-wxDOUBLE_BORDER">0</bool>
@ -665,6 +739,7 @@
<bool name="proxy-wxFIXED_MINSIZE">0</bool> <bool name="proxy-wxFIXED_MINSIZE">0</bool>
<string name="proxy-Custom arguments">""</string> <string name="proxy-Custom arguments">""</string>
<string name="proxy-Custom ctor arguments">""</string> <string name="proxy-Custom ctor arguments">""</string>
<bool name="proxy-wxTE_LINEWRAP">0</bool>
</document> </document>
</document> </document>
<document> <document>
@ -732,13 +807,14 @@
<string name="proxy-Id name">"wxID_ANY"</string> <string name="proxy-Id name">"wxID_ANY"</string>
<long name="proxy-Id value">-1</long> <long name="proxy-Id value">-1</long>
<string name="proxy-Label">"Options:"</string> <string name="proxy-Label">"Options:"</string>
<string name="proxy-Member variable name">""</string>
<string name="proxy-Sizer member variable name">""</string> <string name="proxy-Sizer member variable name">""</string>
<string name="proxy-Foreground colour">""</string> <string name="proxy-Foreground colour">""</string>
<string name="proxy-Font">""</string> <string name="proxy-Font">""</string>
<bool name="proxy-Hidden">0</bool> <bool name="proxy-Hidden">0</bool>
<bool name="proxy-Enabled">1</bool> <bool name="proxy-Enabled">1</bool>
<string name="proxy-Static box class">"wxStaticBox"</string>
<string name="proxy-Orientation">"Vertical"</string> <string name="proxy-Orientation">"Vertical"</string>
<string name="proxy-Member variable name">""</string>
<string name="proxy-AlignH">"Expand"</string> <string name="proxy-AlignH">"Expand"</string>
<string name="proxy-AlignV">"Centre"</string> <string name="proxy-AlignV">"Centre"</string>
<long name="proxy-Stretch factor">0</long> <long name="proxy-Stretch factor">0</long>
@ -763,7 +839,7 @@
<string name="created">"24/1/2007"</string> <string name="created">"24/1/2007"</string>
<string name="proxy-type">"wbBoxSizerProxy"</string> <string name="proxy-type">"wbBoxSizerProxy"</string>
<string name="proxy-Orientation">"Vertical"</string> <string name="proxy-Orientation">"Vertical"</string>
<string name="proxy-Member variable name">"m_ButtPenWidthSizer"</string> <string name="proxy-Member variable name">"m_DialogPenWidthSizer"</string>
<string name="proxy-AlignH">"Expand"</string> <string name="proxy-AlignH">"Expand"</string>
<string name="proxy-AlignV">"Centre"</string> <string name="proxy-AlignV">"Centre"</string>
<long name="proxy-Stretch factor">0</long> <long name="proxy-Stretch factor">0</long>
@ -790,7 +866,13 @@
<string name="proxy-type">"wbCheckBoxProxy"</string> <string name="proxy-type">"wbCheckBoxProxy"</string>
<string name="proxy-Id name">"ID_PRINT_REF"</string> <string name="proxy-Id name">"ID_PRINT_REF"</string>
<long name="proxy-Id value">10006</long> <long name="proxy-Id value">10006</long>
<string name="proxy-Name">""</string>
<string name="proxy-Class">"wxCheckBox"</string> <string name="proxy-Class">"wxCheckBox"</string>
<string name="proxy-Base class">"wxCheckBox"</string>
<bool name="proxy-External implementation">1</bool>
<bool name="proxy-Separate files">0</bool>
<string name="proxy-Implementation filename">""</string>
<string name="proxy-Header filename">""</string>
<string name="proxy-Member variable name">"m_Print_Sheet_Ref"</string> <string name="proxy-Member variable name">"m_Print_Sheet_Ref"</string>
<string name="proxy-Label">"Print Sheet Ref"</string> <string name="proxy-Label">"Print Sheet Ref"</string>
<bool name="proxy-Initial value">0</bool> <bool name="proxy-Initial value">0</bool>
@ -798,6 +880,11 @@
<string name="proxy-Tooltip text">""</string> <string name="proxy-Tooltip text">""</string>
<string name="proxy-Data variable">"s_Print_Sheet_Ref"</string> <string name="proxy-Data variable">"s_Print_Sheet_Ref"</string>
<string name="proxy-Data validator">"wxGenericValidator(&amp; %VARIABLE%)"</string> <string name="proxy-Data validator">"wxGenericValidator(&amp; %VARIABLE%)"</string>
<string name="proxy-Data source">""</string>
<string name="proxy-Data class name">""</string>
<string name="proxy-Data class implementation filename">""</string>
<string name="proxy-Data class header filename">""</string>
<string name="proxy-Data class manager window">""</string>
<string name="proxy-Background colour">""</string> <string name="proxy-Background colour">""</string>
<string name="proxy-Foreground colour">""</string> <string name="proxy-Foreground colour">""</string>
<string name="proxy-Font">""</string> <string name="proxy-Font">""</string>
@ -843,7 +930,13 @@
<string name="proxy-type">"wbCheckBoxProxy"</string> <string name="proxy-type">"wbCheckBoxProxy"</string>
<string name="proxy-Id name">"ID_CHECK_PRINT_MIROR"</string> <string name="proxy-Id name">"ID_CHECK_PRINT_MIROR"</string>
<long name="proxy-Id value">10011</long> <long name="proxy-Id value">10011</long>
<string name="proxy-Name">""</string>
<string name="proxy-Class">"wxCheckBox"</string> <string name="proxy-Class">"wxCheckBox"</string>
<string name="proxy-Base class">"wxCheckBox"</string>
<bool name="proxy-External implementation">1</bool>
<bool name="proxy-Separate files">0</bool>
<string name="proxy-Implementation filename">""</string>
<string name="proxy-Header filename">""</string>
<string name="proxy-Member variable name">"m_Print_Mirror"</string> <string name="proxy-Member variable name">"m_Print_Mirror"</string>
<string name="proxy-Label">"Mirror"</string> <string name="proxy-Label">"Mirror"</string>
<bool name="proxy-Initial value">0</bool> <bool name="proxy-Initial value">0</bool>
@ -851,6 +944,11 @@
<string name="proxy-Tooltip text">""</string> <string name="proxy-Tooltip text">""</string>
<string name="proxy-Data variable">"s_PrintMirror"</string> <string name="proxy-Data variable">"s_PrintMirror"</string>
<string name="proxy-Data validator">"wxGenericValidator(&amp; %VARIABLE%)"</string> <string name="proxy-Data validator">"wxGenericValidator(&amp; %VARIABLE%)"</string>
<string name="proxy-Data source">""</string>
<string name="proxy-Data class name">""</string>
<string name="proxy-Data class implementation filename">""</string>
<string name="proxy-Data class header filename">""</string>
<string name="proxy-Data class manager window">""</string>
<string name="proxy-Background colour">""</string> <string name="proxy-Background colour">""</string>
<string name="proxy-Foreground colour">""</string> <string name="proxy-Foreground colour">""</string>
<string name="proxy-Font">""</string> <string name="proxy-Font">""</string>
@ -898,7 +996,13 @@
<string name="event-handler-0">"wxEVT_COMMAND_RADIOBOX_SELECTED|OnSetBwSelected"</string> <string name="event-handler-0">"wxEVT_COMMAND_RADIOBOX_SELECTED|OnSetBwSelected"</string>
<string name="proxy-Id name">"ID_SET_BW"</string> <string name="proxy-Id name">"ID_SET_BW"</string>
<long name="proxy-Id value">10007</long> <long name="proxy-Id value">10007</long>
<string name="proxy-Name">""</string>
<string name="proxy-Class">"wxRadioBox"</string> <string name="proxy-Class">"wxRadioBox"</string>
<string name="proxy-Base class">"wxRadioBox"</string>
<bool name="proxy-External implementation">1</bool>
<bool name="proxy-Separate files">0</bool>
<string name="proxy-Implementation filename">""</string>
<string name="proxy-Header filename">""</string>
<string name="proxy-Member variable name">"m_ColorOption"</string> <string name="proxy-Member variable name">"m_ColorOption"</string>
<string name="proxy-Label">"Color Print:"</string> <string name="proxy-Label">"Color Print:"</string>
<long name="proxy-Major dimension count">1</long> <long name="proxy-Major dimension count">1</long>
@ -914,6 +1018,11 @@
<string name="proxy-Platform">"&lt;Any platform&gt;"</string> <string name="proxy-Platform">"&lt;Any platform&gt;"</string>
<string name="proxy-Data variable">""</string> <string name="proxy-Data variable">""</string>
<string name="proxy-Data validator">""</string> <string name="proxy-Data validator">""</string>
<string name="proxy-Data source">""</string>
<string name="proxy-Data class name">""</string>
<string name="proxy-Data class implementation filename">""</string>
<string name="proxy-Data class header filename">""</string>
<string name="proxy-Data class manager window">""</string>
<bool name="proxy-wxRA_SPECIFY_ROWS">0</bool> <bool name="proxy-wxRA_SPECIFY_ROWS">0</bool>
<bool name="proxy-wxRA_SPECIFY_COLS">1</bool> <bool name="proxy-wxRA_SPECIFY_COLS">1</bool>
<bool name="proxy-wxWANTS_CHARS">0</bool> <bool name="proxy-wxWANTS_CHARS">0</bool>
@ -951,11 +1060,17 @@
<string name="proxy-type">"wbRadioBoxProxy"</string> <string name="proxy-type">"wbRadioBoxProxy"</string>
<string name="proxy-Id name">"ID_PRINT_ALL_IN_ONE"</string> <string name="proxy-Id name">"ID_PRINT_ALL_IN_ONE"</string>
<long name="proxy-Id value">10008</long> <long name="proxy-Id value">10008</long>
<string name="proxy-Name">""</string>
<string name="proxy-Class">"wxRadioBox"</string> <string name="proxy-Class">"wxRadioBox"</string>
<string name="proxy-Base class">"wxRadioBox"</string>
<bool name="proxy-External implementation">1</bool>
<bool name="proxy-Separate files">0</bool>
<string name="proxy-Implementation filename">""</string>
<string name="proxy-Header filename">""</string>
<string name="proxy-Member variable name">"m_PagesOptionPcb"</string> <string name="proxy-Member variable name">"m_PagesOptionPcb"</string>
<string name="proxy-Label">"Page Print:"</string> <string name="proxy-Label">"Page Print:"</string>
<long name="proxy-Major dimension count">1</long> <long name="proxy-Major dimension count">1</long>
<string name="proxy-Items">"1 page per layer|Single Page"</string> <string name="proxy-Items">"1 Page per Layer|Single Page"</string>
<long name="proxy-Initial value">0</long> <long name="proxy-Initial value">0</long>
<string name="proxy-Help text">""</string> <string name="proxy-Help text">""</string>
<string name="proxy-Tooltip text">""</string> <string name="proxy-Tooltip text">""</string>
@ -967,6 +1082,11 @@
<string name="proxy-Platform">"&lt;Any platform&gt;"</string> <string name="proxy-Platform">"&lt;Any platform&gt;"</string>
<string name="proxy-Data variable">"s_OptionPrintPage"</string> <string name="proxy-Data variable">"s_OptionPrintPage"</string>
<string name="proxy-Data validator">"wxGenericValidator(&amp; %VARIABLE%)"</string> <string name="proxy-Data validator">"wxGenericValidator(&amp; %VARIABLE%)"</string>
<string name="proxy-Data source">""</string>
<string name="proxy-Data class name">""</string>
<string name="proxy-Data class implementation filename">""</string>
<string name="proxy-Data class header filename">""</string>
<string name="proxy-Data class manager window">""</string>
<bool name="proxy-wxRA_SPECIFY_ROWS">0</bool> <bool name="proxy-wxRA_SPECIFY_ROWS">0</bool>
<bool name="proxy-wxRA_SPECIFY_COLS">1</bool> <bool name="proxy-wxRA_SPECIFY_COLS">1</bool>
<bool name="proxy-wxWANTS_CHARS">0</bool> <bool name="proxy-wxWANTS_CHARS">0</bool>
@ -1004,7 +1124,13 @@
<string name="proxy-type">"wbRadioBoxProxy"</string> <string name="proxy-type">"wbRadioBoxProxy"</string>
<string name="proxy-Id name">"ID_PRINT_ALL"</string> <string name="proxy-Id name">"ID_PRINT_ALL"</string>
<long name="proxy-Id value">10008</long> <long name="proxy-Id value">10008</long>
<string name="proxy-Name">""</string>
<string name="proxy-Class">"wxRadioBox"</string> <string name="proxy-Class">"wxRadioBox"</string>
<string name="proxy-Base class">"wxRadioBox"</string>
<bool name="proxy-External implementation">1</bool>
<bool name="proxy-Separate files">0</bool>
<string name="proxy-Implementation filename">""</string>
<string name="proxy-Header filename">""</string>
<string name="proxy-Member variable name">"m_PagesOptionEeschema"</string> <string name="proxy-Member variable name">"m_PagesOptionEeschema"</string>
<string name="proxy-Label">"Page Print:"</string> <string name="proxy-Label">"Page Print:"</string>
<long name="proxy-Major dimension count">1</long> <long name="proxy-Major dimension count">1</long>
@ -1020,6 +1146,11 @@
<string name="proxy-Platform">"&lt;Any platform&gt;"</string> <string name="proxy-Platform">"&lt;Any platform&gt;"</string>
<string name="proxy-Data variable">"s_OptionPrintPage"</string> <string name="proxy-Data variable">"s_OptionPrintPage"</string>
<string name="proxy-Data validator">"wxGenericValidator(&amp; %VARIABLE%)"</string> <string name="proxy-Data validator">"wxGenericValidator(&amp; %VARIABLE%)"</string>
<string name="proxy-Data source">""</string>
<string name="proxy-Data class name">""</string>
<string name="proxy-Data class implementation filename">""</string>
<string name="proxy-Data class header filename">""</string>
<string name="proxy-Data class manager window">""</string>
<bool name="proxy-wxRA_SPECIFY_ROWS">0</bool> <bool name="proxy-wxRA_SPECIFY_ROWS">0</bool>
<bool name="proxy-wxRA_SPECIFY_COLS">1</bool> <bool name="proxy-wxRA_SPECIFY_COLS">1</bool>
<bool name="proxy-wxWANTS_CHARS">0</bool> <bool name="proxy-wxWANTS_CHARS">0</bool>
@ -1136,12 +1267,25 @@
<string name="event-handler-0">"wxEVT_COMMAND_BUTTON_CLICKED|OnPrintSetupClick"</string> <string name="event-handler-0">"wxEVT_COMMAND_BUTTON_CLICKED|OnPrintSetupClick"</string>
<string name="proxy-Id name">"ID_PRINT_SETUP"</string> <string name="proxy-Id name">"ID_PRINT_SETUP"</string>
<long name="proxy-Id value">10001</long> <long name="proxy-Id value">10001</long>
<string name="proxy-Name">""</string>
<string name="proxy-Class">"wxButton"</string> <string name="proxy-Class">"wxButton"</string>
<string name="proxy-Base class">"wxButton"</string>
<bool name="proxy-External implementation">1</bool>
<bool name="proxy-Separate files">0</bool>
<string name="proxy-Implementation filename">""</string>
<string name="proxy-Header filename">""</string>
<string name="proxy-Member variable name">""</string> <string name="proxy-Member variable name">""</string>
<string name="proxy-Label">"Print S&amp;etup"</string> <string name="proxy-Label">"Print S&amp;etup"</string>
<bool name="proxy-Default">0</bool> <bool name="proxy-Default">0</bool>
<string name="proxy-Help text">""</string> <string name="proxy-Help text">""</string>
<string name="proxy-Tooltip text">""</string> <string name="proxy-Tooltip text">""</string>
<string name="proxy-Data variable">""</string>
<string name="proxy-Data validator">""</string>
<string name="proxy-Data source">""</string>
<string name="proxy-Data class name">""</string>
<string name="proxy-Data class implementation filename">""</string>
<string name="proxy-Data class header filename">""</string>
<string name="proxy-Data class manager window">""</string>
<string name="proxy-Background colour">""</string> <string name="proxy-Background colour">""</string>
<string name="proxy-Foreground colour">"797600"</string> <string name="proxy-Foreground colour">"797600"</string>
<string name="proxy-Font">""</string> <string name="proxy-Font">""</string>
@ -1190,12 +1334,25 @@
<string name="event-handler-0">"wxEVT_COMMAND_BUTTON_CLICKED|OnPrintPreviewClick"</string> <string name="event-handler-0">"wxEVT_COMMAND_BUTTON_CLICKED|OnPrintPreviewClick"</string>
<string name="proxy-Id name">"ID_PRINT_PREVIEW"</string> <string name="proxy-Id name">"ID_PRINT_PREVIEW"</string>
<long name="proxy-Id value">10002</long> <long name="proxy-Id value">10002</long>
<string name="proxy-Name">""</string>
<string name="proxy-Class">"wxButton"</string> <string name="proxy-Class">"wxButton"</string>
<string name="proxy-Base class">"wxButton"</string>
<bool name="proxy-External implementation">1</bool>
<bool name="proxy-Separate files">0</bool>
<string name="proxy-Implementation filename">""</string>
<string name="proxy-Header filename">""</string>
<string name="proxy-Member variable name">""</string> <string name="proxy-Member variable name">""</string>
<string name="proxy-Label">"Pre&amp;view"</string> <string name="proxy-Label">"Pre&amp;view"</string>
<bool name="proxy-Default">0</bool> <bool name="proxy-Default">0</bool>
<string name="proxy-Help text">""</string> <string name="proxy-Help text">""</string>
<string name="proxy-Tooltip text">""</string> <string name="proxy-Tooltip text">""</string>
<string name="proxy-Data variable">""</string>
<string name="proxy-Data validator">""</string>
<string name="proxy-Data source">""</string>
<string name="proxy-Data class name">""</string>
<string name="proxy-Data class implementation filename">""</string>
<string name="proxy-Data class header filename">""</string>
<string name="proxy-Data class manager window">""</string>
<string name="proxy-Background colour">""</string> <string name="proxy-Background colour">""</string>
<string name="proxy-Foreground colour">"0000C4"</string> <string name="proxy-Foreground colour">"0000C4"</string>
<string name="proxy-Font">""</string> <string name="proxy-Font">""</string>
@ -1244,12 +1401,25 @@
<string name="event-handler-0">"wxEVT_COMMAND_BUTTON_CLICKED|OnPrintExecuteClick"</string> <string name="event-handler-0">"wxEVT_COMMAND_BUTTON_CLICKED|OnPrintExecuteClick"</string>
<string name="proxy-Id name">"ID_PRINT_EXECUTE"</string> <string name="proxy-Id name">"ID_PRINT_EXECUTE"</string>
<long name="proxy-Id value">10003</long> <long name="proxy-Id value">10003</long>
<string name="proxy-Name">""</string>
<string name="proxy-Class">"wxButton"</string> <string name="proxy-Class">"wxButton"</string>
<string name="proxy-Base class">"wxButton"</string>
<bool name="proxy-External implementation">1</bool>
<bool name="proxy-Separate files">0</bool>
<string name="proxy-Implementation filename">""</string>
<string name="proxy-Header filename">""</string>
<string name="proxy-Member variable name">""</string> <string name="proxy-Member variable name">""</string>
<string name="proxy-Label">"&amp;Print"</string> <string name="proxy-Label">"&amp;Print"</string>
<bool name="proxy-Default">0</bool> <bool name="proxy-Default">0</bool>
<string name="proxy-Help text">""</string> <string name="proxy-Help text">""</string>
<string name="proxy-Tooltip text">""</string> <string name="proxy-Tooltip text">""</string>
<string name="proxy-Data variable">""</string>
<string name="proxy-Data validator">""</string>
<string name="proxy-Data source">""</string>
<string name="proxy-Data class name">""</string>
<string name="proxy-Data class implementation filename">""</string>
<string name="proxy-Data class header filename">""</string>
<string name="proxy-Data class manager window">""</string>
<string name="proxy-Background colour">""</string> <string name="proxy-Background colour">""</string>
<string name="proxy-Foreground colour">"008040"</string> <string name="proxy-Foreground colour">"008040"</string>
<string name="proxy-Font">""</string> <string name="proxy-Font">""</string>
@ -1285,7 +1455,7 @@
<string name="proxy-Custom ctor arguments">""</string> <string name="proxy-Custom ctor arguments">""</string>
</document> </document>
<document> <document>
<string name="title">"wxButton: wxID_CLOSE"</string> <string name="title">"wxButton: wxID_CANCEL"</string>
<string name="type">"dialog-control-document"</string> <string name="type">"dialog-control-document"</string>
<string name="filename">""</string> <string name="filename">""</string>
<string name="icon-name">"dialogcontrol"</string> <string name="icon-name">"dialogcontrol"</string>
@ -1295,15 +1465,28 @@
<long name="locked">0</long> <long name="locked">0</long>
<string name="created">"28/12/2006"</string> <string name="created">"28/12/2006"</string>
<string name="proxy-type">"wbButtonProxy"</string> <string name="proxy-type">"wbButtonProxy"</string>
<string name="event-handler-0">"wxEVT_COMMAND_BUTTON_CLICKED|OnCloseClick"</string> <string name="event-handler-0">"wxEVT_COMMAND_BUTTON_CLICKED|OnCancelClick|||WinEDA_PrintFrame"</string>
<string name="proxy-Id name">"wxID_CLOSE"</string> <string name="proxy-Id name">"wxID_CANCEL"</string>
<long name="proxy-Id value">5001</long> <long name="proxy-Id value">5101</long>
<string name="proxy-Name">""</string>
<string name="proxy-Class">"wxButton"</string> <string name="proxy-Class">"wxButton"</string>
<string name="proxy-Member variable name">""</string> <string name="proxy-Base class">"wxButton"</string>
<bool name="proxy-External implementation">1</bool>
<bool name="proxy-Separate files">0</bool>
<string name="proxy-Implementation filename">""</string>
<string name="proxy-Header filename">""</string>
<string name="proxy-Member variable name">"m_CloseButton"</string>
<string name="proxy-Label">"&amp;Close"</string> <string name="proxy-Label">"&amp;Close"</string>
<bool name="proxy-Default">0</bool> <bool name="proxy-Default">1</bool>
<string name="proxy-Help text">""</string> <string name="proxy-Help text">""</string>
<string name="proxy-Tooltip text">""</string> <string name="proxy-Tooltip text">""</string>
<string name="proxy-Data variable">""</string>
<string name="proxy-Data validator">""</string>
<string name="proxy-Data source">""</string>
<string name="proxy-Data class name">""</string>
<string name="proxy-Data class implementation filename">""</string>
<string name="proxy-Data class header filename">""</string>
<string name="proxy-Data class manager window">""</string>
<string name="proxy-Background colour">""</string> <string name="proxy-Background colour">""</string>
<string name="proxy-Foreground colour">""</string> <string name="proxy-Foreground colour">""</string>
<string name="proxy-Font">""</string> <string name="proxy-Font">""</string>