source: git/src/guicontrol.h @ 3bb963aa

RELEASE/1.2debug-cidebug-ci-sanitiserswalls-data
Last change on this file since 3bb963aa was b96edeb, checked in by Olly Betts <olly@…>, 7 years ago

Partition traverses into list by flag combinations

Instead of a list for surface and one for underground, we now have
8 lists of traverses, one for each combination of img_FLAG_SURFACE,
img_FLAG_SPLAY and img_FLAG_DUPLICATE.

Also allow "Dashed" for splays and "Faded" for duplicate legs.

  • Property mode set to 100644
File size: 6.6 KB
Line 
1//
2//  guicontrol.h
3//
4//  Handlers for events relating to the display of a survey.
5//
6//  Copyright (C) 2000-2002,2005 Mark R. Shinwell
7//  Copyright (C) 2001-2004,2006,2014,2015 Olly Betts
8//
9//  This program is free software; you can redistribute it and/or modify
10//  it under the terms of the GNU General Public License as published by
11//  the Free Software Foundation; either version 2 of the License, or
12//  (at your option) any later version.
13//
14//  This program is distributed in the hope that it will be useful,
15//  but WITHOUT ANY WARRANTY; without even the implied warranty of
16//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17//  GNU General Public License for more details.
18//
19//  You should have received a copy of the GNU General Public License
20//  along with this program; if not, write to the Free Software
21//  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
22//
23
24#ifndef guicontrol_h
25#define guicontrol_h
26
27#include "wx.h"
28
29class GfxCore;
30
31class GUIControl {
32    GfxCore* m_View;
33
34    enum { NO_DRAG = 0, LEFT_DRAG, MIDDLE_DRAG, RIGHT_DRAG } dragging;
35
36    wxPoint m_DragStart;
37    wxPoint m_DragRealStart;
38    wxPoint m_DragLast;
39
40    enum {
41        drag_NONE,
42        drag_MAIN,
43        drag_COMPASS,
44        drag_ELEV,
45        drag_SCALE,
46        drag_ZOOM
47    } m_LastDrag;
48
49    enum { lock_NONE, lock_ROTATE, lock_SCALE } m_ScaleRotateLock;
50
51    bool m_ReverseControls;
52
53    void HandleRotate(wxPoint);
54    void HandleTilt(wxPoint);
55    void HandleTranslate(wxPoint);
56    void HandleScaleRotate(wxPoint);
57    void HandleTiltRotate(wxPoint);
58
59    void HandCursor();
60    void RestoreCursor();
61
62    void HandleNonDrag(const wxPoint & point);
63
64public:
65    GUIControl();
66
67    void SetView(GfxCore* view);
68
69    bool MouseDown() const;
70
71    void OnDefaults();
72    void OnPlan();
73    void OnElevation();
74    void OnDisplayOverlappingNames();
75    void OnColourByDepth();
76    void OnColourByDate();
77    void OnColourByError();
78    void OnColourByGradient();
79    void OnColourByLength();
80    void OnShowCrosses();
81    void OnShowStationNames();
82    void OnShowSurveyLegs();
83    void OnHideSplays();
84    void OnShowSplaysDashed();
85    void OnShowSplaysFaded();
86    void OnShowSplaysNormal();
87    void OnHideDupes();
88    void OnShowDupesDashed();
89    void OnShowDupesFaded();
90    void OnShowDupesNormal();
91    void OnShowSurface();
92    void OnMoveEast();
93    void OnMoveNorth();
94    void OnMoveSouth();
95    void OnMoveWest();
96    void OnToggleRotation();
97    void OnReverseControls();
98    void OnSlowDown(bool accel = false);
99    void OnSpeedUp(bool accel = false);
100    void OnStepOnceAnticlockwise(bool accel = false);
101    void OnStepOnceClockwise(bool accel = false);
102    void OnHigherViewpoint(bool accel = false);
103    void OnLowerViewpoint(bool accel = false);
104    void OnShiftDisplayDown(bool accel = false);
105    void OnShiftDisplayLeft(bool accel = false);
106    void OnShiftDisplayRight(bool accel = false);
107    void OnShiftDisplayUp(bool accel = false);
108    void OnZoomIn(bool accel = false);
109    void OnZoomOut(bool accel = false);
110    void OnToggleScalebar();
111    void OnToggleColourKey();
112    void OnViewCompass();
113    void OnViewClino();
114    void OnViewGrid();
115    void OnReverseDirectionOfRotation();
116    void OnShowEntrances();
117    void OnShowFixedPts();
118    void OnShowExportedPts();
119    void OnCancelDistLine();
120    void OnMouseMove(wxMouseEvent& event);
121    void OnLButtonDown(wxMouseEvent& event);
122    void OnLButtonUp(wxMouseEvent& event);
123    void OnMButtonDown(wxMouseEvent& event);
124    void OnMButtonUp(wxMouseEvent& event);
125    void OnRButtonDown(wxMouseEvent& event);
126    void OnRButtonUp(wxMouseEvent& event);
127    void OnMouseWheel(wxMouseEvent& event);
128    void OnKeyPress(wxKeyEvent &e);
129
130    void OnDisplayOverlappingNamesUpdate(wxUpdateUIEvent&);
131    void OnColourByUpdate(wxUpdateUIEvent&);
132    void OnColourByDepthUpdate(wxUpdateUIEvent&);
133    void OnColourByDateUpdate(wxUpdateUIEvent&);
134    void OnColourByErrorUpdate(wxUpdateUIEvent&);
135    void OnColourByGradientUpdate(wxUpdateUIEvent&);
136    void OnColourByLengthUpdate(wxUpdateUIEvent&);
137    void OnShowCrossesUpdate(wxUpdateUIEvent&);
138    void OnShowStationNamesUpdate(wxUpdateUIEvent&);
139    void OnShowSurveyLegsUpdate(wxUpdateUIEvent&);
140    void OnSplaysUpdate(wxUpdateUIEvent&);
141    void OnHideSplaysUpdate(wxUpdateUIEvent&);
142    void OnShowSplaysDashedUpdate(wxUpdateUIEvent&);
143    void OnShowSplaysFadedUpdate(wxUpdateUIEvent&);
144    void OnShowSplaysNormalUpdate(wxUpdateUIEvent&);
145    void OnDupesUpdate(wxUpdateUIEvent&);
146    void OnHideDupesUpdate(wxUpdateUIEvent&);
147    void OnShowDupesDashedUpdate(wxUpdateUIEvent&);
148    void OnShowDupesFadedUpdate(wxUpdateUIEvent&);
149    void OnShowDupesNormalUpdate(wxUpdateUIEvent&);
150    void OnShowSurfaceUpdate(wxUpdateUIEvent&);
151    void OnMoveEastUpdate(wxUpdateUIEvent&);
152    void OnMoveNorthUpdate(wxUpdateUIEvent&);
153    void OnMoveSouthUpdate(wxUpdateUIEvent&);
154    void OnMoveWestUpdate(wxUpdateUIEvent&);
155    void OnToggleRotationUpdate(wxUpdateUIEvent&);
156    void OnReverseControlsUpdate(wxUpdateUIEvent&);
157    void OnReverseDirectionOfRotationUpdate(wxUpdateUIEvent&);
158    void OnDefaultsUpdate(wxUpdateUIEvent&);
159    void OnElevationUpdate(wxUpdateUIEvent&);
160    void OnPlanUpdate(wxUpdateUIEvent&);
161    void OnToggleScalebarUpdate(wxUpdateUIEvent&);
162    void OnToggleColourKeyUpdate(wxUpdateUIEvent&);
163    void OnViewCompassUpdate(wxUpdateUIEvent&);
164    void OnViewClinoUpdate(wxUpdateUIEvent&);
165    void OnViewGridUpdate(wxUpdateUIEvent&);
166    void OnShowEntrancesUpdate(wxUpdateUIEvent&);
167    void OnShowExportedPtsUpdate(wxUpdateUIEvent&);
168    void OnShowFixedPtsUpdate(wxUpdateUIEvent&);
169
170    void OnIndicatorsUpdate(wxUpdateUIEvent&);
171    void OnCancelDistLineUpdate(wxUpdateUIEvent&);
172
173    void OnViewPerspective();
174    void OnViewPerspectiveUpdate(wxUpdateUIEvent& cmd);
175
176    void OnViewSmoothShading();
177    void OnViewSmoothShadingUpdate(wxUpdateUIEvent& cmd);
178
179    void OnViewTextured();
180    void OnViewTexturedUpdate(wxUpdateUIEvent& cmd);
181
182    void OnViewFog();
183    void OnViewFogUpdate(wxUpdateUIEvent& cmd);
184
185    void OnViewSmoothLines();
186    void OnViewSmoothLinesUpdate(wxUpdateUIEvent& cmd);
187
188    void OnToggleMetric();
189    void OnToggleMetricUpdate(wxUpdateUIEvent& cmd);
190
191    void OnToggleDegrees();
192    void OnToggleDegreesUpdate(wxUpdateUIEvent& cmd);
193
194    void OnTogglePercent();
195    void OnTogglePercentUpdate(wxUpdateUIEvent& cmd);
196
197    void OnToggleTubes();
198    void OnToggleTubesUpdate(wxUpdateUIEvent& cmd);
199
200    void OnViewFullScreenUpdate(wxUpdateUIEvent&);
201    void OnViewFullScreen();
202
203    void OnViewBoundingBoxUpdate(wxUpdateUIEvent&);
204    void OnViewBoundingBox();
205
206    void OnViewTerrainUpdate(wxUpdateUIEvent&);
207    void OnViewTerrain();
208};
209
210#endif
Note: See TracBrowser for help on using the repository browser.