]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/log.h
Removed unnecessary code from utilsunx.cpp
[wxWidgets.git] / include / wx / log.h
index 94d0beb5b6aef4d2216cd34f054900efdbe3e571..f5138cf988e40d91f0fbc23a7dbd9e1761c6ca81 100644 (file)
@@ -135,9 +135,12 @@ public:
         // flush the active target if any
     static void FlushActive()
     {
-        wxLog *log = GetActiveTarget();
-        if ( log )
-            log->Flush();
+        if ( !ms_suspendCount )
+        {
+            wxLog *log = GetActiveTarget();
+            if ( log && log->HasPendingMessages() )
+                log->Flush();
+        }
     }
         // get current log target, will call wxApp::CreateLogTarget() to
         // create one if none exists
@@ -145,6 +148,13 @@ public:
         // change log target, pLogger may be NULL
     static wxLog *SetActiveTarget(wxLog *pLogger);
 
+        // suspend the message flushing of the main target until the next call
+        // to Resume() - this is mainly for internal use (to prevent wxYield()
+        // from flashing the messages)
+    static void Suspend() { ms_suspendCount++; }
+        // must be called for each Suspend()!
+    static void Resume() { ms_suspendCount--; }
+
     // functions controlling the default wxLog behaviour
         // verbose mode is activated by standard command-line '-verbose'
         // option
@@ -205,6 +215,8 @@ private:
     static bool        ms_doLog;        // FALSE => all logging disabled
     static bool        ms_bAutoCreate;  // create new log targets on demand?
 
+    static size_t      ms_suspendCount; // if positive, logs are not flushed
+
     // format string for strftime(), if NULL, time stamping log messages is
     // disabled
     static const wxChar *ms_timestamp;