File: uiaction.h

package info (click to toggle)
wxwidgets3.0 3.0.5.1%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 120,464 kB
  • sloc: cpp: 896,633; makefile: 52,303; ansic: 21,971; sh: 5,713; python: 2,940; xml: 1,534; perl: 264; javascript: 33
file content (159 lines) | stat: -rw-r--r-- 4,368 bytes parent folder | download | duplicates (10)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
/////////////////////////////////////////////////////////////////////////////
// Name:        uiaction.h
// Purpose:     interface of wxUIActionSimulator
// Author:      wxWidgets team
// 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 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:
    /**
        Default constructor.
    */
    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);

    /**
        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 @c wxMOUSE_BTN_LEFT,
            @c wxMOUSE_BTN_MIDDLE, and @c wxMOUSE_BTN_RIGHT.
    */
    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.
    */
    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.
    */
    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.
    */
    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 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.
    */
    bool MouseDragDrop(long x1, long y1, long x2, long y2,
                       int button = wxMOUSE_BTN_LEFT);

    /**
        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. It is interpreted as a wxKeyCode.

        @param modifiers
            A combination of ::wxKeyModifier flags to be pressed with the given
            keycode.
    */
    bool KeyDown(int keycode, int modifiers = wxMOD_NONE);

    /**
        Release a key.

        @param keycode
            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, int modifiers = wxMOD_NONE);

    /**
        Press and release a key.

        @param keycode
            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, digits and characters for the definition
        of numbers (i.e. characters @c a-z @c A-Z @c 0-9 @c + @c - @c . @c , @c 'space')
        are supported.

        @param text
            The string to type.
    */
    bool Text(const wxString& text);
};