#include "wx/textfile.h"
#include "wx/statline.h"
+#if wxUSE_LOG
+
#ifdef __WXMSW__
// for OutputDebugString()
#include "wx/msw/private.h"
#define wxUSE_LOG_DIALOG 1
#if wxUSE_LOG_DIALOG
- #include "wx/datetime.h"
#include "wx/listctrl.h"
#include "wx/imaglist.h"
#include "wx/image.h"
#if wxUSE_LOG_DIALOG
+// this function is a wrapper around strftime(3)
+// allows to exclude the usage of wxDateTime
+static wxString TimeStamp(const wxChar *format, time_t t)
+{
+ wxChar buf[4096];
+ if ( !wxStrftime(buf, WXSIZEOF(buf), format, localtime(&t)) )
+ {
+ // buffer is too small?
+ wxFAIL_MSG(_T("strftime() failed"));
+ }
+ return wxString(buf);
+}
+
+
class wxLogDialog : public wxDialog
{
public:
{
wxString msg;
TimeStamp(&msg);
+#ifdef __WXMAC__
+ msg << szString << wxT('\r');
+#else
msg << szString << wxT('\n');
+#endif
m_pTextCtrl->AppendText(msg);
}
// debug window anyhow, but do put a timestamp
wxString str;
TimeStamp(&str);
- str << szString << wxT("\n\r");
+ str << szString << wxT("\r\n");
OutputDebugString(str);
#else
// send them to stderr
m_listctrl->InsertItem(n, m_messages[n]);
m_listctrl->SetItem(n, 1,
- wxDateTime((time_t)m_times[n]).Format(fmt));
+ TimeStamp(fmt, (time_t)m_times[n]));
}
// let the columns size themselves
for ( size_t n = 0; ok && (n < count); n++ )
{
wxString line;
- line << wxDateTime((time_t)m_times[n]).Format(fmt)
+ line << TimeStamp(fmt, (time_t)m_times[n])
<< _T(": ")
<< m_messages[n]
<< wxTextFile::GetEOL();
#endif // wxUSE_FILE
+#endif // wxUSE_LOG