// headers
// ----------------------------------------------------------------------------
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
- #pragma implementation "logg.h"
-#endif
-
// For compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"
#ifdef __BORLANDC__
- #pragma hdrstop
+ #pragma hdrstop
#endif
#ifndef WX_PRECOMP
#include "wx/textctrl.h"
#include "wx/sizer.h"
#include "wx/statbmp.h"
- #include "wx/button.h"
#include "wx/settings.h"
#endif // WX_PRECOMP
#include "wx/artprov.h"
#ifdef __WXMSW__
- // for OutputDebugString()
- #include "wx/msw/private.h"
+ // for OutputDebugString()
+ #include "wx/msw/private.h"
#endif // Windows
#ifdef __WXPM__
- #include <time.h>
+ #include <time.h>
#endif
#if wxUSE_LOG_DIALOG
#include "wx/listctrl.h"
#include "wx/imaglist.h"
#include "wx/image.h"
-#else // !wxUSE_LOG_DIALOG
- #include "wx/msgdlg.h"
#endif // wxUSE_LOG_DIALOG/!wxUSE_LOG_DIALOG
#if defined(__MWERKS__) && wxUSE_UNICODE
// allows to exclude the usage of wxDateTime
static wxString TimeStamp(const wxChar *format, time_t t)
{
-#ifdef __WXWINCE__
- // FIXME
- return wxEmptyString;
-#else
+#if wxUSE_DATETIME
wxChar buf[4096];
- if ( !wxStrftime(buf, WXSIZEOF(buf), format, localtime(&t)) )
+ struct tm tm;
+ if ( !wxStrftime(buf, WXSIZEOF(buf), format, wxLocaltime_r(&t, &tm)) )
{
// buffer is too small?
wxFAIL_MSG(_T("strftime() failed"));
}
return wxString(buf);
-#endif
+#else // !wxUSE_DATETIME
+ return wxEmptyString;
+#endif // wxUSE_DATETIME/!wxUSE_DATETIME
}
// do it right now to block any new calls to Flush() while we're here
m_bHasMessages = false;
+ unsigned repeatCount = 0;
+ if ( wxLog::GetRepetitionCounting() )
+ {
+ repeatCount = wxLog::DoLogNumberOfRepeats();
+ }
+
wxString appName = wxTheApp->GetAppName();
if ( !appName.empty() )
appName[0u] = (wxChar)wxToupper(appName[0u]);
{
#if wxUSE_LOG_DIALOG
+ if ( repeatCount > 0 )
+ m_aMessages[nMsgCount-1] += wxString::Format(wxT(" (%s)"), m_aMessages[nMsgCount-2].c_str());
wxLogDialog dlg(NULL,
m_aMessages, m_aSeverity, m_aTimes,
title, style);
// wxLogWindow and wxLogFrame implementation
// ----------------------------------------------------------------------------
+#if wxUSE_LOGWINDOW
+
// log frame class
// ---------------
class wxLogFrame : public wxFrame
delete m_pLogFrame;
}
+#endif // wxUSE_LOGWINDOW
+
// ----------------------------------------------------------------------------
// wxLogDialog
// ----------------------------------------------------------------------------
switch ( style & wxICON_MASK )
{
case wxICON_ERROR:
- bitmap = wxArtProvider::GetIcon(wxART_ERROR, wxART_MESSAGE_BOX);
+ bitmap = wxArtProvider::GetBitmap(wxART_ERROR, wxART_MESSAGE_BOX);
#ifdef __WXPM__
bitmap.SetId(wxICON_SMALL_ERROR);
#endif
break;
case wxICON_INFORMATION:
- bitmap = wxArtProvider::GetIcon(wxART_INFORMATION, wxART_MESSAGE_BOX);
+ bitmap = wxArtProvider::GetBitmap(wxART_INFORMATION, wxART_MESSAGE_BOX);
#ifdef __WXPM__
bitmap.SetId(wxICON_SMALL_INFO);
#endif
break;
case wxICON_WARNING:
- bitmap = wxArtProvider::GetIcon(wxART_WARNING, wxART_MESSAGE_BOX);
+ bitmap = wxArtProvider::GetBitmap(wxART_WARNING, wxART_MESSAGE_BOX);
#ifdef __WXPM__
bitmap.SetId(wxICON_SMALL_WARNING);
#endif
if ( !fmt )
{
// default format
- fmt = wxDefaultDateTimeFormat;
+ fmt = _T("%c");
}
size_t count = m_messages.GetCount();
if ( !fmt )
{
// default format
- fmt = wxDefaultDateTimeFormat;
+ fmt = _T("%c");
}
size_t count = m_messages.GetCount();
SetSize(wxDefaultCoord, size.y);
#ifdef __WXGTK__
- // VS: this is neccessary in order to force frame redraw under
+ // VS: this is necessary in order to force frame redraw under
// WindowMaker or fvwm2 (and probably other broken WMs).
// Otherwise, detailed list wouldn't be displayed.
Show();
// open file
// ---------
- bool bOk;
+ bool bOk wxDUMMY_INITIALIZE(false);
if ( wxFile::Exists(filename) ) {
bool bAppend = false;
wxString strMsg;
}
#endif // wxUSE_LOG && wxUSE_TEXTCTRL
-