diff options
Diffstat (limited to 'platform/web/display_server_web.h')
-rw-r--r-- | platform/web/display_server_web.h | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/platform/web/display_server_web.h b/platform/web/display_server_web.h index 51c6ab3c0a..140aef952b 100644 --- a/platform/web/display_server_web.h +++ b/platform/web/display_server_web.h @@ -82,6 +82,25 @@ private: uint64_t last_click_ms = 0; MouseButton last_click_button_index = MouseButton::NONE; + bool ime_active = false; + bool ime_started = false; + String ime_text; + Vector2i ime_selection; + + struct KeyEvent { + bool pressed = false; + bool echo = false; + bool raw = false; + Key keycode = Key::NONE; + Key physical_keycode = Key::NONE; + Key key_label = Key::NONE; + uint32_t unicode = 0; + int mod = 0; + }; + + Vector<KeyEvent> key_event_buffer; + int key_event_pos = 0; + bool swap_cancel_ok = false; bool tts = false; @@ -108,6 +127,8 @@ private: static void _gamepad_callback(int p_index, int p_connected, const String &p_id, const String &p_guid); WASM_EXPORT static void js_utterance_callback(int p_event, int p_id, int p_pos); static void _js_utterance_callback(int p_event, int p_id, int p_pos); + WASM_EXPORT static void ime_callback(int p_type, const char *p_text); + static void _ime_callback(int p_type, const String &p_text); WASM_EXPORT static void request_quit_callback(); static void _request_quit_callback(); WASM_EXPORT static void window_blur_callback(); @@ -162,6 +183,13 @@ public: virtual MouseMode mouse_get_mode() const override; virtual Point2i mouse_get_position() const override; + // ime + virtual void window_set_ime_active(const bool p_active, WindowID p_window = MAIN_WINDOW_ID) override; + virtual void window_set_ime_position(const Point2i &p_pos, WindowID p_window = MAIN_WINDOW_ID) override; + + virtual Point2i ime_get_selection() const override; + virtual String ime_get_text() const override; + // touch virtual bool is_touchscreen_available() const override; |