Version: 3.3.0
wxUIActionSimulator Class Reference

#include <wx/uiaction.h>

Detailed Description

wxUIActionSimulator is a class used to simulate user interface actions 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 wxUIActionSimulator Sample for an example of using this class.

Note
This class currently doesn't work when using Wayland with wxGTK.
Since
2.9.2

Library:  wxCore

Public Member Functions

 wxUIActionSimulator ()
 Default constructor. More...
 
bool MouseMove (long x, long y)
 Move the mouse to the specified coordinates. More...
 
bool MouseMove (const wxPoint &point)
 Move the mouse to the specified coordinates. More...
 
bool MouseDown (int button=wxMOUSE_BTN_LEFT)
 Press a mouse button. More...
 
bool MouseUp (int button=wxMOUSE_BTN_LEFT)
 Release a mouse button. More...
 
bool MouseClick (int button=wxMOUSE_BTN_LEFT)
 Click a mouse button. More...
 
bool MouseDblClick (int button=wxMOUSE_BTN_LEFT)
 Double-click a mouse button. More...
 
bool MouseDragDrop (long x1, long y1, long x2, long y2, int button=wxMOUSE_BTN_LEFT)
 Perform a drag and drop operation. More...
 
bool KeyDown (int keycode, int modifiers=wxMOD_NONE)
 Press a key. More...
 
bool KeyUp (int keycode, int modifiers=wxMOD_NONE)
 Release a key. More...
 
bool Char (int keycode, int modifiers=wxMOD_NONE)
 Press and release a key. More...
 
bool Select (const wxString &text)
 Simulate selection of an item with the given text. More...
 
bool Text (const char *text)
 Emulate typing in the keys representing the given string. More...
 

Constructor & Destructor Documentation

◆ wxUIActionSimulator()

wxUIActionSimulator::wxUIActionSimulator ( )

Default constructor.

Member Function Documentation

◆ Char()

bool wxUIActionSimulator::Char ( int  keycode,
int  modifiers = wxMOD_NONE 
)

Press and release a key.

Parameters
keycodeKey to operate on, as an integer. It is interpreted as a wxKeyCode.
modifiersA combination of wxKeyModifier flags to be pressed with the given keycode.

◆ KeyDown()

bool wxUIActionSimulator::KeyDown ( int  keycode,
int  modifiers = wxMOD_NONE 
)

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 macOS).

Parameters
keycodeKey to operate on, as an integer. It is interpreted as a wxKeyCode.
modifiersA combination of wxKeyModifier flags to be pressed with the given keycode.

◆ KeyUp()

bool wxUIActionSimulator::KeyUp ( int  keycode,
int  modifiers = wxMOD_NONE 
)

Release a key.

Parameters
keycodeKey to operate on, as an integer. It is interpreted as a wxKeyCode.
modifiersA combination of wxKeyModifier flags to be pressed with the given keycode.

◆ MouseClick()

bool wxUIActionSimulator::MouseClick ( int  button = wxMOUSE_BTN_LEFT)

Click a mouse button.

Parameters
buttonButton to press. See wxUIActionSimulator::MouseDown for a list of valid constants.

◆ MouseDblClick()

bool wxUIActionSimulator::MouseDblClick ( int  button = wxMOUSE_BTN_LEFT)

Double-click a mouse button.

Parameters
buttonButton to press. See wxUIActionSimulator::MouseDown for a list of valid constants.

◆ MouseDown()

bool wxUIActionSimulator::MouseDown ( int  button = wxMOUSE_BTN_LEFT)

Press a mouse button.

Parameters
buttonButton to press. Valid constants are wxMOUSE_BTN_LEFT, wxMOUSE_BTN_MIDDLE, and wxMOUSE_BTN_RIGHT.

◆ MouseDragDrop()

bool wxUIActionSimulator::MouseDragDrop ( long  x1,
long  y1,
long  x2,
long  y2,
int  button = wxMOUSE_BTN_LEFT 
)

Perform a drag and drop operation.

Parameters
x1x start coordinate, in screen coordinates.
y1y start coordinate, in screen coordinates.
x2x destination coordinate, in screen coordinates.
y2y destination coordinate, in screen coordinates.
buttonButton to press. See wxUIActionSimulator::MouseDown for a list of valid constants.

◆ MouseMove() [1/2]

bool wxUIActionSimulator::MouseMove ( const wxPoint point)

Move the mouse to the specified coordinates.

Parameters
pointPoint to move to, in screen coordinates.

◆ MouseMove() [2/2]

bool wxUIActionSimulator::MouseMove ( long  x,
long  y 
)

Move the mouse to the specified coordinates.

Parameters
xx coordinate to move to, in screen coordinates.
yy coordinate to move to, in screen coordinates.

◆ MouseUp()

bool wxUIActionSimulator::MouseUp ( int  button = wxMOUSE_BTN_LEFT)

Release a mouse button.

Parameters
buttonButton to press. See wxUIActionSimulator::MouseDown for a list of valid constants.

◆ Select()

bool wxUIActionSimulator::Select ( const wxString text)

Simulate selection of an item with the given text.

This method selects an item in the currently focused wxChoice, wxComboBox, wxListBox and similar controls. It does it by simulating keyboard events, so the behaviour should be the same as if the item was really selected by the user.

Notice that the implementation of this method uses wxYield() and so events can be dispatched from it.

Parameters
textThe text of the item to select.
Returns
true if the item text was successfully selected or false if the currently focused window is not one of the controls allowing item selection or if the item with the given text was not found in it.
Since
3.1.0

◆ Text()

bool wxUIActionSimulator::Text ( const char *  text)

Emulate typing in the keys representing the given string.

Currently only the ASCII letters are universally supported. Digits and punctuation characters can be used with the standard QWERTY (US) keyboard layout but may not work with other layouts.

Parameters
textThe string, containing only US ASCII characters, to type.