]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/window.h
rename wxRendererNative::DrawRadioButton() to DrawOptionButton() to avoid conflict...
[wxWidgets.git] / include / wx / window.h
index 932ac84f3656181628fd4e54d0ac25be714b71d1..ba5f596d78f350b1dcc0bae56bbef8d72fff674f 100644 (file)
@@ -806,6 +806,13 @@ public:
         // be there)
     bool RemoveEventHandler(wxEvtHandler *handler);
 
         // be there)
     bool RemoveEventHandler(wxEvtHandler *handler);
 
+        // Process an event by calling GetEventHandler()->ProcessEvent(): this
+        // is a straightforward replacement for ProcessEvent() itself which
+        // shouldn't be used directly with windows as it doesn't take into
+        // account any event handlers associated with the window
+    bool ProcessWindowEvent(wxEvent& event)
+        { return GetEventHandler()->ProcessEvent(event); }
+
         // Process an event by calling GetEventHandler()->ProcessEvent() and
         // handling any exceptions thrown by event handlers. It's mostly useful
         // when processing wx events when called from C code (e.g. in GTK+
         // Process an event by calling GetEventHandler()->ProcessEvent() and
         // handling any exceptions thrown by event handlers. It's mostly useful
         // when processing wx events when called from C code (e.g. in GTK+
@@ -817,6 +824,26 @@ public:
     virtual void SetNextHandler(wxEvtHandler *handler);
     virtual void SetPreviousHandler(wxEvtHandler *handler);
 
     virtual void SetNextHandler(wxEvtHandler *handler);
     virtual void SetPreviousHandler(wxEvtHandler *handler);
 
+protected:
+
+    // NOTE: we change the access specifier of the following wxEvtHandler functions
+    //       so that the user won't be able to call them directly.
+    //       Calling wxWindow::ProcessEvent in fact only works when there are NO
+    //       event handlers pushed on the window.
+    //       To ensure correct operation, instead of wxWindow::ProcessEvent
+    //       you must always call wxWindow::GetEventHandler()->ProcessEvent()
+    //       or HandleWindowEvent().
+    //       The same holds for all other wxEvtHandler functions.
+
+    using wxEvtHandler::ProcessEvent;
+    using wxEvtHandler::ProcessThreadEvent;
+    using wxEvtHandler::SafelyProcessEvent;
+    using wxEvtHandler::ProcessPendingEvents;
+    using wxEvtHandler::AddPendingEvent;
+    using wxEvtHandler::QueueEvent;
+
+public:
+
     // validators
     // ----------
 
     // validators
     // ----------