X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/be52b34172dede7460990c54b9f7e2dad3a6f876..0326d9689eb518ff3d8070cd83ea1d36a6f3324f:/include/wx/log.h?ds=sidebyside diff --git a/include/wx/log.h b/include/wx/log.h index f505a16237..44266ab80e 100644 --- a/include/wx/log.h +++ b/include/wx/log.h @@ -241,7 +241,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 +476,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 -// ------------------- +// ---------------------------------------------------------------------------- #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 +563,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 +577,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()) @@ -588,4 +596,3 @@ DECLARE_LOG_FUNCTION2(SysError, long lErrCode); #endif // _WX_LOG_H_ -// vi:sts=4:sw=4:et