From 9533cd16c5b0196329e38c46aebedb2cd859d955 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Sat, 9 Feb 2008 06:47:46 +0000 Subject: [PATCH] Implemented text input event for Win32 --HG-- extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%402721 --- src/video/win32/SDL_win32events.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/video/win32/SDL_win32events.c b/src/video/win32/SDL_win32events.c index ed645ee46..732331cff 100644 --- a/src/video/win32/SDL_win32events.c +++ b/src/video/win32/SDL_win32events.c @@ -397,6 +397,28 @@ WIN_WindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) } return (0); + case WM_CHAR: + { + char text[4]; + + /* Convert to UTF-8 and send it on... */ + if (wParam <= 0x7F) { + text[0] = (char) wParam; + text[1] = '\0'; + } else if (wParam <= 0x7FF) { + text[0] = 0xC0 | (char) ((wParam >> 6) & 0x1F); + text[1] = 0x80 | (char) (wParam & 0x3F); + text[2] = '\0'; + } else { + text[0] = 0xE0 | (char) ((wParam >> 12) & 0x0F); + text[1] = 0x80 | (char) ((wParam >> 6) & 0x3F); + text[2] = 0x80 | (char) (wParam & 0x3F); + text[3] = '\0'; + } + SDL_SendKeyboardText(data->videodata->keyboard, text); + } + return (0); + case WM_GETMINMAXINFO: { MINMAXINFO *info;