aboutsummaryrefslogtreecommitdiffstats
path: root/Game/Code/Screens/UScreenName.pas
diff options
context:
space:
mode:
authortobigun <tobigun@b956fd51-792f-4845-bead-9b4dfca2ff2c>2008-03-22 11:58:28 +0000
committertobigun <tobigun@b956fd51-792f-4845-bead-9b4dfca2ff2c>2008-03-22 11:58:28 +0000
commitdbeaec3a0e5a50c84b70b28ae00a368a3e6e98e9 (patch)
treebb3633e752ea30874f704be70ec82354d70faf1e /Game/Code/Screens/UScreenName.pas
parenta7659bea0fcdec8d1b34955f9c56b066ff27a3cb (diff)
downloadusdx-dbeaec3a0e5a50c84b70b28ae00a368a3e6e98e9.tar.gz
usdx-dbeaec3a0e5a50c84b70b28ae00a368a3e6e98e9.tar.xz
usdx-dbeaec3a0e5a50c84b70b28ae00a368a3e6e98e9.zip
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
Diffstat (limited to '')
-rw-r--r--Game/Code/Screens/UScreenName.pas17
1 files changed, 11 insertions, 6 deletions
diff --git a/Game/Code/Screens/UScreenName.pas b/Game/Code/Screens/UScreenName.pas
index adbc2c25..6d3e81b4 100644
--- a/Game/Code/Screens/UScreenName.pas
+++ b/Game/Code/Screens/UScreenName.pas
@@ -19,7 +19,8 @@ type
implementation
-uses UGraphic, UMain, UIni, UTexture;
+uses UGraphic, UMain, UIni, UTexture, UCommon;
+
function TScreenName.ParseInput(PressedKey: Cardinal; CharCode: WideChar; PressedDown: Boolean): Boolean;
var
@@ -33,12 +34,16 @@ begin
SDL_ModState := SDL_GetModState and (KMOD_LSHIFT + KMOD_RSHIFT
+ KMOD_LCTRL + KMOD_RCTRL + KMOD_LALT + KMOD_RALT);
- 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:
- begin
- Button[Interaction].Text[0].Text := Button[Interaction].Text[0].Text + CharCode;
- end;
+ // check normal keys
+ if (IsAlphaNumericChar(CharCode) or
+ (CharCode in [' ','-','_','!',',','<','/','*','?','''','"'])) then
+ begin
+ Button[Interaction].Text[0].Text := Button[Interaction].Text[0].Text + CharCode;
+ Exit;
+ end;
+ // check special keys
+ case PressedKey of
// Templates for Names Mod
SDLK_F1:
if (SDL_ModState = KMOD_LALT) then