From fee3a550f00f6df4b341ca6ed47ef7e9a748a9ba Mon Sep 17 00:00:00 2001 From: Yuqian Yang Date: Tue, 9 Sep 2025 22:34:50 +0800 Subject: Implement xcb keyboard. --- include/cru/platform/gui/xcb/Keyboard.h | 7 +++++++ include/cru/platform/gui/xcb/Window.h | 6 ++++-- 2 files changed, 11 insertions(+), 2 deletions(-) (limited to 'include/cru/platform/gui/xcb') diff --git a/include/cru/platform/gui/xcb/Keyboard.h b/include/cru/platform/gui/xcb/Keyboard.h index 8d25ff7f..41b4abee 100644 --- a/include/cru/platform/gui/xcb/Keyboard.h +++ b/include/cru/platform/gui/xcb/Keyboard.h @@ -2,7 +2,14 @@ #include +#include +#include + namespace cru::platform::gui::xcb { struct XcbUiApplication; + +KeyCode XorgKeysymToKeyCode(xcb_keysym_t keysym); +KeyCode XorgKeycodeToCruKeyCode(XcbUiApplication* application, xcb_keycode_t keycode); +std::unordered_map GetKeyboardState(XcbUiApplication* application); KeyModifier GetCurrentKeyModifiers(XcbUiApplication* application); } // namespace cru::platform::gui::xcb diff --git a/include/cru/platform/gui/xcb/Window.h b/include/cru/platform/gui/xcb/Window.h index 016b5717..9c6b4f43 100644 --- a/include/cru/platform/gui/xcb/Window.h +++ b/include/cru/platform/gui/xcb/Window.h @@ -74,8 +74,8 @@ class XcbWindow : public XcbResource, public virtual INativeWindow { IEvent* MouseDownEvent() override; IEvent* MouseUpEvent() override; IEvent* MouseWheelEvent() override; - virtual IEvent* KeyDownEvent() = 0; - virtual IEvent* KeyUpEvent() = 0; + IEvent* KeyDownEvent() override; + IEvent* KeyUpEvent() override; virtual IInputMethodContext* GetInputMethodContext() = 0; @@ -96,5 +96,7 @@ class XcbWindow : public XcbResource, public virtual INativeWindow { Event mouse_down_event_; Event mouse_up_event_; Event mouse_wheel_event_; + Event key_down_event_; + Event key_up_event_; }; } // namespace cru::platform::gui::xcb -- cgit v1.2.3