Commit c79c0d9c authored by dickelbeck's avatar dickelbeck
Browse files

load multiple files

parent 572c4487
Loading
Loading
Loading
Loading
+59 −45
Original line number Diff line number Diff line
@@ -24,14 +24,12 @@ IMPLEMENT_APP(WinEDA_App)

bool WinEDA_App::OnInit()
{
wxString FFileName;

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

    ActiveScreen = ScreenPcb;
    GetSettings();
    if( m_Checker && m_Checker->IsAnotherRunning() )
@@ -49,6 +47,7 @@ wxString FFileName;

    m_GerberFrame = new  WinEDA_GerberFrame( NULL, this, wxT( "GerbView" ),
                                             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 );
@@ -57,24 +56,39 @@ wxString FFileName;
    m_GerberFrame->Show( TRUE );

    m_GerberFrame->m_Pcb = new  BOARD( NULL, m_GerberFrame );

    m_GerberFrame->Zoom_Automatique( TRUE );

	/* Load file specified in the command line. */
	if( ! FFileName.IsEmpty() )
    if( argc > 1 )
    {
		wxString path = wxPathOnly(FFileName);
		wxSetWorkingDirectory(path);
		Read_Config();
		if ( wxFileExists(FFileName) )
        wxString fileName = MakeFileName( wxEmptyString, argv[1], g_PhotoFilenameExt );

        if( !fileName.IsEmpty() )
        {
            wxClientDC dc( m_GerberFrame->DrawPanel );
            m_GerberFrame->DrawPanel->PrepareGraphicContext( &dc );
			m_GerberFrame->LoadOneGerberFile(FFileName, &dc, FALSE);

            wxString path = wxPathOnly( fileName );

            wxSetWorkingDirectory( path );

            Read_Config();

            // Load all files specified on the command line.
            for( int i=1;  i<argc;  ++i )
            {
                fileName = MakeFileName( wxEmptyString, argv[i], g_PhotoFilenameExt );

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