- if ( m_pOldLog != NULL )
- m_pOldLog->Flush();
-
- m_bHasMessages = FALSE;
-}
-
-void wxLogWindow::DoLog(wxLogLevel level, const wxChar *szString, time_t t)
-{
- // first let the previous logger show it
- if ( m_pOldLog != NULL && m_bPassMessages ) {
- // bogus cast just to access protected DoLog
- ((wxLogWindow *)m_pOldLog)->DoLog(level, szString, t);
- }
-
- if ( m_pLogFrame ) {
- switch ( level ) {
- case wxLOG_Status:
- // by default, these messages are ignored by wxLog, so process
- // them ourselves
- if ( !wxIsEmpty(szString) )
- {
- wxString str;
- str << _("Status: ") << szString;
- DoLogString(str, t);
- }
- 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, t);
- }
- }
-
- m_bHasMessages = TRUE;
-}
-
-void wxLogWindow::DoLogString(const wxChar *szString, time_t WXUNUSED(t))
-{
- // put the text into our window
- wxTextCtrl *pText = m_pLogFrame->TextCtrl();
-
- // remove selection (WriteText is in fact ReplaceSelection)
-#ifdef __WXMSW__
- long nLen = pText->GetLastPosition();
- pText->SetSelection(nLen, nLen);
-#endif // Windows
-
- wxString msg;
- TimeStamp(&msg);
- msg << szString << wxT('\n');