OpenCPN Partial API docs
Loading...
Searching...
No Matches
comm_overflow_dlg.cpp
Go to the documentation of this file.
1/***************************************************************************
2 * Copyright (C) 2024 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, write to the *
16 * Free Software Foundation, Inc., *
17 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
18 **************************************************************************/
19
25#include <cassert>
26
27#include <wx/window.h>
28
29#include "comm_overflow_dlg.h"
30#include "gui_lib.h"
31
33
34static const char* const kMessage =
35 _(R"---(Communication overflow detected, the system is not able to process
36all input. This is not fatal, system will continue to work but
37will have to discard some input data.
38
39It is possible to control the data discarded using filtering,
40see the manual.
41
42Please review the logfile for more info on discarded messages.
43)---");
44
45static const char* const kCaption = _("Communication overflow");
46
47CommOverflowDlg::CommOverflowDlg(wxWindow* parent) : m_parent(parent) {
48 assert(parent && "Null parent window");
49 auto action = [&](ObservedEvt& evt) {
50 ShowDialog(evt.GetString().ToStdString());
51 };
52 m_listener.Init(CommDriverRegistry::GetInstance().evt_comm_overrun, action);
53}
54
55void CommOverflowDlg::ShowDialog(const std::string& msg) {
56 OCPNMessageBox(m_parent, kMessage, kCaption, wxICON_INFORMATION);
57}
Adds a std::shared<void> element to wxCommandEvent.
Driver registration container, a singleton.
Popup dialog on communication overflows.
General purpose GUI support.