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:
Vadim Zeitlin
2002-04-07 22:29:04 +00:00
parent 15bee36fdf
commit 94af7d45ef
7 changed files with 121 additions and 67 deletions

View File

@@ -708,73 +708,7 @@ bool wxGridCellTextEditor::IsAcceptedKey(wxKeyEvent& event)
void wxGridCellTextEditor::StartingKey(wxKeyEvent& event)
{
// we don't check for !HasModifiers() because IsAcceptedKey() did it
// insert the key in the control
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 )
{
Text()->AppendText(ch);
}
else
if ( !Text()->EmulateKeyPress(event) )
{
event.Skip();
}