wxMaxima
Loading...
Searching...
No Matches
LogPane.h
1// -*- mode: c++; c-file-style: "linux"; c-basic-offset: 2; indent-tabs-mode: nil -*-
2//
3// Copyright (C) 2004-2015 Andrej Vodopivec <andrej.vodopivec@gmail.com>
4//
5// This program is free software; you can redistribute it and/or modify
6// it under the terms of the GNU General Public License as published by
7// the Free Software Foundation; either version 2 of the License, or
8// (at your option) any later version.
9//
10// This program is distributed in the hope that it will be useful,
11// but WITHOUT ANY WARRANTY; without even the implied warranty of
12// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13// GNU General Public License for more details.
14//
15//
16// You should have received a copy of the GNU General Public License
17// along with this program; if not, write to the Free Software
18// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19//
20// SPDX-License-Identifier: GPL-2.0+
21
22#ifndef LOGPANE_H
23#define LOGPANE_H
24
25#include "precomp.h"
26#include <wx/wx.h>
27#include <wx/panel.h>
28#include <wx/textctrl.h>
29#include "ErrorRedirector.h"
30#include "stx/optional.hpp"
31
35class LogPane : public wxPanel
36{
37public:
39 explicit LogPane(wxWindow *parent, wxWindowID id = wxID_ANY, bool becomeLogTarget = true);
45 void BecomeLogTarget();
47 void SetBatchMode() {
48 if (m_errorRedirector)
49 m_errorRedirector->SetBatchMode();
50 }
55 void DropLogTarget();
57 bool IsLogTarget() const {return m_logPanelTarget.has_value();}
59 ~LogPane();
60
61private:
63 wxTextCtrl *m_textCtrl;
65 stx::optional<wxLogTextCtrl> m_logPanelTarget;
67 stx::optional<ErrorRedirector> m_errorRedirector;
68#if wxUSE_STD_IOSTREAM
69 stx::optional<wxStreamToTextRedirector> m_textRedirector;
70#endif
71};
72
73#endif // LOGPANE_H
This file defines the class ErrorRedirector that redirects wx Errors to a dialogue.
A "debug messages" sidepane.
Definition: LogPane.h:36
void DropLogTarget()
Stop receiving log messages.
Definition: LogPane.cpp:48
void BecomeLogTarget()
Causes this log pane to receive all log messages from wxWidgets.
Definition: LogPane.cpp:56
bool IsLogTarget() const
True, if this is the log panel that receives all log messages.
Definition: LogPane.h:57
void SetBatchMode()
Causes log messages to be output to stderr, as well.
Definition: LogPane.h:47
~LogPane()
The destructor.
Definition: LogPane.cpp:66