wxASSERT( gs_pFrame == NULL ); // should be reset!
gs_pFrame = pFrame;
wxLog::OnLog(wxLOG_Status, s_szBuf);
- gs_pFrame = NULL;
+ gs_pFrame = (wxFrame *) NULL;
}
}
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;
// 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)
wxString str;
- uint nLines = 0,
+ size_t nLines = 0,
nMsgCount = m_aMessages.Count();
// start from the most recent message
- for ( uint n = nMsgCount; n > 0; n-- ) {
+ for ( size_t n = nMsgCount; n > 0; n-- ) {
// for Windows strings longer than this value are wrapped (NT 4.0)
- const uint nMsgLineWidth = 156;
+ const size_t nMsgLineWidth = 156;
nLines += (m_aMessages[n - 1].Len() + nMsgLineWidth - 1) / nMsgLineWidth;
// open file
// ---------
wxFile file;
- bool bOk = FALSE;
+ bool bOk = FALSE;
if ( wxFile::Exists(szFileName) ) {
bool bAppend = FALSE;
wxString strMsg;
if ( m_pOldLog != NULL )
m_pOldLog->Flush();
- m_bHasMessages = FALSE;
+ m_bHasMessages = FALSE;
}
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;
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()
// ----------------------------------------------------------------------------
// static variables
// ----------------------------------------------------------------------------
-wxLog *wxLog::ms_pLogger = NULL;
+wxLog *wxLog::ms_pLogger = (wxLog *) NULL;
bool wxLog::ms_bAutoCreate = TRUE;
wxTraceMask wxLog::ms_ulTraceMask = (wxTraceMask)0;