// Created: 29/01/98
// RCS-ID: $Id$
// Copyright: (c) 1998 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
-// Licence: wxWindows license
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifndef _WX_LOG_H_
wxLOG_Trace, // trace messages are also only enabled in debug mode
wxLOG_Progress, // used for progress indicator (not yet)
wxLOG_User = 100, // user defined levels start here
- wxLOG_Max = UINT_MAX
+ wxLOG_Max = 10000
};
// symbolic trace masks - wxLogTrace("foo", "some trace message...") will be
#define wxTraceOleCalls 0x0100 // OLE interface calls
#endif
-#include "wx/ioswrap.h"
+#include "wx/iosfwrap.h"
// ----------------------------------------------------------------------------
// derive from this class to redirect (or suppress, or ...) log messages
// and iostream logs don't need it, but wxGuiLog does to avoid showing
// 17 modal dialogs one after another)
virtual void Flush();
- // call to Flush() may be optimized: call it only if this function
- // returns true (although Flush() also returns immediately if there is
- // no messages, this functions is more efficient because inline)
- bool HasPendingMessages() const { return m_bHasMessages; }
- // only one sink is active at each moment
// flush the active target if any
static void FlushActive()
{
if ( !ms_suspendCount )
{
wxLog *log = GetActiveTarget();
- if ( log && log->HasPendingMessages() )
+ if ( log )
log->Flush();
}
}
+
+ // only one sink is active at each moment
// get current log target, will call wxApp::CreateLogTarget() to
// create one if none exists
static wxLog *GetActiveTarget();
// make dtor virtual for all derived classes
virtual ~wxLog() { }
-protected:
- bool m_bHasMessages; // any messages in the queue?
+ // this method exists for backwards compatibility only, don't use
+ bool HasPendingMessages() const { return TRUE; }
+
+protected:
// the logging functions that can be overriden
// default DoLog() prepends the time stamp and a prefix corresponding
// to the message to szString and then passes it to DoLogString()
// do we pass the messages to the old logger?
bool m_bPassMessages;
+
+ DECLARE_NO_COPY_CLASS(wxLogChain)
};
// a chain log target which uses itself as the new logger
// the control we use
wxTextCtrl *m_pTextCtrl;
+
+ DECLARE_NO_COPY_CLASS(wxLogTextCtrl)
};
#endif // wxUSE_TEXTCTRL
wxArrayInt m_aSeverity; // one of wxLOG_XXX values
wxArrayLong m_aTimes; // the time of each message
bool m_bErrors, // do we have any errors?
- m_bWarnings; // any warnings?
+ m_bWarnings, // any warnings?
+ m_bHasMessages; // any messages at all?
+
};
#endif // wxUSE_LOGGUI
private:
wxLogFrame *m_pLogFrame; // the log frame
+
+ DECLARE_NO_COPY_CLASS(wxLogWindow)
};
#endif // wxUSE_LOGWINDOW
va_list argptr) {} \
inline void WXDLLEXPORT wxLog##level(arg1, const wxChar *szFormat, ...) {}
+// Empty Class to fake wxLogNull
+class WXDLLEXPORT wxLogNull
+{
+public:
+ wxLogNull() {}
+};
+
+// Dummy macros to replace some functions.
+#define wxSysErrorCode() (unsigned long)0
+#define wxSysErrorMsg( X ) (const wxChar*)NULL
+
+// Fake symbolic trace masks... for those that are used frequently
+#define wxTRACE_OleCalls wxT("") // OLE interface calls
+
#endif // wxUSE_LOG/!wxUSE_LOG
// a generic function for all levels (level is passes as parameter)
#endif // _WX_LOG_H_
-// vi:sts=4:sw=4:et