From: InHong Han Date: Fri, 23 Jul 2021 09:35:01 +0000 (+0900) Subject: Add new APIs for text input X-Git-Tag: submit/tizen/20210803.031958~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F17%2F262117%2F1;p=platform%2Fcore%2Fuifw%2Flibscl-ui-nui.git Add new APIs for text input Change-Id: I39fa474c29615cd466df5d61d2ddc4816327eeae --- diff --git a/capi/include/cscl-ui-nui.h b/capi/include/cscl-ui-nui.h index faa4284..1e15ad8 100644 --- a/capi/include/cscl-ui-nui.h +++ b/capi/include/cscl-ui-nui.h @@ -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 } diff --git a/capi/src/cscl-ui-nui.cpp b/capi/src/cscl-ui-nui.cpp index e195e82..8712f56 100644 --- a/capi/src/cscl-ui-nui.cpp +++ b/capi/src/cscl-ui-nui.cpp @@ -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; @@ -354,5 +388,116 @@ 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(imagelabel[0]), const_cast(imagelabel[1]), const_cast(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