diff options
author | Jihoon Kim <jihoon48.kim@samsung.com> | 2017-11-20 17:35:12 +0900 |
---|---|---|
committer | Jihoon Kim <jihoon48.kim@samsung.com> | 2017-12-19 10:23:28 +0900 |
commit | 93098b78348f1d11c6904576153383d12971245d (patch) | |
tree | b2c3619a6f5c402b7ae7a51e1120d606bd78317f /ism/modules | |
parent | 0449e9b2380db4fd7d23bf01bcde5e08288bee08 (diff) | |
download | isf-93098b78348f1d11c6904576153383d12971245d.tar.gz isf-93098b78348f1d11c6904576153383d12971245d.tar.bz2 isf-93098b78348f1d11c6904576153383d12971245d.zip |
Support prediction hint data interface
Change-Id: Ic75d5db6ac4f467592da0eec0a4ec6ba09b6c7a3
Signed-off-by: Jihoon Kim <jihoon48.kim@samsung.com>
Diffstat (limited to 'ism/modules')
6 files changed, 37 insertions, 1 deletions
diff --git a/ism/modules/panelagent/ecoresocket/ecore_socket_panel_agent_module.cpp b/ism/modules/panelagent/ecoresocket/ecore_socket_panel_agent_module.cpp index 73c926c8..2a0f3ff5 100644 --- a/ism/modules/panelagent/ecoresocket/ecore_socket_panel_agent_module.cpp +++ b/ism/modules/panelagent/ecoresocket/ecore_socket_panel_agent_module.cpp @@ -823,6 +823,18 @@ private: m_send_trans.write_to_socket(client_socket); } + void set_helper_prediction_hint_data(int client, uint32 context, const String& uuid, String& key, String &value) { + Socket client_socket(client); + m_send_trans.clear(); + m_send_trans.put_command(SCIM_TRANS_CMD_REPLY); + m_send_trans.put_data(context); + m_send_trans.put_data(uuid); + m_send_trans.put_command(ISM_TRANS_CMD_SET_PREDICTION_HINT_DATA); + m_send_trans.put_data(key); + m_send_trans.put_data(value); + m_send_trans.write_to_socket(client_socket); + } + void finalize_content_helper(int client, uint32 context, const String& uuid, String& text, uint32& cursor_pos) { LOGD("client id:%d", client); diff --git a/ism/modules/panelagent/wayland/isf_wsc_control.cpp b/ism/modules/panelagent/wayland/isf_wsc_control.cpp index aa2bf34c..0a198c80 100644 --- a/ism/modules/panelagent/wayland/isf_wsc_control.cpp +++ b/ism/modules/panelagent/wayland/isf_wsc_control.cpp @@ -230,6 +230,13 @@ int _isf_wsc_context_input_panel_finalize_content (int context, const char *text g_info_manager->finalize_content (get_panel_client_id (), String (text), cursor_pos); return 0; } + +int _isf_wsc_context_input_panel_prediction_hint_data_set (int context, const char *key, const char *value) +{ + g_info_manager->set_prediction_hint_data (get_panel_client_id (), String (key), String (value)); + return 0; +} + /* vi:ts=4:expandtab:nowrap */ diff --git a/ism/modules/panelagent/wayland/isf_wsc_control.h b/ism/modules/panelagent/wayland/isf_wsc_control.h index f127e266..d284c1ef 100644 --- a/ism/modules/panelagent/wayland/isf_wsc_control.h +++ b/ism/modules/panelagent/wayland/isf_wsc_control.h @@ -67,6 +67,7 @@ extern "C" int _isf_wsc_context_input_panel_prediction_hint_set (int context, const char *prediction_hint); int _isf_wsc_context_input_panel_mime_type_accept_set (int context, const char *mime_type); int _isf_wsc_context_input_panel_finalize_content (int context, const char *text, int cursor_pos); + int _isf_wsc_context_input_panel_prediction_hint_data_set (int context, const char *key, const char *value); #ifdef __cplusplus } diff --git a/ism/modules/panelagent/wayland/isf_wsc_control_ui.cpp b/ism/modules/panelagent/wayland/isf_wsc_control_ui.cpp index 7c55a3b1..01ef0f1f 100644 --- a/ism/modules/panelagent/wayland/isf_wsc_control_ui.cpp +++ b/ism/modules/panelagent/wayland/isf_wsc_control_ui.cpp @@ -305,3 +305,8 @@ void isf_wsc_context_input_panel_finalize_content (WSCContextISF *ctx, const cha { _isf_wsc_context_input_panel_finalize_content (_get_context_id(ctx), text, cursor_pos); } + +void isf_wsc_context_input_panel_prediction_hint_data_set (WSCContextISF *ctx, const char *key, const char *value) +{ + _isf_wsc_context_input_panel_prediction_hint_data_set (_get_context_id(ctx), key, value); +} diff --git a/ism/modules/panelagent/wayland/isf_wsc_control_ui.h b/ism/modules/panelagent/wayland/isf_wsc_control_ui.h index 21062b28..fc39f179 100644 --- a/ism/modules/panelagent/wayland/isf_wsc_control_ui.h +++ b/ism/modules/panelagent/wayland/isf_wsc_control_ui.h @@ -57,6 +57,7 @@ extern "C" void isf_wsc_context_input_panel_prediction_hint_set (WSCContextISF *ctx, const char *prediction_hint); void isf_wsc_context_input_panel_mime_type_accept_set (WSCContextISF *ctx, const char *mime_type); void isf_wsc_context_input_panel_finalize_content (WSCContextISF *ctx, const char *text, int cursor_pos); + void isf_wsc_context_input_panel_prediction_hint_data_set (WSCContextISF *ctx, const char *key, const char *value); #ifdef __cplusplus } diff --git a/ism/modules/panelagent/wayland/wayland_panel_agent_module.cpp b/ism/modules/panelagent/wayland/wayland_panel_agent_module.cpp index 50cb648e..b9a96548 100644 --- a/ism/modules/panelagent/wayland/wayland_panel_agent_module.cpp +++ b/ism/modules/panelagent/wayland/wayland_panel_agent_module.cpp @@ -503,6 +503,15 @@ _wsc_im_ctx_finalized_content (void *data, struct wl_input_method_context *im_ct isf_wsc_context_input_panel_finalize_content (wsc_ctx, text, cursor_pos); } +static void +_wsc_im_ctx_prediction_hint_data (void *data, struct wl_input_method_context *im_ctx, const char *key, const char * value) +{ + WSCContextISF *wsc_ctx = (WSCContextISF*)data; + if (!wsc_ctx) return; + + isf_wsc_context_input_panel_prediction_hint_data_set (wsc_ctx, key, value); +} + static const struct wl_input_method_context_listener wsc_im_context_listener = { _wsc_im_ctx_reset, _wsc_im_ctx_content_type, @@ -519,7 +528,8 @@ static const struct wl_input_method_context_listener wsc_im_context_listener = { _wsc_im_ctx_capital_mode, _wsc_im_ctx_prediction_hint, _wsc_im_ctx_mime_type, - _wsc_im_ctx_finalized_content + _wsc_im_ctx_finalized_content, + _wsc_im_ctx_prediction_hint_data }; #if ENABLE_GRAB_KEYBOARD |