summaryrefslogtreecommitdiff
path: root/ism/modules
diff options
context:
space:
mode:
authorJihoon Kim <jihoon48.kim@samsung.com>2017-11-20 17:35:12 +0900
committerJihoon Kim <jihoon48.kim@samsung.com>2017-12-19 10:23:28 +0900
commit93098b78348f1d11c6904576153383d12971245d (patch)
treeb2c3619a6f5c402b7ae7a51e1120d606bd78317f /ism/modules
parent0449e9b2380db4fd7d23bf01bcde5e08288bee08 (diff)
downloadisf-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')
-rw-r--r--ism/modules/panelagent/ecoresocket/ecore_socket_panel_agent_module.cpp12
-rw-r--r--ism/modules/panelagent/wayland/isf_wsc_control.cpp7
-rw-r--r--ism/modules/panelagent/wayland/isf_wsc_control.h1
-rw-r--r--ism/modules/panelagent/wayland/isf_wsc_control_ui.cpp5
-rw-r--r--ism/modules/panelagent/wayland/isf_wsc_control_ui.h1
-rw-r--r--ism/modules/panelagent/wayland/wayland_panel_agent_module.cpp12
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