added wxTextCtrl::EmulateKeyPress
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@15005 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -277,6 +277,84 @@ bool wxTextCtrlBase::CanPaste() const
|
||||
return IsEditable();
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// emulating key presses
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
bool wxTextCtrlBase::EmulateKeyPress(const wxKeyEvent& event)
|
||||
{
|
||||
// the generic version is unused in wxMSW
|
||||
#ifndef __WIN32__
|
||||
wxChar ch;
|
||||
int keycode = event.GetKeyCode();
|
||||
switch ( keycode )
|
||||
{
|
||||
case WXK_NUMPAD0:
|
||||
case WXK_NUMPAD1:
|
||||
case WXK_NUMPAD2:
|
||||
case WXK_NUMPAD3:
|
||||
case WXK_NUMPAD4:
|
||||
case WXK_NUMPAD5:
|
||||
case WXK_NUMPAD6:
|
||||
case WXK_NUMPAD7:
|
||||
case WXK_NUMPAD8:
|
||||
case WXK_NUMPAD9:
|
||||
ch = _T('0') + keycode - WXK_NUMPAD0;
|
||||
break;
|
||||
|
||||
case WXK_MULTIPLY:
|
||||
case WXK_NUMPAD_MULTIPLY:
|
||||
ch = _T('*');
|
||||
break;
|
||||
|
||||
case WXK_ADD:
|
||||
case WXK_NUMPAD_ADD:
|
||||
ch = _T('+');
|
||||
break;
|
||||
|
||||
case WXK_SUBTRACT:
|
||||
case WXK_NUMPAD_SUBTRACT:
|
||||
ch = _T('-');
|
||||
break;
|
||||
|
||||
case WXK_DECIMAL:
|
||||
case WXK_NUMPAD_DECIMAL:
|
||||
ch = _T('.');
|
||||
break;
|
||||
|
||||
case WXK_DIVIDE:
|
||||
case WXK_NUMPAD_DIVIDE:
|
||||
ch = _T('/');
|
||||
break;
|
||||
|
||||
default:
|
||||
if ( keycode < 256 && keycode >= 0 && isprint(keycode) )
|
||||
{
|
||||
// FIXME this is not going to work for non letters...
|
||||
if ( !event.ShiftDown() )
|
||||
{
|
||||
keycode = tolower(keycode);
|
||||
}
|
||||
|
||||
ch = (wxChar)keycode;
|
||||
}
|
||||
else
|
||||
{
|
||||
ch = _T('\0');
|
||||
}
|
||||
}
|
||||
|
||||
if ( ch )
|
||||
{
|
||||
WriteText(ch);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
#endif // !__WIN32__
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// selection and ranges
|
||||
// ----------------------------------------------------------------------------
|
||||
|
Reference in New Issue
Block a user