OpenCPN Partial API docs
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 
36 static bool ConfirmOverwrite() {
37  int r = OCPNMessageBox(NULL, _("Overwrite Garmin device route number 1?"),
38  _("OpenCPN Message"),
39  wxOK | wxCANCEL | wxICON_QUESTION);
40  return r == wxID_OK;
41 }
42 
43 
44 static N0183DlgCtx GetDialogCtx(SendToGpsDlg* dialog) {
45  N0183DlgCtx dlg_ctx;
46  dlg_ctx.set_value = [dialog](int v) {
47  if (!dialog || !dialog->GetProgressGauge()) return;
48  dialog->GetProgressGauge()->SetValue(v);
49  dialog->GetProgressGauge()->Refresh();
50  dialog->GetProgressGauge()->Update();
51  };
52  dlg_ctx.set_range = [dialog](int r) {
53  if (!dialog || !dialog->GetProgressGauge()) return;
54  dialog->GetProgressGauge()->SetRange(r); };
55  dlg_ctx.pulse = [dialog](void) {
56  if (!dialog || !dialog->GetProgressGauge()) return;
57  dialog->GetProgressGauge()->Pulse(); };
58  dlg_ctx.set_message =
59  [dialog](const std::string& s) { dialog->SetMessage(wxString(s)); };
60  dlg_ctx.confirm_overwrite = []() { return ConfirmOverwrite(); };
61  return dlg_ctx;
62 }
63 
64 #endif // _N0183_DLG_CTX_FACTORY_H__
Route "Send to GPS..." Dialog Definition.
Definition: SendToGpsDlg.h:51
General purpose GUI support.