]> git.saurik.com Git - wxWidgets.git/blobdiff - interface/wx/event.h
Readded tiffconf.h removed by libtiff 4.0.3 merge.
[wxWidgets.git] / interface / wx / event.h
index 73f66d5fe98e5a871cddbdbcf1a553e1264532ac..8f84dbc1c019d4a9d25ec8c193884f734f9d90d0 100644 (file)
@@ -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.
@@ -159,6 +161,19 @@ public:
     */
     int GetId() const;
 
+    /**
+        Return the user data associated with a dynamically connected event handler.
+
+        wxEvtHandler::Connect() and wxEvtHandler::Bind() allow associating
+        optional @c userData pointer with the handler and this method returns
+        the value of this pointer.
+
+        The returned pointer is owned by wxWidgets and must not be deleted.
+
+        @since 2.9.5
+    */
+    wxObject *GetEventUserData() const;
+
     /**
         Returns @true if the event handler should be skipped, @false otherwise.
     */
@@ -209,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;
@@ -258,6 +273,10 @@ protected:
     int m_propagationLevel;
 };
 
+#endif // wxUSE_BASE
+
+#if wxUSE_GUI
+
 /**
     @class wxEventBlocker
 
@@ -339,7 +358,9 @@ public:
     ~wxPropagateOnce();
 };
 
+#endif // wxUSE_GUI
 
+#if wxUSE_BASE
 
 /**
     @class wxEvtHandler
@@ -464,6 +485,57 @@ public:
     */
     virtual void AddPendingEvent(const wxEvent& event);
 
+    /**
+         Asynchronously call the given method.
+
+         Calling this function on an object schedules an asynchronous call to
+         the method 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 method showing
+         this message dialog after the current event handler completes.
+
+         The method being called must be the method of the object on which
+         CallAfter() itself is called.
+
+         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.
+
+         Example of use:
+         @code
+         class MyFrame : public wxFrame {
+            void OnClick(wxMouseEvent& event) {
+                CallAfter(&MyFrame::ShowPosition, event.GetPosition());
+            }
+
+            void ShowPosition(const wxPoint& pos) {
+                if ( wxMessageBox(
+                        wxString::Format("Perform click at (%d, %d)?",
+                                         pos.x, pos.y), "", wxYES_NO) == wxYES )
+                {
+                    ... do take this click into account ...
+                }
+            }
+         };
+         @endcode
+
+         @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.
+
+         @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<typename T, typename T1, ...>
+    void CallAfter(void (T::*method)(T1, ...), T1 x1, ...);
+
     /**
         Processes an event, searching event tables and calling zero or more suitable
         event handler function(s).
@@ -671,7 +743,11 @@ public:
             be explicitly converted to the correct type which can be done using a macro
             called @c wxFooEventHandler for the handler for any @c wxFooEvent.
         @param userData
-            Data to be associated with the event table entry.
+            Optional data to be associated with the event table entry.
+            wxWidgets will take ownership of this pointer, i.e. it will be
+            destroyed when the event handler is disconnected or at the program
+            termination. This pointer can be retrieved using
+            wxEvent::GetEventUserData() later.
         @param eventSink
             Object whose member function should be called. It must be specified
             when connecting an event generated by one object to a member
@@ -820,7 +896,11 @@ public:
             The last ID of the identifier range to be associated with the event
             handler.
         @param userData
-            Data to be associated with the event table entry.
+            Optional data to be associated with the event table entry.
+            wxWidgets will take ownership of this pointer, i.e. it will be
+            destroyed when the event handler is disconnected or at the program
+            termination. This pointer can be retrieved using
+            wxEvent::GetEventUserData() later.
 
         @see @ref overview_cpp_rtti_disabled
 
@@ -855,7 +935,11 @@ public:
             The last ID of the identifier range to be associated with the event
             handler.
         @param userData
-            Data to be associated with the event table entry.
+            Optional data to be associated with the event table entry.
+            wxWidgets will take ownership of this pointer, i.e. it will be
+            destroyed when the event handler is disconnected or at the program
+            termination. This pointer can be retrieved using
+            wxEvent::GetEventUserData() later.
 
         @see @ref overview_cpp_rtti_disabled
 
@@ -1183,6 +1267,9 @@ protected:
     virtual bool TryAfter(wxEvent& event);
 };
 
+#endif // wxUSE_BASE
+
+#if wxUSE_GUI
 
 /**
     Flags for categories of keys.
@@ -1793,6 +1880,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
 
@@ -2441,7 +2726,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).
     */
@@ -2611,204 +2896,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
 
@@ -2861,11 +2948,15 @@ public:
     means that the event originated from a keyboard context button event, and you
     should compute a suitable position yourself, for example by calling wxGetMousePosition().
 
-    When a keyboard context menu button is pressed on Windows, a right-click event
-    with default position is sent first, and if this event is not processed, the
-    context menu event is sent. So if you process mouse events and you find your
-    context menu event handler is not being called, you could call wxEvent::Skip()
-    for mouse right-down events.
+    Notice that the exact sequence of mouse events is different across the
+    platforms. For example, under MSW the context menu event is generated after
+    @c EVT_RIGHT_UP event and only if it was not handled but under GTK the
+    context menu event is generated after @c EVT_RIGHT_DOWN event. This is
+    correct in the sense that it ensures that the context menu is shown
+    according to the current platform UI conventions and also means that you
+    must not handle (or call wxEvent::Skip() in your handler if you do have
+    one) neither right mouse down nor right mouse up event if you plan on
+    handling @c EVT_CONTEXT_MENU event.
 
     @beginEventTable{wxContextMenuEvent}
     @event{EVT_CONTEXT_MENU(func)}
@@ -3465,6 +3556,10 @@ public:
     void SetPosition(int pos);    
 };
 
+#endif // wxUSE_GUI
+
+#if wxUSE_BASE
+
 /**
     See wxIdleEvent::SetMode() for more info.
 */
@@ -3592,7 +3687,9 @@ public:
     static void SetMode(wxIdleMode mode);
 };
 
+#endif // wxUSE_BASE
 
+#if wxUSE_GUI
 
 /**
     @class wxInitDialogEvent
@@ -4180,7 +4277,7 @@ public:
     @library{wxcore}
     @category{events}
 
-    @see ::wxSetCursor, wxWindow::wxSetCursor
+    @see ::wxSetCursor, wxWindow::SetCursor
 */
 class wxSetCursorEvent : public wxEvent
 {
@@ -4220,7 +4317,7 @@ public:
     void SetCursor(const wxCursor& cursor);
 };
 
-
+#endif // wxUSE_GUI
 
 // ============================================================================
 // Global functions/macros
@@ -4229,6 +4326,8 @@ public:
 /** @addtogroup group_funcmacro_events */
 //@{
 
+#if wxUSE_BASE
+
 /**
     A value uniquely identifying the type of the event.
 
@@ -4236,7 +4335,7 @@ public:
 
     See the macro DEFINE_EVENT_TYPE() for more info.
 
-    @see @ref overview_events_introduction
+    @see @ref overview_events
 */
 typedef int wxEventType;
 
@@ -4440,7 +4539,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;
@@ -4565,7 +4666,7 @@ wxEventType wxEVT_COMMAND_TEXT_ENTER;
 wxEventType wxEVT_COMMAND_TOOL_CLICKED;
 wxEventType wxEVT_WINDOW_MODAL_DIALOG_CLOSED;
 
-
+#endif // wxUSE_GUI
 
 //@}