X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/d86f721af3854980a8ce99e8fb3593f553d4ef1b..3399af21d10d3f8ce4f39dfb29df5546ab265ef6:/interface/wx/uiaction.h diff --git a/interface/wx/uiaction.h b/interface/wx/uiaction.h index cc8ad98e31..27a707a020 100644 --- a/interface/wx/uiaction.h +++ b/interface/wx/uiaction.h @@ -3,147 +3,157 @@ // Purpose: interface of wxUIActionSimulator // Author: wxWidgets team // RCS-ID: $Id$ -// Licence: wxWindows license +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// /** @class wxUIActionSimulator wxUIActionSimulator is a class used to simulate user interface actions - such as a mouse click or a key press. - - Common usages for this class would be to provide playback and record (aka macro recording) - functionality for users, or to drive unit tests by simulating user sessions. - - See the uiaction sample for example usage of this class. - - NOTE: For keyboard operations, currently you must pass the keycode of the actual - key on the keyboard. To simulate, e.g. IME actions, you'd need to simulate the actual - keypresses needed to active the IME, then the keypresses needed to type and select - the desired character. - + such as a mouse click or a key press. + + Common usage for this class would be to provide playback and record (aka + macro recording) functionality for users, or to drive unit tests by + simulating user sessions. + + See the @ref page_samples_uiaction for an example of using this class. + + @since 2.9.2 + @library{wxcore} */ class wxUIActionSimulator { - public: +public: /** - Constructor. + Default constructor. */ wxUIActionSimulator(); - ~wxUIActionSimulator(); - + /** Move the mouse to the specified coordinates. - + @param x x coordinate to move to, in screen coordinates. - + @param y y coordinate to move to, in screen coordinates. */ - bool MouseMove(long x, long y); - + bool MouseMove(long x, long y); + + /** + Move the mouse to the specified coordinates. + + @param point + Point to move to, in screen coordinates. + */ + bool MouseMove(const wxPoint& point); + /** Press a mouse button. - + @param button - Button to press. Valid constants are wxMOUSE_BTN_LEFT, wxMOUSE_BTN_MIDDLE, and wxMOUSE_BTN_RIGHT. + Button to press. Valid constants are @c wxMOUSE_BTN_LEFT, + @c wxMOUSE_BTN_MIDDLE, and @c wxMOUSE_BTN_RIGHT. */ - bool MouseDown(int button = wxMOUSE_BTN_LEFT); - + bool MouseDown(int button = wxMOUSE_BTN_LEFT); + /** Release a mouse button. - + @param button - Button to press. See wxUIActionSimulator::MouseDown for a list of valid constants. + Button to press. See wxUIActionSimulator::MouseDown for a list of + valid constants. */ - bool MouseUp(int button = wxMOUSE_BTN_LEFT); + bool MouseUp(int button = wxMOUSE_BTN_LEFT); /** Click a mouse button. - + @param button - Button to press. See wxUIActionSimulator::MouseDown for a list of valid constants. + Button to press. See wxUIActionSimulator::MouseDown for a list of + valid constants. */ - bool MouseClick(int button = wxMOUSE_BTN_LEFT); + bool MouseClick(int button = wxMOUSE_BTN_LEFT); /** Double-click a mouse button. - + @param button - Button to press. See wxUIActionSimulator::MouseDown for a list of valid constants. + Button to press. See wxUIActionSimulator::MouseDown for a list of + valid constants. */ - bool MouseDblClick(int button = wxMOUSE_BTN_LEFT); + bool MouseDblClick(int button = wxMOUSE_BTN_LEFT); /** Perform a drag and drop operation. - + @param x1 x start coordinate, in screen coordinates. - + @param y1 y start coordinate, in screen coordinates. - + @param x2 - x desintation coordinate, in screen coordinates. - + x destination coordinate, in screen coordinates. + @param y2 y destination coordinate, in screen coordinates. - + @param button - Button to press. See wxUIActionSimulator::MouseDown for a list of valid constants. + Button to press. See wxUIActionSimulator::MouseDown for a list of + valid constants. */ - bool MouseDragDrop(long x1, long y1, long x2, long y2, int button = wxMOUSE_BTN_LEFT); - + bool MouseDragDrop(long x1, long y1, long x2, long y2, + int button = wxMOUSE_BTN_LEFT); + /** - Press a key. - + Press a key. + + If you are using modifiers then it needs to be paired with an identical + KeyUp or the modifiers will not be released (MSW and OSX). + @param keycode - key to operate on, as an integer. - - @param shiftDown - true if the shift key should be pressed, false otherwise. - - @param cmdDown - true if the cmd key should be pressed, false otherwise. - - @param altDown - true if the alt key should be pressed, false otherwise. + Key to operate on, as an integer. It is interpreted as a wxKeyCode. + + @param modifiers + A combination of ::wxKeyModifier flags to be pressed with the given + keycode. */ - bool KeyDown(int keycode, bool shiftDown=false, bool cmdDown=false, bool altDown=false); - + bool KeyDown(int keycode, int modifiers = wxMOD_NONE); + /** - Release a key. - + Release a key. + @param keycode - key to operate on, as an integer. - - @param shiftDown - true if the shift key should be pressed, false otherwise. - - @param cmdDown - true if the cmd key should be pressed, false otherwise. - - @param altDown - true if the alt key should be pressed, false otherwise. + Key to operate on, as an integer. It is interpreted as a wxKeyCode. + + @param modifiers + A combination of ::wxKeyModifier flags to be pressed with the given + keycode. */ - bool KeyUp(int keycode, bool shiftDown=false, bool cmdDown=false, bool altDown=false); - + bool KeyUp(int keycode, int modifiers = wxMOD_NONE); + /** - Press and release a key. - + Press and release a key. + @param keycode - key to operate on, as an integer. - - @param shiftDown - true if the shift key should be pressed, false otherwise. - - @param cmdDown - true if the cmd key should be pressed, false otherwise. - - @param altDown - true if the alt key should be pressed, false otherwise. + Key to operate on, as an integer. It is interpreted as a wxKeyCode. + + @param modifiers + A combination of ::wxKeyModifier flags to be pressed with the given + keycode. + */ + bool Char(int keycode, int modifiers = wxMOD_NONE); + + /** + Emulate typing in the keys representing the given string. + + Currently only the ASCII letters (i.e. characters @c a-z and @c A-Z) + are supported. + + @param text + The string to type. */ - bool Char(int keycode, bool shiftDown=false, bool cmdDown=false, bool altDown=false); + bool Text(const wxString& text); };