]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/log.h
Bitmap button updates
[wxWidgets.git] / include / wx / log.h
index f505a1623708218c6c1d10c674570fd2b54168b5..a93daa1585f73db4a8b3b317a083dd720fcedb1c 100644 (file)
@@ -12,7 +12,7 @@
 #ifndef   _WX_LOG_H_
 #define   _WX_LOG_H_
 
-#ifdef  __GNUG__
+#if defined(__GNUG__) && !defined(__APPLE__)
     #pragma interface "log.h"
 #endif
 
@@ -177,6 +177,8 @@ public:
     static void RemoveTraceMask(const wxString& str);
         // remove all string trace masks
     static void ClearTraceMasks();
+       // get string trace masks
+    static const wxArrayString &GetTraceMasks() { return ms_aTraceMasks; }
 
         // sets the timestamp string: this is used as strftime() format string
         // for the log targets which add time stamps to the messages - set it
@@ -241,7 +243,7 @@ private:
 class WXDLLEXPORT wxLogStderr : public wxLog
 {
     DECLARE_NO_COPY_CLASS(wxLogStderr)
-        
+
 public:
     // redirect log output to a FILE
     wxLogStderr(FILE *fp = (FILE *) NULL);
@@ -476,20 +478,24 @@ private:
 
 // return the last system error code
 WXDLLEXPORT unsigned long wxSysErrorCode();
+
 // return the error message for given (or last if 0) error code
 WXDLLEXPORT const wxChar* wxSysErrorMsg(unsigned long nErrCode = 0);
 
+// ----------------------------------------------------------------------------
 // define wxLog<level>
-// -------------------
+// ----------------------------------------------------------------------------
 
 #define DECLARE_LOG_FUNCTION(level)                                 \
 extern void WXDLLEXPORT wxVLog##level(const wxChar *szFormat,       \
                                       va_list argptr);              \
-extern void WXDLLEXPORT wxLog##level(const wxChar *szFormat, ...)
+extern void WXDLLEXPORT wxLog##level(const wxChar *szFormat,        \
+                                     ...) ATTRIBUTE_PRINTF_1
 #define DECLARE_LOG_FUNCTION2(level, arg1)                          \
 extern void WXDLLEXPORT wxVLog##level(arg1, const wxChar *szFormat, \
                                       va_list argptr);              \
-extern void WXDLLEXPORT wxLog##level(arg1, const wxChar *szFormat, ...)
+extern void WXDLLEXPORT wxLog##level(arg1, const wxChar *szFormat,  \
+                                     ...) ATTRIBUTE_PRINTF_2
 
 #else // !wxUSE_LOG
 
@@ -559,6 +565,10 @@ DECLARE_LOG_FUNCTION2(SysError, long lErrCode);
     inline void wxLogTrace(const wxChar *, const wxChar *, ...) { }
 #endif // debug/!debug
 
+// wxLogFatalError helper: show the (fatal) error to the user in a safe way,
+// i.e. without using wxMessageBox() for example because it could crash
+void WXDLLEXPORT wxSafeShowMessage(const wxString& title, const wxString& text);
+
 // ----------------------------------------------------------------------------
 // debug only logging functions: use them with API name and error code
 // ----------------------------------------------------------------------------
@@ -569,14 +579,14 @@ DECLARE_LOG_FUNCTION2(SysError, long lErrCode);
 #ifdef __VISUALC__
     #define wxLogApiError(api, rc)                                            \
         wxLogDebug(wxT("%s(%d): '%s' failed with error 0x%08lx (%s)."),       \
-                   __TFILE__, __LINE__, api,                              \
-                   rc, wxSysErrorMsg(rc))
+                   __TFILE__, __LINE__, api,                                  \
+                   (long)rc, wxSysErrorMsg(rc))
 #else // !VC++
     #define wxLogApiError(api, rc)                                            \
         wxLogDebug(wxT("In file %s at line %d: '%s' failed with "             \
-                      "error 0x%08lx (%s)."),                                 \
-                   __TFILE__, __LINE__, api,                              \
-                   rc, wxSysErrorMsg(rc))
+                       "error 0x%08lx (%s)."),                                \
+                   __TFILE__, __LINE__, api,                                  \
+                   (long)rc, wxSysErrorMsg(rc))
 #endif // VC++/!VC++
 
     #define wxLogLastError(api) wxLogApiError(api, wxSysErrorCode())