diff --git a/pcbnew/CMakeLists.txt b/pcbnew/CMakeLists.txt
index e7e0239052..eecfed27e7 100644
--- a/pcbnew/CMakeLists.txt
+++ b/pcbnew/CMakeLists.txt
@@ -41,6 +41,7 @@ set(PCBNEW_SRCS
dialog_edit_module_text_base.cpp
dialog_exchange_modules_base.cpp
dialog_freeroute_exchange.cpp
+ dialog_freeroute_exchange_base.cpp
# dialog_gendrill.cpp
dialog_general_options.cpp
dialog_general_options_BoardEditor_base.cpp
diff --git a/pcbnew/dialog_freeroute_exchange.cpp b/pcbnew/dialog_freeroute_exchange.cpp
index a08412772f..d9b9aac69a 100644
--- a/pcbnew/dialog_freeroute_exchange.cpp
+++ b/pcbnew/dialog_freeroute_exchange.cpp
@@ -1,31 +1,17 @@
/////////////////////////////////////////////////////////////////////////////
-
-// Name: dialog_freeroute_exchange.cpp
-// Purpose:
-// Author: jean-pierre Charras
-// Modified by:
-// Created: 14/03/2008 09:19:27
-// RCS-ID:
-// Copyright: kicad team
-// Licence:
+// Name: dialog_freeroute.cpp
/////////////////////////////////////////////////////////////////////////////
-// Generated by DialogBlocks (unregistered), 14/03/2008 09:19:27
-
-////@begin includes
-////@end includes
-
#include "fctsys.h"
#include "appl_wxstruct.h"
#include "common.h"
#include "gestfich.h"
#include "pcbnew.h"
#include "wxPcbStruct.h"
+#include "../common/dialog_display_info_HTML_base.h"
#include "dialog_freeroute_exchange.h"
-////@begin XPM images
-////@end XPM images
#define FREEROUTE_URL_KEY wxT( "freeroute_url" )
#define FREEROUTE_RUN_KEY wxT( "freeroute_command" )
@@ -38,185 +24,32 @@ void WinEDA_PcbFrame::Access_to_External_Tool( wxCommandEvent& event )
/* Run an external tool (currently, only freeroute)
*/
{
- dialog_freeroute_exchange dialog( this );
+ DIALOG_FREEROUTE dialog( this );
dialog.ShowModal();
}
-/*!
- * dialog_freeroute_exchange type definition
- */
-IMPLEMENT_DYNAMIC_CLASS( dialog_freeroute_exchange, wxDialog )
-
-
-/*!
- * dialog_freeroute_exchange event table definition
- */
-
-BEGIN_EVENT_TABLE( dialog_freeroute_exchange, wxDialog )
-
-////@begin dialog_freeroute_exchange event table entries
- EVT_INIT_DIALOG( dialog_freeroute_exchange::OnInitDialog )
- EVT_CLOSE( dialog_freeroute_exchange::OnCloseWindow )
-
- EVT_BUTTON( ID_BUTTON4, dialog_freeroute_exchange::OnButton4Click )
-
- EVT_BUTTON( ID_BUTTON5, dialog_freeroute_exchange::OnButton5Click )
-
- EVT_BUTTON( ID_BUTTON6, dialog_freeroute_exchange::OnButton6Click )
-
- EVT_BUTTON( ID_BUTTON7, dialog_freeroute_exchange::OnButton7Click )
-
- EVT_TEXT( ID_TEXTCTRL2, dialog_freeroute_exchange::OnTextEditFrUrlUpdated )
-
- EVT_BUTTON( wxID_CANCEL, dialog_freeroute_exchange::OnCancelClick )
-
-////@end dialog_freeroute_exchange event table entries
-
-END_EVENT_TABLE()
-
-
-/*!
- * dialog_freeroute_exchange constructors
- */
-
-dialog_freeroute_exchange::dialog_freeroute_exchange()
+DIALOG_FREEROUTE::DIALOG_FREEROUTE( WinEDA_PcbFrame* parent ):
+ DIALOG_FREEROUTE_BASE( parent )
{
- Init();
-}
-
-
-dialog_freeroute_exchange::dialog_freeroute_exchange( wxWindow* parent,
- wxWindowID id,
- const wxString& caption,
- const wxPoint& pos,
- const wxSize& size,
- long style )
-{
- m_Parent = (WinEDA_PcbFrame*) parent;
- Init();
- Create( parent, id, caption, pos, size, style );
-}
-
-
-/*!
- * dialog_freeroute_exchange creator
- */
-
-bool dialog_freeroute_exchange::Create( wxWindow* parent,
- wxWindowID id,
- const wxString& caption,
- const wxPoint& pos,
- const wxSize& size,
- long style )
-{
-////@begin dialog_freeroute_exchange creation
- SetExtraStyle(wxWS_EX_BLOCK_EVENTS);
- wxDialog::Create( parent, id, caption, pos, size, style );
-
- CreateControls();
- if (GetSizer())
- {
- GetSizer()->SetSizeHints(this);
- }
+ m_Parent = parent;
+ MyInit();
+ Layout();
Centre();
-////@end dialog_freeroute_exchange creation
- return true;
}
-/*!
- * dialog_freeroute_exchange destructor
- */
-
-dialog_freeroute_exchange::~dialog_freeroute_exchange()
-{
-////@begin dialog_freeroute_exchange destruction
-////@end dialog_freeroute_exchange destruction
-}
-
/*!
* Member initialisation
*/
-void dialog_freeroute_exchange::Init()
+void DIALOG_FREEROUTE::MyInit()
{
-////@begin dialog_freeroute_exchange member initialisation
+ SetFocus();
m_FreeRouteSetupChanged = false;
- m_ExportDSN = NULL;
- m_FreerouteURLName = NULL;
-////@end dialog_freeroute_exchange member initialisation
-}
-
-
-/*!
- * Control creation for dialog_freeroute_exchange
- */
-
-void dialog_freeroute_exchange::CreateControls()
-{
-////@begin dialog_freeroute_exchange content construction
- // Generated by DialogBlocks, Tue 25 Mar 2008 11:02:20 CDT (unregistered)
-
- dialog_freeroute_exchange* itemDialog1 = this;
-
- wxBoxSizer* itemBoxSizer2 = new wxBoxSizer(wxVERTICAL);
- itemDialog1->SetSizer(itemBoxSizer2);
-
- wxPanel* itemPanel3 = new wxPanel( itemDialog1, ID_PANEL1, wxDefaultPosition, wxDefaultSize, wxRAISED_BORDER|wxTAB_TRAVERSAL );
- itemBoxSizer2->Add(itemPanel3, 1, wxGROW|wxALL, 5);
-
- wxBoxSizer* itemBoxSizer4 = new wxBoxSizer(wxHORIZONTAL);
- itemPanel3->SetSizer(itemBoxSizer4);
-
- wxStaticBox* itemStaticBoxSizer5Static = new wxStaticBox(itemPanel3, wxID_ANY, _T(""));
- wxStaticBoxSizer* itemStaticBoxSizer5 = new wxStaticBoxSizer(itemStaticBoxSizer5Static, wxVERTICAL);
- itemBoxSizer4->Add(itemStaticBoxSizer5, 0, wxGROW|wxALL, 5);
-
- m_ExportDSN = new wxButton( itemPanel3, ID_BUTTON4, _("Export a Specctra Design (*.dsn) File"), wxDefaultPosition, wxDefaultSize, 0 );
- if (dialog_freeroute_exchange::ShowToolTips())
- m_ExportDSN->SetToolTip(_("Export a Specctra DSN file (to FreeRouter)"));
- itemStaticBoxSizer5->Add(m_ExportDSN, 0, wxGROW|wxALL, 5);
-
- wxButton* itemButton7 = new wxButton( itemPanel3, ID_BUTTON5, _("Launch FreeRouter via Java Web Start"), wxDefaultPosition, wxDefaultSize, 0 );
- if (dialog_freeroute_exchange::ShowToolTips())
- itemButton7->SetToolTip(_("Use Java Web Start function to run FreeRouter via Internet (or your Browser if not found)"));
- itemStaticBoxSizer5->Add(itemButton7, 0, wxGROW|wxALL, 5);
-
- wxButton* itemButton8 = new wxButton( itemPanel3, ID_BUTTON6, _("Back Import the Specctra Session (*.ses) File"), wxDefaultPosition, wxDefaultSize, 0 );
- if (dialog_freeroute_exchange::ShowToolTips())
- itemButton8->SetToolTip(_("Merge a session file created by FreeRouter with the current board."));
- itemStaticBoxSizer5->Add(itemButton8, 0, wxGROW|wxALL, 5);
-
- wxStaticBox* itemStaticBoxSizer9Static = new wxStaticBox(itemPanel3, wxID_ANY, _T(""));
- wxStaticBoxSizer* itemStaticBoxSizer9 = new wxStaticBoxSizer(itemStaticBoxSizer9Static, wxVERTICAL);
- itemBoxSizer4->Add(itemStaticBoxSizer9, 1, wxGROW|wxALL, 5);
-
- wxButton* itemButton10 = new wxButton( itemPanel3, ID_BUTTON7, _("Visit FreeRouting.net website"), wxDefaultPosition, wxDefaultSize, 0 );
- if (dialog_freeroute_exchange::ShowToolTips())
- itemButton10->SetToolTip(_("Launch your browser and go to the FreeRouting.net website"));
- itemStaticBoxSizer9->Add(itemButton10, 0, wxGROW|wxALL, 5);
-
- wxStaticText* itemStaticText11 = new wxStaticText( itemPanel3, wxID_STATIC, _("FreeRouting.net URL"), wxDefaultPosition, wxDefaultSize, 0 );
- itemStaticBoxSizer9->Add(itemStaticText11, 0, wxGROW|wxLEFT|wxRIGHT|wxTOP, 5);
-
- m_FreerouteURLName = new wxTextCtrl( itemPanel3, ID_TEXTCTRL2, _T(""), wxDefaultPosition, wxDefaultSize, 0 );
- if (dialog_freeroute_exchange::ShowToolTips())
- m_FreerouteURLName->SetToolTip(_("The URL of the FreeRouting.net website"));
- itemStaticBoxSizer9->Add(m_FreerouteURLName, 0, wxGROW|wxLEFT|wxRIGHT|wxBOTTOM, 5);
-
- wxStdDialogButtonSizer* itemStdDialogButtonSizer13 = new wxStdDialogButtonSizer;
-
- itemBoxSizer2->Add(itemStdDialogButtonSizer13, 0, wxGROW|wxALL, 5);
- wxButton* itemButton14 = new wxButton( itemDialog1, wxID_CANCEL, _("&Close"), wxDefaultPosition, wxDefaultSize, 0 );
- itemStdDialogButtonSizer13->AddButton(itemButton14);
-
- itemStdDialogButtonSizer13->Realize();
-
-////@end dialog_freeroute_exchange content construction
wxString msg;
wxGetApp().m_EDA_Config->Read( FREEROUTE_URL_KEY, &msg );
@@ -226,50 +59,24 @@ void dialog_freeroute_exchange::CreateControls()
m_FreerouteURLName->SetValue( msg );
}
-
-/*!
- * Should we show tooltips?
- */
-
-bool dialog_freeroute_exchange::ShowToolTips()
+const char * s_FreeRouteHelpInfo =
+#include "dialog_freeroute_exchange_help_html.h"
+;
+void DIALOG_FREEROUTE::OnHelpButtonClick( wxCommandEvent& event )
{
- return true;
+ DIALOG_DISPLAY_HTML_TEXT_BASE help_Dlg( this, wxID_ANY,
+ _("Freeroute Help"),wxDefaultPosition, wxSize( 650,550 ) );
+
+ wxString msg = CONV_FROM_UTF8(s_FreeRouteHelpInfo);
+ help_Dlg.m_htmlWindow->AppendToPage( msg );
+ help_Dlg.ShowModal();
}
-
-/*!
- * Get bitmap resources
- */
-
-wxBitmap dialog_freeroute_exchange::GetBitmapResource( const wxString& name )
-{
- // Bitmap retrieval
-////@begin dialog_freeroute_exchange bitmap retrieval
- wxUnusedVar(name);
- return wxNullBitmap;
-////@end dialog_freeroute_exchange bitmap retrieval
-}
-
-
-/*!
- * Get icon resources
- */
-
-wxIcon dialog_freeroute_exchange::GetIconResource( const wxString& name )
-{
- // Icon retrieval
-////@begin dialog_freeroute_exchange icon retrieval
- wxUnusedVar(name);
- return wxNullIcon;
-////@end dialog_freeroute_exchange icon retrieval
-}
-
-
/*!
* wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_CREATE_EXPORT_DSN_FILE
*/
-void dialog_freeroute_exchange::OnButton4Click( wxCommandEvent& event )
+void DIALOG_FREEROUTE::OnExportButtonClick( wxCommandEvent& event )
{
m_Parent->ExportToSpecctra( event );
}
@@ -279,7 +86,7 @@ void dialog_freeroute_exchange::OnButton4Click( wxCommandEvent& event )
* wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_IMPORT_FREEROUTE_DSN_FILE
*/
-void dialog_freeroute_exchange::OnButton6Click( wxCommandEvent& event )
+void DIALOG_FREEROUTE::OnImportButtonClick( wxCommandEvent& event )
{
m_Parent->ImportSpecctraSession( event );
}
@@ -289,7 +96,7 @@ void dialog_freeroute_exchange::OnButton6Click( wxCommandEvent& event )
* wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_RUN_FREEROUTE
*/
-void dialog_freeroute_exchange::OnButton5Click( wxCommandEvent& event )
+void DIALOG_FREEROUTE::OnLaunchButtonClick( wxCommandEvent& event )
{
wxString FullFileName = FindKicadFile( wxT( "freeroute.jnlp" ) );
wxString command;
@@ -313,7 +120,7 @@ void dialog_freeroute_exchange::OnButton5Click( wxCommandEvent& event )
* wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_BUTTON
*/
-void dialog_freeroute_exchange::OnButton7Click( wxCommandEvent& event )
+void DIALOG_FREEROUTE::OnVisitButtonClick( wxCommandEvent& event )
{
wxString command = m_FreerouteURLName->GetValue();
@@ -325,21 +132,15 @@ void dialog_freeroute_exchange::OnButton7Click( wxCommandEvent& event )
* wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_CLOSE
*/
-void dialog_freeroute_exchange::OnCancelClick( wxCommandEvent& event )
+void DIALOG_FREEROUTE::OnCancelButtonClick( wxCommandEvent& event )
{
D(printf("OnCancelClick\n");)
Close( true );
}
-/*!
- * wxEVT_CLOSE_WINDOW event handler for ID_DIALOG_FREEROUTE_EXCHANGE
- */
-
-void dialog_freeroute_exchange::OnCloseWindow( wxCloseEvent& event )
+void DIALOG_FREEROUTE::OnOKButtonClick( wxCommandEvent& event )
{
- D(printf("OnCloseWindow\n");)
-
if( m_FreeRouteSetupChanged ) // Save new config
{
wxGetApp().m_EDA_Config->Write( FREEROUTE_URL_KEY,
@@ -354,25 +155,9 @@ void dialog_freeroute_exchange::OnCloseWindow( wxCloseEvent& event )
* wxEVT_COMMAND_TEXT_UPDATED event handler for ID_TEXT_EDIT_FR_URL
*/
-void dialog_freeroute_exchange::OnTextEditFrUrlUpdated( wxCommandEvent& event )
+void DIALOG_FREEROUTE::OnTextEditFrUrlUpdated( wxCommandEvent& event )
{
m_FreeRouteSetupChanged = true;
}
-
-/*!
- * wxEVT_INIT_DIALOG event handler for ID_DIALOG_FREEROUTE_EXCHANGE
- */
-
-void dialog_freeroute_exchange::OnInitDialog( wxInitDialogEvent& event )
-{
- m_ExportDSN->SetFocus();
-
-
-////@begin wxEVT_INIT_DIALOG event handler for ID_DIALOG_FREEROUTE_EXCHANGE in dialog_freeroute_exchange.
- // Before editing this code, remove the block markers.
- event.Skip();
-////@end wxEVT_INIT_DIALOG event handler for ID_DIALOG_FREEROUTE_EXCHANGE in dialog_freeroute_exchange.
-}
-
diff --git a/pcbnew/dialog_freeroute_exchange.h b/pcbnew/dialog_freeroute_exchange.h
index 221c311771..384b8653ea 100644
--- a/pcbnew/dialog_freeroute_exchange.h
+++ b/pcbnew/dialog_freeroute_exchange.h
@@ -1,13 +1,5 @@
/////////////////////////////////////////////////////////////////////////////
-
// Name: dialog_freeroute_exchange.h
-// Purpose:
-// Author: jean-pierre Charras
-// Modified by:
-// Created: 14/03/2008 09:19:27
-// RCS-ID:
-// Copyright: kicad team
-// Licence:
/////////////////////////////////////////////////////////////////////////////
// Generated by DialogBlocks (unregistered), 14/03/2008 09:19:27
@@ -15,118 +7,34 @@
#ifndef _DIALOG_FREEROUTE_EXCHANGE_H_
#define _DIALOG_FREEROUTE_EXCHANGE_H_
+#include "dialog_freeroute_exchange_base.h"
-/*!
- * Includes
- */
-
-////@begin includes
-////@end includes
-
-/*!
- * Forward declarations
- */
-
-////@begin forward declarations
-////@end forward declarations
-
-/*!
- * Control identifiers
- */
-
-////@begin control identifiers
-#define ID_DIALOG_FREEROUTE_EXCHANGE 10000
-#define ID_PANEL1 10001
-#define ID_BUTTON4 10002
-#define ID_BUTTON5 10003
-#define ID_BUTTON6 10004
-#define ID_BUTTON7 10005
-#define ID_TEXTCTRL2 10006
-#define SYMBOL_DIALOG_FREEROUTE_EXCHANGE_STYLE wxCAPTION|wxRESIZE_BORDER|wxCLOSE_BOX|wxTAB_TRAVERSAL
-#define SYMBOL_DIALOG_FREEROUTE_EXCHANGE_TITLE _("dialog_freeroute_exchange")
-#define SYMBOL_DIALOG_FREEROUTE_EXCHANGE_IDNAME ID_DIALOG_FREEROUTE_EXCHANGE
-#define SYMBOL_DIALOG_FREEROUTE_EXCHANGE_SIZE wxSize(400, 300)
-#define SYMBOL_DIALOG_FREEROUTE_EXCHANGE_POSITION wxDefaultPosition
-////@end control identifiers
-
-
-/*!
- * dialog_freeroute_exchange class declaration
- */
-
-class dialog_freeroute_exchange: public wxDialog
+///////////////////////////////////////////////////////////////////////////////
+// Class DIALOG_FREEROUTE derived from wxFormBuilder class DIALOG_FREEROUTE_BASE
+///////////////////////////////////////////////////////////////////////////////
+class DIALOG_FREEROUTE : public DIALOG_FREEROUTE_BASE
{
- DECLARE_DYNAMIC_CLASS( dialog_freeroute_exchange )
- DECLARE_EVENT_TABLE()
+private:
+ WinEDA_PcbFrame* m_Parent;
+ bool m_FreeRouteSetupChanged;
+
+private:
+ // Virtual event handlers
+ void OnOKButtonClick( wxCommandEvent& event );
+ void OnExportButtonClick( wxCommandEvent& event );
+ void OnLaunchButtonClick( wxCommandEvent& event );
+ void OnImportButtonClick( wxCommandEvent& event );
+ void OnVisitButtonClick( wxCommandEvent& event );
+ void OnHelpButtonClick( wxCommandEvent& event );
+ void OnCancelButtonClick( wxCommandEvent& event );
+ void OnTextEditFrUrlUpdated( wxCommandEvent& event );
+ void MyInit ( );
+
public:
- /// Constructors
- dialog_freeroute_exchange();
- dialog_freeroute_exchange( wxWindow* parent, wxWindowID id = SYMBOL_DIALOG_FREEROUTE_EXCHANGE_IDNAME, const wxString& caption = SYMBOL_DIALOG_FREEROUTE_EXCHANGE_TITLE, const wxPoint& pos = SYMBOL_DIALOG_FREEROUTE_EXCHANGE_POSITION, const wxSize& size = SYMBOL_DIALOG_FREEROUTE_EXCHANGE_SIZE, long style = SYMBOL_DIALOG_FREEROUTE_EXCHANGE_STYLE );
+ DIALOG_FREEROUTE( WinEDA_PcbFrame* parent );
+ ~DIALOG_FREEROUTE() {};
- /// Creation
- bool Create( wxWindow* parent, wxWindowID id = SYMBOL_DIALOG_FREEROUTE_EXCHANGE_IDNAME, const wxString& caption = SYMBOL_DIALOG_FREEROUTE_EXCHANGE_TITLE, const wxPoint& pos = SYMBOL_DIALOG_FREEROUTE_EXCHANGE_POSITION, const wxSize& size = SYMBOL_DIALOG_FREEROUTE_EXCHANGE_SIZE, long style = SYMBOL_DIALOG_FREEROUTE_EXCHANGE_STYLE );
-
- /// Destructor
- ~dialog_freeroute_exchange();
-
- /// Initialises member variables
- void Init();
-
- /// Creates the controls and sizers
- void CreateControls();
-
-////@begin dialog_freeroute_exchange event handler declarations
-
- /// wxEVT_INIT_DIALOG event handler for ID_DIALOG_FREEROUTE_EXCHANGE
- void OnInitDialog( wxInitDialogEvent& event );
-
- /// wxEVT_CLOSE_WINDOW event handler for ID_DIALOG_FREEROUTE_EXCHANGE
- void OnCloseWindow( wxCloseEvent& event );
-
- /// wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_BUTTON4
- void OnButton4Click( wxCommandEvent& event );
-
- /// wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_BUTTON5
- void OnButton5Click( wxCommandEvent& event );
-
- /// wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_BUTTON6
- void OnButton6Click( wxCommandEvent& event );
-
- /// wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_BUTTON7
- void OnButton7Click( wxCommandEvent& event );
-
- /// wxEVT_COMMAND_TEXT_UPDATED event handler for ID_TEXTCTRL2
- void OnTextEditFrUrlUpdated( wxCommandEvent& event );
-
- /// wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_CANCEL
- void OnCancelClick( wxCommandEvent& event );
-
-////@end dialog_freeroute_exchange event handler declarations
-
-////@begin dialog_freeroute_exchange member function declarations
-
- bool GetFreeRouteSetupChanged() const { return m_FreeRouteSetupChanged ; }
- void SetFreeRouteSetupChanged(bool value) { m_FreeRouteSetupChanged = value ; }
-
- /// Retrieves bitmap resources
- wxBitmap GetBitmapResource( const wxString& name );
-
- /// Retrieves icon resources
- wxIcon GetIconResource( const wxString& name );
-////@end dialog_freeroute_exchange member function declarations
-
- /// Should we show tooltips?
- static bool ShowToolTips();
-
-////@begin dialog_freeroute_exchange member variables
- wxButton* m_ExportDSN;
- wxTextCtrl* m_FreerouteURLName;
-private:
- bool m_FreeRouteSetupChanged; // Flag set to true if Freeroute config changed
-////@end dialog_freeroute_exchange member variables
-
- WinEDA_PcbFrame* m_Parent;
};
#endif
diff --git a/pcbnew/dialog_freeroute_exchange.pjd b/pcbnew/dialog_freeroute_exchange.pjd
deleted file mode 100644
index a7eb093b2e..0000000000
--- a/pcbnew/dialog_freeroute_exchange.pjd
+++ /dev/null
@@ -1,1025 +0,0 @@
-
-
-
- 0
- ""
- ""
- ""
- ""
- ""
- 0
- 0
- 0
- 1
- 1
- 1
- 1
- 0
- "jean-pierre Charras"
- "kicad team"
- ""
- 0
- 0
- "<All platforms>"
- "2.8.3"
- "/////////////////////////////////////////////////////////////////////////////
-// Name: %HEADER-FILENAME%
-// Purpose:
-// Author: %AUTHOR%
-// Modified by:
-// Created: %DATE%
-// RCS-ID:
-// Copyright: %COPYRIGHT%
-// Licence:
-/////////////////////////////////////////////////////////////////////////////
-
-"
- "/////////////////////////////////////////////////////////////////////////////
-// Name: %SOURCE-FILENAME%
-// Purpose:
-// Author: %AUTHOR%
-// Modified by:
-// Created: %DATE%
-// RCS-ID:
-// Copyright: %COPYRIGHT%
-// Licence:
-/////////////////////////////////////////////////////////////////////////////
-
-"
- "/////////////////////////////////////////////////////////////////////////////
-// Name: %SYMBOLS-FILENAME%
-// Purpose: Symbols file
-// Author: %AUTHOR%
-// Modified by:
-// Created: %DATE%
-// RCS-ID:
-// Copyright: %COPYRIGHT%
-// Licence:
-/////////////////////////////////////////////////////////////////////////////
-
-"
- ""
- "// For compilers that support precompilation, includes "wx/wx.h".
-#include "wx/wxprec.h"
-
-#ifdef __BORLANDC__
-#pragma hdrstop
-#endif
-
-#ifndef WX_PRECOMP
-#include "wx/wx.h"
-#endif
-
-"
- " /// %BODY%
-"
- "
-/*!
- * %BODY%
- */
-
-"
- "app_resources.h"
- "app_resources.cpp"
- "AppResources"
- "app.h"
- "app.cpp"
- "Application"
- 0
- ""
- "<None>"
- "iso-8859-1"
- "utf-8"
- "utf-8"
- ""
- 0
- 0
- 4
- " "
- ""
- 0
- 0
- 1
- 0
- 1
- 1
- 0
- 1
- 0
-
-
-
- ""
- "data-document"
- ""
- ""
- 0
- 1
- 0
- 0
-
- "Configurations"
- "config-data-document"
- ""
- ""
- 0
- 1
- 0
- 0
- ""
- 1
- 0
- ""
- "Debug"
- "ANSI"
- "Static"
- "Modular"
- "GUI"
- "wxMSW"
- "Dynamic"
- "Yes"
- "No"
- "No"
- "%WXVERSION%"
- "%EXECUTABLE%"
- ""
- "%AUTO%"
- "%AUTO%"
- "%AUTO%"
- "%AUTO%"
- "%AUTO%"
- "%AUTO%"
- "%AUTO%"
- "%AUTO%"
- "%AUTO%"
- "%AUTO%"
- "%AUTO%"
- "%AUTO%"
- "%AUTO%"
- "%AUTO%"
- "%AUTO%"
- "%AUTO%"
- "%AUTO%"
- "%AUTO%"
- "%AUTO%"
- "%AUTO%"
- "%AUTO%"
- "%AUTO%"
- "%AUTO%"
- "%AUTO%"
- "%AUTO%"
- "%AUTO%"
- "%AUTO%"
- 0
- 1
-
-
-
-
-
-
- "Projects"
- "root-document"
- ""
- "project"
- 1
- 1
- 0
- 1
-
- "Windows"
- "html-document"
- ""
- "dialogsfolder"
- 1
- 1
- 0
- 1
-
- "dialog_freeroute_exchange"
- "dialog-document"
- ""
- "dialog"
- 0
- 1
- 0
- 0
- "14/3/2008"
- "wbDialogProxy"
- 10000
- 0
- ""
- 0
- ""
- 0
- 0
- "m_FreeRouteSetupChanged|bool|FreeRouteSetupChanged|false|2|0|Flag set to true if Freeroute config changed"
- "wxEVT_INIT_DIALOG|OnInitDialog|NONE||dialog_freeroute_exchange"
- "wxEVT_CLOSE_WINDOW|OnCloseWindow|NONE||"
- "ID_DIALOG_FREEROUTE_EXCHANGE"
- 10000
- "dialog_freeroute_exchange"
- "wxDialog"
- "wxDialog"
- "dialog_freeroute_exchange.cpp"
- "dialog_freeroute_exchange.h"
- ""
- "dialog_freeroute_exchange"
- 1
- ""
- 0
- ""
- ""
- ""
- ""
- ""
- 0
- 1
- "<Any platform>"
- ""
- ""
- ""
- ""
- ""
- ""
- "Tiled"
- 0
- 1
- 1
- 0
- 0
- 0
- 1
- 0
- 0
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 1
- 0
- 1
- 0
- ""
- 0
- 1
- -1
- -1
- 400
- 300
- 0
- ""
-
- "wxBoxSizer V"
- "dialog-control-document"
- ""
- "sizer"
- 0
- 1
- 0
- 0
- "19/3/2008"
- "wbBoxSizerProxy"
- "Vertical"
- ""
- 0
- 0
- 0
- "<Any platform>"
-
- "wxPanel: ID_PANEL1"
- "dialog-control-document"
- ""
- "panel"
- 0
- 1
- 0
- 0
- "19/3/2008"
- "wbPanelProxy"
- "ID_PANEL1"
- 10001
- ""
- "wxPanel"
- "wxPanel"
- 1
- 0
- ""
- ""
- ""
- ""
- ""
- ""
- ""
- ""
- 0
- 1
- "<Any platform>"
- ""
- ""
- ""
- ""
- ""
- ""
- "Tiled"
- 0
- 0
- 0
- 0
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 1
- 0
- 0
- 0
- ""
- 0
- -1
- -1
- -1
- -1
- "Expand"
- "Centre"
- 1
- 5
- 1
- 1
- 1
- 1
- 0
- 0
- 0
- ""
- ""
- ""
- 0
-
- "wxBoxSizer H"
- "dialog-control-document"
- ""
- "sizer"
- 0
- 1
- 0
- 0
- "19/3/2008"
- "wbBoxSizerProxy"
- "Horizontal"
- ""
- "Centre"
- "Centre"
- 1
- 5
- 1
- 1
- 1
- 1
- 0
- 0
- 0
- "<Any platform>"
-
- "wxStaticBoxSizer V"
- "dialog-control-document"
- ""
- "sizer"
- 0
- 1
- 0
- 0
- "19/3/2008"
- "wbStaticBoxSizerProxy"
- "wxID_ANY"
- -1
- ""
- ""
- ""
- ""
- ""
- 0
- 1
- "wxStaticBox"
- "Vertical"
- "Centre"
- "Expand"
- 0
- 5
- 1
- 1
- 1
- 1
- 0
- 0
- 0
- "<Any platform>"
-
- "wxButton: ID_BUTTON4"
- "dialog-control-document"
- ""
- "dialogcontrol"
- 0
- 1
- 0
- 0
- "19/3/2008"
- "wbButtonProxy"
- "wxEVT_COMMAND_BUTTON_CLICKED|OnButton4Click|NONE||dialog_freeroute_exchange"
- "ID_BUTTON4"
- 10002
- ""
- "wxButton"
- "wxButton"
- 1
- 0
- ""
- ""
- "m_ExportDSN"
- "Export a Specctra Design (*.dsn) File"
- 0
- ""
- "Export a Specctra DSN file (to FreeRouter)"
- ""
- ""
- ""
- ""
- ""
- ""
- ""
- ""
- ""
- ""
- 0
- 1
- "<Any platform>"
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- ""
- -1
- -1
- -1
- -1
- "Expand"
- "Centre"
- 0
- 5
- 1
- 1
- 1
- 1
- 0
- 0
- 0
- ""
- ""
-
-
- "wxButton: ID_BUTTON5"
- "dialog-control-document"
- ""
- "dialogcontrol"
- 0
- 1
- 0
- 0
- "19/3/2008"
- "wbButtonProxy"
- "wxEVT_COMMAND_BUTTON_CLICKED|OnButton5Click|NONE||dialog_freeroute_exchange"
- "ID_BUTTON5"
- 10003
- ""
- "wxButton"
- "wxButton"
- 1
- 0
- ""
- ""
- ""
- "Launch FreeRouter via Java Web Start"
- 0
- ""
- "Use Java Web Start function to run FreeRouter via Internet (or your Browser if not found)"
- ""
- ""
- ""
- ""
- ""
- ""
- ""
- ""
- ""
- ""
- 0
- 1
- "<Any platform>"
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- ""
- -1
- -1
- -1
- -1
- "Expand"
- "Centre"
- 0
- 5
- 1
- 1
- 1
- 1
- 0
- 0
- 0
- ""
- ""
-
-
- "wxButton: ID_BUTTON6"
- "dialog-control-document"
- ""
- "dialogcontrol"
- 0
- 1
- 0
- 0
- "19/3/2008"
- "wbButtonProxy"
- "wxEVT_COMMAND_BUTTON_CLICKED|OnButton6Click|NONE||dialog_freeroute_exchange"
- "ID_BUTTON6"
- 10004
- ""
- "wxButton"
- "wxButton"
- 1
- 0
- ""
- ""
- ""
- "Back Import the Specctra Session (*.ses) File"
- 0
- ""
- "Merge a session file created by FreeRouter with the current board."
- ""
- ""
- ""
- ""
- ""
- ""
- ""
- ""
- ""
- ""
- 0
- 1
- "<Any platform>"
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- ""
- -1
- -1
- -1
- -1
- "Expand"
- "Centre"
- 0
- 5
- 1
- 1
- 1
- 1
- 0
- 0
- 0
- ""
- ""
-
-
-
- "wxStaticBoxSizer V"
- "dialog-control-document"
- ""
- "sizer"
- 0
- 1
- 0
- 0
- "19/3/2008"
- "wbStaticBoxSizerProxy"
- "wxID_ANY"
- -1
- ""
- ""
- ""
- ""
- ""
- 0
- 1
- "wxStaticBox"
- "Vertical"
- "Centre"
- "Expand"
- 1
- 5
- 1
- 1
- 1
- 1
- 0
- 0
- 0
- "<Any platform>"
-
- "wxButton: ID_BUTTON7"
- "dialog-control-document"
- ""
- "dialogcontrol"
- 0
- 1
- 0
- 0
- "19/3/2008"
- "wbButtonProxy"
- "wxEVT_COMMAND_BUTTON_CLICKED|OnButton7Click|NONE||dialog_freeroute_exchange"
- "ID_BUTTON7"
- 10005
- ""
- "wxButton"
- "wxButton"
- 1
- 0
- ""
- ""
- ""
- "Visit the FreeRouting.net Website with your Browser"
- 0
- ""
- "Launch your browser and go to the FreeRouting.net website"
- ""
- ""
- ""
- ""
- ""
- ""
- ""
- ""
- ""
- ""
- 0
- 1
- "<Any platform>"
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- ""
- -1
- -1
- -1
- -1
- "Expand"
- "Centre"
- 0
- 5
- 1
- 1
- 1
- 1
- 0
- 0
- 0
- ""
- ""
-
-
- "wxStaticText: wxID_STATIC"
- "dialog-control-document"
- ""
- "statictext"
- 0
- 1
- 0
- 0
- "19/3/2008"
- "wbStaticTextProxy"
- "wxID_STATIC"
- 5105
- ""
- "wxStaticText"
- "wxStaticText"
- 1
- 0
- ""
- ""
- ""
- "FreeRouting.net URL"
- -1
- ""
- ""
- ""
- ""
- ""
- 0
- 1
- "<Any platform>"
- ""
- ""
- ""
- ""
- ""
- ""
- ""
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- ""
- -1
- -1
- -1
- -1
- "Expand"
- "Centre"
- 0
- 5
- 1
- 1
- 1
- 0
- 0
- 0
- 0
- ""
- ""
-
-
- "wxTextCtrl: ID_TEXTCTRL2"
- "dialog-control-document"
- ""
- "textctrl"
- 0
- 1
- 0
- 0
- "19/3/2008"
- "wbTextCtrlProxy"
- "wxEVT_COMMAND_TEXT_UPDATED|OnTextEditFrUrlUpdated|NONE||dialog_freeroute_exchange"
- "ID_TEXTCTRL2"
- 10006
- ""
- "wxTextCtrl"
- "wxTextCtrl"
- 1
- 0
- ""
- ""
- "m_FreerouteURLName"
- ""
- 0
- ""
- "The URL of the FreeRouting.net website"
- ""
- ""
- ""
- 0
- 1
- "<Any platform>"
- ""
- ""
- ""
- ""
- ""
- ""
- ""
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- ""
- -1
- -1
- -1
- -1
- "Expand"
- "Centre"
- 0
- 5
- 1
- 1
- 0
- 1
- 0
- 0
- 0
- ""
- ""
-
-
-
-
-
- "wxStdDialogButtonSizer"
- "dialog-control-document"
- ""
- "sizer"
- 0
- 1
- 0
- 0
- "19/3/2008"
- "wbStdDialogButtonSizerProxy"
- 0
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- ""
- "Expand"
- "Centre"
- 0
- 5
- 1
- 1
- 1
- 1
- 0
- 0
- 0
- "<Any platform>"
-
- "wxButton: wxID_CANCEL"
- "dialog-control-document"
- ""
- "dialogcontrol"
- 0
- 1
- 0
- 1
- "19/3/2008"
- "wbButtonProxy"
- "wxEVT_COMMAND_BUTTON_CLICKED|OnCancelClick|NONE||dialog_freeroute_exchange"
- "wxID_CANCEL"
- 5101
- ""
- "wxButton"
- "wxButton"
- 1
- 0
- ""
- ""
- ""
- "&Close"
- 0
- ""
- ""
- ""
- ""
- ""
- ""
- ""
- ""
- ""
- ""
- ""
- ""
- 0
- 1
- "<Any platform>"
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- ""
- -1
- -1
- -1
- -1
- "Expand"
- "Centre"
- 0
- 5
- 1
- 1
- 1
- 1
- 0
- 0
- 0
- ""
- ""
-
-
-
-
-
-
- "Sources"
- "html-document"
- ""
- "sourcesfolder"
- 1
- 1
- 0
- 1
-
- "dialog_freeroute_exchange.rc"
- "source-editor-document"
- "dialog_freeroute_exchange.rc"
- "source-editor"
- 0
- 0
- 1
- 0
- "14/3/2008"
- ""
-
-
-
- "Images"
- "html-document"
- ""
- "bitmapsfolder"
- 1
- 1
- 0
- 1
-
-
-
-
-
diff --git a/pcbnew/dialog_freeroute_exchange_base.cpp b/pcbnew/dialog_freeroute_exchange_base.cpp
new file mode 100644
index 0000000000..5b410bc598
--- /dev/null
+++ b/pcbnew/dialog_freeroute_exchange_base.cpp
@@ -0,0 +1,141 @@
+///////////////////////////////////////////////////////////////////////////
+// C++ code generated with wxFormBuilder (version Apr 16 2008)
+// http://www.wxformbuilder.org/
+//
+// PLEASE DO "NOT" EDIT THIS FILE!
+///////////////////////////////////////////////////////////////////////////
+
+#include "dialog_freeroute_exchange_base.h"
+
+///////////////////////////////////////////////////////////////////////////
+
+DIALOG_FREEROUTE_BASE::DIALOG_FREEROUTE_BASE( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )
+{
+ this->SetSizeHints( wxDefaultSize, wxDefaultSize );
+
+ wxBoxSizer* bMainSizer;
+ bMainSizer = new wxBoxSizer( wxVERTICAL );
+
+ wxBoxSizer* bUpperSizer;
+ bUpperSizer = new wxBoxSizer( wxHORIZONTAL );
+
+ wxBoxSizer* bLeftSizer;
+ bLeftSizer = new wxBoxSizer( wxVERTICAL );
+
+ m_staticText2 = new wxStaticText( this, wxID_ANY, wxT("Export/Import to/from FreeRoute:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText2->Wrap( -1 );
+ m_staticText2->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
+
+ bLeftSizer->Add( m_staticText2, 0, wxALL, 5 );
+
+ wxBoxSizer* bLeftSubSizerSizer;
+ bLeftSubSizerSizer = new wxBoxSizer( wxHORIZONTAL );
+
+
+ bLeftSubSizerSizer->Add( 20, 20, 0, 0, 5 );
+
+ wxBoxSizer* bLeftButtonsSizer;
+ bLeftButtonsSizer = new wxBoxSizer( wxVERTICAL );
+
+ m_ExportDSN = new wxButton( this, ID_BUTTON_EXPORT_DSN, wxT("Export a Specctra Design (*.dsn) File"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_ExportDSN->SetToolTip( wxT("Export a Specctra DSN file (to FreeRouter)") );
+
+ bLeftButtonsSizer->Add( m_ExportDSN, 0, wxALL|wxEXPAND, 5 );
+
+ m_buttonLaunchFreeroute = new wxButton( this, wxID_BUTTON_LAUNCH, wxT("Launch FreeRouter via Java Web Start"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_buttonLaunchFreeroute->SetToolTip( wxT("Use Java Web Start function to run FreeRouter via Internet (or your Browser if not found)") );
+
+ bLeftButtonsSizer->Add( m_buttonLaunchFreeroute, 0, wxALL|wxEXPAND, 5 );
+
+ m_buttonImport = new wxButton( this, wxID_BUTTON_IMPORT, wxT("Back Import the Specctra Session (*.ses) File"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_buttonImport->SetToolTip( wxT("Merge a session file created by FreeRouter with the current board.") );
+
+ bLeftButtonsSizer->Add( m_buttonImport, 0, wxALL|wxEXPAND, 5 );
+
+ bLeftSubSizerSizer->Add( bLeftButtonsSizer, 1, wxEXPAND, 5 );
+
+ bLeftSizer->Add( bLeftSubSizerSizer, 1, wxEXPAND, 5 );
+
+ bUpperSizer->Add( bLeftSizer, 1, wxEXPAND, 5 );
+
+ m_staticline2 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
+ bUpperSizer->Add( m_staticline2, 0, wxALL|wxEXPAND, 5 );
+
+ wxBoxSizer* bRightSizer;
+ bRightSizer = new wxBoxSizer( wxVERTICAL );
+
+ m_staticText3 = new wxStaticText( this, wxID_ANY, wxT("FreeRoute Info:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText3->Wrap( -1 );
+ m_staticText3->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
+
+ bRightSizer->Add( m_staticText3, 0, wxALL, 5 );
+
+ wxBoxSizer* bRightSubSizer;
+ bRightSubSizer = new wxBoxSizer( wxHORIZONTAL );
+
+
+ bRightSubSizer->Add( 20, 20, 0, 0, 5 );
+
+ wxBoxSizer* bRightButtonsSizer;
+ bRightButtonsSizer = new wxBoxSizer( wxVERTICAL );
+
+ m_buttonVisit = new wxButton( this, wxID_BUTTON_VISIT, wxT("Visit the FreeRouting.net Website with your Browser"), wxDefaultPosition, wxDefaultSize, 0 );
+ bRightButtonsSizer->Add( m_buttonVisit, 0, wxALL|wxEXPAND, 5 );
+
+ m_staticText1 = new wxStaticText( this, wxID_ANY, wxT("FreeRouting.net URL"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText1->Wrap( -1 );
+ bRightButtonsSizer->Add( m_staticText1, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
+
+ m_FreerouteURLName = new wxTextCtrl( this, wxID_TEXT_URL, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
+ m_FreerouteURLName->SetToolTip( wxT("The URL of the FreeRouting.net website") );
+
+ bRightButtonsSizer->Add( m_FreerouteURLName, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+
+ m_buttonHelp = new wxButton( this, wxID_BUTTON_HELP, wxT("Help"), wxDefaultPosition, wxDefaultSize, 0 );
+ bRightButtonsSizer->Add( m_buttonHelp, 0, wxALL|wxEXPAND, 5 );
+
+ bRightSubSizer->Add( bRightButtonsSizer, 1, wxEXPAND, 5 );
+
+ bRightSizer->Add( bRightSubSizer, 1, wxEXPAND, 5 );
+
+ bUpperSizer->Add( bRightSizer, 1, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+ bMainSizer->Add( bUpperSizer, 1, wxEXPAND, 5 );
+
+ m_staticline1 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bMainSizer->Add( m_staticline1, 0, wxEXPAND|wxALL, 5 );
+
+ m_sdbSizer1 = new wxStdDialogButtonSizer();
+ m_sdbSizer1OK = new wxButton( this, wxID_OK );
+ m_sdbSizer1->AddButton( m_sdbSizer1OK );
+ m_sdbSizer1Cancel = new wxButton( this, wxID_CANCEL );
+ m_sdbSizer1->AddButton( m_sdbSizer1Cancel );
+ m_sdbSizer1->Realize();
+ bMainSizer->Add( m_sdbSizer1, 0, wxEXPAND|wxALL, 5 );
+
+ this->SetSizer( bMainSizer );
+ this->Layout();
+
+ // Connect Events
+ m_ExportDSN->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FREEROUTE_BASE::OnExportButtonClick ), NULL, this );
+ m_buttonLaunchFreeroute->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FREEROUTE_BASE::OnLaunchButtonClick ), NULL, this );
+ m_buttonImport->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FREEROUTE_BASE::OnImportButtonClick ), NULL, this );
+ m_buttonVisit->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FREEROUTE_BASE::OnVisitButtonClick ), NULL, this );
+ m_FreerouteURLName->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_FREEROUTE_BASE::OnTextEditFrUrlUpdated ), NULL, this );
+ m_buttonHelp->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FREEROUTE_BASE::OnHelpButtonClick ), NULL, this );
+ m_sdbSizer1Cancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FREEROUTE_BASE::OnCancelButtonClick ), NULL, this );
+ m_sdbSizer1OK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FREEROUTE_BASE::OnOKButtonClick ), NULL, this );
+}
+
+DIALOG_FREEROUTE_BASE::~DIALOG_FREEROUTE_BASE()
+{
+ // Disconnect Events
+ m_ExportDSN->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FREEROUTE_BASE::OnExportButtonClick ), NULL, this );
+ m_buttonLaunchFreeroute->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FREEROUTE_BASE::OnLaunchButtonClick ), NULL, this );
+ m_buttonImport->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FREEROUTE_BASE::OnImportButtonClick ), NULL, this );
+ m_buttonVisit->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FREEROUTE_BASE::OnVisitButtonClick ), NULL, this );
+ m_FreerouteURLName->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_FREEROUTE_BASE::OnTextEditFrUrlUpdated ), NULL, this );
+ m_buttonHelp->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FREEROUTE_BASE::OnHelpButtonClick ), NULL, this );
+ m_sdbSizer1Cancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FREEROUTE_BASE::OnCancelButtonClick ), NULL, this );
+ m_sdbSizer1OK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FREEROUTE_BASE::OnOKButtonClick ), NULL, this );
+}
diff --git a/pcbnew/dialog_freeroute_exchange_base.h b/pcbnew/dialog_freeroute_exchange_base.h
new file mode 100644
index 0000000000..1d68e76854
--- /dev/null
+++ b/pcbnew/dialog_freeroute_exchange_base.h
@@ -0,0 +1,74 @@
+///////////////////////////////////////////////////////////////////////////
+// C++ code generated with wxFormBuilder (version Apr 16 2008)
+// http://www.wxformbuilder.org/
+//
+// PLEASE DO "NOT" EDIT THIS FILE!
+///////////////////////////////////////////////////////////////////////////
+
+#ifndef __dialog_freeroute_exchange_base__
+#define __dialog_freeroute_exchange_base__
+
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+///////////////////////////////////////////////////////////////////////////
+
+#define ID_BUTTON_EXPORT_DSN 1000
+#define wxID_BUTTON_LAUNCH 1001
+#define wxID_BUTTON_IMPORT 1002
+#define wxID_BUTTON_VISIT 1003
+#define wxID_TEXT_URL 1004
+#define wxID_BUTTON_HELP 1005
+
+///////////////////////////////////////////////////////////////////////////////
+/// Class DIALOG_FREEROUTE_BASE
+///////////////////////////////////////////////////////////////////////////////
+class DIALOG_FREEROUTE_BASE : public wxDialog
+{
+ private:
+
+ protected:
+ wxStaticText* m_staticText2;
+
+ wxButton* m_ExportDSN;
+ wxButton* m_buttonLaunchFreeroute;
+ wxButton* m_buttonImport;
+ wxStaticLine* m_staticline2;
+ wxStaticText* m_staticText3;
+
+ wxButton* m_buttonVisit;
+ wxStaticText* m_staticText1;
+ wxTextCtrl* m_FreerouteURLName;
+ wxButton* m_buttonHelp;
+ wxStaticLine* m_staticline1;
+ wxStdDialogButtonSizer* m_sdbSizer1;
+ wxButton* m_sdbSizer1OK;
+ wxButton* m_sdbSizer1Cancel;
+
+ // Virtual event handlers, overide them in your derived class
+ virtual void OnExportButtonClick( wxCommandEvent& event ){ event.Skip(); }
+ virtual void OnLaunchButtonClick( wxCommandEvent& event ){ event.Skip(); }
+ virtual void OnImportButtonClick( wxCommandEvent& event ){ event.Skip(); }
+ virtual void OnVisitButtonClick( wxCommandEvent& event ){ event.Skip(); }
+ virtual void OnTextEditFrUrlUpdated( wxCommandEvent& event ){ event.Skip(); }
+ virtual void OnHelpButtonClick( wxCommandEvent& event ){ event.Skip(); }
+ virtual void OnCancelButtonClick( wxCommandEvent& event ){ event.Skip(); }
+ virtual void OnOKButtonClick( wxCommandEvent& event ){ event.Skip(); }
+
+
+ public:
+ DIALOG_FREEROUTE_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxEmptyString, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 631,211 ), long style = wxDEFAULT_DIALOG_STYLE );
+ ~DIALOG_FREEROUTE_BASE();
+
+};
+
+#endif //__dialog_freeroute_exchange_base__
diff --git a/pcbnew/dialog_freeroute_exchange_help_html.h b/pcbnew/dialog_freeroute_exchange_help_html.h
new file mode 100644
index 0000000000..076a9fe48b
--- /dev/null
+++ b/pcbnew/dialog_freeroute_exchange_help_html.h
@@ -0,0 +1,25 @@
+"Guidelines:
\
+1) in pcbnew: establish board perimeter.
\
+2) in pcbnew: establish any zones, inclusive of net association.
\
+3) in pcbnew: load in the netlist so you have all the components defined and instantiated.
\
+4) in pcbnew: do the degree of component placements you are comfortable with.
\
+It is a little easier to accurately position components in pcbnew than in freerouter, but either will work.
\
+5) in pcbnew: set up the netclasses. power traces might be a little thicker.
\
+so add a netclass called \"power\".
\
+Make its traces thicker than what you establish for netclass \"Default\".
\
+Set spacing and vias for each netclass.
\
+6) in pcbnew: export to DSN.
\
+7) load up freerouter (keep it running for any subsequent iterations of 6) through 14) here ).
\
+8) in freerouter: load the project's *.dsn file.
\
+9) useful, not mandatory: in freerouter: set your move snap modulus, which seems to default to 1 internal unit.
\
+ 20 mils in x and in y is about reasonable.
\
+10) in freerouter: finish placing any components, you can change sides of a part here also, rotate, whatever.
\
+11) in freerouter: route the board, save frequently to a *.dsn file
\
+while routing, in case of power loss, not yet a session file but a full *.dsn file.
\
+The full freerouter *.dsn file is a superset format,\
+one that fully defines the board and can be reloaded between power outages,\
+whereas the *.ses file is not a complete design,\
+but with the *.brd file constitutes a full design.
\
+12) in freerouter: when done, or when you want to back import, then save as a session file, *.ses.
\
+13) in pcbnew: backimport the session file
\
+14) in pcbnew: at this point the zones have to be refilled. One way to do that is to simply run DRC."