37#include <wx/textctrl.h>
38#include <wx/statusbr.h>
39#include <wx/tokenzr.h>
40#include <wx/weakref.h>
66 if( statusBar && !statusBar->IsBeingDeleted() )
89 wxT(
"No wxTextCtrl object defined in WX_TEXT_CTRL_REPORTER." ) );
126 static REPORTER* s_nullReporter =
nullptr;
128 if( !s_nullReporter )
131 return *s_nullReporter;
143 FILE* target = stdout;
148 if( aMsg.EndsWith( wxS(
"\n" ) ) )
149 wxFprintf( target, aMsg );
151 wxFprintf( target, aMsg + wxS(
"\n" ) );
165 return s_cliReporter;
185 std::cout << aMsg << std::endl;
193 static REPORTER* s_stdoutReporter =
nullptr;
195 if( !s_stdoutReporter )
198 return *s_stdoutReporter;
224 static REPORTER* s_wxLogReporter =
nullptr;
227 if( !s_wxLogReporter )
230 return *s_wxLogReporter;
243 target->
Report( aMsg, aSeverity );
254 return s_loadInfoReporter;
322 const wxString& aSource ) :
337 if( !statusBar || aText.IsEmpty() )
340 std::vector<LOAD_MESSAGE> messages;
341 wxStringTokenizer tokenizer( aText, wxS(
"\n" ), wxTOKEN_STRTOK );
344 while( tokenizer.HasMoreTokens() )
347 message.
message = tokenizer.GetNextToken();
349 messages.emplace_back( std::move( message ) );
352 if( messages.empty() )
357 messages.emplace_back( std::move( message ) );
REPORTER & Report(const wxString &aMsg, SEVERITY aSeverity=RPT_SEVERITY_UNDEFINED) override
Report a string with a given severity.
static CLI_REPORTER & GetInstance()
~FONTCONFIG_REPORTER_SCOPE()
FONTCONFIG_REPORTER_SCOPE(REPORTER *aReporter)
REPORTER * m_previousReporter
void AddWarningMessages(const wxString &aSource, const wxString &aMessages)
Add warning/error messages (not thread-safe, use the std::vector<LOAD_MESSAGE> variant from other thr...
LOAD_INFO_REPORTER_SCOPE(REPORTER *aReporter)
~LOAD_INFO_REPORTER_SCOPE()
LOAD_INFO_REPORTER & m_reporter
REPORTER * m_previousReporter
REPORTER * GetRedirectTarget() const
REPORTER * m_redirectTarget
static LOAD_INFO_REPORTER & GetInstance()
void SetRedirectTarget(REPORTER *aReporter)
REPORTER & Report(const wxString &aMsg, SEVERITY aSeverity=RPT_SEVERITY_UNDEFINED) override
Report a string with a given severity.
static REPORTER & GetInstance()
REPORTER & Report(const wxString &aText, SEVERITY aSeverity=RPT_SEVERITY_UNDEFINED) override
Report a string with a given severity.
REPORTER * m_redirectTarget
REPORTER & Report(const wxString &aMsg, SEVERITY aSeverity=RPT_SEVERITY_UNDEFINED) override
Report a string with a given severity.
A pure virtual class used to derive REPORTER objects from.
virtual REPORTER & Report(const wxString &aText, SEVERITY aSeverity=RPT_SEVERITY_UNDEFINED)
Report a string with a given severity.
REPORTER & Report(const wxString &aText, SEVERITY aSeverity=RPT_SEVERITY_UNDEFINED) override
Report a string with a given severity.
wxStatusBar * m_statusBar
wxWeakRef< KISTATUSBAR > m_statusBar
KISTATUSBAR * GetStatusBar() const
STATUSBAR_WARNING_REPORTER_IMPL(KISTATUSBAR *aStatusBar, const wxString &aSource)
STATUSBAR_WARNING_REPORTER(KISTATUSBAR *aStatusBar, const wxString &aSource)
~STATUSBAR_WARNING_REPORTER() override
REPORTER & Report(const wxString &aText, SEVERITY aSeverity=RPT_SEVERITY_UNDEFINED) override
Report a string with a given severity.
std::shared_ptr< STATUSBAR_WARNING_REPORTER_IMPL > m_impl
REPORTER & Report(const wxString &aMsg, SEVERITY aSeverity=RPT_SEVERITY_UNDEFINED) override
Report a string with a given severity.
static REPORTER & GetInstance()
REPORTER & Report(const wxString &aMsg, SEVERITY aSeverity=RPT_SEVERITY_UNDEFINED) override
Report a string with a given severity.
static REPORTER & GetInstance()
REPORTER & Report(const wxString &aText, SEVERITY aSeverity=RPT_SEVERITY_UNDEFINED) override
Report a string with a given severity.
const wxString & GetMessages() const
REPORTER & Report(const wxString &aText, SEVERITY aSeverity=RPT_SEVERITY_UNDEFINED) override
Report a string with a given severity.
static void SetReporter(REPORTER *aReporter)
Set the reporter to use for reporting font substitution warnings.
static const wxChar traceReporter[]
Flag to enable reporter debugging output.
This file contains miscellaneous commonly used macros and functions.
static std::mutex g_logReporterMutex
wxString From_UTF8(const char *cstring)
KISTATUSBAR is a wxStatusBar suitable for Kicad manager.