]> git.saurik.com Git - wxWidgets.git/blobdiff - interface/wx/uiaction.h
avoid infinite recursion for richtooltops, (hopefully) fixes #15070
[wxWidgets.git] / interface / wx / uiaction.h
index cc8ad98e31cd58d55b03978fb6c22c5adbf4f549..5b038208be9c6c2fcc1880645713d174a08e1262 100644 (file)
 // 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, 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        Char(int keycode, bool shiftDown=false, bool cmdDown=false, bool altDown=false);
+    bool Text(const wxString& text);
 };