diff --git a/4J_Input/Xbox/INP_Keyboard.cpp b/4J_Input/Xbox/INP_Keyboard.cpp index 331a9d7..b34994a 100644 --- a/4J_Input/Xbox/INP_Keyboard.cpp +++ b/4J_Input/Xbox/INP_Keyboard.cpp @@ -39,11 +39,44 @@ C_4JInput::EKeyboardResult CKeyboard::RequestKeyboard(LPCWSTR uiTitle, LPCWSTR u } } + switch (eMode) + { + //str1k3r - look at xam.h for the modes + case C_4JInput::EKeyboardMode_Numeric: + keyboardMode = VKBD_LATIN_NUMERIC; + break; + case C_4JInput::EKeyboardMode_Password: + keyboardMode = VKBD_LATIN_PASSWORD; + break; + //str1k3r - Alphabet and Full need multi lang support + case C_4JInput::EKeyboardMode_Alphabet: + keyboardMode = VKBD_LATIN_ALPHABET; + break; + case C_4JInput::EKeyboardMode_Full: + keyboardMode = VKBD_LATIN_FULL; + break; + case C_4JInput::EKeyboardMode_Alphabet_Extended: + keyboardMode = VKBD_LATIN_EXTENDED; + break; + case C_4JInput::EKeyboardMode_IP_Address: + keyboardMode = VKBD_LATIN_IP_ADDRESS; + break; + case C_4JInput::EKeyboardMode_Phone: + keyboardMode = VKBD_LATIN_PHONE; + break; + case C_4JInput::EKeyboardMode_Email: + keyboardMode = VKBD_LATIN_EMAIL; + break; + default: + keyboardMode = VKBD_DEFAULT; + break; + } + ZeroMemory(&KeyboardOverlap, sizeof(XOVERLAPPED)); for (;;) { - DWORD result = XShowKeyboardUI(LockedProfile, 0, uiText, uiTitle, uiDesc, this->pwchResult, this->uiMaxChars, &KeyboardOverlap); + DWORD result = XShowKeyboardUI(LockedProfile, keyboardMode, uiText, uiTitle, uiDesc, this->pwchResult, this->uiMaxChars, &KeyboardOverlap); if (result == ERROR_IO_PENDING) break; if (result != ERROR_ACCESS_DENIED) diff --git a/4J_Input/Xbox/INP_Keyboard.h b/4J_Input/Xbox/INP_Keyboard.h index a41d7e2..7263df2 100644 --- a/4J_Input/Xbox/INP_Keyboard.h +++ b/4J_Input/Xbox/INP_Keyboard.h @@ -8,6 +8,7 @@ private: C_4JInput::EKeyboardResult eState; int iPad; + int keyboardMode; UINT uiMaxChars; WCHAR *pwchResult; bool bActive; diff --git a/Headers/Xbox/4J_Input.h b/Headers/Xbox/4J_Input.h index 9616af7..43e4702 100644 --- a/Headers/Xbox/4J_Input.h +++ b/Headers/Xbox/4J_Input.h @@ -65,7 +65,8 @@ public: EKeyboardMode_Full, EKeyboardMode_Alphabet_Extended, EKeyboardMode_IP_Address, - EKeyboardMode_Phone + EKeyboardMode_Phone, + EKeyboardMode_Email }; void Initialise( int iInputStateC, unsigned char ucMapC,unsigned char ucActionC, unsigned char ucMenuActionC );