diff options
author | Yuqian Yang <crupest@crupest.life> | 2025-09-09 22:34:50 +0800 |
---|---|---|
committer | Yuqian Yang <crupest@crupest.life> | 2025-09-09 22:34:50 +0800 |
commit | fee3a550f00f6df4b341ca6ed47ef7e9a748a9ba (patch) | |
tree | 88c4584eb92523ee15dceae79237070f7f8bedf5 /include/cru/platform/gui/xcb | |
parent | 20fc1e5595e4f498d297c09934dbfcc005982f54 (diff) | |
download | cru-fee3a550f00f6df4b341ca6ed47ef7e9a748a9ba.tar.gz cru-fee3a550f00f6df4b341ca6ed47ef7e9a748a9ba.tar.bz2 cru-fee3a550f00f6df4b341ca6ed47ef7e9a748a9ba.zip |
Implement xcb keyboard.
Diffstat (limited to 'include/cru/platform/gui/xcb')
-rw-r--r-- | include/cru/platform/gui/xcb/Keyboard.h | 7 | ||||
-rw-r--r-- | include/cru/platform/gui/xcb/Window.h | 6 |
2 files changed, 11 insertions, 2 deletions
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 <cru/platform/gui/Keyboard.h> +#include <xcb/xcb.h> +#include <unordered_map> + namespace cru::platform::gui::xcb { struct XcbUiApplication; + +KeyCode XorgKeysymToKeyCode(xcb_keysym_t keysym); +KeyCode XorgKeycodeToCruKeyCode(XcbUiApplication* application, xcb_keycode_t keycode); +std::unordered_map<KeyCode, bool> 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<NativeMouseButtonEventArgs>* MouseDownEvent() override; IEvent<NativeMouseButtonEventArgs>* MouseUpEvent() override; IEvent<NativeMouseWheelEventArgs>* MouseWheelEvent() override; - virtual IEvent<NativeKeyEventArgs>* KeyDownEvent() = 0; - virtual IEvent<NativeKeyEventArgs>* KeyUpEvent() = 0; + IEvent<NativeKeyEventArgs>* KeyDownEvent() override; + IEvent<NativeKeyEventArgs>* KeyUpEvent() override; virtual IInputMethodContext* GetInputMethodContext() = 0; @@ -96,5 +96,7 @@ class XcbWindow : public XcbResource, public virtual INativeWindow { Event<NativeMouseButtonEventArgs> mouse_down_event_; Event<NativeMouseButtonEventArgs> mouse_up_event_; Event<NativeMouseWheelEventArgs> mouse_wheel_event_; + Event<NativeKeyEventArgs> key_down_event_; + Event<NativeKeyEventArgs> key_up_event_; }; } // namespace cru::platform::gui::xcb |