]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/log.h
Fixed Fontdialog
[wxWidgets.git] / include / wx / log.h
index b5e608b77bd83e2af3a65aecfbe2e1f6ff47d68e..eba734fa24f97510c8518b3550923e55d560297e 100644 (file)
@@ -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
 
@@ -196,7 +196,7 @@ class wxLogFrame;
 class WXDLLEXPORT wxLogWindow : public wxLog
 {
 public:
-  wxLogWindow(const wxTString& strTitle, bool bShow = TRUE);
+  wxLogWindow(const char *szTitle, bool bShow = TRUE);
   ~wxLogWindow();
   
   // show/hide the log window
@@ -254,16 +254,13 @@ private:
 // define wxLog<level>
 // -------------------
 
-// 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);
@@ -280,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
 
 
@@ -321,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__