]>
Commit | Line | Data |
---|---|---|
1 | ///////////////////////////////////////////////////////////////////////////// | |
2 | // Name: wx/uiaction.h | |
3 | // Purpose: wxUIActionSimulator interface | |
4 | // Author: Kevin Ollivier, Steven Lamerton, Vadim Zeitlin | |
5 | // Modified by: | |
6 | // Created: 2010-03-06 | |
7 | // RCS-ID: $Id$ | |
8 | // Copyright: (c) Kevin Ollivier | |
9 | // (c) 2010 Steven Lamerton | |
10 | // (c) 2010 Vadim Zeitlin | |
11 | // Licence: wxWindows licence | |
12 | ///////////////////////////////////////////////////////////////////////////// | |
13 | ||
14 | #ifndef _WX_UIACTIONSIMULATOR_H_ | |
15 | #define _WX_UIACTIONSIMULATOR_H_ | |
16 | ||
17 | #include "wx/defs.h" | |
18 | ||
19 | #if wxUSE_UIACTIONSIMULATOR | |
20 | ||
21 | #include "wx/mousestate.h" // for wxMOUSE_BTN_XXX constants | |
22 | ||
23 | class WXDLLIMPEXP_CORE wxUIActionSimulator | |
24 | { | |
25 | public: | |
26 | wxUIActionSimulator() { } | |
27 | ||
28 | ||
29 | // Default dtor, copy ctor and assignment operator are ok (even though the | |
30 | // last two don't make much sense for this class). | |
31 | ||
32 | ||
33 | // Mouse simulation | |
34 | // ---------------- | |
35 | ||
36 | // Low level methods | |
37 | bool MouseMove(long x, long y); | |
38 | bool MouseMove(const wxPoint& point) { return MouseMove(point.x, point.y); } | |
39 | ||
40 | bool MouseDown(int button = wxMOUSE_BTN_LEFT); | |
41 | bool MouseUp(int button = wxMOUSE_BTN_LEFT); | |
42 | ||
43 | // Higher level interface, use it if possible instead | |
44 | bool MouseClick(int button = wxMOUSE_BTN_LEFT); | |
45 | bool MouseDblClick(int button = wxMOUSE_BTN_LEFT); | |
46 | bool MouseDragDrop(long x1, long y1, long x2, long y2, | |
47 | int button = wxMOUSE_BTN_LEFT); | |
48 | ||
49 | ||
50 | // Keyboard simulation | |
51 | // ------------------- | |
52 | ||
53 | // Low level methods for generating key presses and releases | |
54 | bool KeyDown(int keycode, int modifiers = wxMOD_NONE) | |
55 | { return Key(keycode, modifiers, true); } | |
56 | ||
57 | bool KeyUp(int keycode, int modifiers = wxMOD_NONE) | |
58 | { return Key(keycode, modifiers, false); } | |
59 | ||
60 | // Higher level methods for generating both the key press and release for a | |
61 | // single key or for all characters in the ASCII string "text" which can | |
62 | // currently contain letters only (no digits, no punctuation). | |
63 | bool Char(int keycode, int modifiers = wxMOD_NONE); | |
64 | ||
65 | bool Text(const char *text); | |
66 | ||
67 | private: | |
68 | // This is the common part of Key{Down,Up}() methods: while we keep them | |
69 | // separate at public API level for consistency with Mouse{Down,Up}(), at | |
70 | // implementation level it makes more sense to have them in a single | |
71 | // function. | |
72 | // | |
73 | // It calls DoModifiers() to simulate pressing the modifier keys if | |
74 | // necessary and then DoKey() for the key itself. | |
75 | bool Key(int keycode, int modifiers, bool isDown); | |
76 | ||
77 | // Call DoKey() for all modifier keys whose bits are set in the parameter. | |
78 | void SimulateModifiers(int modifier, bool isDown); | |
79 | ||
80 | ||
81 | // The low-level port-specific function which really generates the key | |
82 | // presses. It should generate exactly one key event with the given | |
83 | // parameters. | |
84 | bool DoKey(int keycode, int modifiers, bool isDown); | |
85 | }; | |
86 | ||
87 | #endif // wxUSE_UIACTIONSIMULATOR | |
88 | ||
89 | #endif // _WX_UIACTIONSIMULATOR_H_ |