add kbm support
This commit is contained in:
1 parent
f2d81a0bc6
commit
d0db40a3ee
6 files changed
+646
-22
No files matched your search
@@ -32,6 +32,8 @@ void SeedEditBox();
|
||||
class CKeyboard
|
||||
{
|
||||
public:
|
||||
CKeyboard();
|
||||
|
||||
enum EKeyboardProcessState
|
||||
{
|
||||
};
|
||||
@@ -40,11 +42,86 @@ public:
|
||||
{
|
||||
};
|
||||
|
||||
void Tick(void);
|
||||
void Init();
|
||||
void Tick();
|
||||
|
||||
EKeyboardResult RequestKeyboard(LPCWSTR Title, LPCWSTR Text, DWORD dwPad, UINT uiMaxChars, int (*Func)(LPVOID, const bool), LPVOID lpParam,
|
||||
void OnKeyDown(int vkCode);
|
||||
void OnKeyUp(int vkCode);
|
||||
void OnChar(wchar_t ch);
|
||||
|
||||
void OnMouseMove(int x, int y);
|
||||
void OnRawMouseDelta(int dx, int dy);
|
||||
void OnLButtonDown(int x, int y);
|
||||
void OnLButtonUp(int x, int y);
|
||||
void OnRButtonDown(int x, int y);
|
||||
void OnRButtonUp(int x, int y);
|
||||
void OnMButtonDown(int x, int y);
|
||||
void OnMButtonUp(int x, int y);
|
||||
void OnMouseWheel(int delta, int x, int y);
|
||||
|
||||
bool IsKeyDown(int vkCode) const;
|
||||
bool IsKeyPressed(int vkCode) const;
|
||||
bool IsKeyReleased(int vkCode) const;
|
||||
|
||||
int GetMouseX() const { return m_mouseX; }
|
||||
int GetMouseY() const { return m_mouseY; }
|
||||
|
||||
int GetRawMouseX() const { return m_mouseDeltaX; }
|
||||
int GetRawMouseY() const { return m_mouseDeltaY; }
|
||||
|
||||
bool IsLButtonDown() const { return m_lButtonCurr; }
|
||||
bool IsLButtonPressed() const { return m_lButtonCurr && !m_lButtonPrev; }
|
||||
bool IsLButtonReleased() const { return !m_lButtonCurr && m_lButtonPrev; }
|
||||
|
||||
bool IsRButtonDown() const { return m_rButtonCurr; }
|
||||
bool IsRButtonPressed() const { return m_rButtonCurr && !m_rButtonPrev; }
|
||||
bool IsRButtonReleased() const { return !m_rButtonCurr && m_rButtonPrev; }
|
||||
|
||||
int GetMouseWheelDelta() const { return m_mouseWheel; }
|
||||
|
||||
wchar_t GetLastChar() const { return m_charCount > 0 ? m_charBuffer[0] : 0; }
|
||||
bool HasChar() const { return m_charCount > 0; }
|
||||
int GetCharCount() const { return m_charCount; }
|
||||
wchar_t GetChar(int index) const { return (index >= 0 && index < m_charCount) ? m_charBuffer[index] : 0; }
|
||||
|
||||
int GetClipboardText(wchar_t *outText, int outCapacity) const;
|
||||
bool SetClipboardText(const wchar_t *text) const;
|
||||
|
||||
void SetMouseCaptured(bool captured);
|
||||
void SetWindowFocused(bool focused);
|
||||
bool IsMouseCaptured() const { return m_mouseCaptured; }
|
||||
|
||||
void SetMousePos(int x, int y) { m_mouseX = x; m_mouseY = y; }
|
||||
|
||||
EKeyboardResult RequestKeyboard(LPCWSTR Title, LPCWSTR Text, DWORD dwPad, UINT uiMaxChars, int (*Func)(LPVOID, const bool), LPVOID lpParam,
|
||||
C_4JInput::EKeyboardMode eMode);
|
||||
void GetText(uint16_t *UTF16String);
|
||||
|
||||
|
||||
BYTE gap0[0x68];
|
||||
private:
|
||||
static const int MAX_KEYS = 256;
|
||||
static const int MAX_CHARS_PER_FRAME = 32;
|
||||
|
||||
bool m_keysPrev[MAX_KEYS];
|
||||
bool m_keysCurr[MAX_KEYS];
|
||||
|
||||
int m_mouseX, m_mouseY;
|
||||
bool m_lButtonPrev, m_lButtonCurr;
|
||||
bool m_rButtonPrev, m_rButtonCurr;
|
||||
bool m_mButtonPrev, m_mButtonCurr;
|
||||
int m_mouseWheel;
|
||||
|
||||
wchar_t m_charBuffer[MAX_CHARS_PER_FRAME];
|
||||
int m_charCount;
|
||||
|
||||
bool m_windowFocused;
|
||||
bool m_mouseCaptured;
|
||||
int m_mouseDeltaX, m_mouseDeltaY;
|
||||
int m_mouseDeltaAccumX, m_mouseDeltaAccumY;
|
||||
|
||||
wchar_t m_chrText[128];
|
||||
LPVOID m_lParam;
|
||||
int (*m_onInput)(LPVOID, LPCWSTR);
|
||||
|
||||
};
|
||||
Reference in new issue
Block a user