/////////////////////////////////////////////////////////////////////////////
// Name: event.h
-// Purpose: documentation for wxKeyEvent class
+// Purpose: interface of wx*Event classes
// Author: wxWidgets team
// RCS-ID: $Id$
// Licence: wxWindows license
Both key events provide untranslated key codes while the char event carries
the translated one. The untranslated code for alphanumeric keys is always
an upper case value. For the other keys it is one of @c WXK_XXX values
- from the @ref overview_keycodes "keycodes table". The translated key is, in
- general, the character the user expects to appear as the result of the key
- combination when typing the text into a text entry zone, for example.
+ from the @ref page_keycodes.
+ The translated key is, in general, the character the user expects to appear
+ as the result of the key combination when typing the text into a text entry
+ zone, for example.
A few examples to clarify this (all assume that CAPS LOCK is unpressed
and the standard US keyboard): when the @c 'A' key is pressed, the key down
Although in this simple case it is clear that the correct key code could be
found in the key down event handler by checking the value returned by
- wxKeyEvent::ShiftDown, in general you should use
- @c EVT_CHAR for this as for non-alphanumeric keys the translation is
- keyboard-layout dependent and can only be done properly by the system itself.
+ wxKeyEvent::ShiftDown(), in general you should use @c EVT_CHAR for this as
+ for non-alphanumeric keys the translation is keyboard-layout dependent and
+ can only be done properly by the system itself.
Another kind of translation is done when the control key is pressed: for
example, for CTRL-A key press the key down event still carries the
- same key code @c 'a' as usual but the char event will have key code of
- 1, the ASCII value of this key combination.
+ same key code @c 'a' as usual but the char event will have key code of 1,
+ the ASCII value of this key combination.
You may discover how the other keys on your system behave interactively by
- running the text wxWidgets sample and pressing some keys
+ running the @ref page_samples_text wxWidgets sample and pressing some keys
in any of the text controls shown in it.
- @b Note: If a key down (@c EVT_KEY_DOWN) event is caught and
- the event handler does not call @c event.Skip() then the corresponding
- char event (@c EVT_CHAR) will not happen. This is by design and
- enables the programs that handle both types of events to be a bit
- simpler.
-
- @b Note for Windows programmers: The key and char events in wxWidgets are
- similar to but slightly different from Windows @c WM_KEYDOWN and
- @c WM_CHAR events. In particular, Alt-x combination will generate a char
- event in wxWidgets (unless it is used as an accelerator).
-
@b Tip: be sure to call @c event.Skip() for events that you don't process in
key event function, otherwise menu shortcuts may cease to work under Windows.
+ @note If a key down (@c EVT_KEY_DOWN) event is caught and the event handler
+ does not call @c event.Skip() then the corresponding char event
+ (@c EVT_CHAR) will not happen.
+ This is by design and enables the programs that handle both types of
+ events to be a bit simpler.
+
+ @note For Windows programmers: The key and char events in wxWidgets are
+ similar to but slightly different from Windows @c WM_KEYDOWN and
+ @c WM_CHAR events. In particular, Alt-x combination will generate a
+ char event in wxWidgets (unless it is used as an accelerator).
+
+
+ @beginEventTable{wxKeyEvent}
+ @event{EVT_KEY_DOWN(func)}:
+ Process a wxEVT_KEY_DOWN event (any key has been pressed).
+ @event{EVT_KEY_UP(func)}:
+ Process a wxEVT_KEY_UP event (any key has been released).
+ @event{EVT_CHAR(func)}:
+ Process a wxEVT_CHAR event.
+ @endEventTable
+
@library{wxcore}
@category{events}
*/
{
public:
/**
- Constructor. Currently, the only valid event types are wxEVT_CHAR and
- wxEVT_CHAR_HOOK.
+ Constructor.
+ Currently, the only valid event types are @c wxEVT_CHAR and @c wxEVT_CHAR_HOOK.
*/
- wxKeyEvent(WXTYPE keyEventType);
+ wxKeyEvent(wxEventType keyEventType = wxEVT_NULL);
/**
Returns @true if the Alt key was down at the time of the key event.
-
- Notice that GetModifiers() is easier to use
- correctly than this function so you should consider using it in new code.
+
+ Notice that GetModifiers() is easier to use correctly than this function
+ so you should consider using it in new code.
*/
- bool AltDown();
+ bool AltDown() const;
/**
CMD is a pseudo key which is the same as Control for PC and Unix
- platforms but the special APPLE (a.k.a as COMMAND) key under
- Macs: it makes often sense to use it instead of, say, ControlDown() because Cmd
+ platforms but the special APPLE (a.k.a as COMMAND) key under Macs:
+ it makes often sense to use it instead of, say, ControlDown() because Cmd
key is used for the same thing under Mac as Ctrl elsewhere (but Ctrl still
exists, just not used for this purpose under Mac). So for non-Mac platforms
- this is the same as ControlDown() and under
- Mac this is the same as MetaDown().
+ this is the same as ControlDown() and under Mac this is the same as MetaDown().
*/
- bool CmdDown();
+ bool CmdDown() const;
/**
Returns @true if the control key was down at the time of the key event.
-
- Notice that GetModifiers() is easier to use
- correctly than this function so you should consider using it in new code.
+
+ Notice that GetModifiers() is easier to use correctly than this function
+ so you should consider using it in new code.
*/
- bool ControlDown();
+ bool ControlDown() const;
/**
Returns the virtual key code. ASCII events return normal ASCII values,
- while non-ASCII events return values such as @b WXK_LEFT for the
- left cursor key. See Keycodes for a full list of
- the virtual key codes.
-
+ while non-ASCII events return values such as @b WXK_LEFT for the left cursor
+ key. See @ref page_keycodes for a full list of the virtual key codes.
+
Note that in Unicode build, the returned value is meaningful only if the
user entered a character that can be represented in current locale's default
- charset. You can obtain the corresponding Unicode character using
- GetUnicodeKey().
+ charset. You can obtain the corresponding Unicode character using GetUnicodeKey().
*/
- int GetKeyCode();
+ int GetKeyCode() const;
/**
Return the bitmask of modifier keys which were pressed when this event
- happened. See @ref overview_keymodifiers "key modifier constants" for the full
- list
- of modifiers.
-
+ happened. See @ref page_keymodifiers for the full list of modifiers.
+
Notice that this function is easier to use correctly than, for example,
- ControlDown() because when using the latter you
- also have to remember to test that none of the other modifiers is pressed:
- and forgetting to do it can result in serious program bugs (e.g. program not
- working with European keyboard layout where ALTGR key which is seen by
- the program as combination of CTRL and ALT is used). On the
- other hand, you can simply write
+ ControlDown() because when using the latter you also have to remember to
+ test that none of the other modifiers is pressed:
+
+ @code
+ if ( ControlDown() && !AltDown() && !ShiftDown() && !MetaDown() )
+ ... handle Ctrl-XXX ...
+ @endcode
+
+ and forgetting to do it can result in serious program bugs (e.g. program
+ not working with European keyboard layout where ALTGR key which is seen by
+ the program as combination of CTRL and ALT is used). On the other hand,
+ you can simply write:
+
+ @code
+ if ( GetModifiers() == wxMOD_CONTROL )
+ ... handle Ctrl-XXX ...
+ @endcode
+
with this function.
*/
- int GetModifiers();
+ int GetModifiers() const;
//@{
/**
Obtains the position (in client coordinates) at which the key was pressed.
*/
- wxPoint GetPosition();
- void GetPosition(long * x, long * y);
+ wxPoint GetPosition() const;
+ void GetPosition(long* x, long* y) const;
//@}
/**
Returns the raw key code for this event. This is a platform-dependent scan code
which should only be used in advanced applications.
-
- @b NB: Currently the raw key codes are not supported by all ports, use
- @c #ifdef wxHAS_RAW_KEY_CODES to determine if this feature is available.
+
+ @note Currently the raw key codes are not supported by all ports, use
+ @ifdef_ wxHAS_RAW_KEY_CODES to determine if this feature is available.
*/
- wxUint32 GetRawKeyCode();
+ wxUint32 GetRawKeyCode() const;
/**
Returns the low level key flags for this event. The flags are
platform-dependent and should only be used in advanced applications.
-
- @b NB: Currently the raw key flags are not supported by all ports, use
- @c #ifdef wxHAS_RAW_KEY_CODES to determine if this feature is available.
+
+ @note Currently the raw key flags are not supported by all ports, use
+ @ifdef_ wxHAS_RAW_KEY_CODES to determine if this feature is available.
*/
- wxUint32 GetRawKeyFlags();
+ wxUint32 GetRawKeyFlags() const;
/**
Returns the Unicode character corresponding to this key event.
-
+
This function is only available in Unicode build, i.e. when
@c wxUSE_UNICODE is 1.
*/
- wxChar GetUnicodeKey();
+ wxChar GetUnicodeKey() const;
/**
Returns the X position (in client coordinates) of the event.
*/
-#define long GetX() /* implementation is private */
-
- /**
- Returns the Y (in client coordinates) position of the event.
- */
-#define long GetY() /* implementation is private */
-
- /**
- Returns @true if either CTRL or ALT keys was down
- at the time of the key event. Note that this function does not take into
- account neither SHIFT nor META key states (the reason for ignoring
- the latter is that it is common for NUMLOCK key to be configured as
- META under X but the key presses even while NUMLOCK is on should
- be still processed normally).
- */
- bool HasModifiers();
-
- /**
- Returns @true if the Meta key was down at the time of the key event.
-
- Notice that GetModifiers() is easier to use
- correctly than this function so you should consider using it in new code.
- */
- bool MetaDown();
+ wxCoord GetX() const;
/**
- Returns @true if the shift key was down at the time of the key event.
-
- Notice that GetModifiers() is easier to use
- correctly than this function so you should consider using it in new code.
+ Returns the Y position (in client coordinates) of the event.
*/
- bool ShiftDown();
+ wxCoord GetY() const;
/**
- bool m_altDown
-
- @b Deprecated: Please use GetModifiers()
- instead!
-
- @true if the Alt key is pressed down.
- */
-
+ Returns @true if either CTRL or ALT keys was down at the time of the
+ key event.
- /**
- bool m_controlDown
-
- @b Deprecated: Please use GetModifiers()
- instead!
-
- @true if control is pressed down.
+ Note that this function does not take into account neither SHIFT nor
+ META key states (the reason for ignoring the latter is that it is
+ common for NUMLOCK key to be configured as META under X but the key
+ presses even while NUMLOCK is on should be still processed normally).
*/
-
+ bool HasModifiers() const;
/**
- long m_keyCode
-
- @b Deprecated: Please use GetKeyCode()
- instead!
-
- Virtual keycode. See Keycodes for a list of identifiers.
- */
-
+ Returns @true if the Meta key was down at the time of the key event.
- /**
- bool m_metaDown
-
- @b Deprecated: Please use GetModifiers()
- instead!
-
- @true if the Meta key is pressed down.
+ Notice that GetModifiers() is easier to use correctly than this function
+ so you should consider using it in new code.
*/
-
+ bool MetaDown() const;
/**
- bool m_shiftDown
-
- @b Deprecated: Please use GetModifiers()
- instead!
-
- @true if shift is pressed down.
- */
-
+ Returns @true if the shift key was down at the time of the key event.
- /**
- int m_x
-
- @b Deprecated: Please use GetX() instead!
-
- X position of the event.
- */
-
-
- /**
- int m_y
-
- @b Deprecated: Please use GetY() instead!
-
- Y position of the event.
+ Notice that GetModifiers() is easier to use correctly than this function
+ so you should consider using it in new code.
*/
+ bool ShiftDown() const;
};
+
/**
@class wxJoystickEvent
@wxheader{event.h}
- This event class contains information about mouse events, particularly
+ This event class contains information about joystick events, particularly
events received by windows.
+ @beginEventTable{wxJoystickEvent}
+ @style{EVT_JOY_BUTTON_DOWN(func)}:
+ Process a wxEVT_JOY_BUTTON_DOWN event.
+ @style{EVT_JOY_BUTTON_UP(func)}:
+ Process a wxEVT_JOY_BUTTON_UP event.
+ @style{EVT_JOY_MOVE(func)}:
+ Process a wxEVT_JOY_MOVE event.
+ @style{EVT_JOY_ZMOVE(func)}:
+ Process a wxEVT_JOY_ZMOVE event.
+ @style{EVT_JOYSTICK_EVENTS(func)}:
+ Processes all joystick events.
+ @endEventTable
+
@library{wxcore}
@category{events}
- @seealso
- wxJoystick
+ @see wxJoystick
*/
class wxJoystickEvent : public wxEvent
{
/**
Constructor.
*/
- wxJoystickEvent(WXTYPE eventType = 0, int state = 0,
+ wxJoystickEvent(wxEventType eventType = wxEVT_NULL, int state = 0,
int joystick = wxJOYSTICK1,
int change = 0);
/**
- Returns @true if the event was a down event from the specified button (or any
- button).
-
+ Returns @true if the event was a down event from the specified button
+ (or any button).
+
@param button
- Can be wxJOY_BUTTONn where n is 1, 2, 3 or 4; or wxJOY_BUTTON_ANY to
- indicate any button down event.
+ Can be @c wxJOY_BUTTONn where @c n is 1, 2, 3 or 4; or @c wxJOY_BUTTON_ANY to
+ indicate any button down event.
*/
- bool ButtonDown(int button = wxJOY_BUTTON_ANY);
+ bool ButtonDown(int button = wxJOY_BUTTON_ANY) const;
/**
Returns @true if the specified button (or any button) was in a down state.
-
+
@param button
- Can be wxJOY_BUTTONn where n is 1, 2, 3 or 4; or wxJOY_BUTTON_ANY to
- indicate any button down event.
+ Can be @c wxJOY_BUTTONn where @c n is 1, 2, 3 or 4; or @c wxJOY_BUTTON_ANY to
+ indicate any button down event.
*/
- bool ButtonIsDown(int button = wxJOY_BUTTON_ANY);
+ bool ButtonIsDown(int button = wxJOY_BUTTON_ANY) const;
/**
- Returns @true if the event was an up event from the specified button (or any
- button).
-
+ Returns @true if the event was an up event from the specified button
+ (or any button).
+
@param button
- Can be wxJOY_BUTTONn where n is 1, 2, 3 or 4; or wxJOY_BUTTON_ANY to
- indicate any button down event.
+ Can be @c wxJOY_BUTTONn where @c n is 1, 2, 3 or 4; or @c wxJOY_BUTTON_ANY to
+ indicate any button down event.
*/
- bool ButtonUp(int button = wxJOY_BUTTON_ANY);
+ bool ButtonUp(int button = wxJOY_BUTTON_ANY) const;
/**
- Returns the identifier of the button changing state. This is a wxJOY_BUTTONn
- identifier, where
- n is one of 1, 2, 3, 4.
+ Returns the identifier of the button changing state.
+
+ This is a @c wxJOY_BUTTONn identifier, where @c n is one of 1, 2, 3, 4.
*/
- int GetButtonChange();
+ int GetButtonChange() const;
/**
- Returns the down state of the buttons. This is a bitlist of wxJOY_BUTTONn
- identifiers, where
- n is one of 1, 2, 3, 4.
+ Returns the down state of the buttons.
+
+ This is a @c wxJOY_BUTTONn identifier, where @c n is one of 1, 2, 3, 4.
*/
- int GetButtonState();
+ int GetButtonState() const;
/**
Returns the identifier of the joystick generating the event - one of
wxJOYSTICK1 and wxJOYSTICK2.
*/
- int GetJoystick();
+ int GetJoystick() const;
/**
Returns the x, y position of the joystick event.
*/
- wxPoint GetPosition();
+ wxPoint GetPosition() const;
/**
Returns the z position of the joystick event.
*/
- int GetZPosition();
+ int GetZPosition() const;
/**
- Returns @true if this was a button up or down event (@e not 'is any button
- down?').
+ Returns @true if this was a button up or down event
+ (@e not 'is any button down?').
*/
- bool IsButton();
+ bool IsButton() const;
/**
Returns @true if this was an x, y move event.
*/
- bool IsMove();
+ bool IsMove() const;
/**
Returns @true if this was a z move event.
*/
- bool IsZMove();
+ bool IsZMove() const;
};
+
/**
@class wxScrollWinEvent
@wxheader{event.h}
A scroll event holds information about events sent from scrolling windows.
+
+ @beginEventTable{wxScrollWinEvent}
+ You can use the EVT_SCROLLWIN* macros for intercepting scroll window events
+ from the receiving window.
+ @event{EVT_SCROLLWIN(func)}:
+ Process all scroll events.
+ @event{EVT_SCROLLWIN_TOP(func)}:
+ Process wxEVT_SCROLLWIN_TOP scroll-to-top events.
+ @event{EVT_SCROLLWIN_BOTTOM(func)}:
+ Process wxEVT_SCROLLWIN_BOTTOM scroll-to-bottom events.
+ @event{EVT_SCROLLWIN_LINEUP(func)}:
+ Process wxEVT_SCROLLWIN_LINEUP line up events.
+ @event{EVT_SCROLLWIN_LINEDOWN(func)}:
+ Process wxEVT_SCROLLWIN_LINEDOWN line down events.
+ @event{EVT_SCROLLWIN_PAGEUP(func)}:
+ Process wxEVT_SCROLLWIN_PAGEUP page up events.
+ @event{EVT_SCROLLWIN_PAGEDOWN(func)}:
+ Process wxEVT_SCROLLWIN_PAGEDOWN page down events.
+ @event{EVT_SCROLLWIN_THUMBTRACK(func)}:
+ Process wxEVT_SCROLLWIN_THUMBTRACK thumbtrack events
+ (frequent events sent as the user drags the thumbtrack).
+ @event{EVT_SCROLLWIN_THUMBRELEASE(func)}:
+ Process wxEVT_SCROLLWIN_THUMBRELEASE thumb release events.
+ @endEventTable
+
+
@library{wxcore}
@category{events}
- @seealso
- wxScrollEvent, @ref overview_eventhandlingoverview "Event handling overview"
+ @see wxScrollEvent, @ref overview_eventhandling
*/
class wxScrollWinEvent : public wxEvent
{
/**
Constructor.
*/
- wxScrollWinEvent(WXTYPE commandType = 0, int pos = 0,
+ wxScrollWinEvent(wxEventType commandType = wxEVT_NULL, int pos = 0,
int orientation = 0);
/**
Returns wxHORIZONTAL or wxVERTICAL, depending on the orientation of the
scrollbar.
+
+ @todo wxHORIZONTAL and wxVERTICAL should go in their own enum
*/
- int GetOrientation();
+ int GetOrientation() const;
/**
Returns the position of the scrollbar for the thumb track and release events.
+
Note that this field can't be used for the other events, you need to query
the window itself for the current position in that case.
*/
- int GetPosition();
+ int GetPosition() const;
};
+
/**
@class wxSysColourChangedEvent
@wxheader{event.h}
when the user changes the colour settings using the control panel.
This is only appropriate under Windows.
+ @remarks
+ The default event handler for this event propagates the event to child windows,
+ since Windows only sends the events to top-level windows.
+ If intercepting this event for a top-level window, remember to call the base
+ class handler, or to pass the event on to the window's children explicitly.
+
+ @beginEventTable{wxSysColourChangedEvent}
+ @event{EVT_SYS_COLOUR_CHANGED(func)}:
+ Process a wxEVT_SYS_COLOUR_CHANGED event.
+ @endEventTable
+
@library{wxcore}
@category{events}
- @seealso
- @ref overview_eventhandlingoverview "Event handling overview"
+ @see @ref overview_eventhandling
*/
class wxSysColourChangedEvent : public wxEvent
{
};
+
/**
@class wxWindowCreateEvent
@wxheader{event.h}
This event is sent just after the actual window associated with a wxWindow
- object
- has been created. Since it is derived from wxCommandEvent, the event propagates
- up
+ object has been created.
+
+ Since it is derived from wxCommandEvent, the event propagates up
the window hierarchy.
+ @beginEventTable{wxWindowCreateEvent}
+ @event{EVT_WINDOW_CREATE(func)}:
+ Process a wxEVT_CREATE event.
+ @endEventTable
+
@library{wxcore}
@category{events}
- @seealso
- @ref overview_eventhandlingoverview "Event handling overview",
- wxWindowDestroyEvent
+ @see @ref overview_eventhandling, wxWindowDestroyEvent
*/
class wxWindowCreateEvent : public wxCommandEvent
{
/**
Constructor.
*/
- wxWindowCreateEvent(wxWindow* win = @NULL);
+ wxWindowCreateEvent(wxWindow* win = NULL);
};
+
/**
@class wxPaintEvent
@wxheader{event.h}
A paint event is sent when a window's contents needs to be repainted.
Please notice that in general it is impossible to change the drawing of a
- standard control (such as wxButton) and so you shouldn't
- attempt to handle paint events for them as even if it might work on some
- platforms, this is inherently not portable and won't work everywhere.
+ standard control (such as wxButton) and so you shouldn't attempt to handle
+ paint events for them as even if it might work on some platforms, this is
+ inherently not portable and won't work everywhere.
+
+ @remarks
+ Note that in a paint event handler, the application must always create a
+ wxPaintDC object, even if you do not use it. Otherwise, under MS Windows,
+ refreshing for this and other windows will go wrong.
+ For example:
+ @code
+ void MyWindow::OnPaint(wxPaintEvent& event)
+ {
+ wxPaintDC dc(this);
+
+ DrawMyDocument(dc);
+ }
+ @endcode
+ You can optimize painting by retrieving the rectangles that have been damaged
+ and only repainting these. The rectangles are in terms of the client area,
+ and are unscrolled, so you will need to do some calculations using the current
+ view position to obtain logical, scrolled units.
+ Here is an example of using the wxRegionIterator class:
+ @code
+ // Called when window needs to be repainted.
+ void MyWindow::OnPaint(wxPaintEvent& event)
+ {
+ wxPaintDC dc(this);
+
+ // Find Out where the window is scrolled to
+ int vbX,vbY; // Top left corner of client
+ GetViewStart(&vbX,&vbY);
+
+ int vX,vY,vW,vH; // Dimensions of client area in pixels
+ wxRegionIterator upd(GetUpdateRegion()); // get the update rect list
+
+ while (upd)
+ {
+ vX = upd.GetX();
+ vY = upd.GetY();
+ vW = upd.GetW();
+ vH = upd.GetH();
+
+ // Alternatively we can do this:
+ // wxRect rect(upd.GetRect());
+
+ // Repaint this rectangle
+ ...some code...
+
+ upd ++ ;
+ }
+ }
+ @endcode
+
+
+ @beginEventTable{wxPaintEvent}
+ @event{EVT_PAINT(func)}:
+ Process a wxEVT_PAINT event.
+ @endEventTable
@library{wxcore}
@category{events}
- @seealso
- @ref overview_eventhandlingoverview "Event handling overview"
+ @see @ref overview_eventhandling
*/
class wxPaintEvent : public wxEvent
{
};
+
/**
@class wxMaximizeEvent
@wxheader{event.h}
An event being sent when a top level window is maximized. Notice that it is
not sent when the window is restored to its original size after it had been
- maximized, only a normal wxSizeEvent is generated in
- this case.
+ maximized, only a normal wxSizeEvent is generated in this case.
+
+ @beginEventTable{wxMaximizeEvent}
+ @event{EVT_MAXIMIZE(func)}:
+ Process a wxEVT_MAXIMIZE event.
+ @endEventTable
@library{wxcore}
@category{events}
- @seealso
- @ref overview_eventhandlingoverview "Event handling overview",
- wxTopLevelWindow::Maximize, wxTopLevelWindow::IsMaximized
+ @see @ref overview_eventhandling, wxTopLevelWindow::Maximize,
+ wxTopLevelWindow::IsMaximized
*/
class wxMaximizeEvent : public wxEvent
{
};
+
/**
@class wxUpdateUIEvent
@wxheader{event.h}
This class is used for pseudo-events which are called by wxWidgets
to give an application the chance to update various user interface elements.
+ @remarks
+ Without update UI events, an application has to work hard to check/uncheck,
+ enable/disable, show/hide, and set the text for elements such as menu items
+ and toolbar buttons. The code for doing this has to be mixed up with the code
+ that is invoked when an action is invoked for a menu item or button.
+ With update UI events, you define an event handler to look at the state of the
+ application and change UI elements accordingly. wxWidgets will call your member
+ functions in idle time, so you don't have to worry where to call this code.
+ In addition to being a clearer and more declarative method, it also means you don't
+ have to worry whether you're updating a toolbar or menubar identifier. The same
+ handler can update a menu item and toolbar button, if the identifier is the same.
+ Instead of directly manipulating the menu or button, you call functions in the event
+ object, such as wxUpdateUIEvent::Check. wxWidgets will determine whether such a
+ call has been made, and which UI element to update.
+ These events will work for popup menus as well as menubars. Just before a menu is
+ popped up, wxMenu::UpdateUI is called to process any UI events for the window that
+ owns the menu.
+ If you find that the overhead of UI update processing is affecting your application,
+ you can do one or both of the following:
+ @li Call wxUpdateUIEvent::SetMode with a value of wxUPDATE_UI_PROCESS_SPECIFIED,
+ and set the extra style wxWS_EX_PROCESS_UI_UPDATES for every window that should
+ receive update events. No other windows will receive update events.
+ @li Call wxUpdateUIEvent::SetUpdateInterval with a millisecond value to set the delay
+ between updates. You may need to call wxWindow::UpdateWindowUI at critical points,
+ for example when a dialog is about to be shown, in case the user sees a slight
+ delay before windows are updated.
+ Note that although events are sent in idle time, defining a wxIdleEvent handler
+ for a window does not affect this because the events are sent from wxWindow::OnInternalIdle
+ which is always called in idle time.
+ wxWidgets tries to optimize update events on some platforms.
+ On Windows and GTK+, events for menubar items are only sent when the menu is about
+ to be shown, and not in idle time.
+
+ @beginEventTable{wxUpdateUIEvent}
+ @event{EVT_UPDATE_UI(id, func)}:
+ Process a wxEVT_UPDATE_UI event for the command with the given id.
+ @event{EVT_UPDATE_UI_RANGE(id1, id2, func)}:
+ Process a wxEVT_UPDATE_UI event for any command with id included in the given range.
+ @endEventTable
+
+
@library{wxcore}
@category{events}
- @seealso
- @ref overview_eventhandlingoverview "Event handling overview"
+ @see @ref overview_eventhandling
*/
class wxUpdateUIEvent : public wxCommandEvent
{
/**
Returns @true if it is appropriate to update (send UI update events to)
this window.
-
This function looks at the mode used (see wxUpdateUIEvent::SetMode),
the wxWS_EX_PROCESS_UI_UPDATES flag in @e window,
the time update events were last sent in idle time, and
the interval is set to 0; so update events will be sent as
often as possible. You can reduce the frequency that events
are sent by changing the mode and/or setting an update interval.
-
- @sa ResetUpdateTime(), SetUpdateInterval(),
- SetMode()
+
+ @see ResetUpdateTime(), SetUpdateInterval(),
+ SetMode()
*/
static bool CanUpdate(wxWindow* window);
/**
Returns @true if the UI element should be checked.
*/
- bool GetChecked();
+ bool GetChecked() const;
/**
Returns @true if the UI element should be enabled.
*/
- bool GetEnabled();
+ bool GetEnabled() const;
/**
Static function returning a value specifying how wxWidgets
will send update events: to all windows, or only to those which specify that
they
will process the events.
-
See SetMode().
*/
static wxUpdateUIMode GetMode();
Returns @true if the application has called Check(). For wxWidgets internal use
only.
*/
- bool GetSetChecked();
+ bool GetSetChecked() const;
/**
Returns @true if the application has called Enable(). For wxWidgets internal use
only.
*/
- bool GetSetEnabled();
+ bool GetSetEnabled() const;
/**
Returns @true if the application has called Show(). For wxWidgets internal use
only.
*/
- bool GetSetShown();
+ bool GetSetShown() const;
/**
Returns @true if the application has called SetText(). For wxWidgets internal
use only.
*/
- bool GetSetText();
+ bool GetSetText() const;
/**
Returns @true if the UI element should be shown.
*/
- bool GetShown();
+ bool GetShown() const;
/**
Returns the text that should be set for the UI element.
*/
- wxString GetText();
+ wxString GetText() const;
/**
Returns the current interval between updates in milliseconds.
-1 disables updates, 0 updates as frequently as possible.
-
See SetUpdateInterval().
*/
static long GetUpdateInterval();
current time. It is assumed that update events are
normally sent in idle time, so this is called at the end of
idle processing.
-
- @sa CanUpdate(), SetUpdateInterval(),
- SetMode()
+
+ @see CanUpdate(), SetUpdateInterval(),
+ SetMode()
*/
static void ResetUpdateTime();
Specify how wxWidgets will send update events: to
all windows, or only to those which specify that they
will process the events.
-
- @e mode may be one of the following values.
+ @a mode may be one of the following values.
The default is wxUPDATE_UI_PROCESS_ALL.
*/
static void SetMode(wxUpdateUIMode mode);
Sets the interval between updates in milliseconds.
Set to -1 to disable updates, or to 0 to update as frequently as possible.
The default is 0.
-
Use this to reduce the overhead of UI update events if your application
has a lot of windows. If you set the value to -1 or greater than 0,
you may also need to call wxWindow::UpdateWindowUI
};
+
/**
@class wxClipboardTextEvent
@wxheader{event.h}
wxEVT_COMMAND_TEXT_CUT and wxEVT_COMMAND_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 prevent
- the text from being copied from or pasted to a control. It is also possible to
- examine the clipboard contents in the PASTE event handler and transform it in
- some way before inserting in a control -- for example, changing its case or
- removing invalid characters.
+ handler, the corresponding operation doesn't take place which allows to
+ prevent the text from being copied from or pasted to a control. It is also
+ possible to examine the clipboard contents in the PASTE event handler and
+ transform it in some way before inserting in a control -- for example,
+ changing its case or removing invalid characters.
Finally notice that a CUT event is always preceded by the COPY event which
- makes it possible to only process the latter if it doesn't matter if the text
- was copied or cut.
+ makes it possible to only process the latter if it doesn't matter if the
+ text was copied or cut.
+
+ @beginEventTable{wxClipboardTextEvent}
+ @event{EVT_TEXT_COPY(id, func)}:
+ Some or all of the controls content was copied to the clipboard.
+ @event{EVT_TEXT_CUT(id, func)}:
+ Some or all of the controls content was cut (i.e. copied and
+ deleted).
+ @event{EVT_TEXT_PASTE(id, func)}:
+ Clipboard content was pasted into the control.
+ @endEventTable
+
+ @note
+ These events are currently only generated by wxTextCtrl under GTK+. They
+ are generated by all controls under Windows.
@library{wxcore}
@category{events}
- @seealso
- wxClipboard
+ @see wxClipboard
*/
class wxClipboardTextEvent : public wxCommandEvent
{
public:
/**
-
+ Constructor.
*/
- wxClipboardTextEvent(wxEventType commandType = wxEVT_@NULL,
- int id = 0);
+ wxClipboardTextEvent(wxEventType commandType = wxEVT_NULL, int id = 0);
};
+
/**
@class wxMouseEvent
@wxheader{event.h}
parent window receives @c wxEVT_LEAVE_WINDOW event not only when the
mouse leaves the window entirely but also when it enters one of its children.
- @b NB: Note that under Windows CE mouse enter and leave events are not natively
+ @note Note that under Windows CE mouse enter and leave events are not natively
supported
by the system but are generated by wxWidgets itself. This has several
drawbacks: the LEAVE_WINDOW event might be received some time after the mouse
left the window and the state variables for it may have changed during this
time.
- @b NB: Note the difference between methods like
+ @note Note the difference between methods like
wxMouseEvent::LeftDown and
wxMouseEvent::LeftIsDown: the former returns @true
when the event corresponds to the left mouse button click while the latter
@library{wxcore}
@category{events}
- @seealso
- wxKeyEvent::CmdDown
+ @see wxKeyEvent::CmdDown
*/
class wxMouseEvent : public wxEvent
{
public:
/**
Constructor. Valid event types are:
-
+
@b wxEVT_ENTER_WINDOW
@b wxEVT_LEAVE_WINDOW
@b wxEVT_LEFT_DOWN
@b wxEVT_MOTION
@b wxEVT_MOUSEWHEEL
*/
- wxMouseEvent(WXTYPE mouseEventType = 0);
+ wxMouseEvent(wxEventType mouseEventType = 0);
/**
Returns @true if the Alt key was down at the time of the event.
*/
- bool AltDown();
+ bool AltDown() const;
/**
Returns @true if the event was a first extra button double click.
*/
- bool Aux1DClick();
+ bool Aux1DClick() const;
/**
Returns @true if the first extra button mouse button changed to down.
*/
- bool Aux1Down();
+ bool Aux1Down() const;
/**
Returns @true if the first extra button mouse button is currently down,
independent
of the current event type.
*/
- bool Aux1IsDown();
+ bool Aux1IsDown() const;
/**
Returns @true if the first extra button mouse button changed to up.
*/
- bool Aux1Up();
+ bool Aux1Up() const;
/**
Returns @true if the event was a second extra button double click.
*/
- bool Aux2DClick();
+ bool Aux2DClick() const;
/**
Returns @true if the second extra button mouse button changed to down.
*/
- bool Aux2Down();
+ bool Aux2Down() const;
/**
Returns @true if the second extra button mouse button is currently down,
independent
of the current event type.
*/
- bool Aux2IsDown();
+ bool Aux2IsDown() const;
/**
Returns @true if the second extra button mouse button changed to up.
*/
- bool Aux2Up();
+ bool Aux2Up() const;
/**
Returns @true if the identified mouse button is changing state. Valid
- values of @e button are:
-
+ values of @a button are:
+
@c wxMOUSE_BTN_LEFT
-
-
+
check if left button was pressed
-
+
@c wxMOUSE_BTN_MIDDLE
-
-
+
check if middle button was pressed
-
+
@c wxMOUSE_BTN_RIGHT
-
-
+
check if right button was pressed
-
+
@c wxMOUSE_BTN_AUX1
-
-
+
check if the first extra button was pressed
-
+
@c wxMOUSE_BTN_AUX2
-
-
+
check if the second extra button was pressed
-
+
@c wxMOUSE_BTN_ANY
-
-
+
check if any button was pressed
*/
- bool Button(int button);
+ bool Button(int button) const;
/**
If the argument is omitted, this returns @true if the event was a mouse
was generated (see Button() for the possible
values).
*/
- bool ButtonDClick(int but = wxMOUSE_BTN_ANY);
+ bool ButtonDClick(int but = wxMOUSE_BTN_ANY) const;
/**
If the argument is omitted, this returns @true if the event was a mouse
was generated (see Button() for the possible
values).
*/
- bool ButtonDown(int but = -1);
+ bool ButtonDown(int = wxMOUSE_BTN_ANY) const;
/**
If the argument is omitted, this returns @true if the event was a mouse
was generated (see Button() for the possible
values).
*/
- bool ButtonUp(int but = -1);
+ bool ButtonUp(int = wxMOUSE_BTN_ANY) const;
/**
Same as MetaDown() under Mac, same as
ControlDown() elsewhere.
-
- @sa wxKeyEvent::CmdDown
+
+ @see wxKeyEvent::CmdDown
*/
- bool CmdDown();
+ bool CmdDown() const;
/**
Returns @true if the control key was down at the time of the event.
*/
- bool ControlDown();
+ bool ControlDown() const;
/**
Returns @true if this was a dragging event (motion while a button is depressed).
-
- @sa Moving()
+
+ @see Moving()
*/
- bool Dragging();
+ bool Dragging() const;
/**
Returns @true if the mouse was entering the window.
-
See also Leaving().
*/
- bool Entering();
+ bool Entering() const;
/**
Returns the mouse button which generated this event or @c wxMOUSE_BTN_NONE
double click events, @c wxMOUSE_BTN_MIDDLE and @c wxMOUSE_BTN_RIGHT
for the same events for the middle and the right buttons respectively.
*/
- int GetButton();
+ int GetButton() const;
/**
Returns the number of mouse clicks for this event: 1 for a simple click, 2
for a double-click, 3 for a triple-click and so on.
-
Currently this function is implemented only in wxMac and returns -1 for the
other platforms (you can still distinguish simple clicks from double-clicks as
they generate different kinds of events however).
-
- This function is new since wxWidgets version 2.9.0
+
+ @wxsince{2.9.0}
*/
- int GetClickCount();
+ int GetClickCount() const;
/**
Returns the configured number of lines (or whatever) to be scrolled per
wheel action. Defaults to three.
*/
- int GetLinesPerAction();
+ int GetLinesPerAction() 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
scrolled).
*/
- wxPoint GetLogicalPosition(const wxDC& dc);
+ wxPoint GetLogicalPosition(const wxDC& dc) const;
//@{
/**
Sets *x and *y to the position at which the event occurred.
-
Returns the physical mouse position in pixels.
-
Note that if the mouse event has been artificially generated from a special
keyboard combination (e.g. under Windows when the "menu'' key is pressed), the
returned position is @c wxDefaultPosition.
*/
- wxPoint GetPosition();
- void GetPosition(wxCoord* x, wxCoord* y);
- void GetPosition(long* x, long* y);
+ wxPoint GetPosition() const;
+ const void GetPosition(wxCoord* x, wxCoord* y) const;
+ const void GetPosition(long* x, long* y) const;
//@}
/**
taken, and one such action (for example, scrolling one increment)
should occur for each delta.
*/
- int GetWheelDelta();
+ int GetWheelDelta() const;
/**
Get wheel rotation, positive or negative indicates direction of
should be able to either do partial line scrolling or wait until several
events accumulate before scrolling.
*/
- int GetWheelRotation();
+ int GetWheelRotation() const;
/**
Returns X coordinate of the physical mouse event position.
*/
-#define long GetX() /* implementation is private */
+ wxCoord GetX() const;
/**
Returns Y coordinate of the physical mouse event position.
*/
-#define long GetY() /* implementation is private */
+ wxCoord GetY() const;
/**
Returns @true if the event was a mouse button event (not necessarily a button
down event -
that may be tested using @e ButtonDown).
*/
- bool IsButton();
+ bool IsButton() const;
/**
Returns @true if the system has been setup to do page scrolling with
the mouse wheel instead of line scrolling.
*/
- bool IsPageScroll();
+ bool IsPageScroll() const;
/**
Returns @true if the mouse was leaving the window.
-
See also Entering().
*/
- bool Leaving();
+ bool Leaving() const;
/**
Returns @true if the event was a left double click.
*/
- bool LeftDClick();
+ bool LeftDClick() const;
/**
Returns @true if the left mouse button changed to down.
*/
- bool LeftDown();
+ bool LeftDown() const;
/**
Returns @true if the left mouse button is currently down, independent
of the current event type.
-
Please notice that it is not the same as
LeftDown() which returns @true if the event was
generated by the left mouse button being pressed. Rather, it simply describes
the state of the left mouse button at the time when the event was generated
(so while it will be @true for a left click event, it can also be @true for
a right click if it happened while the left mouse button was pressed).
-
This event is usually used in the mouse event handlers which process "move
mouse" messages to determine whether the user is (still) dragging the mouse.
*/
- bool LeftIsDown();
+ bool LeftIsDown() const;
/**
Returns @true if the left mouse button changed to up.
*/
- bool LeftUp();
+ bool LeftUp() const;
/**
Returns @true if the Meta key was down at the time of the event.
*/
- bool MetaDown();
+ bool MetaDown() const;
/**
Returns @true if the event was a middle double click.
*/
- bool MiddleDClick();
+ bool MiddleDClick() const;
/**
Returns @true if the middle mouse button changed to down.
*/
- bool MiddleDown();
+ bool MiddleDown() const;
/**
Returns @true if the middle mouse button is currently down, independent
of the current event type.
*/
- bool MiddleIsDown();
+ bool MiddleIsDown() const;
/**
Returns @true if the middle mouse button changed to up.
*/
- bool MiddleUp();
+ bool MiddleUp() const;
/**
Returns @true if this was a motion event and no mouse buttons were pressed.
If any mouse button is held pressed, then this method returns @false and
Dragging() returns @true.
*/
- bool Moving();
+ bool Moving() const;
/**
Returns @true if the event was a right double click.
*/
- bool RightDClick();
+ bool RightDClick() const;
/**
Returns @true if the right mouse button changed to down.
*/
- bool RightDown();
+ bool RightDown() const;
/**
Returns @true if the right mouse button is currently down, independent
of the current event type.
*/
- bool RightIsDown();
+ bool RightIsDown() const;
/**
Returns @true if the right mouse button changed to up.
*/
- bool RightUp();
+ bool RightUp() const;
/**
Returns @true if the shift key was down at the time of the event.
*/
- bool ShiftDown();
+ bool ShiftDown() const;
/**
bool m_altDown
-
@true if the Alt key is pressed down.
*/
/**
bool m_controlDown
-
@true if control key is pressed down.
*/
/**
bool m_leftDown
-
@true if the left mouse button is currently pressed down.
*/
/**
int m_linesPerAction
-
The configured number of lines (or whatever) to be scrolled per wheel
action.
*/
/**
bool m_metaDown
-
@true if the Meta key is pressed down.
*/
/**
bool m_middleDown
-
@true if the middle mouse button is currently pressed down.
*/
/**
bool m_rightDown
-
@true if the right mouse button is currently pressed down.
*/
/**
bool m_shiftDown
-
@true if shift is pressed down.
*/
/**
int m_wheelDelta
-
The wheel delta, normally 120.
*/
/**
int m_wheelRotation
-
The distance the mouse wheel is rotated.
*/
/**
long m_x
-
X-coordinate of the event.
*/
/**
long m_y
-
Y-coordinate of the event.
*/
};
+
/**
@class wxDropFilesEvent
@wxheader{event.h}
wxWindow::DragAcceptFiles.
Important note: this is a separate implementation to the more general
- drag and drop implementation documented here. It uses the
+ drag and drop implementation documented here(). It uses the
older, Windows message-based approach of dropping files.
@library{wxcore}
@category{events}
- @seealso
- @ref overview_eventhandlingoverview "Event handling overview"
+ @see @ref overview_eventhandling
*/
class wxDropFilesEvent : public wxEvent
{
/**
Constructor.
*/
- wxDropFilesEvent(WXTYPE id = 0, int noFiles = 0,
- wxString* files = @NULL);
+ wxDropFilesEvent(wxEventType id = 0, int noFiles = 0,
+ wxString* files = NULL);
/**
Returns an array of filenames.
*/
- wxString* GetFiles();
+ wxString* GetFiles() const;
/**
Returns the number of files dropped.
*/
- int GetNumberOfFiles();
+ int GetNumberOfFiles() const;
/**
Returns the position at which the files were dropped.
-
Returns an array of filenames.
*/
- wxPoint GetPosition();
+ wxPoint GetPosition() const;
/**
wxString* m_files
-
An array of filenames.
*/
/**
int m_noFiles
-
The number of files dropped.
*/
/**
wxPoint m_pos
-
The point at which the drop took place.
*/
};
+
/**
@class wxCommandEvent
@wxheader{event.h}
/**
Constructor.
*/
- wxCommandEvent(WXTYPE commandEventType = 0, int id = 0);
+ wxCommandEvent(wxEventType commandEventType = 0, int id = 0);
/**
Deprecated, use IsChecked() instead.
*/
- bool Checked();
+ bool Checked() const;
/**
Returns client data pointer for a listbox or choice selection event
(not valid for a deselection).
*/
- void* GetClientData();
+ void* GetClientData() const;
/**
Returns client object pointer for a listbox or choice selection event
(not valid for a deselection).
*/
- wxClientData * GetClientObject();
+ wxClientData* GetClientObject() const;
/**
Returns extra information dependant on the event objects type.
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();
+ 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.
*/
- int GetInt();
+ int GetInt() const;
/**
Returns item index for a listbox or choice selection event (not valid for
a deselection).
*/
- int GetSelection();
+ int GetSelection() const;
/**
Returns item string for a listbox or choice selection event (not valid for
a deselection).
*/
- wxString GetString();
+ wxString GetString() const;
/**
This method can be used with checkbox and menu events: for the checkboxes, the
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 can not be used with
wxCheckListBox currently.
*/
- bool IsChecked();
+ bool IsChecked() const;
/**
For a listbox or similar event, returns @true if it is a selection, @false if it
is a deselection.
*/
- bool IsSelection();
+ bool IsSelection() const;
/**
Sets the client data for this event.
};
+
/**
@class wxActivateEvent
@wxheader{event.h}
@library{wxcore}
@category{events}
- @seealso
- @ref overview_eventhandlingoverview "Event handling overview", wxApp::IsActive
+ @see @ref overview_eventhandling, wxApp::IsActive
*/
class wxActivateEvent : public wxEvent
{
/**
Constructor.
*/
- wxActivateEvent(WXTYPE eventType = 0, bool active = @true,
+ wxActivateEvent(wxEventType eventType = wxEVT_NULL, bool active = true,
int id = 0);
/**
Returns @true if the application or window is being activated, @false otherwise.
*/
- bool GetActive();
+ bool GetActive() const;
};
+
/**
@class wxContextMenuEvent
@wxheader{event.h}
means that the event originated
from a keyboard context button event, and you should compute a suitable
position yourself,
- for example by calling wxGetMousePosition.
+ 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,
@library{wxcore}
@category{events}
- @seealso
- @ref overview_wxcommandevent "Command events", @ref
- overview_eventhandlingoverview "Event handling overview"
+ @see @ref overview_wxcommandevent "Command events", @ref
+ overview_eventhandling
*/
class wxContextMenuEvent : public wxCommandEvent
{
/**
Constructor.
*/
- wxContextMenuEvent(WXTYPE id = 0, int id = 0,
- const wxPoint& pos=wxDefaultPosition);
+ wxContextMenuEvent(wxEventType id = 0, int id = 0,
+ const wxPoint& pos = wxDefaultPosition);
/**
Returns the position in screen coordinates at which the menu should be shown.
convert to client coordinates. You can also omit a position from
wxWindow::PopupMenu in order to use
the current mouse pointer position.
-
If the event originated from a keyboard event, the value returned from this
function will be wxDefaultPosition.
*/
- wxPoint GetPosition();
+ const wxPoint& GetPosition() const;
/**
Sets the position at which the menu should be shown.
};
+
/**
@class wxEraseEvent
@wxheader{event.h}
@library{wxcore}
@category{events}
- @seealso
- @ref overview_eventhandlingoverview "Event handling overview"
+ @see @ref overview_eventhandling
*/
class wxEraseEvent : public wxEvent
{
/**
Constructor.
*/
- wxEraseEvent(int id = 0, wxDC* dc = @NULL);
+ wxEraseEvent(int id = 0, wxDC* dc = NULL);
/**
Returns the device context associated with the erase event to draw on.
*/
-#define wxDC* GetDC() /* implementation is private */
+ wxDC* GetDC() const;
};
+
/**
@class wxFocusEvent
@wxheader{event.h}
@library{wxcore}
@category{events}
- @seealso
- @ref overview_eventhandlingoverview "Event handling overview"
+ @see @ref overview_eventhandling
*/
class wxFocusEvent : public wxEvent
{
/**
Constructor.
*/
- wxFocusEvent(WXTYPE eventType = 0, int id = 0);
+ wxFocusEvent(wxEventType eventType = 0, int id = 0);
/**
Returns the window associated with this event, that is the window which had the
focus before for the @c wxEVT_SET_FOCUS event and the window which is
going to receive focus for the @c wxEVT_KILL_FOCUS one.
-
Warning: the window pointer may be @NULL!
*/
};
+
/**
@class wxChildFocusEvent
@wxheader{event.h}
@library{wxcore}
@category{events}
- @seealso
- @ref overview_eventhandlingoverview "Event handling overview"
+ @see @ref overview_eventhandling
*/
class wxChildFocusEvent : public wxCommandEvent
{
public:
/**
Constructor.
-
+
@param win
- The direct child which is (or which contains the window which is) receiving the
- focus.
+ The direct child which is (or which contains the window which is) receiving
+ the focus.
*/
- wxChildFocusEvent(wxWindow * win = @NULL);
+ wxChildFocusEvent(wxWindow* win = NULL);
/**
Returns the direct child which receives the focus, or a (grand-)parent of the
control receiving the focus.
-
To get the actually focused control use wxWindow::FindFocus.
*/
};
+
/**
@class wxMouseCaptureLostEvent
@wxheader{event.h}
@library{wxcore}
@category{events}
- @seealso
- wxMouseCaptureChangedEvent, @ref overview_eventhandlingoverview "Event handling
- overview", wxWindow::CaptureMouse, wxWindow::ReleaseMouse, wxWindow::GetCapture
+ @see wxMouseCaptureChangedEvent, @ref overview_eventhandling,
+ wxWindow::CaptureMouse, wxWindow::ReleaseMouse, wxWindow::GetCapture
*/
class wxMouseCaptureLostEvent : public wxEvent
{
};
+
/**
@class wxNotifyEvent
@wxheader{event.h}
@library{wxcore}
@category{events}
- @seealso
- wxNotebookEvent
+ @see wxNotebookEvent
*/
class wxNotifyEvent : public wxCommandEvent
{
/**
Constructor (used internally by wxWidgets only).
*/
- wxNotifyEvent(wxEventType eventType = wxEVT_@NULL, int id = 0);
+ wxNotifyEvent(wxEventType eventType = wxEVT_NULL, int id = 0);
/**
This is the opposite of Veto(): it explicitly
Returns @true if the change is allowed (Veto()
hasn't been called) or @false otherwise (if it was).
*/
- bool IsAllowed();
+ bool IsAllowed() const;
/**
Prevents the change announced by this event from happening.
-
It is in general a good idea to notify the user about the reasons for vetoing
the change because otherwise the applications behaviour (which just refuses to
do what the user wants) might be quite surprising.
};
+
/**
@class wxHelpEvent
@wxheader{event.h}
since processing would stop after the first window found.
@library{wxcore}
- @category{FIXME}
+ @category{events}
- @seealso
- wxContextHelp, wxDialog, @ref overview_eventhandlingoverview "Event handling
- overview"
+ @see wxContextHelp, wxDialog, @ref overview_eventhandling
*/
class wxHelpEvent : public wxCommandEvent
{
public:
+ // how was this help event generated?
+ enum Origin
+ {
+ Origin_Unknown, // unrecognized event source
+ Origin_Keyboard, // event generated from F1 key press
+ Origin_HelpButton // event from [?] button on the title bar (Windows)
+ };
+
/**
Constructor.
*/
- wxHelpEvent(WXTYPE eventType = 0, wxWindowID id = 0,
- const wxPoint& point);
+ wxHelpEvent(wxEventType type = wxEVT_NULL,
+ wxWindowID winid = 0,
+ const wxPoint& pt = wxDefaultPosition,
+ Origin origin = Origin_Unknown);
/**
Returns the origin of the help event which is one of the following values:
-
-
+
@b Origin_Unknown
-
-
+
Unrecognized event source.
-
+
@b Origin_Keyboard
-
-
+
Event generated by @c F1 key press.
-
+
@b Origin_HelpButton
-
-
+
Event generated by
wxContextHelp or using the "?" title bur button under
MS Windows.
-
+
The application may handle events generated using the keyboard or mouse
- differently, e.g. by using wxGetMousePosition
+ differently, e.g. by using wxGetMousePosition()
for the mouse events.
-
- @sa SetOrigin()
+
+ @see SetOrigin()
*/
- wxHelpEvent::Origin GetOrigin();
+ Origin GetOrigin() const;
/**
Returns the left-click position of the mouse, in screen coordinates. This allows
the application to position the help appropriately.
*/
- const wxPoint GetPosition();
+ const wxPoint& GetPosition() const;
/**
Set the help event origin, only used internally by wxWidgets normally.
-
- @sa GetOrigin()
+
+ @see GetOrigin()
*/
- void SetOrigin(wxHelpEvent::Origin origin);
+ void SetOrigin(Origin);
/**
Sets the left-click position of the mouse, in screen coordinates.
};
+
/**
@class wxScrollEvent
@wxheader{event.h}
A scroll event holds information about events sent from stand-alone
- scrollbars and sliders. Note that
+ scrollbars() and sliders(). Note that
starting from wxWidgets 2.1, scrolled windows send the
wxScrollWinEvent which does not derive from
wxCommandEvent, but from wxEvent directly - don't confuse these two kinds of
@library{wxcore}
@category{events}
- @seealso
- wxScrollBar, wxSlider, wxSpinButton, , wxScrollWinEvent, @ref
- overview_eventhandlingoverview "Event handling overview"
+ @see wxScrollBar, wxSlider, wxSpinButton, , wxScrollWinEvent, @ref
+ overview_eventhandling
*/
class wxScrollEvent : public wxCommandEvent
{
/**
Constructor.
*/
- wxScrollEvent(WXTYPE commandType = 0, int id = 0, int pos = 0,
+ wxScrollEvent(wxEventType commandType = 0, int id = 0, int pos = 0,
int orientation = 0);
/**
Returns wxHORIZONTAL or wxVERTICAL, depending on the orientation of the
scrollbar.
*/
- int GetOrientation();
+ int GetOrientation() const;
/**
Returns the position of the scrollbar.
*/
- int GetPosition();
+ int GetPosition() const;
};
+
/**
@class wxIdleEvent
@wxheader{event.h}
happens and only then is the next idle event sent again. If you need to ensure
a continuous stream of idle events, you can either use
wxIdleEvent::RequestMore method in your handler or call
- wxWakeUpIdle periodically (for example from timer
+ wxWakeUpIdle() periodically (for example from timer
event), but note that both of these approaches (and especially the first one)
increase the system load and so should be avoided if possible.
@library{wxbase}
@category{events}
- @seealso
- @ref overview_eventhandlingoverview "Event handling overview", wxUpdateUIEvent,
+ @see @ref overview_eventhandling, wxUpdateUIEvent,
wxWindow::OnInternalIdle
*/
class wxIdleEvent : public wxEvent
/**
Returns @true if it is appropriate to send idle events to
this window.
-
This function looks at the mode used (see wxIdleEvent::SetMode),
- and the wxWS_EX_PROCESS_IDLE style in @e window to determine whether idle
+ and the wxWS_EX_PROCESS_IDLE style in @a window to determine whether idle
events should be sent to
this window now. By default this will always return @true because
the update mode is initially wxIDLE_PROCESS_ALL. You can change the mode
to only send idle events to windows with the wxWS_EX_PROCESS_IDLE extra window
style set.
-
- @sa SetMode()
+
+ @see SetMode()
*/
static bool CanSend(wxWindow* window);
Static function returning a value specifying how wxWidgets
will send idle events: to all windows, or only to those which specify that they
will process the events.
-
See SetMode().
*/
static wxIdleMode GetMode();
/**
Returns @true if the OnIdle function processing this event requested more
processing time.
-
- @sa RequestMore()
+
+ @see RequestMore()
*/
- bool MoreRequested();
+ bool MoreRequested() const;
/**
Tells wxWidgets that more processing is required. This function can be called
during OnIdle, then the application will remain in a passive event loop (not
calling OnIdle) until a
new event is posted to the application by the windowing system.
-
- @sa MoreRequested()
+
+ @see MoreRequested()
*/
- void RequestMore(bool needMore = @true);
+ void RequestMore(bool needMore = true);
/**
Static function for specifying how wxWidgets will send idle events: to
all windows, or only to those which specify that they
will process the events.
-
- @e mode can be one of the following values.
+ @a mode can be one of the following values.
The default is wxIDLE_PROCESS_ALL.
*/
static void SetMode(wxIdleMode mode);
};
+
/**
@class wxInitDialogEvent
@wxheader{event.h}
@library{wxcore}
@category{events}
- @seealso
- @ref overview_eventhandlingoverview "Event handling overview"
+ @see @ref overview_eventhandling
*/
class wxInitDialogEvent : public wxEvent
{
};
+
/**
@class wxWindowDestroyEvent
@wxheader{event.h}
@library{wxcore}
@category{events}
- @seealso
- @ref overview_eventhandlingoverview "Event handling overview",
- wxWindowCreateEvent
+ @see @ref overview_eventhandling, wxWindowCreateEvent
*/
class wxWindowDestroyEvent : public wxCommandEvent
{
/**
Constructor.
*/
- wxWindowDestroyEvent(wxWindow* win = @NULL);
+ wxWindowDestroyEvent(wxWindow* win = NULL);
};
+
/**
@class wxNavigationKeyEvent
@wxheader{event.h}
@library{wxcore}
@category{events}
- @seealso
- wxWindow::Navigate, wxWindow::NavigateIn
+ @see wxWindow::Navigate, wxWindow::NavigateIn
*/
class wxNavigationKeyEvent
{
/**
Returns the child that has the focus, or @NULL.
*/
- wxWindow* GetCurrentFocus();
+ wxWindow* GetCurrentFocus() const;
/**
Returns @true if the navigation was in the forward direction.
*/
- bool GetDirection();
+ bool GetDirection() const;
/**
Returns @true if the navigation event was from a tab key. This is required
for proper navigation over radio buttons.
*/
- bool IsFromTab();
+ bool IsFromTab() const;
/**
Returns @true if the navigation event represents a window change (for
example, from Ctrl-Page Down
in a notebook).
*/
- bool IsWindowChange();
+ bool IsWindowChange() const;
/**
Sets the current focus window member.
void SetCurrentFocus(wxWindow* currentFocus);
/**
- Sets the direction to forward if @e direction is @true, or backward if @c
+ Sets the direction to forward if @a direction is @true, or backward if @c
@false.
*/
void SetDirection(bool direction);
};
+
/**
@class wxMouseCaptureChangedEvent
@wxheader{event.h}
@library{wxcore}
@category{events}
- @seealso
- wxMouseCaptureLostEvent, @ref overview_eventhandlingoverview "Event handling
- overview", wxWindow::CaptureMouse, wxWindow::ReleaseMouse, wxWindow::GetCapture
+ @see wxMouseCaptureLostEvent, @ref overview_eventhandling,
+ wxWindow::CaptureMouse, wxWindow::ReleaseMouse, wxWindow::GetCapture
*/
class wxMouseCaptureChangedEvent : public wxEvent
{
Constructor.
*/
wxMouseCaptureChangedEvent(wxWindowID windowId = 0,
- wxWindow* gainedCapture = @NULL);
+ wxWindow* gainedCapture = NULL);
/**
Returns the window that gained the capture, or @NULL if it was a non-wxWidgets
window.
*/
- wxWindow* GetCapturedWindow();
+ wxWindow* GetCapturedWindow() const;
};
+
/**
@class wxCloseEvent
@wxheader{event.h}
@library{wxcore}
@category{events}
- @seealso
- wxWindow::Close, @ref overview_windowdeletionoverview "Window deletion overview"
+ @see wxWindow::Close, @ref overview_windowdeletionoverview "Window deletion
+ overview"
*/
class wxCloseEvent : public wxEvent
{
/**
Constructor.
*/
- wxCloseEvent(WXTYPE commandEventType = 0, int id = 0);
+ wxCloseEvent(wxEventType commandEventType = 0, int id = 0);
/**
Returns @true if you can veto a system shutdown or a window close event.
force the application to exit, and so this function must be called to check
this.
*/
- bool CanVeto();
+ bool CanVeto() const;
/**
Returns @true if the user is just logging off or @false if the system is
shutting down. This method can only be called for end session and query end
session events, it doesn't make sense for close window event.
*/
- bool GetLoggingOff();
+ bool GetLoggingOff() const;
/**
Sets the 'can veto' flag.
/**
Sets the 'force' flag.
*/
- void SetForce(bool force);
+ void SetForce(bool force) const;
/**
Sets the 'logging off' flag.
/**
Call this from your event handler to veto a system shutdown or to signal
to the calling application that a window close did not happen.
-
You can only veto a shutdown if CanVeto() returns
@true.
*/
- void Veto(bool veto = @true);
+ void Veto(bool veto = true);
};
+
/**
@class wxMenuEvent
@wxheader{event.h}
@library{wxcore}
@category{events}
- @seealso
- @ref overview_wxcommandevent "Command events", @ref
- overview_eventhandlingoverview "Event handling overview"
+ @see @ref overview_wxcommandevent "Command events", @ref
+ overview_eventhandling
*/
class wxMenuEvent : public wxEvent
{
/**
Constructor.
*/
- wxMenuEvent(WXTYPE id = 0, int id = 0, wxMenu* menu = @NULL);
+ wxMenuEvent(wxEventType id = 0, int id = 0, wxMenu* menu = NULL);
/**
Returns the menu which is being opened or closed. This method should only be
used with the @c OPEN and @c CLOSE events and even for them the
returned pointer may be @NULL in some ports.
*/
- wxMenu * GetMenu();
+ wxMenu* GetMenu() const;
/**
Returns the menu identifier associated with the event. This method should be
only used with the @c HIGHLIGHT events.
*/
- int GetMenuId();
+ int GetMenuId() const;
/**
Returns @true if the menu which is being opened or closed is a popup menu,
@false if it is a normal one.
-
This method should only be used with the @c OPEN and @c CLOSE events.
*/
- bool IsPopup();
+ bool IsPopup() const;
};
+
/**
@class wxEventBlocker
@wxheader{event.h}
@endcode
@library{wxcore}
- @category{FIXME}
+ @category{events}
- @seealso
- @ref overview_eventhandlingoverview "Event handling overview", wxEvtHandler
+ @see @ref overview_eventhandling, wxEvtHandler
*/
class wxEventBlocker : public wxEvtHandler
{
public:
/**
Constructs the blocker for the given window and for the given event type.
- If @e type is @c wxEVT_ANY, then all events for that window are
+ If @a type is @c wxEVT_ANY, then all events for that window are
blocked. You can call Block() after creation to
add other event types to the list of events to block.
-
- Note that the @e win window @b must remain alive until the
+ Note that the @a win window @b must remain alive until the
wxEventBlocker object destruction.
*/
- wxEventBlocker(wxWindow* win, wxEventType type = wxEVT_ANY);
+ wxEventBlocker(wxWindow* win, wxEventType = -0x000000001);
/**
Destructor. The blocker will remove itself from the chain of event handlers for
the window provided in the constructor, thus restoring normal processing of
events.
*/
- ~wxEventBlocker();
+ virtual ~wxEventBlocker();
/**
Adds to the list of event types which should be blocked the given @e eventType.
};
+
/**
@class wxEvtHandler
@wxheader{event.h}
will be identical to the "this" pointer for the wxEvtHandler portion.
@library{wxbase}
- @category{FIXME}
+ @category{events}
- @seealso
- @ref overview_eventhandlingoverview "Event handling overview"
+ @see @ref overview_eventhandling
*/
class wxEvtHandler : public wxObject
{
unlink itself and restore the previous and next handlers so that they point to
each other.
*/
- ~wxEvtHandler();
+ virtual ~wxEvtHandler();
/**
This function posts an event to be processed later.
-
+
@param event
- Event to add to process queue.
-
+ Event to add to process queue.
+
@remarks The difference between sending an event (using the ProcessEvent
- method) and posting it is that in the first case the
- event is processed before the function returns, while
- in the second case, the function returns immediately
- and the event will be processed sometime later
- (usually during the next event loop iteration).
+ method) and posting it is that in the first case the
+ event is processed before the function returns, while
+ in the second case, the function returns immediately
+ and the event will be processed sometime later (usually
+ during the next event loop iteration).
*/
virtual void AddPendingEvent(const wxEvent& event);
type. This
is an alternative to the use of static event tables. See the 'event' or the old
'dynamic' sample for usage.
-
+
@param id
- The identifier (or first of the identifier range) to be
- associated with the event handler function. For the version not taking this
- argument, it defaults to wxID_ANY.
-
+ The identifier (or first of the identifier range) to be
+ associated with the event handler function. For the version not taking this
+ argument, it defaults to wxID_ANY.
@param lastId
- The second part of the identifier range to be associated with the event handler
- function.
-
+ The second part of the identifier range to be associated with the event
+ handler function.
@param eventType
- The event type to be associated with this event handler.
-
+ The event type to be associated with this event handler.
@param function
- The event handler function. Note that this function should
- be explicitly converted to the correct type which can be done using a macro
- called wxFooEventHandler for the handler for any wxFooEvent.
-
+ The event handler function. Note that this function should
+ be explicitly converted to the correct type which can be done using a macro
+ called wxFooEventHandler for the handler for any wxFooEvent.
@param userData
- Data to be associated with the event table entry.
-
+ Data to be associated with the event table entry.
@param eventSink
- Object whose member function should be called. If this is @NULL,
- this will be used.
+ Object whose member function should be called. If this is @NULL,
+ this will be used.
*/
void Connect(int id, int lastId, wxEventType eventType,
wxObjectEventFunction function,
- wxObject* userData = @NULL,
- wxEvtHandler* eventSink = @NULL);
+ wxObject* userData = NULL,
+ wxEvtHandler* eventSink = NULL);
void Connect(int id, wxEventType eventType,
wxObjectEventFunction function,
- wxObject* userData = @NULL,
- wxEvtHandler* eventSink = @NULL);
+ wxObject* userData = NULL,
+ wxEvtHandler* eventSink = NULL);
void Connect(wxEventType eventType,
wxObjectEventFunction function,
- wxObject* userData = @NULL,
- wxEvtHandler* eventSink = @NULL);
+ wxObject* userData = NULL,
+ wxEvtHandler* eventSink = NULL);
//@}
//@{
added
using the Connect() method. There is no way
to disconnect functions connected using the (static) event tables.
-
+
@param id
- The identifier (or first of the identifier range) associated with the event
+ The identifier (or first of the identifier range) associated with the event
handler function.
-
@param lastId
- The second part of the identifier range associated with the event handler
+ The second part of the identifier range associated with the event handler
function.
-
@param eventType
- The event type associated with this event handler.
-
+ The event type associated with this event handler.
@param function
- The event handler function.
-
+ The event handler function.
@param userData
- Data associated with the event table entry.
-
+ Data associated with the event table entry.
@param eventSink
- Object whose member function should be called.
+ Object whose member function should be called.
*/
- bool Disconnect(wxEventType eventType = wxEVT_@NULL,
- wxObjectEventFunction function = @NULL,
- wxObject* userData = @NULL,
- wxEvtHandler* eventSink = @NULL);
+ bool Disconnect(wxEventType eventType = wxEVT_NULL,
+ wxObjectEventFunction function = NULL,
+ wxObject* userData = NULL,
+ wxEvtHandler* eventSink = NULL);
bool Disconnect(int id = wxID_ANY,
- wxEventType eventType = wxEVT_@NULL,
- wxObjectEventFunction function = @NULL,
- wxObject* userData = @NULL,
- wxEvtHandler* eventSink = @NULL);
+ wxEventType eventType = wxEVT_NULL,
+ wxObjectEventFunction function = NULL,
+ wxObject* userData = NULL,
+ wxEvtHandler* eventSink = NULL);
bool Disconnect(int id, int lastId = wxID_ANY,
- wxEventType eventType = wxEVT_@NULL,
- wxObjectEventFunction function = @NULL,
- wxObject* userData = @NULL,
- wxEvtHandler* eventSink = @NULL);
+ wxEventType eventType = wxEVT_NULL,
+ wxObjectEventFunction function = NULL,
+ wxObject* userData = NULL,
+ wxEvtHandler* eventSink = NULL);
//@}
/**
Gets user-supplied client data.
-
+
@remarks Normally, any extra data the programmer wishes to associate with
- the object should be made available by deriving a new
- class with new data members.
-
- @sa SetClientData()
+ the object should be made available by deriving a new
+ class with new data members.
+
+ @see SetClientData()
*/
- void* GetClientData();
+ void* GetClientData() const;
/**
Get a pointer to the user-supplied client data object.
-
- @sa SetClientObject(), wxClientData
+
+ @see SetClientObject(), wxClientData
*/
- wxClientData* GetClientObject();
+ wxClientData* GetClientObject() const;
/**
Returns @true if the event handler is enabled, @false otherwise.
-
- @sa SetEvtHandlerEnabled()
+
+ @see SetEvtHandlerEnabled()
*/
- bool GetEvtHandlerEnabled();
+ bool GetEvtHandlerEnabled() const;
/**
Gets the pointer to the next handler in the chain.
-
- @sa SetNextHandler(), GetPreviousHandler(),
- SetPreviousHandler(), wxWindow::PushEventHandler,
- wxWindow::PopEventHandler
+
+ @see SetNextHandler(), GetPreviousHandler(),
+ SetPreviousHandler(), wxWindow::PushEventHandler,
+ wxWindow::PopEventHandler
*/
- wxEvtHandler* GetNextHandler();
+ wxEvtHandler* GetNextHandler() const;
/**
Gets the pointer to the previous handler in the chain.
-
- @sa SetPreviousHandler(), GetNextHandler(),
- SetNextHandler(), wxWindow::PushEventHandler,
- wxWindow::PopEventHandler
+
+ @see SetPreviousHandler(), GetNextHandler(),
+ SetNextHandler(), wxWindow::PushEventHandler,
+ wxWindow::PopEventHandler
*/
- wxEvtHandler* GetPreviousHandler();
+ wxEvtHandler* GetPreviousHandler() const;
/**
Processes an event, searching event tables and calling zero or more suitable
event handler function(s).
-
+
@param event
- Event to process.
-
+ Event to process.
+
@returns @true if a suitable event handler function was found and
- executed, and the function did not call wxEvent::Skip.
-
+ executed, and the function did not call wxEvent::Skip.
+
@remarks Normally, your application would not call this function: it is
- called in the wxWidgets implementation to dispatch
- incoming user interface events to the framework (and
- application).
-
- @sa SearchEventTable()
+ called in the wxWidgets implementation to dispatch
+ incoming user interface events to the framework (and
+ application).
+
+ @see SearchEventTable()
*/
virtual bool ProcessEvent(wxEvent& event);
and handles any exceptions that occur in the process. If an exception is
thrown in event handler, wxApp::OnExceptionInMainLoop
is called.
-
+
@param event
- Event to process.
-
+ Event to process.
+
@returns @true if the event was processed, @false if no handler was found
- or an exception was thrown.
-
- @sa wxWindow::HandleWindowEvent
+ or an exception was thrown.
+
+ @see wxWindow::HandleWindowEvent
*/
bool SafelyProcessEvent(wxEvent& event);
Searches the event table, executing an event handler function if an appropriate
one
is found.
-
+
@param table
- Event table to be searched.
-
+ Event table to be searched.
@param event
- Event to be matched against an event table entry.
-
+ Event to be matched against an event table entry.
+
@returns @true if a suitable event handler function was found and
- executed, and the function did not call wxEvent::Skip.
-
+ executed, and the function did not call wxEvent::Skip.
+
@remarks This function looks through the object's event table and tries
- to find an entry that will match the event.
-
- @sa ProcessEvent()
+ to find an entry that will match the event.
+
+ @see ProcessEvent()
*/
virtual bool SearchEventTable(wxEventTable& table,
wxEvent& event);
/**
Sets user-supplied client data.
-
+
@param data
- Data to be associated with the event handler.
-
+ Data to be associated with the event handler.
+
@remarks Normally, any extra data the programmer wishes to associate with
- the object should be made available by deriving a
- new class with new data members. You must not call
- this method and SetClientObject on the same class -
- only one of them.
-
- @sa GetClientData()
+ the object should be made available by deriving a new
+ class with new data members. You must not call this
+ method and SetClientObject on the same class - only one
+ of them.
+
+ @see GetClientData()
*/
void SetClientData(void* data);
/**
Set the client data object. Any previous object will be deleted.
-
- @sa GetClientObject(), wxClientData
+
+ @see GetClientObject(), wxClientData
*/
void SetClientObject(wxClientData* data);
/**
Enables or disables the event handler.
-
+
@param enabled
- @true if the event handler is to be enabled, @false if it is to be disabled.
-
+ @true if the event handler is to be enabled, @false if it is to be disabled.
+
@remarks You can use this function to avoid having to remove the event
- handler from the chain, for example when implementing
- a dialog editor and changing from edit to test mode.
-
- @sa GetEvtHandlerEnabled()
+ handler from the chain, for example when implementing a
+ dialog editor and changing from edit to test mode.
+
+ @see GetEvtHandlerEnabled()
*/
void SetEvtHandlerEnabled(bool enabled);
/**
Sets the pointer to the next handler.
-
+
@param handler
- Event handler to be set as the next handler.
-
- @sa GetNextHandler(), SetPreviousHandler(),
- GetPreviousHandler(), wxWindow::PushEventHandler,
- wxWindow::PopEventHandler
+ Event handler to be set as the next handler.
+
+ @see GetNextHandler(), SetPreviousHandler(),
+ GetPreviousHandler(), wxWindow::PushEventHandler,
+ wxWindow::PopEventHandler
*/
void SetNextHandler(wxEvtHandler* handler);
/**
Sets the pointer to the previous handler.
-
+
@param handler
- Event handler to be set as the previous handler.
+ Event handler to be set as the previous handler.
*/
void SetPreviousHandler(wxEvtHandler* handler);
};
+
/**
@class wxIconizeEvent
@wxheader{event.h}
@library{wxcore}
@category{events}
- @seealso
- @ref overview_eventhandlingoverview "Event handling overview",
- wxTopLevelWindow::Iconize, wxTopLevelWindow::IsIconized
+ @see @ref overview_eventhandling, wxTopLevelWindow::Iconize,
+ wxTopLevelWindow::IsIconized
*/
class wxIconizeEvent : public wxEvent
{
/**
Constructor.
*/
- wxIconizeEvent(int id = 0, bool iconized = @true);
+ wxIconizeEvent(int id = 0, bool iconized = true);
/**
Returns @true if the frame has been iconized, @false if it has been
restored.
*/
- bool Iconized();
+ bool Iconized() const;
};
+
/**
@class wxMoveEvent
@wxheader{event.h}
@library{wxcore}
@category{events}
- @seealso
- wxPoint, @ref overview_eventhandlingoverview "Event handling overview"
+ @see wxPoint, @ref overview_eventhandling
*/
class wxMoveEvent : public wxEvent
{
/**
Returns the position of the window generating the move change event.
*/
- wxPoint GetPosition();
+ wxPoint GetPosition() const;
};
+
/**
@class wxEvent
@wxheader{event.h}
callback or member function. @b wxEvent used to be a multipurpose
event object, and is an abstract base class for other event classes (see below).
- For more information about events, see the @ref overview_eventhandlingoverview
- "Event handling overview".
+ For more information about events, see the @ref overview_eventhandling.
@b wxPerl note: In wxPerl custom event classes should be derived from
@c Wx::PlEvent and @c Wx::PlCommandEvent.
@library{wxbase}
@category{events}
- @seealso
- wxCommandEvent, wxMouseEvent
+ @see wxCommandEvent, wxMouseEvent
*/
class wxEvent : public wxObject
{
/**
Constructor. Should not need to be used directly by an application.
*/
- wxEvent(int id = 0, wxEventType eventType = wxEVT_@NULL);
+ wxEvent(int id = 0, wxEventType eventType = wxEVT_NULL);
/**
Returns a copy of the event.
-
Any event that is posted to the wxWidgets event system for later action (via
wxEvtHandler::AddPendingEvent or
- wxPostEvent) must implement this method. All wxWidgets
+ wxPostEvent()) must implement this method. All wxWidgets
events fully implement this method, but any derived events implemented by the
user should also implement this method just in case they (or some event
derived from them) are ever posted.
-
All wxWidgets events implement a copy constructor, so the easiest way of
implementing the Clone function is to implement a copy constructor for
a new event (call it MyEvent) and then define the Clone function like this:
*/
- virtual wxEvent* Clone();
+ virtual wxEvent* Clone() const = 0;
/**
Returns the object (usually a window) associated with the
event, if any.
*/
- wxObject* GetEventObject();
+ wxObject* GetEventObject() const;
/**
Returns the identifier of the given event type,
such as @c wxEVT_COMMAND_BUTTON_CLICKED.
*/
- wxEventType GetEventType();
+ wxEventType GetEventType() const;
/**
Returns the identifier associated with this event, such as a button command id.
*/
- int GetId();
+ int GetId() const;
/**
Returns @true if the event handler should be skipped, @false otherwise.
*/
- bool GetSkipped();
+ bool GetSkipped() const;
/**
Gets the timestamp for the event. The timestamp is the time in milliseconds
only differences between the timestamps and not their absolute values usually
make sense).
*/
- long GetTimestamp();
+ long GetTimestamp() const;
/**
Returns @true if the event is or is derived from
wxCommandEvent else it returns @false.
Note: Exists only for optimization purposes.
*/
- bool IsCommandEvent();
+ bool IsCommandEvent() const;
/**
Sets the propagation level to the given value (for example returned from an
/**
Sets the timestamp for the event.
*/
- void SetTimestamp(long timeStamp);
+ void SetTimestamp(long = 0);
/**
Test if this event should be propagated or not, i.e. if the propagation level
is currently greater than 0.
*/
- bool ShouldPropagate();
+ bool ShouldPropagate() const;
/**
This method can be used inside an event handler to control whether further
the event will not be processed any more. If Skip(@true) is called, the event
processing system continues searching for a further handler function for this
event, even though it has been processed already in the current handler.
-
In general, it is recommended to skip all non-command events to allow the
default handling to take place. The command events are, however, normally not
skipped as usually a single command such as a button click or menu item
selection must only be processed by one handler.
*/
- void Skip(bool skip = @true);
+ void Skip(bool skip = true);
/**
Stop the event from propagating to its parent window.
-
Returns the old propagation level value which may be later passed to
ResumePropagation() to allow propagating the
event again.
/**
int m_propagationLevel
-
Indicates how many levels the event can propagate. This member is protected and
should typically only be set in the constructors of the derived classes. It
may be temporarily changed by StopPropagation()
and ResumePropagation() and tested with
ShouldPropagate().
-
The initial value is set to either @c wxEVENT_PROPAGATE_NONE (by
default) meaning that the event shouldn't be propagated at all or to
@c wxEVENT_PROPAGATE_MAX (for command events) meaning that it should be
propagated as much as necessary.
-
Any positive number means that the event should be propagated but no more than
the given number of times. E.g. the propagation level may be set to 1 to
propagate the event to its parent only, but not to its grandparent.
};
+
/**
@class wxSizeEvent
@wxheader{event.h}
@library{wxcore}
@category{events}
- @seealso
- wxSize, @ref overview_eventhandlingoverview "Event handling overview"
+ @see wxSize, @ref overview_eventhandling
*/
class wxSizeEvent : public wxEvent
{
/**
Returns the entire size of the window generating the size change event.
*/
- wxSize GetSize();
+ wxSize GetSize() const;
};
+
/**
@class wxSetCursorEvent
@wxheader{event.h}
specify the cursor you want to be displayed.
@library{wxcore}
- @category{FIXME}
+ @category{events}
- @seealso
- ::wxSetCursor, wxWindow::wxSetCursor
+ @see ::wxSetCursor, wxWindow::wxSetCursor
*/
class wxSetCursorEvent : public wxEvent
{
/**
Returns a reference to the cursor specified by this event.
*/
- wxCursor GetCursor();
+ const wxCursor& GetCursor() const;
/**
Returns the X coordinate of the mouse in client coordinates.
*/
-#define wxCoord GetX() /* implementation is private */
+ wxCoord GetX() const;
/**
Returns the Y coordinate of the mouse in client coordinates.
*/
-#define wxCoord GetY() /* implementation is private */
+ wxCoord GetY() const;
/**
Returns @true if the cursor specified by this event is a valid cursor.
-
+
@remarks You cannot specify wxNullCursor with this event, as it is not
- considered a valid cursor.
+ considered a valid cursor.
*/
- bool HasCursor();
+ bool HasCursor() const;
/**
Sets the cursor associated with this event.
*/
void SetCursor(const wxCursor& cursor);
};
+
+
+
+// ============================================================================
+// Global functions/macros
+// ============================================================================
+
+/** @ingroup group_funcmacro_misc */
+//@{
+
+/**
+ In a GUI application, this function posts @a event to the specified @e dest
+ object using wxEvtHandler::AddPendingEvent().
+
+ Otherwise, it dispatches @a event immediately using
+ wxEvtHandler::ProcessEvent(). See the respective documentation for details
+ (and caveats).
+
+ @header{wx/event.h}
+*/
+void wxPostEvent(wxEvtHandler* dest, wxEvent& event);
+
+//@}
+