X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e23e368bc473cc6b5415850a388f737725053713..ed3aceb08c9322375fb130bf840d106301ede6cd:/interface/wx/event.h diff --git a/interface/wx/event.h b/interface/wx/event.h index f8cd19f9ec..e61807c55d 100644 --- a/interface/wx/event.h +++ b/interface/wx/event.h @@ -318,6 +318,29 @@ public: +/** + Helper class to temporarily change an event to not propagate. +*/ +class wxPropagationDisabler +{ +public: + wxPropagationDisabler(wxEvent& event); + ~wxPropagationDisabler(); +}; + + +/** + Helper class to temporarily lower propagation level. +*/ +class wxPropagateOnce +{ +public: + wxPropagateOnce(wxEvent& event); + ~wxPropagateOnce(); +}; + + + /** @class wxEvtHandler @@ -1065,6 +1088,40 @@ public: //@} + /** + @name Global event filters. + + Methods for working with the global list of event filters. + + Event filters can be defined to pre-process all the events that happen + in an application, see wxEventFilter documentation for more information. + */ + //@{ + + /** + Add an event filter whose FilterEvent() method will be called for each + and every event processed by wxWidgets. + + The filters are called in LIFO order and wxApp is registered as an + event filter by default. The pointer must remain valid until it's + removed with RemoveFilter() and is not deleted by wxEvtHandler. + + @since 2.9.3 + */ + static void AddFilter(wxEventFilter* filter); + + /** + Remove a filter previously installed with AddFilter(). + + It's an error to remove a filter that hadn't been previously added or + was already removed. + + @since 2.9.3 + */ + static void RemoveFilter(wxEventFilter* filter); + + //@} + protected: /** Method called by ProcessEvent() before examining this object event @@ -3948,6 +4005,10 @@ public: size of the window, you may need to clear the DC explicitly and repaint the whole window. In which case, you may need to call wxWindow::Refresh to invalidate the entire window. + @b Important : Sizers ( see @ref overview_sizer ) rely on size events to function + correctly. Therefore, in a sizer-based layout, do not forget to call Skip on all + size events you catch (and don't catch size events at all when you don't need to). + @beginEventTable{wxSizeEvent} @event{EVT_SIZE(func)} Process a @c wxEVT_SIZE event. @@ -4383,6 +4444,7 @@ wxEventType wxEVT_HELP; wxEventType wxEVT_DETAILED_HELP; wxEventType wxEVT_COMMAND_TEXT_UPDATED; wxEventType wxEVT_COMMAND_TOOL_CLICKED; +wxEventType wxEVT_WINDOW_MODAL_DIALOG_CLOSED;