From e903083732b0d4638ac066fc85b030b121d8e7e6 Mon Sep 17 00:00:00 2001 From: Yuqian Yang Date: Tue, 30 Sep 2025 00:16:13 +0800 Subject: Impl input method for xim 2. --- include/cru/platform/gui/xcb/InputMethod.h | 5 +++++ include/cru/platform/gui/xcb/Keyboard.h | 2 ++ include/cru/platform/gui/xcb/Window.h | 3 +++ 3 files changed, 10 insertions(+) (limited to 'include/cru/platform') diff --git a/include/cru/platform/gui/xcb/InputMethod.h b/include/cru/platform/gui/xcb/InputMethod.h index 286f3158..a325c1da 100644 --- a/include/cru/platform/gui/xcb/InputMethod.h +++ b/include/cru/platform/gui/xcb/InputMethod.h @@ -2,6 +2,7 @@ #include "../InputMethod.h" #include "Base.h" +#include #include #include @@ -12,6 +13,8 @@ class XcbUiApplication; class XcbWindow; class XcbXimInputMethodManager : public XcbResource { + CRU_DEFINE_CLASS_LOG_TAG("cru::platform::gui::xcb::XcbXimInputMethodManager") + friend XcbUiApplication; public: @@ -33,6 +36,8 @@ class XcbXimInputMethodManager : public XcbResource { class XcbXimInputMethodContext : public XcbResource, public virtual IInputMethodContext { + CRU_DEFINE_CLASS_LOG_TAG("cru::platform::gui::xcb::XcbXimInputMethodContext") + friend XcbXimInputMethodManager; public: diff --git a/include/cru/platform/gui/xcb/Keyboard.h b/include/cru/platform/gui/xcb/Keyboard.h index 41b4abee..f3650900 100644 --- a/include/cru/platform/gui/xcb/Keyboard.h +++ b/include/cru/platform/gui/xcb/Keyboard.h @@ -9,7 +9,9 @@ namespace cru::platform::gui::xcb { struct XcbUiApplication; KeyCode XorgKeysymToKeyCode(xcb_keysym_t keysym); +std::vector XorgKeycodeToKeysyms(XcbUiApplication* application, xcb_keycode_t keycode); KeyCode XorgKeycodeToCruKeyCode(XcbUiApplication* application, xcb_keycode_t keycode); +std::string XorgKeysymToUtf8(xcb_keysym_t keysym); 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 e330ba7c..d9bef0c3 100644 --- a/include/cru/platform/gui/xcb/Window.h +++ b/include/cru/platform/gui/xcb/Window.h @@ -2,6 +2,7 @@ #pragma once #include "../../GraphicsBase.h" #include "../Window.h" +#include "../TimerHelper.h" #include "Base.h" #include @@ -117,6 +118,8 @@ class XcbWindow : public XcbResource, public virtual INativeWindow { XcbWindow* parent_; XcbXimInputMethodContext* input_method_; + TimerAutoCanceler repaint_canceler_; + Event create_event_; Event destroy_event_; Event paint_event_; -- cgit v1.2.3