1 /* 2 * This program source code file is part of KiCad, a free EDA CAD application. 3 * 4 * Copyright (C) 2019 CERN 5 * 6 * This program is free software; you can redistribute it and/or 7 * modify it under the terms of the GNU General Public License 8 * as published by the Free Software Foundation; either version 2 9 * of the License, or (at your option) any later version. 10 * 11 * This program is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 * GNU General Public License for more details. 15 * 16 * You should have received a copy of the GNU General Public License 17 * along with this program; if not, you may find one here: 18 * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html 19 * or you may search the http://www.gnu.org website for the version 2 license, 20 * or you may write to the Free Software Foundation, Inc., 21 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA 22 */ 23 24 #ifndef __BOARD_EXPORTER_BASE_H 25 #define __BOARD_EXPORTER_BASE_H 26 27 #include <properties.h> 28 #include <wx/file.h> 29 30 class BOARD; 31 class REPORTER; 32 class PROGRESS_REPORTER; 33 34 class wxDialog; 35 36 class BOARD_EXPORTER_BASE 37 { 38 public: BOARD_EXPORTER_BASE()39 BOARD_EXPORTER_BASE() 40 { 41 }; 42 ~BOARD_EXPORTER_BASE()43 virtual ~BOARD_EXPORTER_BASE() 44 { 45 }; 46 SetOutputFilename(const wxFileName & aPath)47 void SetOutputFilename( const wxFileName& aPath ) 48 { 49 m_outputFilePath = aPath; 50 } 51 SetBoard(BOARD * aBoard)52 void SetBoard( BOARD* aBoard ) 53 { 54 m_board = aBoard; 55 } 56 SetReporter(REPORTER * aReporter)57 void SetReporter( REPORTER* aReporter ) 58 { 59 m_reporter = aReporter; 60 } 61 SetProgressReporter(PROGRESS_REPORTER * aProgressReporter)62 void SetProgressReporter( PROGRESS_REPORTER *aProgressReporter ) 63 { 64 m_progressReporter = aProgressReporter; 65 } 66 67 virtual bool Run() = 0; 68 69 protected: 70 PROPERTIES m_properties; 71 BOARD* m_board = nullptr; 72 wxFileName m_outputFilePath; 73 REPORTER* m_reporter = nullptr; 74 PROGRESS_REPORTER* m_progressReporter = nullptr; 75 }; 76 77 #endif 78