feat: keyboard modes

This commit is contained in:
str1k3r committed 2026-10-20 00:57:38 -04:00
1 parent 69d6a51ad5
commit f7f0619c39
3 files changed
+37 -2

No files matched your search

+34 -1
View File
@@ -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)); ZeroMemory(&KeyboardOverlap, sizeof(XOVERLAPPED));
for (;;) 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) if (result == ERROR_IO_PENDING)
break; break;
if (result != ERROR_ACCESS_DENIED) if (result != ERROR_ACCESS_DENIED)
+1
View File
@@ -8,6 +8,7 @@ private:
C_4JInput::EKeyboardResult eState; C_4JInput::EKeyboardResult eState;
int iPad; int iPad;
int keyboardMode;
UINT uiMaxChars; UINT uiMaxChars;
WCHAR *pwchResult; WCHAR *pwchResult;
bool bActive; bool bActive;
+2 -1
View File
@@ -65,7 +65,8 @@ public:
EKeyboardMode_Full, EKeyboardMode_Full,
EKeyboardMode_Alphabet_Extended, EKeyboardMode_Alphabet_Extended,
EKeyboardMode_IP_Address, EKeyboardMode_IP_Address,
EKeyboardMode_Phone EKeyboardMode_Phone,
EKeyboardMode_Email
}; };
void Initialise( int iInputStateC, unsigned char ucMapC,unsigned char ucActionC, unsigned char ucMenuActionC ); void Initialise( int iInputStateC, unsigned char ucMapC,unsigned char ucActionC, unsigned char ucMenuActionC );