+/**
+ 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
//@}
+ /**
+ @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
Returns the integer identifier corresponding to a listbox, choice or
radiobox selection (only if the event was a selection, not a deselection),
or a boolean value representing the value of a checkbox.
+
+ For a menu item, this method returns -1 if the item is not checkable or
+ a boolean value (true or false) for checkable items indicating the new
+ state of the item.
*/
int GetInt() const;
/**
@class wxThreadEvent
- This class adds some simple functionalities to wxCommandEvent conceived
- for inter-threads communications.
+ This class adds some simple functionality to wxEvent to facilitate
+ inter-thread communication.
- This event is not natively emitted by any control/class: this is just
- an helper class for the user.
+ This event is not natively emitted by any control/class: it is just
+ a helper class for the user.
Its most important feature is the GetEventCategory() implementation which
- allows thread events to @b NOT be processed by wxEventLoopBase::YieldFor calls
+ allows thread events @b NOT to be processed by wxEventLoopBase::YieldFor calls
(unless the @c wxEVT_CATEGORY_THREAD is specified - which is never in wx code).
@library{wxcore}
@category{events,threading}
@see @ref overview_thread, wxEventLoopBase::YieldFor
+
+ @since 2.9.0
*/
-class wxThreadEvent : public wxCommandEvent
+class wxThreadEvent : public wxEvent
{
public:
/**
Constructor.
*/
- wxThreadEvent(wxEventType eventType = wxEVT_COMMAND_THREAD, int id = wxID_ANY);
+ wxThreadEvent(wxEventType eventType = wxEVT_THREAD, int id = wxID_ANY);
/**
Clones this event making sure that all internal members which use
*/
template<typename T>
T GetPayload() const;
+
+ /**
+ Returns extra information integer value.
+ */
+ long GetExtraLong() const;
+
+ /**
+ Returns stored integer value.
+ */
+ int GetInt() const;
+
+ /**
+ Returns stored string value.
+ */
+ wxString GetString() const;
+
+
+ /**
+ Sets the extra information value.
+ */
+ void SetExtraLong(long extraLong);
+
+ /**
+ Sets the integer value.
+ */
+ void SetInt(int intCommand);
+
+ /**
+ Sets the string value.
+ */
+ void SetString(const wxString& string);
};
This event is mainly used by wxWidgets implementations.
A wxNavigationKeyEvent handler is automatically provided by wxWidgets
- when you make a class into a control container with the macro
- WX_DECLARE_CONTROL_CONTAINER.
+ when you enable keyboard navigation inside a window by inheriting it from
+ wxNavigationEnabled<>.
@beginEventTable{wxNavigationKeyEvent}
@event{EVT_NAVIGATION_KEY(func)}
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.
wxEventType wxEVT_COMMAND_TOOL_ENTER;
wxEventType wxEVT_COMMAND_COMBOBOX_DROPDOWN;
wxEventType wxEVT_COMMAND_COMBOBOX_CLOSEUP;
-wxEventType wxEVT_COMMAND_THREAD;
+wxEventType wxEVT_THREAD;
wxEventType wxEVT_LEFT_DOWN;
wxEventType wxEVT_LEFT_UP;
wxEventType wxEVT_MIDDLE_DOWN;
wxEventType wxEVT_DETAILED_HELP;
wxEventType wxEVT_COMMAND_TEXT_UPDATED;
wxEventType wxEVT_COMMAND_TOOL_CLICKED;
+wxEventType wxEVT_WINDOW_MODAL_DIALOG_CLOSED;