2007-08-30 08:15:05 +00:00
|
|
|
/***********************************/
|
|
|
|
/* eeschema.cpp - module principal */
|
|
|
|
/***********************************/
|
2007-05-06 16:03:28 +00:00
|
|
|
|
|
|
|
#ifdef __GNUG__
|
|
|
|
#pragma implementation
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#define eda_global
|
|
|
|
#define MAIN
|
|
|
|
|
|
|
|
#include "fctsys.h"
|
2009-02-04 15:25:03 +00:00
|
|
|
#include "appl_wxstruct.h"
|
2007-05-06 16:03:28 +00:00
|
|
|
#include "common.h"
|
2009-02-04 15:25:03 +00:00
|
|
|
#include "class_drawpanel.h"
|
|
|
|
#include "confirm.h"
|
|
|
|
#include "gestfich.h"
|
2007-05-06 16:03:28 +00:00
|
|
|
#include "program.h"
|
|
|
|
#include "libcmp.h"
|
|
|
|
#include "general.h"
|
|
|
|
#include "netlist.h"
|
|
|
|
#include "worksheet.h"
|
|
|
|
#include "bitmaps.h"
|
2007-08-14 19:24:48 +00:00
|
|
|
#include "eda_dde.h"
|
2008-02-27 19:38:16 +00:00
|
|
|
|
2008-04-14 19:22:48 +00:00
|
|
|
#include "protos.h"
|
2007-08-14 19:24:48 +00:00
|
|
|
|
2009-02-04 15:25:03 +00:00
|
|
|
#include <wx/snglinst.h>
|
|
|
|
|
|
|
|
|
2007-05-06 16:03:28 +00:00
|
|
|
// Global variables
|
2008-12-08 15:27:13 +00:00
|
|
|
wxString g_Main_Title( wxT( "EESchema" ) );
|
2007-05-06 16:03:28 +00:00
|
|
|
|
2007-08-30 08:15:05 +00:00
|
|
|
/************************************/
|
|
|
|
/* Called to initialize the program */
|
|
|
|
/************************************/
|
2007-05-06 16:03:28 +00:00
|
|
|
|
|
|
|
// Create a new application object: this macro will allow wxWindows to create
|
|
|
|
// the application object during program execution (it's better than using a
|
|
|
|
// static object for many reasons) and also declares the accessor function
|
|
|
|
// wxGetApp() which will return the reference of the right type (i.e. MyApp and
|
|
|
|
// not wxApp)
|
2007-08-30 08:15:05 +00:00
|
|
|
IMPLEMENT_APP( WinEDA_App )
|
2007-05-06 16:03:28 +00:00
|
|
|
|
2007-09-01 12:00:30 +00:00
|
|
|
bool WinEDA_App::OnInit()
|
2007-05-06 16:03:28 +00:00
|
|
|
{
|
2007-08-30 08:15:05 +00:00
|
|
|
wxString FFileName;
|
2008-12-08 15:27:13 +00:00
|
|
|
WinEDA_SchematicFrame* frame = NULL;
|
2007-05-06 16:03:28 +00:00
|
|
|
|
2007-08-30 08:15:05 +00:00
|
|
|
g_DebugLevel = 0; // Debug level */
|
2007-05-06 16:03:28 +00:00
|
|
|
|
2007-08-30 08:15:05 +00:00
|
|
|
InitEDA_Appl( wxT( "eeschema" ) );
|
|
|
|
|
|
|
|
if( m_Checker && m_Checker->IsAnotherRunning() )
|
2007-05-06 16:03:28 +00:00
|
|
|
{
|
2007-08-30 08:15:05 +00:00
|
|
|
if( !IsOK( NULL, _( "Eeschema is already running, Continue?" ) ) )
|
|
|
|
return false;
|
2007-05-06 16:03:28 +00:00
|
|
|
}
|
|
|
|
|
2007-08-30 08:15:05 +00:00
|
|
|
if( argc > 1 )
|
|
|
|
FFileName = argv[1];
|
2007-05-06 16:03:28 +00:00
|
|
|
|
2007-08-30 08:15:05 +00:00
|
|
|
/* init EESCHEMA */
|
|
|
|
GetSettings(); // read current setup
|
|
|
|
SeedLayers();
|
2009-03-28 20:02:34 +00:00
|
|
|
extern PARAM_CFG_BASE* ParamCfgList[];
|
|
|
|
wxGetApp().ReadCurrentSetupValues( ParamCfgList );
|
2008-12-08 15:27:13 +00:00
|
|
|
Read_Hotkey_Config( frame, false ); /* Must be called before creating
|
|
|
|
* the main frame in order to
|
|
|
|
* display the real hotkeys in menus
|
|
|
|
* or tool tips */
|
2007-05-06 16:03:28 +00:00
|
|
|
|
2007-08-30 08:15:05 +00:00
|
|
|
// Create main frame (schematic frame) :
|
2008-12-08 15:27:13 +00:00
|
|
|
frame = new WinEDA_SchematicFrame( NULL, wxT( "EESchema" ),
|
|
|
|
wxPoint( 0, 0 ), wxSize( 600, 400 ) );
|
2007-06-05 12:10:51 +00:00
|
|
|
|
2008-12-08 15:27:13 +00:00
|
|
|
SetTopWindow( frame );
|
|
|
|
frame->Show( TRUE );
|
2007-05-06 16:03:28 +00:00
|
|
|
|
2008-12-08 15:27:13 +00:00
|
|
|
if( CreateServer( frame, KICAD_SCH_PORT_SERVICE_NUMBER ) )
|
2007-08-14 19:24:48 +00:00
|
|
|
{
|
|
|
|
// RemoteCommand is in controle.cpp and is called when PCBNEW
|
|
|
|
// sends EESCHEMA a command
|
|
|
|
SetupServerFunction( RemoteCommand );
|
|
|
|
}
|
2007-08-30 08:15:05 +00:00
|
|
|
|
2008-12-08 15:27:13 +00:00
|
|
|
ActiveScreen = frame->GetScreen();
|
|
|
|
frame->Zoom_Automatique( TRUE );
|
2007-08-30 08:15:05 +00:00
|
|
|
|
|
|
|
/* Load file specified in the command line. */
|
|
|
|
if( !FFileName.IsEmpty() )
|
|
|
|
{
|
|
|
|
ChangeFileNameExt( FFileName, g_SchExtBuffer );
|
|
|
|
wxSetWorkingDirectory( wxPathOnly( FFileName ) );
|
2008-12-08 15:27:13 +00:00
|
|
|
if( frame->DrawPanel )
|
|
|
|
if( frame->LoadOneEEProject( FFileName, FALSE ) <= 0 )
|
|
|
|
frame->DrawPanel->Refresh( TRUE ); // File not found or error
|
2007-08-30 08:15:05 +00:00
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
2008-07-18 07:04:43 +00:00
|
|
|
Read_Config( wxEmptyString, TRUE ); // Read a default config file if no file to load
|
2008-12-08 15:27:13 +00:00
|
|
|
if( frame->DrawPanel )
|
|
|
|
frame->DrawPanel->Refresh( TRUE );
|
2007-08-30 08:15:05 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
return TRUE;
|
2007-05-06 16:03:28 +00:00
|
|
|
}
|