Add support for digits and +/- sign to wxUIActionSimulator::Text().
Support the characters needed for number entry in wxUIActionSimulator::Text() too. Closes #13671. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69762 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -58,8 +58,8 @@ public:
|
|||||||
{ return Key(keycode, modifiers, false); }
|
{ return Key(keycode, modifiers, false); }
|
||||||
|
|
||||||
// Higher level methods for generating both the key press and release for a
|
// Higher level methods for generating both the key press and release for a
|
||||||
// single key or for all characters in the ASCII string "text" which can
|
// single key or for all characters in the ASCII string "text" which can currently
|
||||||
// currently contain letters only (no digits, no punctuation).
|
// contain letters, digits and characters for the definition of numbers [+-., ].
|
||||||
bool Char(int keycode, int modifiers = wxMOD_NONE);
|
bool Char(int keycode, int modifiers = wxMOD_NONE);
|
||||||
|
|
||||||
bool Text(const char *text);
|
bool Text(const char *text);
|
||||||
|
@@ -148,7 +148,8 @@ public:
|
|||||||
/**
|
/**
|
||||||
Emulate typing in the keys representing the given string.
|
Emulate typing in the keys representing the given string.
|
||||||
|
|
||||||
Currently only the ASCII letters (i.e. characters @c a-z and @c A-Z)
|
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.
|
are supported.
|
||||||
|
|
||||||
@param text
|
@param text
|
||||||
|
@@ -184,6 +184,9 @@ void MyFrame::OnRunSimulation(wxCommandEvent& WXUNUSED(event))
|
|||||||
sim.Char(WXK_RETURN);
|
sim.Char(WXK_RETURN);
|
||||||
sim.Text("aAbBcC");
|
sim.Text("aAbBcC");
|
||||||
sim.Char(WXK_RETURN);
|
sim.Char(WXK_RETURN);
|
||||||
|
sim.Text("1 234.57e-8");
|
||||||
|
sim.Char(WXK_RETURN);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void MyFrame::OnButtonPressed(wxCommandEvent& WXUNUSED(event))
|
void MyFrame::OnButtonPressed(wxCommandEvent& WXUNUSED(event))
|
||||||
|
@@ -80,6 +80,51 @@ void wxUIActionSimulator::SimulateModifiers(int modifiers, bool isDown)
|
|||||||
|
|
||||||
bool wxUIActionSimulator::Char(int keycode, int modifiers)
|
bool wxUIActionSimulator::Char(int keycode, int modifiers)
|
||||||
{
|
{
|
||||||
|
switch(keycode)
|
||||||
|
{
|
||||||
|
case '0':
|
||||||
|
keycode = WXK_NUMPAD0;
|
||||||
|
break;
|
||||||
|
case '1':
|
||||||
|
keycode = WXK_NUMPAD1;
|
||||||
|
break;
|
||||||
|
case '2':
|
||||||
|
keycode = WXK_NUMPAD2;
|
||||||
|
break;
|
||||||
|
case '3':
|
||||||
|
keycode = WXK_NUMPAD3;
|
||||||
|
break;
|
||||||
|
case '4':
|
||||||
|
keycode = WXK_NUMPAD4;
|
||||||
|
break;
|
||||||
|
case '5':
|
||||||
|
keycode = WXK_NUMPAD5;
|
||||||
|
break;
|
||||||
|
case '6':
|
||||||
|
keycode = WXK_NUMPAD6;
|
||||||
|
break;
|
||||||
|
case '7':
|
||||||
|
keycode = WXK_NUMPAD7;
|
||||||
|
break;
|
||||||
|
case '8':
|
||||||
|
keycode = WXK_NUMPAD8;
|
||||||
|
break;
|
||||||
|
case '9':
|
||||||
|
keycode = WXK_NUMPAD9;
|
||||||
|
break;
|
||||||
|
case '+':
|
||||||
|
keycode = WXK_NUMPAD_ADD;
|
||||||
|
break;
|
||||||
|
case '-':
|
||||||
|
keycode = WXK_NUMPAD_SUBTRACT;
|
||||||
|
break;
|
||||||
|
case '.':
|
||||||
|
keycode = WXK_NUMPAD_DECIMAL;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
};
|
||||||
|
|
||||||
Key(keycode, modifiers, true);
|
Key(keycode, modifiers, true);
|
||||||
Key(keycode, modifiers, false);
|
Key(keycode, modifiers, false);
|
||||||
|
|
||||||
@@ -91,9 +136,6 @@ bool wxUIActionSimulator::Text(const char *s)
|
|||||||
while ( *s != '\0' )
|
while ( *s != '\0' )
|
||||||
{
|
{
|
||||||
const char ch = *s++;
|
const char ch = *s++;
|
||||||
|
|
||||||
wxASSERT_MSG( ch, "Only letters are allowed" );
|
|
||||||
|
|
||||||
if ( !Char(ch, isupper(ch) ? wxMOD_SHIFT : 0) )
|
if ( !Char(ch, isupper(ch) ? wxMOD_SHIFT : 0) )
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user