X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/3497ab0e3b63485daed04763081c5ecb123b0397..92c0fc34c104c8d7c12d6a3b78ea232690fc23f4:/interface/wx/event.h?ds=sidebyside diff --git a/interface/wx/event.h b/interface/wx/event.h index 8f84dbc1c0..3f499ccd87 100644 --- a/interface/wx/event.h +++ b/interface/wx/event.h @@ -3,7 +3,6 @@ // Purpose: interface of wxEvtHandler, wxEventBlocker and many // wxEvent-derived classes // Author: wxWidgets team -// RCS-ID: $Id$ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// @@ -113,7 +112,7 @@ public: this event. @param eventType The unique type of event, e.g. @c wxEVT_PAINT, @c wxEVT_SIZE or - @c wxEVT_COMMAND_BUTTON_CLICKED. + @c wxEVT_BUTTON. */ wxEvent(int id = 0, wxEventType eventType = wxEVT_NULL); @@ -144,7 +143,7 @@ public: wxObject* GetEventObject() const; /** - Returns the identifier of the given event type, such as @c wxEVT_COMMAND_BUTTON_CLICKED. + Returns the identifier of the given event type, such as @c wxEVT_BUTTON. */ wxEventType GetEventType() const; @@ -523,9 +522,9 @@ public: @param method The method to call. @param x1 The (optional) first parameter to pass to the method. - @param x2 The (optional) second parameter to pass to the method. - - Note that currently only up to 2 arguments can be passed. + Currently, 0, 1 or 2 parameters can be passed. If you need to pass + more than 2 arguments, you can use the CallAfter(const T& fn) + overload that can call any functor. @note This method is not available with Visual C++ before version 8 (Visual Studio 2005) as earlier versions of the compiler don't @@ -536,6 +535,39 @@ public: template void CallAfter(void (T::*method)(T1, ...), T1 x1, ...); + /** + Asynchronously call the given functor. + + Calling this function on an object schedules an asynchronous call to + the functor specified as CallAfter() argument at a (slightly) later + time. This is useful when processing some events as certain actions + typically can't be performed inside their handlers, e.g. you shouldn't + show a modal dialog from a mouse click event handler as this would + break the mouse capture state -- but you can call a function showing + this message dialog after the current event handler completes. + + Notice that it is safe to use CallAfter() from other, non-GUI, + threads, but that the method will be always called in the main, GUI, + thread context. + + This overload is particularly useful in combination with C++11 lambdas: + @code + wxGetApp().CallAfter([]{ + wxBell(); + }); + @endcode + + @param functor The functor to call. + + @note This method is not available with Visual C++ before version 8 + (Visual Studio 2005) as earlier versions of the compiler don't + have the required support for C++ templates to implement it. + + @since 3.0 + */ + template + void CallAfter(const T& functor); + /** Processes an event, searching event tables and calling zero or more suitable event handler function(s). @@ -775,7 +807,7 @@ public: Example: @code frame->Connect( wxID_EXIT, - wxEVT_COMMAND_MENU_SELECTED, + wxEVT_MENU, wxCommandEventHandler(MyFrame::OnQuit) ); @endcode @@ -1512,7 +1544,7 @@ public: else // No Unicode equivalent. { // It's a special key, deal with all the known ones: - switch ( GetKeyCode() ) + switch ( event.GetKeyCode() ) { case WXK_LEFT: case WXK_RIGHT: @@ -1543,11 +1575,15 @@ public: /** Obtains the position (in client coordinates) at which the key was pressed. - Notice that this position is simply the current mouse pointer position - and has no special relationship to the key event itself. + Notice that under most platforms this position is simply the current + mouse pointer position and has no special relationship to the key event + itself. + + @a x and @a y may be @NULL if the corresponding coordinate is not + needed. */ wxPoint GetPosition() const; - void GetPosition(long* x, long* y) const; + void GetPosition(wxCoord* x, wxCoord* y) const; //@} /** @@ -1901,59 +1937,59 @@ public: Process a command for a range of window identifiers, supplying the minimum and maximum window identifiers, command event identifier, and member function. @event{EVT_BUTTON(id, func)} - Process a @c wxEVT_COMMAND_BUTTON_CLICKED command, which is generated by a wxButton control. + Process a @c wxEVT_BUTTON command, which is generated by a wxButton control. @event{EVT_CHECKBOX(id, func)} - Process a @c wxEVT_COMMAND_CHECKBOX_CLICKED command, which is generated by a wxCheckBox control. + Process a @c wxEVT_CHECKBOX command, which is generated by a wxCheckBox control. @event{EVT_CHOICE(id, func)} - Process a @c wxEVT_COMMAND_CHOICE_SELECTED command, which is generated by a wxChoice control. + Process a @c wxEVT_CHOICE command, which is generated by a wxChoice control. @event{EVT_COMBOBOX(id, func)} - Process a @c wxEVT_COMMAND_COMBOBOX_SELECTED command, which is generated by a wxComboBox control. + Process a @c wxEVT_COMBOBOX command, which is generated by a wxComboBox control. @event{EVT_LISTBOX(id, func)} - Process a @c wxEVT_COMMAND_LISTBOX_SELECTED command, which is generated by a wxListBox control. + Process a @c wxEVT_LISTBOX command, which is generated by a wxListBox control. @event{EVT_LISTBOX_DCLICK(id, func)} - Process a @c wxEVT_COMMAND_LISTBOX_DOUBLECLICKED command, which is generated by a wxListBox control. + Process a @c wxEVT_LISTBOX_DCLICK command, which is generated by a wxListBox control. @event{EVT_CHECKLISTBOX(id, func)} - Process a @c wxEVT_COMMAND_CHECKLISTBOX_TOGGLED command, which is generated by a wxCheckListBox control. + Process a @c wxEVT_CHECKLISTBOX command, which is generated by a wxCheckListBox control. @event{EVT_MENU(id, func)} - Process a @c wxEVT_COMMAND_MENU_SELECTED command, which is generated by a menu item. + Process a @c wxEVT_MENU command, which is generated by a menu item. @event{EVT_MENU_RANGE(id1, id2, func)} - Process a @c wxEVT_COMMAND_MENU_RANGE command, which is generated by a range of menu items. + Process a @c wxEVT_MENU command, which is generated by a range of menu items. @event{EVT_CONTEXT_MENU(func)} Process the event generated when the user has requested a popup menu to appear by pressing a special keyboard key (under Windows) or by right clicking the mouse. @event{EVT_RADIOBOX(id, func)} - Process a @c wxEVT_COMMAND_RADIOBOX_SELECTED command, which is generated by a wxRadioBox control. + Process a @c wxEVT_RADIOBOX command, which is generated by a wxRadioBox control. @event{EVT_RADIOBUTTON(id, func)} - Process a @c wxEVT_COMMAND_RADIOBUTTON_SELECTED command, which is generated by a wxRadioButton control. + Process a @c wxEVT_RADIOBUTTON command, which is generated by a wxRadioButton control. @event{EVT_SCROLLBAR(id, func)} - Process a @c wxEVT_COMMAND_SCROLLBAR_UPDATED command, which is generated by a wxScrollBar + Process a @c wxEVT_SCROLLBAR command, which is generated by a wxScrollBar control. This is provided for compatibility only; more specific scrollbar event macros should be used instead (see wxScrollEvent). @event{EVT_SLIDER(id, func)} - Process a @c wxEVT_COMMAND_SLIDER_UPDATED command, which is generated by a wxSlider control. + Process a @c wxEVT_SLIDER command, which is generated by a wxSlider control. @event{EVT_TEXT(id, func)} - Process a @c wxEVT_COMMAND_TEXT_UPDATED command, which is generated by a wxTextCtrl control. + Process a @c wxEVT_TEXT command, which is generated by a wxTextCtrl control. @event{EVT_TEXT_ENTER(id, func)} - Process a @c wxEVT_COMMAND_TEXT_ENTER command, which is generated by a wxTextCtrl control. + Process a @c wxEVT_TEXT_ENTER command, which is generated by a wxTextCtrl control. Note that you must use wxTE_PROCESS_ENTER flag when creating the control if you want it to generate such events. @event{EVT_TEXT_MAXLEN(id, func)} - Process a @c wxEVT_COMMAND_TEXT_MAXLEN command, which is generated by a wxTextCtrl control + Process a @c wxEVT_TEXT_MAXLEN command, which is generated by a wxTextCtrl control when the user tries to enter more characters into it than the limit previously set with SetMaxLength(). @event{EVT_TOGGLEBUTTON(id, func)} - Process a @c wxEVT_COMMAND_TOGGLEBUTTON_CLICKED event. + Process a @c wxEVT_TOGGLEBUTTON event. @event{EVT_TOOL(id, func)} - Process a @c wxEVT_COMMAND_TOOL_CLICKED event (a synonym for @c wxEVT_COMMAND_MENU_SELECTED). + Process a @c wxEVT_TOOL event (a synonym for @c wxEVT_MENU). Pass the id of the tool. @event{EVT_TOOL_RANGE(id1, id2, func)} - Process a @c wxEVT_COMMAND_TOOL_CLICKED event for a range of identifiers. Pass the ids of the tools. + Process a @c wxEVT_TOOL event for a range of identifiers. Pass the ids of the tools. @event{EVT_TOOL_RCLICKED(id, func)} - Process a @c wxEVT_COMMAND_TOOL_RCLICKED event. Pass the id of the tool. (Not available on wxOSX.) + Process a @c wxEVT_TOOL_RCLICKED event. Pass the id of the tool. (Not available on wxOSX.) @event{EVT_TOOL_RCLICKED_RANGE(id1, id2, func)} - Process a @c wxEVT_COMMAND_TOOL_RCLICKED event for a range of ids. Pass the ids of the tools. (Not available on wxOSX.) + Process a @c wxEVT_TOOL_RCLICKED event for a range of ids. Pass the ids of the tools. (Not available on wxOSX.) @event{EVT_TOOL_ENTER(id, func)} - Process a @c wxEVT_COMMAND_TOOL_ENTER event. Pass the id of the toolbar itself. + Process a @c wxEVT_TOOL_ENTER event. Pass the id of the toolbar itself. The value of wxCommandEvent::GetSelection() is the tool id, or -1 if the mouse cursor has moved off a tool. (Not available on wxOSX.) @event{EVT_COMMAND_LEFT_CLICK(id, func)} @@ -2447,8 +2483,8 @@ public: wxTextCtrl but other windows can generate these events as well) when its content gets copied or cut to, or pasted from the clipboard. - There are three types of corresponding events @c wxEVT_COMMAND_TEXT_COPY, - @c wxEVT_COMMAND_TEXT_CUT and @c wxEVT_COMMAND_TEXT_PASTE. + There are three types of corresponding events @c wxEVT_TEXT_COPY, + @c wxEVT_TEXT_CUT and @c wxEVT_TEXT_PASTE. If any of these events is processed (without being skipped) by an event handler, the corresponding operation doesn't take place which allows to @@ -2721,10 +2757,26 @@ public: /** Returns the configured number of lines (or whatever) to be scrolled per - wheel action. Defaults to three. + wheel action. + + Default value under most platforms is three. + + @see GetColumnsPerAction() */ int GetLinesPerAction() const; + /** + Returns the configured number of columns (or whatever) to be scrolled per + wheel action. + + Default value under most platforms is three. + + @see GetLinesPerAction() + + @since 2.9.5 + */ + int GetColumnsPerAction() const; + /** Returns the logical mouse position in pixels (i.e.\ translated according to the translation set for the DC, which usually indicates that the window has been @@ -3416,7 +3468,7 @@ public: wxHelpEvent::Origin origin = Origin_Unknown); /** - Returns the origin of the help event which is one of the ::wxHelpEventOrigin + Returns the origin of the help event which is one of the wxHelpEvent::Origin values. The application may handle events generated using the keyboard or mouse @@ -3832,7 +3884,8 @@ public: /** Sets the flags for this event. - The @a flags can be a combination of the ::wxNavigationKeyEventFlags values. + The @a flags can be a combination of the + wxNavigationKeyEvent::wxNavigationKeyEventFlags values. */ void SetFlags(long flags); @@ -4401,7 +4454,7 @@ wxEventType wxNewEventType(); This is mostly used by wxWidgets internally, e.g. @code - wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEvent) + wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_BUTTON, wxCommandEvent) @endcode */ #define wxDECLARE_EXPORTED_EVENT( expdecl, name, cls ) \ @@ -4543,24 +4596,24 @@ void wxQueueEvent(wxEvtHandler* dest, wxEvent *event); #if wxUSE_GUI -wxEventType wxEVT_COMMAND_BUTTON_CLICKED; -wxEventType wxEVT_COMMAND_CHECKBOX_CLICKED; -wxEventType wxEVT_COMMAND_CHOICE_SELECTED; -wxEventType wxEVT_COMMAND_LISTBOX_SELECTED; -wxEventType wxEVT_COMMAND_LISTBOX_DOUBLECLICKED; -wxEventType wxEVT_COMMAND_CHECKLISTBOX_TOGGLED; -wxEventType wxEVT_COMMAND_MENU_SELECTED; -wxEventType wxEVT_COMMAND_SLIDER_UPDATED; -wxEventType wxEVT_COMMAND_RADIOBOX_SELECTED; -wxEventType wxEVT_COMMAND_RADIOBUTTON_SELECTED; -wxEventType wxEVT_COMMAND_SCROLLBAR_UPDATED; -wxEventType wxEVT_COMMAND_VLBOX_SELECTED; -wxEventType wxEVT_COMMAND_COMBOBOX_SELECTED; -wxEventType wxEVT_COMMAND_TOOL_RCLICKED; -wxEventType wxEVT_COMMAND_TOOL_DROPDOWN_CLICKED; -wxEventType wxEVT_COMMAND_TOOL_ENTER; -wxEventType wxEVT_COMMAND_COMBOBOX_DROPDOWN; -wxEventType wxEVT_COMMAND_COMBOBOX_CLOSEUP; +wxEventType wxEVT_BUTTON; +wxEventType wxEVT_CHECKBOX; +wxEventType wxEVT_CHOICE; +wxEventType wxEVT_LISTBOX; +wxEventType wxEVT_LISTBOX_DCLICK; +wxEventType wxEVT_CHECKLISTBOX; +wxEventType wxEVT_MENU; +wxEventType wxEVT_SLIDER; +wxEventType wxEVT_RADIOBOX; +wxEventType wxEVT_RADIOBUTTON; +wxEventType wxEVT_SCROLLBAR; +wxEventType wxEVT_VLBOX; +wxEventType wxEVT_COMBOBOX; +wxEventType wxEVT_TOOL_RCLICKED; +wxEventType wxEVT_TOOL_DROPDOWN; +wxEventType wxEVT_TOOL_ENTER; +wxEventType wxEVT_COMBOBOX_DROPDOWN; +wxEventType wxEVT_COMBOBOX_CLOSEUP; wxEventType wxEVT_THREAD; wxEventType wxEVT_LEFT_DOWN; wxEventType wxEVT_LEFT_UP; @@ -4649,9 +4702,9 @@ wxEventType wxEVT_MOVING; wxEventType wxEVT_MOVE_START; wxEventType wxEVT_MOVE_END; wxEventType wxEVT_HIBERNATE; -wxEventType wxEVT_COMMAND_TEXT_COPY; -wxEventType wxEVT_COMMAND_TEXT_CUT; -wxEventType wxEVT_COMMAND_TEXT_PASTE; +wxEventType wxEVT_TEXT_COPY; +wxEventType wxEVT_TEXT_CUT; +wxEventType wxEVT_TEXT_PASTE; wxEventType wxEVT_COMMAND_LEFT_CLICK; wxEventType wxEVT_COMMAND_LEFT_DCLICK; wxEventType wxEVT_COMMAND_RIGHT_CLICK; @@ -4661,9 +4714,7 @@ wxEventType wxEVT_COMMAND_KILL_FOCUS; wxEventType wxEVT_COMMAND_ENTER; wxEventType wxEVT_HELP; wxEventType wxEVT_DETAILED_HELP; -wxEventType wxEVT_COMMAND_TEXT_UPDATED; -wxEventType wxEVT_COMMAND_TEXT_ENTER; -wxEventType wxEVT_COMMAND_TOOL_CLICKED; +wxEventType wxEVT_TOOL; wxEventType wxEVT_WINDOW_MODAL_DIALOG_CLOSED; #endif // wxUSE_GUI