load multiple files

This commit is contained in:
dickelbeck 2008-02-19 07:06:41 +00:00
parent 572c448796
commit c79c0d9c64
1 changed files with 56 additions and 42 deletions

View File

@ -1,6 +1,6 @@
/************************************************/ /************************************************/
/* GERBVIEW main file */ /* GERBVIEW main file */
/************************************************/ /************************************************/
#define MAIN #define MAIN
#define eda_global #define eda_global
@ -18,25 +18,23 @@
#include "protos.h" #include "protos.h"
wxString g_Main_Title = wxT("GerbView"); wxString g_Main_Title = wxT( "GerbView" );
IMPLEMENT_APP(WinEDA_App) IMPLEMENT_APP( WinEDA_App )
bool WinEDA_App::OnInit() bool WinEDA_App::OnInit()
{ {
wxString FFileName;
g_EDA_Appl = this; g_EDA_Appl = this;
InitEDA_Appl( wxT("gerbview") );
if(argc > 1) FFileName = MakeFileName(wxEmptyString, argv[1], g_PhotoFilenameExt); InitEDA_Appl( wxT( "gerbview" ) );
ScreenPcb = new PCB_SCREEN( PCB_FRAME );
ScreenPcb = new PCB_SCREEN(PCB_FRAME);
ActiveScreen = ScreenPcb; ActiveScreen = ScreenPcb;
GetSettings(); GetSettings();
if ( m_Checker && m_Checker->IsAnotherRunning() ) if( m_Checker && m_Checker->IsAnotherRunning() )
{ {
if ( ! IsOK(NULL, _("GerbView is already running. Continue?") ) ) if( !IsOK( NULL, _( "GerbView is already running. Continue?" ) ) )
return false; return false;
} }
@ -47,34 +45,50 @@ wxString FFileName;
* in order to display the real hotkeys * in order to display the real hotkeys
* in menus or tool tips */ * in menus or tool tips */
m_GerberFrame = new WinEDA_GerberFrame(NULL, this, wxT("GerbView"), m_GerberFrame = new WinEDA_GerberFrame( NULL, this, wxT( "GerbView" ),
wxPoint(0,0), wxSize(600,400) ); wxPoint( 0, 0 ), wxSize( 600, 400 ) );
wxString Title = g_Main_Title + wxT(" ") + GetBuildVersion();
m_GerberFrame->SetTitle(Title);
m_GerberFrame->m_Pcb = new BOARD(NULL, m_GerberFrame);
SetTopWindow(m_GerberFrame); wxString Title = g_Main_Title + wxT( " " ) + GetBuildVersion();
m_GerberFrame->Show(TRUE); m_GerberFrame->SetTitle( Title );
m_GerberFrame->m_Pcb = new BOARD( NULL, m_GerberFrame );
m_GerberFrame->m_Pcb = new BOARD(NULL, m_GerberFrame); SetTopWindow( m_GerberFrame );
m_GerberFrame->Zoom_Automatique(TRUE); m_GerberFrame->Show( TRUE );
/* Load file specified in the command line. */ m_GerberFrame->m_Pcb = new BOARD( NULL, m_GerberFrame );
if( ! FFileName.IsEmpty() )
m_GerberFrame->Zoom_Automatique( TRUE );
if( argc > 1 )
{ {
wxString path = wxPathOnly(FFileName); wxString fileName = MakeFileName( wxEmptyString, argv[1], g_PhotoFilenameExt );
wxSetWorkingDirectory(path);
if( !fileName.IsEmpty() )
{
wxClientDC dc( m_GerberFrame->DrawPanel );
m_GerberFrame->DrawPanel->PrepareGraphicContext( &dc );
wxString path = wxPathOnly( fileName );
wxSetWorkingDirectory( path );
Read_Config(); Read_Config();
if ( wxFileExists(FFileName) )
// Load all files specified on the command line.
for( int i=1; i<argc; ++i )
{ {
wxClientDC dc(m_GerberFrame->DrawPanel); fileName = MakeFileName( wxEmptyString, argv[i], g_PhotoFilenameExt );
m_GerberFrame->DrawPanel->PrepareGraphicContext(&dc);
m_GerberFrame->LoadOneGerberFile(FFileName, &dc, FALSE); if( wxFileExists( fileName ) )
{
((PCB_SCREEN*)m_GerberFrame->GetScreen())->m_Active_Layer = i-1;
m_GerberFrame->LoadOneGerberFile( fileName, &dc, FALSE );
} }
} }
else Read_Config(); }
}
else
Read_Config();
return TRUE; return TRUE;
} }