From dbeaec3a0e5a50c84b70b28ae00a368a3e6e98e9 Mon Sep 17 00:00:00 2001 From: tobigun Date: Sat, 22 Mar 2008 11:58:28 +0000 Subject: Support for non-US (QWERTY) keyboard layout. git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@970 b956fd51-792f-4845-bead-9b4dfca2ff2c --- Game/Code/Screens/UScreenSongMenu.pas | 34 ++++++++++++++++++++-------------- 1 file changed, 20 insertions(+), 14 deletions(-) (limited to 'Game/Code/Screens/UScreenSongMenu.pas') diff --git a/Game/Code/Screens/UScreenSongMenu.pas b/Game/Code/Screens/UScreenSongMenu.pas index e3ec825e..9cbb1be9 100644 --- a/Game/Code/Screens/UScreenSongMenu.pas +++ b/Game/Code/Screens/UScreenSongMenu.pas @@ -67,17 +67,21 @@ uses UGraphic, function TScreenSongMenu.ParseInput(PressedKey: Cardinal; CharCode: WideChar; PressedDown: Boolean): Boolean; begin Result := true; - If (PressedDown) Then + if (PressedDown) then begin // Key Down - if (CurMenu = SM_Playlist_New) AND (Interaction=0) then + if (CurMenu = SM_Playlist_New) AND (Interaction=0) then begin - case PressedKey of - SDLK_0..SDLK_9, SDLK_A..SDLK_Z, SDLK_SPACE, SDLK_MINUS, SDLK_EXCLAIM, SDLK_COMMA, SDLK_SLASH, SDLK_ASTERISK, SDLK_QUESTION, SDLK_QUOTE, SDLK_QUOTEDBL: + // check normal keys + case WideUpperCase(CharCode)[1] of + '0'..'9', 'A'..'Z', ' ', '-', '_', '!', ',', '<', '/', '*', '?', '''', '"': begin Button[Interaction].Text[0].Text := Button[Interaction].Text[0].Text + CharCode; exit; end; + end; + // check special keys + case PressedKey of SDLK_BACKSPACE: begin Button[Interaction].Text[0].DeleteLastL; @@ -86,13 +90,17 @@ begin end; end; - case PressedKey of - SDLK_Q: - begin - Result := false; - end; - + // check normal keys + case WideUpperCase(CharCode)[1] of + 'Q': + begin + Result := false; + Exit; + end; + end; + // check special keys + case PressedKey of SDLK_ESCAPE, SDLK_BACKSPACE : begin @@ -149,10 +157,8 @@ begin end; end; end; - - - end; - end; + end; // case + end; // if end; constructor TScreenSongMenu.Create; -- cgit v1.2.3