X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c86f1403c3737c07d58676a203f4707942684a01..dcf40a56e7b09fc5472edc1d4471e7954c0da40d:/src/common/log.cpp diff --git a/src/common/log.cpp b/src/common/log.cpp index 5c9e5f3386..66cc2c1d0c 100644 --- a/src/common/log.cpp +++ b/src/common/log.cpp @@ -140,7 +140,7 @@ void wxLogStatus(wxFrame *pFrame, const char *szFormat, ...) wxASSERT( gs_pFrame == NULL ); // should be reset! gs_pFrame = pFrame; wxLog::OnLog(wxLOG_Status, s_szBuf); - gs_pFrame = NULL; + gs_pFrame = (wxFrame *) NULL; } } @@ -265,11 +265,12 @@ wxLog *wxLog::GetActiveTarget() return ms_pLogger; } -wxLog *wxLog::SetActiveTarget(wxLog *pLogger) +wxLog *wxLog::SetActiveTarget(wxLog *pLogger, bool bNoFlashOld) { // flush the old messages before changing - if ( ms_pLogger != NULL ) + if ( (ms_pLogger != NULL) && !bNoFlashOld ) { ms_pLogger->Flush(); + } wxLog *pOldLogger = ms_pLogger; ms_pLogger = pLogger; @@ -423,7 +424,7 @@ void wxLogGui::Flush() // do it right now to block any new calls to Flush() while we're here m_bHasMessages = FALSE; - + // @@@ ugly... // concatenate all strings (but not too many to not overfill the msg box) @@ -633,7 +634,7 @@ void wxLogFrame::OnSave(wxCommandEvent& WXUNUSED(event)) // open file // --------- wxFile file; - bool bOk = FALSE; + bool bOk = FALSE; if ( wxFile::Exists(szFileName) ) { bool bAppend = FALSE; wxString strMsg; @@ -723,7 +724,7 @@ void wxLogWindow::Flush() if ( m_pOldLog != NULL ) m_pOldLog->Flush(); - m_bHasMessages = FALSE; + m_bHasMessages = FALSE; } void wxLogWindow::DoLog(wxLogLevel level, const char *szString) @@ -737,13 +738,29 @@ void wxLogWindow::DoLog(wxLogLevel level, const char *szString) ((wxLogWindow *)m_pOldLog)->DoLog(level, szString); } - // don't put trace messages in the text window for 2 reasons: - // 1) there are too many of them - // 2) they may provoke other trace messages thus sending a program into an - // infinite loop - if ( m_pLogFrame && level != wxLOG_Trace ) { - // and this will format it nicely and call our DoLogString() - wxLog::DoLog(level, szString); + if ( m_pLogFrame ) { + switch ( level ) { + case wxLOG_Status: + // by default, these messages are ignored by wxLog, so process + // them ourselves + { + wxString str = TimeStamp(); + str << _("Status: ") << szString; + DoLogString(str); + } + break; + + // don't put trace messages in the text window for 2 reasons: + // 1) there are too many of them + // 2) they may provoke other trace messages thus sending a program + // into an infinite loop + case wxLOG_Trace: + break; + + default: + // and this will format it nicely and call our DoLogString() + wxLog::DoLog(level, szString); + } } m_bHasMessages = TRUE; @@ -772,13 +789,13 @@ wxFrame *wxLogWindow::GetFrame() const return m_pLogFrame; } -void wxLogWindow::OnFrameCreate(wxFrame *frame) +void wxLogWindow::OnFrameCreate(wxFrame *WXUNUSED(frame)) { } -void wxLogWindow::OnFrameDelete(wxFrame *frame) +void wxLogWindow::OnFrameDelete(wxFrame *WXUNUSED(frame)) { - m_pLogFrame = NULL; + m_pLogFrame = (wxLogFrame *) NULL; } wxLogWindow::~wxLogWindow() @@ -796,7 +813,7 @@ wxLogWindow::~wxLogWindow() // ---------------------------------------------------------------------------- // static variables // ---------------------------------------------------------------------------- -wxLog *wxLog::ms_pLogger = NULL; +wxLog *wxLog::ms_pLogger = (wxLog *) NULL; bool wxLog::ms_bAutoCreate = TRUE; wxTraceMask wxLog::ms_ulTraceMask = (wxTraceMask)0;