Files
4JLibs/4J_Input/PS3/INP_OnScreenKeyboard.h
T

51 lines
1.5 KiB
C++

#pragma once
#include "4J_Input.h"
#include <sysutil/sysutil_common.h> // cellSysutilRegisterCallback
#include <sysutil/sysutil_oskdialog.h > // cellOskDialogUnloadAsync
#include <sysutil/sysutil_oskdialog_ext.h> // cellOskDialogExtRegisterKeyboardEventHookCallback
#include <sysutil/sysutil_sysparam.h> // cellSysutilGetSystemParamInt
#include <cell/sysmodule.h> // SYS_MEMORY_CONTAINER_ID_INVALID
class CKeyboard
{
public:
// PIEBOT: m_iMode is supposed to be using eKeyboardProcessState
// I'll leave that work to someone else.
enum eKeyboardProcessState
{
};
CKeyboard();
void Tick();
void GetText(uint16_t *UTF16String);
EKeyboardResult RequestKeyboard(LPCWSTR Title, LPCWSTR Text, DWORD dwPad, UINT uiMaxChars, int( *Func)(LPVOID,const bool),LPVOID lpParam,C_4JInput::EKeyboardMode eMode);
void DestroyKeyboard();
void register_osk_callback();
static bool OSK_KeyhookCallback(CellOskDialogKeyMessage *keyMessage, unsigned int *action, void *pActionInfo);
static void KeyboardEventsCallback(uint64_t status, uint64_t param, CKeyboard* userdata);
void SetKeyboardLanguage();
void SetMode(int mode);
CKeyboard *GetInstance();
int GetMode();
private:
int m_iMode;
int (*m_pFunc)(LPVOID, const bool);
LPVOID m_lpParam;
CellOskDialogParam m_pDialogParam;
float m_fX;
float m_fY;
CellOskDialogInputFieldInfo inputFieldInfo;
CellOskDialogCallbackReturnParam m_pDialogReturn;
uint16_t *m_pText[513];
int m_iLanguage;
CKeyboard *m_pInstance;
int m_pTickCountdown;
};