#pragma once using SceImeCharFilter = s32(u16 ch); struct SceImeRect { le_t x; le_t y; le_t width; le_t height; }; struct SceImeEditText { le_t preeditIndex; le_t preeditLength; le_t caretIndex; vm::lptr str; }; union SceImeEventParam { SceImeRect rect; SceImeEditText text; le_t caretIndex; }; struct SceImeEvent { le_t id; SceImeEventParam param; }; struct SceImeCaret { le_t x; le_t y; le_t height; le_t index; }; struct SceImePreeditGeometry { le_t x; le_t y; le_t height; }; using SceImeEventHandler = void(vm::ptr arg, vm::cptr e); struct SceImeParam { le_t size; le_t inputMethod; le_t supportedLanguages; le_t languagesForced; le_t type; le_t option; vm::lptr work; vm::lptr arg; vm::lptr handler; vm::lptr filter; vm::lptr initialText; le_t maxTextLength; vm::lptr inputTextBuffer; le_t reserved0; le_t reserved1; };