#pragma once #include "4J_Input.h" #include // cellSysutilRegisterCallback #include // cellOskDialogUnloadAsync #include // cellOskDialogExtRegisterKeyboardEventHookCallback #include // cellSysutilGetSystemParamInt #include // 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; };