added some kbm stuff

This commit is contained in:
2026-09-13 19:41:44 -07:00
parent 82e802873f
commit 5023e0a8d6
217 changed files with 3744 additions and 235 deletions
@@ -1,6 +1,7 @@
#include "stdafx.h"
#include "UI.h"
#include "UIScene_SignEntryMenu.h"
#include "DirectTextEdit.h"
#include "..\..\Minecraft.h"
#include "..\..\MultiPlayerLocalPlayer.h"
#include "..\..\MultiPlayerLevel.h"
@@ -149,7 +150,10 @@ int UIScene_SignEntryMenu::KeyboardCompleteCallback(LPVOID lpParam,bool bRes)
{
uint16_t pchText[128];
ZeroMemory(pchText, 128 * sizeof(uint16_t) );
InputManager.GetText(pchText);
#ifdef _WINDOWS64
if (!DirectTextEdit::TakeText(pchText, 128))
#endif
InputManager.GetText(pchText);
pClass->m_textInputLines[pClass->m_iEditingLine].setLabel((wchar_t *)pchText);
}
return 0;
@@ -169,8 +173,14 @@ void UIScene_SignEntryMenu::handlePress(F64 controlId, F64 childId)
case eControl_Line3:
case eControl_Line4:
{
m_iEditingLine = (int)controlId;
m_bIgnoreInput = true;
m_iEditingLine = (int)controlId;
#ifdef _WINDOWS64
DirectTextEdit::Begin(&m_textInputLines[m_iEditingLine], NULL, m_textInputLines[m_iEditingLine].getLabel(), 15,
C_4JInput::EKeyboardMode_Alphabet,
&UIScene_SignEntryMenu::KeyboardCompleteCallback, this);
DirectTextEdit::SetLineNav(&UIScene_SignEntryMenu::DirectTextLineNav, this);
#else
m_bIgnoreInput = true;
#ifdef _XBOX_ONE
// 4J-PB - Xbox One uses the Windows virtual keyboard, and doesn't have the Xbox 360 Latin keyboard type, so we can't restrict the input set to alphanumeric. The closest we get is the emailSmtpAddress type.
int language = XGetLanguage();
@@ -188,9 +198,29 @@ void UIScene_SignEntryMenu::handlePress(F64 controlId, F64 childId)
#else
InputManager.RequestKeyboard(app.GetString(IDS_SIGN_TITLE),m_textInputLines[m_iEditingLine].getLabel(),(DWORD)m_iPad,15,&UIScene_SignEntryMenu::KeyboardCompleteCallback,this,C_4JInput::EKeyboardMode_Alphabet);
#endif
}
break;
#endif
}
break;
}
}
void UIScene_SignEntryMenu::DirectTextLineNav(LPVOID pParam, int iDir)
{
UIScene_SignEntryMenu *pClass = (UIScene_SignEntryMenu *)pParam;
int line = pClass->m_iEditingLine + iDir;
if (line < 0 || line > 3)
{
if (iDir > 0)
pClass->m_bConfirmed = true;
return;
}
pClass->m_iEditingLine = line;
#ifdef _WINDOWS64
DirectTextEdit::Begin(&pClass->m_textInputLines[line], NULL, pClass->m_textInputLines[line].getLabel(), 15,
C_4JInput::EKeyboardMode_Alphabet,
&UIScene_SignEntryMenu::KeyboardCompleteCallback, pClass);
DirectTextEdit::SetLineNav(&UIScene_SignEntryMenu::DirectTextLineNav, pClass);
#endif
}
void UIScene_SignEntryMenu::handleDestroy()