OpenCPN Partial API docs
Loading...
Searching...
No Matches
n0183_ctx_factory.h
1/***************************************************************************
2 *
3 * Project: OpenCPN
4 * Purpose: Wrapper for creating a N0183DlgCtx based on global vars
5 * Author: Alec Leamas
6 *
7 ***************************************************************************
8 * Copyright (C) 2023 by Alec Leamas
9 * *
10 * This program is free software; you can redistribute it and/or modify *
11 * it under the terms of the GNU General Public License as published by *
12 * the Free Software Foundation; either version 2 of the License, or *
13 * (at your option) any later version. *
14 * *
15 * This program is distributed in the hope that it will be useful, *
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
18 * GNU General Public License for more details. *
19 * *
20 * You should have received a copy of the GNU General Public License *
21 * along with this program; if not, write to the *
22 * Free Software Foundation, Inc., *
23 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
24 **************************************************************************/
25#ifndef _N0183_DLG_CTX_FACTORY_H__
26#define _N0183_DLG_CTX_FACTORY_H__
27
28#include <string>
29
30#include <wx/string.h>
31
32#include "gui_lib.h"
33#include "SendToGpsDlg.h"
34#include "model/comm_n0183_output.h"
35
36static bool ConfirmOverwrite() {
37 int r =
38 OCPNMessageBox(NULL, _("Overwrite Garmin device route number 1?"),
39 _("OpenCPN Message"), wxOK | wxCANCEL | wxICON_QUESTION);
40 return r == wxID_OK;
41}
42
43static N0183DlgCtx GetDialogCtx(SendToGpsDlg* dialog) {
44 N0183DlgCtx dlg_ctx;
45 dlg_ctx.set_value = [dialog](int v) {
46 if (!dialog || !dialog->GetProgressGauge()) return;
47 dialog->GetProgressGauge()->SetValue(v);
48 dialog->GetProgressGauge()->Refresh();
49 dialog->GetProgressGauge()->Update();
50 };
51 dlg_ctx.set_range = [dialog](int r) {
52 if (!dialog || !dialog->GetProgressGauge()) return;
53 dialog->GetProgressGauge()->SetRange(r);
54 };
55 dlg_ctx.pulse = [dialog](void) {
56 if (!dialog || !dialog->GetProgressGauge()) return;
57 dialog->GetProgressGauge()->Pulse();
58 };
59 dlg_ctx.set_message = [dialog](const std::string& s) {
60 dialog->SetMessage(wxString(s));
61 };
62 dlg_ctx.confirm_overwrite = []() { return ConfirmOverwrite(); };
63 return dlg_ctx;
64}
65
66#endif // _N0183_DLG_CTX_FACTORY_H__
Dialog for sending routes/waypoints to a GPS device.
General purpose GUI support.