aboutsummaryrefslogtreecommitdiff
path: root/include/cru/platform/gui/xcb
diff options
context:
space:
mode:
Diffstat (limited to 'include/cru/platform/gui/xcb')
-rw-r--r--include/cru/platform/gui/xcb/Keyboard.h7
-rw-r--r--include/cru/platform/gui/xcb/Window.h6
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