/* File commands. */ void GERBVIEW_FRAME::Files_io( wxCommandEvent& event ) { int id = event.GetId(); switch( id ) { case wxID_FILE: Erase_Current_Layer( false ); LoadGerberFiles( wxEmptyString ); break; case ID_GERBVIEW_ERASE_ALL: Clear_Pcb( true ); Zoom_Automatique( false ); m_canvas->Refresh(); ClearMsgPanel(); break; case ID_GERBVIEW_LOAD_DRILL_FILE: LoadExcellonFiles( wxEmptyString ); m_canvas->Refresh(); break; case ID_GERBVIEW_LOAD_DCODE_FILE: LoadDCodeFile( wxEmptyString ); m_canvas->Refresh(); break; default: wxFAIL_MSG( wxT( "File_io: unexpected command id" ) ); break; } }
void GERBVIEW_FRAME::OnDrlFileHistory( wxCommandEvent& event ) { wxString fn; fn = GetFileFromHistory( event.GetId(), _( "Drill files" ), &m_drillFileHistory ); if( !fn.IsEmpty() ) { Erase_Current_DrawLayer( false ); LoadExcellonFiles( fn ); } }
bool GERBVIEW_FRAME::OpenProjectFiles( const std::vector<wxString>& aFileSet, int aCtl ) { // The current project path is also a valid command parameter. Check if a single path // rather than a file name was passed to GerbView and use it as the initial MRU path. if( aFileSet.size() > 0 ) { wxString path = aFileSet[0]; // For some reason wxApp appears to leave the trailing double quote on quoted // parameters which are required for paths with spaces. Maybe this should be // pushed back into PGM_SINGLE_TOP::OnPgmInit() but that may cause other issues. // We can't buy a break! if( path.Last() == wxChar( '\"' ) ) path.RemoveLast(); if( !wxFileExists( path ) && wxDirExists( path ) ) { wxLogDebug( wxT( "MRU path: %s." ), GetChars( path ) ); m_mruPath = path; return true; } const unsigned limit = std::min( unsigned( aFileSet.size() ), unsigned( GERBER_DRAWLAYERS_COUNT ) ); int layer = 0; for( unsigned i=0; i<limit; ++i, ++layer ) { setActiveLayer( layer ); // Try to guess the type of file by its ext // if it is .drl (Kicad files), it is a drill file wxFileName fn( aFileSet[i] ); wxString ext = fn.GetExt(); if( ext == "drl" ) LoadExcellonFiles( aFileSet[i] ); else LoadGerberFiles( aFileSet[i] ); } } Zoom_Automatique( true ); // Zoom fit in frame UpdateTitleAndInfo(); return true; }