1 /*
2  Copyright (C) 2010-2014 Kristian Duske
3 
4  This file is part of TrenchBroom.
5 
6  TrenchBroom is free software: you can redistribute it and/or modify
7  it under the terms of the GNU General Public License as published by
8  the Free Software Foundation, either version 3 of the License, or
9  (at your option) any later version.
10 
11  TrenchBroom 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 TrenchBroom. If not, see <http://www.gnu.org/licenses/>.
18  */
19 
20 #ifndef TrenchBroom_ThreePaneMapView
21 #define TrenchBroom_ThreePaneMapView
22 
23 #include "View/CameraLinkHelper.h"
24 #include "View/MultiMapView.h"
25 #include "View/ViewTypes.h"
26 
27 class wxWindow;
28 
29 namespace TrenchBroom {
30     class Logger;
31 
32     namespace Renderer {
33         class MapRenderer;
34         class Vbo;
35     }
36 
37     namespace View {
38         class CyclingMapView;
39         class GLContextManager;
40         class MapViewBase;
41         class MapView2D;
42         class MapView3D;
43         class MapViewToolBox;
44         class SplitterWindow2;
45 
46         class ThreePaneMapView : public MultiMapView {
47         private:
48             Logger* m_logger;
49             MapDocumentWPtr m_document;
50 
51             CameraLinkHelper m_linkHelper;
52             SplitterWindow2* m_hSplitter;
53             SplitterWindow2* m_vSplitter;
54             MapView3D* m_mapView3D;
55             MapView2D* m_mapViewXY;
56             CyclingMapView* m_mapViewZZ;
57         public:
58             ThreePaneMapView(wxWindow* parent, Logger* logger, MapDocumentWPtr document, MapViewToolBox& toolBox, Renderer::MapRenderer& mapRenderer, GLContextManager& contextManager);
59         private:
60             void createGui(MapViewToolBox& toolBox, Renderer::MapRenderer& mapRenderer, GLContextManager& contextManager);
61         private: // implement MultiMapView subclassing interface
62             void doMaximizeView(MapView* view);
63             void doRestoreViews();
64         };
65     }
66 }
67 
68 #endif /* defined(TrenchBroom_ThreePaneMapView) */
69