added some kbm stuff

This commit is contained in:
qloak committed 2026-09-13 18:02:29 -07:00
1 parent 82e802873f
commit 42fd7414e4
218 files changed
+3758 -258

No files matched your search

@@ -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()