X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/cdb7168d80d58c0f608b97f323518ebbf7a4bada..527fc629c8c7d6eaf06d69ef9c3b3f702214b722:/include/wx/log.h diff --git a/include/wx/log.h b/include/wx/log.h index 6934ffedf7..eba734fa24 100644 --- a/include/wx/log.h +++ b/include/wx/log.h @@ -13,8 +13,8 @@ #define __LOGH__ #ifdef __GNUG__ - #pragma interface -#endif //GNU C++ +#pragma interface "log.h" +#endif // ---------------------------------------------------------------------------- // constants @@ -42,7 +42,7 @@ enum #define wxTraceResAlloc 0x0004 // trace GDI resource allocation #define wxTraceRefCount 0x0008 // trace various ref counting operations -#ifdef __WINDOWS__ +#ifdef __WXMSW__ #define wxTraceOleCalls 0x0100 // OLE interface calls #endif @@ -50,7 +50,6 @@ typedef unsigned long wxTraceMask; typedef unsigned long wxLogLevel; // ---------------------------------------------------------------------------- ->>>>>>> 1.2 // derive from this class to redirect (or suppress, or ...) log messages // normally, only a single instance of this class exists but it's not enforced // ---------------------------------------------------------------------------- @@ -197,12 +196,15 @@ class wxLogFrame; class WXDLLEXPORT wxLogWindow : public wxLog { public: - wxLogWindow(const wxTString& strTitle); + wxLogWindow(const char *szTitle, bool bShow = TRUE); ~wxLogWindow(); // show/hide the log window void Show(bool bShow = TRUE); + // accessors + wxLog *GetOldLog() const { return m_pOldLog; } + protected: virtual void DoLog(wxLogLevel level, const char *szString); virtual void DoLogString(const char *szString); @@ -252,16 +254,13 @@ private: // define wxLog // ------------------- -// NB: all these functions take `wxTString' and not -// `const wxTString&' because according to C++ standard -// the first argument to a vararg function can not be -// an array, function or reference :-( - -// the most generic log function -void WXDLLEXPORT wxLogGeneric(wxLogLevel level, wxTString strFormat, ...); - #define DECLARE_LOG_FUNCTION(level) \ - extern void WXDLLEXPORT wxLog##level(wxTString strFormat, ...) + extern void WXDLLEXPORT wxLog##level(const char *szFormat, ...) +#define DECLARE_LOG_FUNCTION2(level, arg1) \ + extern void WXDLLEXPORT wxLog##level(arg1, const char *szFormat, ...) + +// a generic function for all levels (level is passes as parameter) +DECLARE_LOG_FUNCTION2(Generic, wxLogLevel level); // one function per each level DECLARE_LOG_FUNCTION(FatalError); @@ -278,22 +277,22 @@ DECLARE_LOG_FUNCTION(SysError); // and another one which also takes the error code (for those broken APIs // that don't set the errno (like registry APIs in Win32)) -void WXDLLEXPORT wxLogSysError(long lErrCode, wxTString strFormat, ...); +DECLARE_LOG_FUNCTION2(SysError, long lErrCode); // debug functions do nothing in release mode -#ifdef __DEBUG__ - // NB: debug functions don't translate their arguments - extern void WXDLLEXPORT wxLogDebug(const char *szFormat, ...); +#ifdef __WXDEBUG__ + DECLARE_LOG_FUNCTION(Debug); // first king of LogTrace is uncoditional: it doesn't check the level, // while the second one does nothing if all of level bits are not set // in wxLog::GetActive()->GetTraceMask(). - extern void WXDLLEXPORT wxLogTrace(const char *szFormat, ...); - extern void WXDLLEXPORT wxLogTrace(wxTraceMask mask, - const char *szFormat, ...); + DECLARE_LOG_FUNCTION(Trace); + DECLARE_LOG_FUNCTION2(Trace, wxTraceMask mask); #else //!debug - #define wxLogDebug - #define wxLogTrace + // these functions do nothing + inline void wxLogDebug(const char *, ...) { } + inline void wxLogTrace(const char *, ...) { } + inline void wxLogTrace(wxTraceMask, const char *, ...) { } #endif @@ -319,15 +318,15 @@ const char* WXDLLEXPORT wxSysErrorMsg(unsigned long nErrCode = 0); // debug only logging functions: use them with API name and error code // ---------------------------------------------------------------------------- -#ifdef __DEBUG__ +#ifdef __WXDEBUG__ #define wxLogApiError(api, rc) \ wxLogDebug("At %s(%d) '%s' failed with error %lx (%s).", \ __FILE__, __LINE__, api, \ rc, wxSysErrorMsg(rc)) #define wxLogLastError(api) wxLogApiError(api, wxSysErrorCode()) #else //!debug - #define wxLogApiError(api, rc) - #define wxLogLastError(api) + inline void wxLogApiError(const char *, long) { } + inline void wxLogLastError(const char *) { } #endif //debug/!debug #endif //__LOGH__