]> git.saurik.com Git - wxWidgets.git/blobdiff - interface/wx/msgqueue.h
avoid infinite recursion for richtooltops, (hopefully) fixes #15070
[wxWidgets.git] / interface / wx / msgqueue.h
index 3c3432f8a22959d0d75492deb83c98f4a45303d4..376625a3f068c9275beccb98064b6ff4abef50aa 100644 (file)
@@ -1,11 +1,35 @@
 /////////////////////////////////////////////////////////////////////////////
-// Name:        msgqueue.h
+// Name:        wx/msgqueue.h
 // Purpose:     interface of wxMessageQueue<T>
 // Author:      wxWidgets team
 // RCS-ID:      $Id$
-// Licence:     wxWindows license
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
+/**
+    Error codes for wxMessageQueue<> operations.
+
+    This enum contains the possible return value of wxMessageQueue<> methods.
+
+    @since 2.9.0
+    @category{threading}
+ */
+enum wxMessageQueueError
+{
+    /// Indicates that the operation completed successfully.
+    wxMSGQUEUE_NO_ERROR = 0,
+
+    /**
+        Indicates that no messages were received before timeout expired.
+
+        This return value is only used by wxMessageQueue<>::ReceiveTimeout().
+     */
+    wxMSGQUEUE_TIMEOUT,
+
+    /// Some unexpected (and fatal) error has occurred.
+    wxMSGQUEUE_MISC_ERROR
+};
+
 /**
     wxMessageQueue allows passing messages between threads.
 
@@ -20,6 +44,8 @@
     should terminate as there is no other way to gracefully shutdown a thread
     waiting on the message queue.
 
+    @since 2.9.0
+
     @nolibrary
     @category{threading}
 
@@ -35,6 +61,17 @@ public:
     */
     wxMessageQueue();
 
+    /**
+        Remove all messages from the queue.
+
+        This method is meant to be called from the same thread(s) that call
+        Post() to discard any still pending requests if they became
+        unnecessary.
+
+        @since 2.9.1
+     */
+    wxMessageQueueError Clear();
+
     /**
         Returns @true if the object had been initialized successfully, @false
         if an error occurred.