X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/cf2227623a889dd0a5f36288d346fc6bf64b55fa..b09857ae000a60704207d63290be937584805fb0:/interface/wx/event.h diff --git a/interface/wx/event.h b/interface/wx/event.h index 3aae72f4a1..f5d1b1e687 100644 --- a/interface/wx/event.h +++ b/interface/wx/event.h @@ -7,6 +7,8 @@ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// +#if wxUSE_BASE + /** The predefined constants for the number of times we propagate event upwards window child-parent chain. @@ -222,7 +224,7 @@ public: void SetTimestamp(long timeStamp = 0); /** - Test if this event should be propagated or not, i.e. if the propagation level + Test if this event should be propagated or not, i.e.\ if the propagation level is currently greater than 0. */ bool ShouldPropagate() const; @@ -271,6 +273,10 @@ protected: int m_propagationLevel; }; +#endif // wxUSE_BASE + +#if wxUSE_GUI + /** @class wxEventBlocker @@ -352,7 +358,9 @@ public: ~wxPropagateOnce(); }; +#endif // wxUSE_GUI +#if wxUSE_BASE /** @class wxEvtHandler @@ -519,6 +527,10 @@ public: Note that currently only up to 2 arguments can be passed. + @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 2.9.5 */ template @@ -1255,6 +1267,9 @@ protected: virtual bool TryAfter(wxEvent& event); }; +#endif // wxUSE_BASE + +#if wxUSE_GUI /** Flags for categories of keys. @@ -1497,7 +1512,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: @@ -1528,11 +1543,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; //@} /** @@ -1865,6 +1884,204 @@ public: +/** + @class wxCommandEvent + + This event class contains information about command events, which originate + from a variety of simple controls. + + Note that wxCommandEvents and wxCommandEvent-derived event classes by default + and unlike other wxEvent-derived classes propagate upward from the source + window (the window which emits the event) up to the first parent which processes + the event. Be sure to read @ref overview_events_propagation. + + More complex controls, such as wxTreeCtrl, have separate command event classes. + + @beginEventTable{wxCommandEvent} + @event{EVT_COMMAND(id, event, func)} + Process a command, supplying the window identifier, command event identifier, + and member function. + @event{EVT_COMMAND_RANGE(id1, id2, event, func)} + 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. + @event{EVT_CHECKBOX(id, func)} + Process a @c wxEVT_COMMAND_CHECKBOX_CLICKED 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. + @event{EVT_COMBOBOX(id, func)} + Process a @c wxEVT_COMMAND_COMBOBOX_SELECTED 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. + @event{EVT_LISTBOX_DCLICK(id, func)} + Process a @c wxEVT_COMMAND_LISTBOX_DOUBLECLICKED 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. + @event{EVT_MENU(id, func)} + Process a @c wxEVT_COMMAND_MENU_SELECTED 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. + @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. + @event{EVT_RADIOBUTTON(id, func)} + Process a @c wxEVT_COMMAND_RADIOBUTTON_SELECTED 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 + 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. + @event{EVT_TEXT(id, func)} + Process a @c wxEVT_COMMAND_TEXT_UPDATED 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. + 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 + 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. + @event{EVT_TOOL(id, func)} + Process a @c wxEVT_COMMAND_TOOL_CLICKED event (a synonym for @c wxEVT_COMMAND_MENU_SELECTED). + 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. + @event{EVT_TOOL_RCLICKED(id, func)} + Process a @c wxEVT_COMMAND_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.) + @event{EVT_TOOL_ENTER(id, func)} + Process a @c wxEVT_COMMAND_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)} + Process a @c wxEVT_COMMAND_LEFT_CLICK command, which is generated by a control (wxMSW only). + @event{EVT_COMMAND_LEFT_DCLICK(id, func)} + Process a @c wxEVT_COMMAND_LEFT_DCLICK command, which is generated by a control (wxMSW only). + @event{EVT_COMMAND_RIGHT_CLICK(id, func)} + Process a @c wxEVT_COMMAND_RIGHT_CLICK command, which is generated by a control (wxMSW only). + @event{EVT_COMMAND_SET_FOCUS(id, func)} + Process a @c wxEVT_COMMAND_SET_FOCUS command, which is generated by a control (wxMSW only). + @event{EVT_COMMAND_KILL_FOCUS(id, func)} + Process a @c wxEVT_COMMAND_KILL_FOCUS command, which is generated by a control (wxMSW only). + @event{EVT_COMMAND_ENTER(id, func)} + Process a @c wxEVT_COMMAND_ENTER command, which is generated by a control. + @endEventTable + + @library{wxcore} + @category{events} +*/ +class wxCommandEvent : public wxEvent +{ +public: + /** + Constructor. + */ + wxCommandEvent(wxEventType commandEventType = wxEVT_NULL, int id = 0); + + /** + Returns client data pointer for a listbox or choice selection event + (not valid for a deselection). + */ + void* GetClientData() const; + + /** + Returns client object pointer for a listbox or choice selection event + (not valid for a deselection). + */ + wxClientData* GetClientObject() const; + + /** + Returns extra information dependent on the event objects type. + + If the event comes from a listbox selection, it is a boolean + determining whether the event was a selection (@true) or a + deselection (@false). A listbox deselection only occurs for + multiple-selection boxes, and in this case the index and string values + are indeterminate and the listbox must be examined by the application. + */ + long GetExtraLong() const; + + /** + 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; + + /** + Returns item index for a listbox or choice selection event (not valid for + a deselection). + */ + int GetSelection() const; + + /** + Returns item string for a listbox or choice selection event. If one + or several items have been deselected, returns the index of the first + deselected item. If some items have been selected and others deselected + at the same time, it will return the index of the first selected item. + */ + wxString GetString() const; + + /** + This method can be used with checkbox and menu events: for the checkboxes, the + method returns @true for a selection event and @false for a deselection one. + For the menu events, this method indicates if the menu item just has become + checked or unchecked (and thus only makes sense for checkable menu items). + + Notice that this method cannot be used with wxCheckListBox currently. + */ + bool IsChecked() const; + + /** + For a listbox or similar event, returns @true if it is a selection, @false + if it is a deselection. If some items have been selected and others deselected + at the same time, it will return @true. + */ + bool IsSelection() const; + + /** + Sets the client data for this event. + */ + void SetClientData(void* clientData); + + /** + Sets the client object for this event. The client object is not owned by the + event object and the event object will not delete the client object in its destructor. + + The client object must be owned and deleted by another object (e.g. a control) + that has longer life time than the event object. + */ + void SetClientObject(wxClientData* clientObject); + + /** + Sets the @b m_extraLong member. + */ + void SetExtraLong(long extraLong); + + /** + Sets the @b m_commandInt member. + */ + void SetInt(int intCommand); + + /** + Sets the @b m_commandString member. + */ + void SetString(const wxString& string); +}; + + + /** @class wxWindowCreateEvent @@ -2513,7 +2730,7 @@ public: int GetLinesPerAction() const; /** - Returns the logical mouse position in pixels (i.e. translated according to the + 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 scrolled). */ @@ -2683,204 +2900,6 @@ public: -/** - @class wxCommandEvent - - This event class contains information about command events, which originate - from a variety of simple controls. - - Note that wxCommandEvents and wxCommandEvent-derived event classes by default - and unlike other wxEvent-derived classes propagate upward from the source - window (the window which emits the event) up to the first parent which processes - the event. Be sure to read @ref overview_events_propagation. - - More complex controls, such as wxTreeCtrl, have separate command event classes. - - @beginEventTable{wxCommandEvent} - @event{EVT_COMMAND(id, event, func)} - Process a command, supplying the window identifier, command event identifier, - and member function. - @event{EVT_COMMAND_RANGE(id1, id2, event, func)} - 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. - @event{EVT_CHECKBOX(id, func)} - Process a @c wxEVT_COMMAND_CHECKBOX_CLICKED 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. - @event{EVT_COMBOBOX(id, func)} - Process a @c wxEVT_COMMAND_COMBOBOX_SELECTED 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. - @event{EVT_LISTBOX_DCLICK(id, func)} - Process a @c wxEVT_COMMAND_LISTBOX_DOUBLECLICKED 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. - @event{EVT_MENU(id, func)} - Process a @c wxEVT_COMMAND_MENU_SELECTED 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. - @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. - @event{EVT_RADIOBUTTON(id, func)} - Process a @c wxEVT_COMMAND_RADIOBUTTON_SELECTED 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 - 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. - @event{EVT_TEXT(id, func)} - Process a @c wxEVT_COMMAND_TEXT_UPDATED 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. - 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 - 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. - @event{EVT_TOOL(id, func)} - Process a @c wxEVT_COMMAND_TOOL_CLICKED event (a synonym for @c wxEVT_COMMAND_MENU_SELECTED). - 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. - @event{EVT_TOOL_RCLICKED(id, func)} - Process a @c wxEVT_COMMAND_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.) - @event{EVT_TOOL_ENTER(id, func)} - Process a @c wxEVT_COMMAND_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)} - Process a @c wxEVT_COMMAND_LEFT_CLICK command, which is generated by a control (wxMSW only). - @event{EVT_COMMAND_LEFT_DCLICK(id, func)} - Process a @c wxEVT_COMMAND_LEFT_DCLICK command, which is generated by a control (wxMSW only). - @event{EVT_COMMAND_RIGHT_CLICK(id, func)} - Process a @c wxEVT_COMMAND_RIGHT_CLICK command, which is generated by a control (wxMSW only). - @event{EVT_COMMAND_SET_FOCUS(id, func)} - Process a @c wxEVT_COMMAND_SET_FOCUS command, which is generated by a control (wxMSW only). - @event{EVT_COMMAND_KILL_FOCUS(id, func)} - Process a @c wxEVT_COMMAND_KILL_FOCUS command, which is generated by a control (wxMSW only). - @event{EVT_COMMAND_ENTER(id, func)} - Process a @c wxEVT_COMMAND_ENTER command, which is generated by a control. - @endEventTable - - @library{wxcore} - @category{events} -*/ -class wxCommandEvent : public wxEvent -{ -public: - /** - Constructor. - */ - wxCommandEvent(wxEventType commandEventType = wxEVT_NULL, int id = 0); - - /** - Returns client data pointer for a listbox or choice selection event - (not valid for a deselection). - */ - void* GetClientData() const; - - /** - Returns client object pointer for a listbox or choice selection event - (not valid for a deselection). - */ - wxClientData* GetClientObject() const; - - /** - Returns extra information dependent on the event objects type. - - If the event comes from a listbox selection, it is a boolean - determining whether the event was a selection (@true) or a - deselection (@false). A listbox deselection only occurs for - multiple-selection boxes, and in this case the index and string values - are indeterminate and the listbox must be examined by the application. - */ - long GetExtraLong() const; - - /** - 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; - - /** - Returns item index for a listbox or choice selection event (not valid for - a deselection). - */ - int GetSelection() const; - - /** - Returns item string for a listbox or choice selection event. If one - or several items have been deselected, returns the index of the first - deselected item. If some items have been selected and others deselected - at the same time, it will return the index of the first selected item. - */ - wxString GetString() const; - - /** - This method can be used with checkbox and menu events: for the checkboxes, the - method returns @true for a selection event and @false for a deselection one. - For the menu events, this method indicates if the menu item just has become - checked or unchecked (and thus only makes sense for checkable menu items). - - Notice that this method cannot be used with wxCheckListBox currently. - */ - bool IsChecked() const; - - /** - For a listbox or similar event, returns @true if it is a selection, @false - if it is a deselection. If some items have been selected and others deselected - at the same time, it will return @true. - */ - bool IsSelection() const; - - /** - Sets the client data for this event. - */ - void SetClientData(void* clientData); - - /** - Sets the client object for this event. The client object is not owned by the - event object and the event object will not delete the client object in its destructor. - - The client object must be owned and deleted by another object (e.g. a control) - that has longer life time than the event object. - */ - void SetClientObject(wxClientData* clientObject); - - /** - Sets the @b m_extraLong member. - */ - void SetExtraLong(long extraLong); - - /** - Sets the @b m_commandInt member. - */ - void SetInt(int intCommand); - - /** - Sets the @b m_commandString member. - */ - void SetString(const wxString& string); -}; - - - /** @class wxActivateEvent @@ -3541,6 +3560,10 @@ public: void SetPosition(int pos); }; +#endif // wxUSE_GUI + +#if wxUSE_BASE + /** See wxIdleEvent::SetMode() for more info. */ @@ -3668,7 +3691,9 @@ public: static void SetMode(wxIdleMode mode); }; +#endif // wxUSE_BASE +#if wxUSE_GUI /** @class wxInitDialogEvent @@ -4256,7 +4281,7 @@ public: @library{wxcore} @category{events} - @see ::wxSetCursor, wxWindow::wxSetCursor + @see ::wxSetCursor, wxWindow::SetCursor */ class wxSetCursorEvent : public wxEvent { @@ -4296,7 +4321,7 @@ public: void SetCursor(const wxCursor& cursor); }; - +#endif // wxUSE_GUI // ============================================================================ // Global functions/macros @@ -4305,6 +4330,8 @@ public: /** @addtogroup group_funcmacro_events */ //@{ +#if wxUSE_BASE + /** A value uniquely identifying the type of the event. @@ -4312,7 +4339,7 @@ public: See the macro DEFINE_EVENT_TYPE() for more info. - @see @ref overview_events_introduction + @see @ref overview_events */ typedef int wxEventType; @@ -4516,7 +4543,9 @@ void wxPostEvent(wxEvtHandler* dest, const wxEvent& event); */ void wxQueueEvent(wxEvtHandler* dest, wxEvent *event); +#endif // wxUSE_BASE +#if wxUSE_GUI wxEventType wxEVT_COMMAND_BUTTON_CLICKED; wxEventType wxEVT_COMMAND_CHECKBOX_CLICKED; @@ -4641,7 +4670,7 @@ wxEventType wxEVT_COMMAND_TEXT_ENTER; wxEventType wxEVT_COMMAND_TOOL_CLICKED; wxEventType wxEVT_WINDOW_MODAL_DIALOG_CLOSED; - +#endif // wxUSE_GUI //@}