33#include <wx/textctrl.h>
34#include <wx/statusbr.h>
35#include <wx/tokenzr.h>
36#include <wx/weakref.h>
62 if( statusBar && !statusBar->IsBeingDeleted() )
85 wxT(
"No wxTextCtrl object defined in WX_TEXT_CTRL_REPORTER." ) );
122 static REPORTER* s_nullReporter =
nullptr;
124 if( !s_nullReporter )
127 return *s_nullReporter;
139 FILE* target = stdout;
144 if( aMsg.EndsWith( wxS(
"\n" ) ) )
145 wxFprintf( target, aMsg );
147 wxFprintf( target, aMsg + wxS(
"\n" ) );
161 return s_cliReporter;
181 std::cout << aMsg << std::endl;
189 static REPORTER* s_stdoutReporter =
nullptr;
191 if( !s_stdoutReporter )
194 return *s_stdoutReporter;
222 static REPORTER* s_wxLogReporter =
nullptr;
225 if( !s_wxLogReporter )
228 return *s_wxLogReporter;
241 target->
Report( aMsg, aSeverity );
252 return s_loadInfoReporter;
315 kiStatusBar->SetEllipsedTextField( aText,
m_position );
324 const wxString& aSource ) :
339 if( !statusBar || aText.IsEmpty() )
342 std::vector<LOAD_MESSAGE> messages;
343 wxStringTokenizer tokenizer( aText, wxS(
"\n" ), wxTOKEN_STRTOK );
346 while( tokenizer.HasMoreTokens() )
349 message.
message = tokenizer.GetNextToken();
351 messages.emplace_back( std::move( message ) );
354 if( messages.empty() )
359 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.