Add new APIs for text input 17/262117/1
authorInHong Han <inhong1.han@samsung.com>
Fri, 23 Jul 2021 09:35:01 +0000 (18:35 +0900)
committerJihoon Kim <jihoon48.kim@samsung.com>
Tue, 3 Aug 2021 02:58:33 +0000 (11:58 +0900)
Change-Id: I39fa474c29615cd466df5d61d2ddc4816327eeae

capi/include/cscl-ui-nui.h
capi/src/cscl-ui-nui.cpp

index faa4284..1e15ad8 100644 (file)
@@ -62,13 +62,15 @@ typedef void (*scl_nui_draw_rectangle_cb)(int pos_x, int pos_y, int width, int h
 
 /* window backend */
 typedef void (*scl_nui_update_window_cb)(SCLWindowType type, int x, int y, int width, int height, void* user_data);
-typedef int (*scl_nui_key_click_event_cb)(SclUIEventDesc event_desc);
-typedef int (*scl_nui_drag_state_changed_cb)(SclUIEventDesc event_desc);
+typedef int (*scl_nui_key_click_event_cb)(const char *key_value, unsigned long key_event, int key_type, int key_modifier);
+typedef int (*scl_nui_drag_state_changed_cb)(const char *key_value, unsigned long key_event, int key_type, int event_type, int current_x, int current_y);
 typedef int (*scl_nui_event_notification_cb)(SCLUINotiType noti_type, SclNotiDesc *etc_info);
 typedef void (*scl_nui_update_window_position_cb)(SCLWindowType type, int pos_x, int pos_y, int rot_x, int rot_y, void* user_data);
 
 int scl_nui_init(const char *entry_filepath);
 int scl_nui_fini();
+int scl_nui_show();
+int scl_nui_hide();
 
 int scl_nui_get_input_mode(const char **input_mode);
 int scl_nui_set_input_mode(const char *input_mode);
@@ -81,6 +83,7 @@ int scl_nui_set_draw_rectangle_cb(scl_nui_draw_rectangle_cb callback, void *user
 
 int scl_nui_set_cur_sublayout(const char *sub_layout_name);
 int scl_nui_set_string_substitution(const char *original, const char *substitute);
+int scl_nui_unset_string_substitution(const char *original);
 
 int scl_nui_set_update_window_cb(scl_nui_update_window_cb callback, void *user_data);
 
@@ -90,6 +93,15 @@ int scl_nui_set_event_notification_cb(scl_nui_event_notification_cb callback);
 int scl_nui_set_update_window_position_cb(scl_nui_update_window_position_cb callback, void *user_data);
 
 int scl_nui_enable_magnifier(bool enabled);
+int scl_nui_enable_sound(bool enabled);
+int scl_nui_enable_vibration(bool enabled);
+int scl_nui_set_private_key(const char* custom_id, char* label, char* imagelabel[SCL_BUTTON_STATE_MAX], char* imagebg[SCL_BUTTON_STATE_MAX], unsigned long key_event, char *key_value, bool redraw);
+int scl_nui_unset_private_key(const char* custom_id);
+int scl_nui_enable_button(const char* custom_id, bool enabled);
+int scl_nui_get_shift_state(unsigned int *state);
+int scl_nui_set_shift_state(unsigned int state);
+int scl_nui_set_autocapital_shift_state(bool state);
+int scl_nui_disable_input_event(bool disable);
 
 #ifdef __cplusplus
 }
index e195e82..8712f56 100644 (file)
@@ -119,7 +119,7 @@ SCLEventReturnType CUIEventCallback::on_event_key_clicked(SclUIEventDesc event_d
     LOGI("");
     int ret = 0;
     if (g_key_click_event_cb) {
-        ret = g_key_click_event_cb(event_desc);
+        ret = g_key_click_event_cb(event_desc.key_value, (int)event_desc.key_event, event_desc.key_type, event_desc.key_modifier);
     }
 
     return (SCLEventReturnType)ret;
@@ -141,7 +141,7 @@ SCLEventReturnType CUIEventCallback::on_event_drag_state_changed(SclUIEventDesc
     LOGI("");
     int ret = 0;
     if (g_drag_state_changed_cb) {
-        ret = g_drag_state_changed_cb(event_desc);
+        ret = g_drag_state_changed_cb(event_desc.key_value, (int)event_desc.key_event, event_desc.key_type, event_desc.event_type, event_desc.mouse_current_point.x, event_desc.mouse_current_point.y);
     }
 
     return (SCLEventReturnType)ret;
@@ -222,6 +222,28 @@ EXPORT_API int scl_nui_fini()
     return ret;
 }
 
+EXPORT_API int scl_nui_show()
+{
+    if (!g_ui)
+        return 1;
+
+    LOGD("");
+    g_ui->show();
+
+    return 0;
+}
+
+EXPORT_API int scl_nui_hide()
+{
+    if (!g_ui)
+        return 1;
+
+    LOGD("");
+    g_ui->hide();
+
+    return 0;
+}
+
 EXPORT_API int scl_nui_get_input_mode(const char **input_mode)
 {
     if (!g_ui)
@@ -308,6 +330,18 @@ EXPORT_API int scl_nui_set_string_substitution(const char *original, const char
     return 0;
 }
 
+EXPORT_API int scl_nui_unset_string_substitution(const char *original)
+{
+    if (!g_ui)
+        return 1;
+
+    LOGD("original : %s", original);
+
+    g_ui->unset_string_substitution(original);
+
+    return 0;
+}
+
 EXPORT_API int scl_nui_set_update_window_cb(scl_nui_update_window_cb callback, void *user_data)
 {
     g_update_window_cb = callback;
@@ -355,4 +389,115 @@ EXPORT_API int scl_nui_enable_magnifier(bool enabled)
     g_ui->enable_magnifier(enabled);
 
     return 0;
+}
+
+EXPORT_API int scl_nui_enable_sound(bool enabled)
+{
+    if (!g_ui)
+        return 1;
+
+    LOGD("enabled : %d", enabled);
+
+    g_ui->enable_sound(enabled);
+
+    return 0;
+}
+
+EXPORT_API int scl_nui_enable_vibration(bool enabled)
+{
+    if (!g_ui)
+        return 1;
+
+    LOGD("enabled : %d", enabled);
+
+    g_ui->enable_vibration(enabled);
+
+    return 0;
+}
+
+EXPORT_API int scl_nui_set_private_key(const char* custom_id, char* label, char* imagelabel[SCL_BUTTON_STATE_MAX], char* imagebg[SCL_BUTTON_STATE_MAX], unsigned long key_event, char *key_value, bool redraw)
+{
+    if (!g_ui)
+        return 1;
+
+    LOGD("custom_id : %s, label : %s, ", custom_id, label);
+
+    static sclchar *private_label[SCL_BUTTON_STATE_MAX] = {
+            const_cast<sclchar*>(imagelabel[0]), const_cast<sclchar*>(imagelabel[1]), const_cast<sclchar*>(imagelabel[2])};
+    g_ui->set_private_key(custom_id, label, private_label, imagebg, key_event, key_value, redraw);
+
+    return 0;
+}
+
+EXPORT_API int scl_nui_unset_private_key(const char* custom_id)
+{
+    if (!g_ui)
+        return 1;
+
+    LOGD("custom_id : %s", custom_id);
+
+    g_ui->unset_private_key(custom_id);
+
+    return 0;
+}
+
+EXPORT_API int scl_nui_enable_button(const char* custom_id, bool enabled)
+{
+    if (!g_ui)
+        return 1;
+
+    LOGD("custom_id : %s, enabled : %d", custom_id, enabled);
+
+    g_ui->enable_button(custom_id, enabled);
+
+    return 0;
+}
+
+EXPORT_API int scl_nui_get_shift_state(unsigned int *state)
+{
+    if (!g_ui)
+        return 1;
+
+    SCLShiftState ret = g_ui->get_shift_state();
+
+    LOGD("shift state : %d", ret);
+    *state = ret;
+
+    return 0;
+}
+
+EXPORT_API int scl_nui_set_shift_state(unsigned int state)
+{
+    if (!g_ui)
+        return 1;
+
+    LOGD("shift state : %d", state);
+
+    g_ui->set_shift_state((SCLShiftState)state);
+
+    return 0;
+}
+
+EXPORT_API int scl_nui_set_autocapital_shift_state(bool state)
+{
+    if (!g_ui)
+        return 1;
+
+    LOGD("state : %d", state);
+
+    g_ui->set_autocapital_shift_state(state);
+
+    return 0;
+}
+
+EXPORT_API int scl_nui_disable_input_event(bool disable)
+{
+    if (!g_ui)
+        return 1;
+
+    LOGD("disable : %d", disable);
+
+    g_ui->disable_input_events(disable);
+
+    return 0;
 }
\ No newline at end of file