]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/log.h
fix memory leak as Dimitri suggested
[wxWidgets.git] / include / wx / log.h
index 04efbd0bd80f539d682f76016050b9d4840975ac..eeec34cc7b948692d3d248c006eccf869011f1c6 100644 (file)
@@ -6,7 +6,7 @@
 // Created:     29/01/98
 // RCS-ID:      $Id$
 // Copyright:   (c) 1998 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
-// Licence:     wxWindows license
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 #ifndef   _WX_LOG_H_
@@ -101,7 +101,7 @@ enum
     #define wxTraceOleCalls 0x0100  // OLE interface calls
 #endif
 
-#include "wx/ioswrap.h"
+#include "wx/iosfwrap.h"
 
 // ----------------------------------------------------------------------------
 // derive from this class to redirect (or suppress, or ...) log messages
@@ -143,22 +143,19 @@ public:
         // and iostream logs don't need it, but wxGuiLog does to avoid showing
         // 17 modal dialogs one after another)
     virtual void Flush();
-        // call to Flush() may be optimized: call it only if this function
-        // returns true (although Flush() also returns immediately if there is
-        // no messages, this functions is more efficient because inline)
-    bool HasPendingMessages() const { return m_bHasMessages; }
 
-    // only one sink is active at each moment
         // flush the active target if any
     static void FlushActive()
     {
         if ( !ms_suspendCount )
         {
             wxLog *log = GetActiveTarget();
-            if ( log && log->HasPendingMessages() )
+            if ( log )
                 log->Flush();
         }
     }
+
+    // only one sink is active at each moment
         // get current log target, will call wxApp::CreateLogTarget() to
         // create one if none exists
     static wxLog *GetActiveTarget();
@@ -224,9 +221,11 @@ public:
     // make dtor virtual for all derived classes
     virtual ~wxLog() { }
 
-protected:
-    bool m_bHasMessages; // any messages in the queue?
 
+    // this method exists for backwards compatibility only, don't use
+    bool HasPendingMessages() const { return TRUE; }
+
+protected:
     // the logging functions that can be overriden
         // default DoLog() prepends the time stamp and a prefix corresponding
         // to the message to szString and then passes it to DoLogString()
@@ -433,7 +432,9 @@ protected:
     wxArrayInt    m_aSeverity;      // one of wxLOG_XXX values
     wxArrayLong   m_aTimes;         // the time of each message
     bool          m_bErrors,        // do we have any errors?
-                  m_bWarnings;      // any warnings?
+                  m_bWarnings,      // any warnings?
+                  m_bHasMessages;   // any messages at all?
+
 };
 
 #endif // wxUSE_LOGGUI
@@ -536,6 +537,20 @@ inline void WXDLLEXPORT wxVLog##level(arg1, const wxChar *szFormat, \
                                      va_list argptr) {}             \
 inline void WXDLLEXPORT wxLog##level(arg1, const wxChar *szFormat, ...) {}
 
+// Empty Class to fake wxLogNull
+class WXDLLEXPORT wxLogNull
+{
+public:
+    wxLogNull() {}
+};
+
+// Dummy macros to replace some functions.
+#define wxSysErrorCode() (unsigned long)0
+#define wxSysErrorMsg( X ) (const wxChar*)NULL
+
+// Fake symbolic trace masks... for those that are used frequently
+#define wxTRACE_OleCalls wxT("") // OLE interface calls
+
 #endif // wxUSE_LOG/!wxUSE_LOG
 
 // a generic function for all levels (level is passes as parameter)
@@ -625,4 +640,3 @@ void WXDLLEXPORT wxSafeShowMessage(const wxString& title, const wxString& text);
 
 #endif  // _WX_LOG_H_
 
-// vi:sts=4:sw=4:et