summaryrefslogtreecommitdiffstats
path: root/platform/web/display_server_web.h
diff options
context:
space:
mode:
Diffstat (limited to 'platform/web/display_server_web.h')
-rw-r--r--platform/web/display_server_web.h28
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;