OpenCPN Partial API docs
Loading...
Searching...
No Matches
top_frame.h
Go to the documentation of this file.
1/**************************************************************************
2 * Copyright (C) 2026 Alec Leamas *
3 * *
4 * This program is free software; you can redistribute it and/or modify *
5 * it under the terms of the GNU General Public License as published by *
6 * the Free Software Foundation; either version 2 of the License, or *
7 * (at your option) any later version. *
8 * *
9 * This program is distributed in the hope that it will be useful, *
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
12 * GNU General Public License for more details. *
13 * *
14 * You should have received a copy of the GNU General Public License *
15 * along with this program; if not, see <https://www.gnu.org/licenses/>. *
16 **************************************************************************/
17
24#ifndef ToP_FraMe_h
25#define ToP_FraMe_h
26
27#include "gl_headers.h" // Must come before anything using GL stuff
28
29#include "wx/frame.h"
30#include "wx/gdicmn.h"
31#include "wx/glcanvas.h"
32#include "wx/statusbr.h"
33#include "wx/string.h"
34
35#include "s52s57.h" // enum _Discat, should be moved.
36
38#include "model/gui.h"
39#include "model/track.h"
40
41#include "abstract_chart.h"
42#include "abstract_chart_canv.h"
43#include "undo_defs.h"
44
45#include "abstract_chart.h"
46#include "abstract_chart_canv.h"
47#include "s52s57.h" // enum _Discat, should be moved
48#include "undo_defs.h"
49
50class AbstractTopFrame : public wxFrame {
51public:
52 AbstractTopFrame(wxFrame *frame, const wxString &title, const wxPoint &pos,
53 const wxSize &size, long style)
54 : wxFrame(frame, -1, title, pos, size, style, kTopLevelWindowName) {}
55
56 virtual void FastClose() = 0;
57
58 virtual void InvalidateAllGL() = 0;
59
60 virtual void SetGPSCompassScale() = 0;
61
62 virtual void RefreshAllCanvas(bool erase = true) = 0;
63
64 virtual void UpdateStatusBar() = 0;
65
66 virtual void ToggleFullScreen() = 0;
67
68 virtual bool DoChartUpdate(void) = 0;
69
70 virtual Track *TrackOff(bool do_add_point = false) = 0;
71 virtual void TrackOn(void) = 0;
72
73 virtual void ProcessOptionsDialog(int resultFlags) = 0;
74 virtual void SetAlertString(wxString msg) = 0;
75
76 virtual void JumpToPosition(double lat, double lon) = 0;
77 virtual void JumpToPosition(double lat, double lon, double scale) = 0;
78 virtual void JumpToPosition(AbstractChartCanvas *acc, double lat, double lon,
79 double scale) = 0;
80 virtual void JumpToPosition(AbstractChartCanvas *acc, double lat,
81 double lon) = 0;
82
83 virtual double GetPixPerMM() = 0;
84 virtual double GetContentScaleFactor() = 0;
85
86 virtual void RequestNewToolbars(bool bforcenew = false) = 0;
87
88 virtual AbstractChartCanvas *GetAbstractPrimaryCanvas() = 0;
89 virtual double GetCanvasTrueScale() = 0;
90 virtual bool GetCanvasPointPix(double rlat, double rlon, wxPoint *r) = 0;
91 virtual wxSize GetFocusCanvasSize() = 0;
92 virtual void CancelAllMouseRoute() = 0;
93 virtual void InvalidateAllCanvasUndo() = 0;
94 virtual void PositionConsole() = 0;
95
96 virtual void DoStackUp(AbstractChartCanvas *cc) = 0;
97 virtual void DoStackDown(AbstractChartCanvas *cc) = 0;
98 virtual double GetBestVPScale(AbstractChart *arg) = 0;
99 virtual void LoadHarmonics() = 0;
100 virtual bool DropMarker(bool atOwnShip = true) = 0;
101
102 virtual double GetMag(double a, double lat, double lon) = 0;
103
104 virtual void SetMasterToolbarItemState(int tool_id, bool state) = 0;
105 virtual void ProcessCanvasResize() = 0;
106 virtual bool SetGlobalToolbarViz(bool viz) = 0;
107 virtual void ToggleQuiltMode(AbstractChartCanvas *cc) = 0;
108 virtual void UpdateGlobalMenuItems(AbstractChartCanvas *acc) = 0;
109 virtual void UpdateGlobalMenuItems() = 0;
110 virtual void RefreshCanvasOther(AbstractChartCanvas *ccThis) = 0;
111 virtual double *GetCOGTable() = 0;
112 virtual void StartCogTimer() = 0;
113 virtual wxGLCanvas *GetWxGlCanvas() = 0;
114 virtual wxWindow *GetPrimaryCanvasWindow() = 0;
115 virtual void ApplyGlobalSettings(bool bnewtoolbar) = 0;
116 virtual void SetMenubarItemState(int item_id, bool state) = 0;
117 virtual void ToggleColorScheme() = 0;
118 virtual void ActivateMOB() = 0;
119 virtual void ToggleTestPause() = 0;
120 virtual void ToggleChartBar(AbstractChartCanvas *acc) = 0;
121 virtual void DoSettings() = 0;
122 virtual void SwitchKBFocus(AbstractChartCanvas *pCanvas) = 0;
123 virtual void UpdateRotationState(double rotation) = 0;
124 virtual void SetChartUpdatePeriod() = 0;
125 virtual wxStatusBar *GetStatusBar() = 0;
126 virtual wxStatusBar *GetFrameStatusBar() const = 0;
127 virtual void SetENCDisplayCategory(AbstractChartCanvas *cc,
128 enum _DisCat nset) = 0;
129 virtual int GetCanvasIndexUnderMouse() = 0;
130 virtual double GetCanvasRefScale() = 0;
131 virtual void SendGlJsonConfigMsg() = 0;
132 virtual int GetNextToolbarToolId() = 0;
133 virtual void SetToolbarItemBitmaps(int tool_id, wxBitmap *bitmap,
134 wxBitmap *bmpDisabled) = 0;
135 virtual void SetToolbarItemSVG(int tool_id, wxString normalSVGfile,
136 wxString rolloverSVGfile,
137 wxString toggledSVGfile) = 0;
138 virtual void UpdateAllFonts() = 0;
139 virtual bool CanAccelerateGlPanning() = 0;
140 virtual void SetupGlCompression() = 0;
141 virtual void ScheduleReconfigAndSettingsReload(bool reload,
142 bool new_dialog) = 0;
143 virtual void ScheduleReloadCharts() = 0;
144 virtual void FreezeCharts() = 0;
145 virtual void ThawCharts() = 0;
146 virtual wxString GetGlVersionString() = 0;
147 virtual void ScheduleDeleteSettingsDialog() = 0;
148 virtual void ChartsRefresh() = 0;
149 virtual void OnToolLeftClick(wxCommandEvent &event) = 0;
150 virtual AbstractChartCanvas *GetAbstractFocusCanvas() = 0;
151 virtual void BeforeUndoableAction(UndoType undo_type, RoutePoint *point,
152 UndoBeforePointerType pointer_type,
153 UndoItemPointer pointer) = 0;
154 virtual void AfterUndoableAction(UndoItemPointer pointer) = 0;
155 virtual void TouchAISActive() = 0;
156 virtual void UpdateAISMOBRoute(const AisTargetData *ptarget) = 0;
157 virtual void ActivateAISMOBRoute(const AisTargetData *ptarget) = 0;
158};
159
160namespace top_frame {
161
162AbstractTopFrame *Get();
163
164}
165#endif // ToP_FraMe_h
Abstract Chart interface.
Minimal ChartCanvas interfaces.
AIS target definitions.
Minimal ChartCAnvas interface with very little dependencies.
Minimal Chart interface, for now just an anonymous pointer.
Represents a waypoint or mark within the navigation system.
Definition route_point.h:71
Represents a track, which is a series of connected track points.
Definition track.h:117
Platform independent GL includes.
Hooks into gui available in model.
Recorded track abstraction.
Undo features argument definitions.