32#include <wx/confbase.h>
33#include <wx/datetime.h>
34#include <wx/fileconf.h>
35#include <wx/progdlg.h>
40#include <wx/msw/regconf.h>
41#include <wx/msw/iniconf.h>
45#include "model/nav_object_database.h"
61#define GLOBAL_SETTINGS_INPUT 3
63constexpr int kMaxCogsogFilterSeconds = 60;
64constexpr int kMaxCogAverageSeconds = 60;
71bool LogMessageOnce(
const wxString &msg);
72double fromUsrSpeed(
double usr_speed,
int unit = -1);
73double fromUsrWindSpeed(
double usr_wspeed,
int unit = -1);
74double fromUsrTemp(
double usr_temp,
int unit = -1);
75wxString getUsrTempUnit();
76wxString formatAngle(
double angle);
77wxString GetLayerName(
int id);
81extern wxArrayString *pMessageOnceArray;
104wxDateTime
toUsrDateTime(
const wxDateTime ts,
const int format,
105 const double lon = INFINITY - INFINITY);
121 const double lon = INFINITY - INFINITY);
123extern void AlphaBlending(
ocpnDC &dc,
int x,
int y,
int size_x,
int size_y,
124 float radius, wxColour color,
125 unsigned char transparency);
128void DimeControl(wxWindow *ctrl);
129void DimeControl(wxWindow *ctrl, wxColour col, wxColour col1,
130 wxColour back_color, wxColour text_color, wxColour uitext,
131 wxColour udkrd, wxColour gridline);
134RoutePoint *WaypointExistsByNamePosition(
const wxString &name,
double lat,
136RoutePoint *WaypointExistsByGUID(
const wxString &guid);
137Route *RouteExists(
const wxString &guid);
139Track *TrackExists(
const wxString &guid);
140int BackupDatabase(wxWindow *parent);
141void ExportGPX(wxWindow *parent,
bool bviz_only =
false,
bool blayer =
false);
142void UI_ImportGPX(wxWindow *parent,
bool islayer =
false, wxString dirpath =
"",
143 bool isdirectory =
true,
bool isPersistent =
false);
145bool ExportGPXRoutes(wxWindow *parent, RouteList *pRoutes,
146 const wxString suggestedName =
"routes");
147bool ExportGPXTracks(wxWindow *parent, std::vector<Track *> *pRoutes,
148 const wxString suggestedName =
"tracks");
149bool ExportGPXWaypoints(wxWindow *parent, RoutePointList *pRoutePoints,
150 const wxString suggestedName =
"waypoints");
151void ImportFileArray(
const wxArrayString &file_array,
bool islayer,
152 bool isPersistent, wxString dirpath);
158 return (2.0 / 100) *
static_cast<double>(slider_pos) + 1.02;
163 return std::round((100.0 * (
static_cast<double>(value) - 1.02)) / 2.0);
170class MyConfig :
public wxFileConfig {
172 MyConfig(
const wxString &LocalFileName);
176 void LoadS57Config();
178 virtual void CreateConfigGroups(ChartGroupArray *pGroupArray);
179 virtual void DestroyConfigGroups(
void);
180 virtual void LoadConfigGroups(ChartGroupArray *pGroupArray);
182 virtual void LoadCanvasConfigs(
bool bApplyAsTemplate =
false);
183 virtual void LoadConfigCanvas(
canvasConfig *cConfig,
bool bApplyAsTemplate);
185 virtual void SaveCanvasConfigs();
188 virtual bool UpdateChartDirs(ArrayOfCDI &dirarray);
189 virtual bool LoadChartDirArray(ArrayOfCDI &ChartDirArray);
190 virtual void UpdateSettings();
192 bool LoadLayers(wxString &path);
193 int LoadMyConfigRaw(
bool bAsTemplate =
false);
196 unsigned ReadUnsigned(
const wxString &key,
unsigned default_val);
199void SwitchInlandEcdisMode(
bool Switch);
Chart canvas configuration state
Basic chart info storage.
static int config_to_ui(double value)
Convert configuration 1.02..3.0 value to slider scale 1..100.
static double ui_to_config(int slider_pos)
Convert a slider scale 1-100 value to configuration value 1.02..3.0.
Represents a waypoint or mark within the navigation system.
Represents a navigational route in the navigation system.
Represents a track, which is a series of connected track points.
Encapsulates persistent canvas configuration.
Device context class that can use either wxDC or OpenGL for drawing.
MyConfig * pConfig
Global instance.
wxDateTime toUsrDateTime(const wxDateTime ts, const int format, const double lon=INFINITY - INFINITY)
Converts a timestamp from UTC to the user's preferred time format.
wxDateTime fromUsrDateTime(const wxDateTime ts, const int format, const double lon=INFINITY - INFINITY)
Converts a timestamp from a user's preferred time format to UTC.
Navigation Utility Functions without GUI dependencies.
Layer to use wxDC or opengl.
Waypoint or mark abstraction.
A single, selected generic item.
Recorded track abstraction.