diff options
author | Yuqian Yang <crupest@crupest.life> | 2025-09-30 00:16:13 +0800 |
---|---|---|
committer | Yuqian Yang <crupest@crupest.life> | 2025-10-03 00:13:54 +0800 |
commit | e903083732b0d4638ac066fc85b030b121d8e7e6 (patch) | |
tree | e9a871e71705fa83242e75cca6d9431390b8f755 /include/cru/platform/gui | |
parent | 44487b61e5c2b89318f9a4a85c67df9aad7884e1 (diff) | |
download | cru-e903083732b0d4638ac066fc85b030b121d8e7e6.tar.gz cru-e903083732b0d4638ac066fc85b030b121d8e7e6.tar.bz2 cru-e903083732b0d4638ac066fc85b030b121d8e7e6.zip |
Impl input method for xim 2.
Diffstat (limited to 'include/cru/platform/gui')
-rw-r--r-- | include/cru/platform/gui/xcb/InputMethod.h | 5 | ||||
-rw-r--r-- | include/cru/platform/gui/xcb/Keyboard.h | 2 | ||||
-rw-r--r-- | include/cru/platform/gui/xcb/Window.h | 3 |
3 files changed, 10 insertions, 0 deletions
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 <cru/base/Base.h> #include <xcb-imdkit/imclient.h> #include <xcb/xcb.h> @@ -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<xcb_keysym_t> 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<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 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 <cairo.h> @@ -117,6 +118,8 @@ class XcbWindow : public XcbResource, public virtual INativeWindow { XcbWindow* parent_; XcbXimInputMethodContext* input_method_; + TimerAutoCanceler repaint_canceler_; + Event<std::nullptr_t> create_event_; Event<std::nullptr_t> destroy_event_; Event<std::nullptr_t> paint_event_; |