]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/log.h
prevent the parent window from losing activation when a popup is shown
[wxWidgets.git] / include / wx / log.h
index 7e88d578a0a49110c376d2633edf89155c467453..c07ee5825fdf67746b79d388767822b3c6337e61 100644 (file)
@@ -103,6 +103,12 @@ public:
     // ctor
     wxLog();
 
+    // Internal buffer.
+        // Allow replacement of the fixed size static buffer with
+        // a user allocated one.  Pass in NULL to restore the
+        // built in static buffer.
+    static wxChar *SetLogBuffer( wxChar *buf, size_t size = 0 );
+
     // these functions allow to completely disable all log messages
         // is logging disabled now?
     static bool IsEnabled() { return ms_doLog; }
@@ -234,6 +240,8 @@ private:
 // log everything to a "FILE *", stderr by default
 class WXDLLEXPORT wxLogStderr : public wxLog
 {
+    DECLARE_NO_COPY_CLASS(wxLogStderr)
+
 public:
     // redirect log output to a FILE
     wxLogStderr(FILE *fp = (FILE *) NULL);
@@ -287,8 +295,8 @@ protected:
 class WXDLLEXPORT wxLogNull
 {
 public:
-    wxLogNull() { m_flagOld = wxLog::EnableLogging(FALSE); }
-    ~wxLogNull() { (void)wxLog::EnableLogging(m_flagOld);   }
+    wxLogNull() : m_flagOld(wxLog::EnableLogging(FALSE)) { }
+    ~wxLogNull() { (void)wxLog::EnableLogging(m_flagOld); }
 
 private:
     bool m_flagOld; // the previous value of the wxLog::ms_doLog
@@ -307,7 +315,7 @@ class WXDLLEXPORT wxLogChain : public wxLog
 {
 public:
     wxLogChain(wxLog *logger);
-    virtual ~wxLogChain() { delete m_logOld; }
+    virtual ~wxLogChain();
 
     // change the new log target
     void SetLog(wxLog *logger);
@@ -468,11 +476,13 @@ 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,       \
@@ -551,6 +561,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
 // ----------------------------------------------------------------------------
@@ -579,3 +593,4 @@ DECLARE_LOG_FUNCTION2(SysError, long lErrCode);
 #endif  //debug/!debug
 
 #endif  // _WX_LOG_H_
+