added FreeRouter Dick's help

This commit is contained in:
charras 2009-11-21 15:39:50 +00:00
parent 801d4020b6
commit 34d5dff91d
7 changed files with 291 additions and 1382 deletions

View File

@ -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

View File

@ -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.
}

View File

@ -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

File diff suppressed because it is too large Load Diff

View File

@ -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 );
}

View File

@ -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 <wx/string.h>
#include <wx/stattext.h>
#include <wx/gdicmn.h>
#include <wx/font.h>
#include <wx/colour.h>
#include <wx/settings.h>
#include <wx/button.h>
#include <wx/sizer.h>
#include <wx/statline.h>
#include <wx/textctrl.h>
#include <wx/dialog.h>
///////////////////////////////////////////////////////////////////////////
#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__

View File

@ -0,0 +1,25 @@
"<b>Guidelines:</b><br><br>\
<b>1)</b> in pcbnew: establish board perimeter.<br>\
<b>2)</b> in pcbnew: establish any zones, inclusive of net association.<br>\
<b>3)</b> in pcbnew: load in the netlist so you have all the components defined and instantiated.<br>\
<b>4)</b> in pcbnew: do the degree of component placements you are comfortable with.<br>\
It is a little easier to accurately position components in pcbnew than in freerouter, but either will work.<br>\
<b>5)</b> in pcbnew: set up the netclasses. power traces might be a little thicker.<br>\
so add a netclass called \"power\".<br>\
Make its traces thicker than what you establish for netclass \"Default\".<br>\
Set spacing and vias for each netclass.<br>\
<b>6)</b> in pcbnew: export to DSN.<br>\
<b>7)</b> load up freerouter (keep it running for any subsequent iterations of 6) through 14) here ).<br>\
<b>8)</b> in freerouter: load the project's *.dsn file.<br>\
<b>9)</b> useful, not mandatory: in freerouter: set your move snap modulus, which seems to default to 1 internal unit.<br>\
20 mils in x and in y is about reasonable.<br>\
<b>10)</b> in freerouter: finish placing any components, you can change sides of a part here also, rotate, whatever.<br>\
<b>11)</b> in freerouter: route the board, save frequently to a *.dsn file<br>\
while routing, in case of power loss, not yet a session file but a full *.dsn file.<br>\
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.<br>\
<b>12)</b> in freerouter: when done, or when you want to back import, then save as a session file, *.ses.<br>\
<b>13)</b> in pcbnew: backimport the session file<br>\
<b>14)</b> in pcbnew: at this point the zones have to be refilled. One way to do that is to simply run DRC."