1 // -*- c-basic-offset: 4 -*-
2 
3 /** @file RunStitchFrame.h
4  *
5  *  @brief Stitch a pto project file, with GUI output etc.
6  *
7  *  @author Pablo d'Angelo <pablo.dangelo@web.de>
8  *
9  *  $Id: hugin_stitch_project.cpp 2705 2008-01-27 19:56:06Z ippei $
10  *
11  *  This program is free software; you can redistribute it and/or
12  *  modify it under the terms of the GNU General Public
13  *  License as published by the Free Software Foundation; either
14  *  version 2 of the License, or (at your option) any later version.
15  *
16  *  This software is distributed in the hope that it will be useful,
17  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
18  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
19  *  General Public License for more details.
20  *
21  *  You should have received a copy of the GNU General Public
22  *  License along with this software. If not, see
23  *  <http://www.gnu.org/licenses/>.
24  *
25  */
26 
27 #ifndef RUN_STITCH_FRAME_H
28 #define RUN_STITCH_FRAME_H
29 
30 #include <hugin_shared.h>
31 #include <vector>
32 #include <set>
33 #include <functional>
34 #include <utility>
35 #include <string>
36 
37 #include <panodata/Panorama.h>
38 
39 #include "MyExternalCmdExecDialog.h"
40 
41 class WXIMPEX RunStitchPanel: public wxPanel
42 {
43 public:
44     explicit RunStitchPanel(wxWindow * parent);
45 
46     bool StitchProject(const wxString& scriptFile, const wxString& outname, const wxString& userDefinedOutput = wxEmptyString);
47     bool DetectProject(const wxString& scriptFile);
48     void CancelStitch();
49 	bool IsPaused();
50 	void SetOverwrite(bool over = true);
51 	void PauseStitch();
52 	void ContinueStitch();
53 	long GetPid();
54     /** save the content of the window into a given log file
55         @return true if log was saved successful */
56     bool SaveLog(const wxString &filename);
57 
58 private:
59 	bool m_paused;
60 	bool m_overwrite;
61     wxString m_currentPTOfn;
62     wxArrayString m_tempFiles;
63     wxString m_oldCwd;
64     void OnProcessTerminate(wxProcessEvent & event);
65 
66     MyExecPanel * m_execPanel;
67 
68     DECLARE_EVENT_TABLE()
69 };
70 
71 #endif
72