Commit 34d5dff9 authored by charras's avatar charras
Browse files

added FreeRouter Dick's help

parent 801d4020
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -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
+26 −241
Original line number Diff line number Diff line
/////////////////////////////////////////////////////////////////////////////

// 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 ) );

/*!
 * 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
    wxString msg = CONV_FROM_UTF8(s_FreeRouteHelpInfo);
    help_Dlg.m_htmlWindow->AppendToPage( msg );
    help_Dlg.ShowModal();
}


/*!
 * 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.
}
+22 −114
Original line number Diff line number Diff line
/////////////////////////////////////////////////////////////////////////////

// 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()

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

    /// 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 );
private:
    WinEDA_PcbFrame* m_Parent;
    bool m_FreeRouteSetupChanged;

    /// wxEVT_COMMAND_TEXT_UPDATED event handler for ID_TEXTCTRL2
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 ( );

    /// 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
public:
    DIALOG_FREEROUTE( WinEDA_PcbFrame* parent );
    ~DIALOG_FREEROUTE() {};

    WinEDA_PcbFrame* m_Parent;
};

#endif
+0 −1025

File deleted.

Preview size limit exceeded, changes collapsed.

+141 −0
Original line number Diff line number Diff line
///////////////////////////////////////////////////////////////////////////
// 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 );
}
Loading