Changes IME input to use notification instead of callback, exposes IME methods to gdscript/gdnative.
This commit is contained in:
parent
8ba0d513fa
commit
4554c682e6
14 changed files with 87 additions and 43 deletions
|
|
@ -378,12 +378,20 @@ bool _OS::get_borderless_window() const {
|
|||
|
||||
void _OS::set_ime_active(const bool p_active) {
|
||||
|
||||
return OS::get_singleton()->set_ime_active(p_active);
|
||||
OS::get_singleton()->set_ime_active(p_active);
|
||||
}
|
||||
|
||||
void _OS::set_ime_position(const Point2 &p_pos) {
|
||||
|
||||
return OS::get_singleton()->set_ime_position(p_pos);
|
||||
OS::get_singleton()->set_ime_position(p_pos);
|
||||
}
|
||||
|
||||
Point2 _OS::get_ime_selection() const {
|
||||
return OS::get_singleton()->get_ime_selection();
|
||||
}
|
||||
|
||||
String _OS::get_ime_text() const {
|
||||
return OS::get_singleton()->get_ime_text();
|
||||
}
|
||||
|
||||
void _OS::set_use_file_access_save_and_swap(bool p_enable) {
|
||||
|
|
@ -1134,7 +1142,10 @@ void _OS::_bind_methods() {
|
|||
ClassDB::bind_method(D_METHOD("get_window_per_pixel_transparency_enabled"), &_OS::get_window_per_pixel_transparency_enabled);
|
||||
ClassDB::bind_method(D_METHOD("set_window_per_pixel_transparency_enabled", "enabled"), &_OS::set_window_per_pixel_transparency_enabled);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("set_ime_active", "active"), &_OS::set_ime_active);
|
||||
ClassDB::bind_method(D_METHOD("set_ime_position", "position"), &_OS::set_ime_position);
|
||||
ClassDB::bind_method(D_METHOD("get_ime_selection"), &_OS::get_ime_selection);
|
||||
ClassDB::bind_method(D_METHOD("get_ime_text"), &_OS::get_ime_text);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("set_screen_orientation", "orientation"), &_OS::set_screen_orientation);
|
||||
ClassDB::bind_method(D_METHOD("get_screen_orientation"), &_OS::get_screen_orientation);
|
||||
|
|
|
|||
|
|
@ -195,6 +195,8 @@ public:
|
|||
|
||||
virtual void set_ime_active(const bool p_active);
|
||||
virtual void set_ime_position(const Point2 &p_pos);
|
||||
virtual Point2 get_ime_selection() const;
|
||||
virtual String get_ime_text() const;
|
||||
|
||||
Error native_video_play(String p_path, float p_volume, String p_audio_track, String p_subtitle_track);
|
||||
bool native_video_is_playing();
|
||||
|
|
|
|||
|
|
@ -60,6 +60,7 @@ void MainLoop::_bind_methods() {
|
|||
BIND_CONSTANT(NOTIFICATION_TRANSLATION_CHANGED);
|
||||
BIND_CONSTANT(NOTIFICATION_WM_ABOUT);
|
||||
BIND_CONSTANT(NOTIFICATION_CRASH);
|
||||
BIND_CONSTANT(NOTIFICATION_OS_IME_UPDATE);
|
||||
};
|
||||
|
||||
void MainLoop::set_init_script(const Ref<Script> &p_init_script) {
|
||||
|
|
|
|||
|
|
@ -65,6 +65,7 @@ public:
|
|||
NOTIFICATION_TRANSLATION_CHANGED = 90,
|
||||
NOTIFICATION_WM_ABOUT = 91,
|
||||
NOTIFICATION_CRASH = 92,
|
||||
NOTIFICATION_OS_IME_UPDATE = 93,
|
||||
};
|
||||
|
||||
virtual void input_event(const Ref<InputEvent> &p_event);
|
||||
|
|
|
|||
|
|
@ -242,7 +242,8 @@ public:
|
|||
|
||||
virtual void set_ime_active(const bool p_active) {}
|
||||
virtual void set_ime_position(const Point2 &p_pos) {}
|
||||
virtual void set_ime_intermediate_text_callback(ImeCallback p_callback, void *p_inp) {}
|
||||
virtual Point2 get_ime_selection() const { return Point2(); }
|
||||
virtual String get_ime_text() const { return String(); }
|
||||
|
||||
virtual Error open_dynamic_library(const String p_path, void *&p_library_handle, bool p_also_set_library_path = false) { return ERR_UNAVAILABLE; }
|
||||
virtual Error close_dynamic_library(void *p_library_handle) { return ERR_UNAVAILABLE; }
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue