From: Jihoon Kim Date: Mon, 9 Dec 2024 08:17:21 +0000 (+0900) Subject: Reduce duplicated code for creating entry X-Git-Tag: accepted/tizen/unified/20250113.094335~3 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F14%2F316014%2F2;p=platform%2Fcore%2Fuifw%2Finputdelegator.git Reduce duplicated code for creating entry Change-Id: I19fbc2c19e9cc9a2f4d17c4b178fa21af2486d98 Signed-off-by: Jihoon Kim --- diff --git a/src/w-input-keyboard.cpp b/src/w-input-keyboard.cpp index 837b0a7..c5387f5 100644 --- a/src/w-input-keyboard.cpp +++ b/src/w-input-keyboard.cpp @@ -27,7 +27,7 @@ extern InputKeyboardData g_input_keyboard_data; extern App_Data* app_data; -static Evas_Object *entry; +static Evas_Object *entry = NULL; struct _input_panel_layout_item { const char *layout_string; @@ -256,33 +256,25 @@ static void enter_keydown_cb(void *data, Evas_Object *obj, void *event_info) exit_keyboard(); } -void create_fullscreen_editor(void *data) +static Evas_Object *create_entry(Evas_Object *parent) { - App_Data *ad = (App_Data *)data; - - Evas_Object *box = elm_box_add(ad->naviframe); - evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_show(box); - elm_win_resize_object_add(ad->naviframe, box); + static Elm_Entry_Filter_Limit_Size limit_filter_data; - entry = elm_entry_add(box); + entry = elm_entry_add(parent); - static Elm_Entry_Filter_Limit_Size limit_filter_data; limit_filter_data.max_char_count = g_input_keyboard_data.max_text_length; elm_entry_markup_filter_append(entry, elm_entry_filter_limit_size, &limit_filter_data); - evas_object_smart_callback_add(entry, "maxlength,reached", maxlength_cb, data); + evas_object_smart_callback_add(entry, "maxlength,reached", maxlength_cb, NULL); - elm_entry_single_line_set(entry, EINA_TRUE); elm_entry_scrollable_set(entry, EINA_TRUE); elm_scroller_policy_set(entry, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_AUTO); elm_object_part_text_set(entry, "elm.guide", g_input_keyboard_data.guide_text.c_str()); elm_entry_entry_set(entry, g_input_keyboard_data.default_text.c_str()); elm_entry_cursor_end_set(entry); - evas_object_size_hint_weight_set(entry, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(entry, EVAS_HINT_FILL, EVAS_HINT_FILL); elm_entry_input_panel_return_key_type_set(entry, g_input_keyboard_data.return_key_type); + if (g_input_keyboard_data.return_key_type == ELM_INPUT_PANEL_RETURN_KEY_TYPE_DONE) { - evas_object_smart_callback_add(entry, "activated", enter_keydown_cb, ad); + evas_object_smart_callback_add(entry, "activated", enter_keydown_cb, NULL); } if (g_input_keyboard_data.cursor_position_set != 0) { elm_entry_cursor_pos_set(entry, g_input_keyboard_data.cursor_position_set); @@ -291,6 +283,21 @@ void create_fullscreen_editor(void *data) elm_entry_input_panel_layout_set(entry, g_input_keyboard_data.input_panel_layout); evas_object_show(entry); + + return entry; +} + +void create_fullscreen_editor(void *data) +{ + App_Data *ad = (App_Data *)data; + + Evas_Object *box = elm_box_add(ad->naviframe); + evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_show(box); + elm_win_resize_object_add(ad->naviframe, box); + + entry = create_entry(box); + elm_entry_single_line_set(entry, EINA_TRUE); elm_box_pack_end(box, entry); Evas_Object *btn = elm_button_add(box); @@ -325,9 +332,9 @@ static void editfield_unfocused_cb(void *data, Evas_Object *obj, void *event_inf elm_object_signal_emit(editfield, "elm,action,hide,button", ""); } -static Evas_Object *create_multiline_editfield_layout(Evas_Object *parent, void *data) +static Evas_Object *create_multiline_editfield_layout(Evas_Object *parent) { - App_Data *ad = (App_Data *)data; + //App_Data *ad = (App_Data *)data; Evas_Object *editfield; editfield = elm_layout_add(parent); @@ -335,31 +342,10 @@ static Evas_Object *create_multiline_editfield_layout(Evas_Object *parent, void evas_object_size_hint_align_set(editfield, EVAS_HINT_FILL, 0.0); evas_object_size_hint_weight_set(editfield, EVAS_HINT_EXPAND, 0.0); - entry = elm_entry_add(editfield); - static Elm_Entry_Filter_Limit_Size limit_filter_data; - limit_filter_data.max_char_count = g_input_keyboard_data.max_text_length; - elm_entry_markup_filter_append(entry, elm_entry_filter_limit_size, &limit_filter_data); - evas_object_smart_callback_add(entry, "maxlength,reached", maxlength_cb, data); - - elm_entry_scrollable_set(entry, EINA_TRUE); - elm_scroller_policy_set(entry, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_AUTO); - elm_object_part_text_set(entry, "elm.guide", g_input_keyboard_data.guide_text.c_str()); - elm_entry_entry_set(entry, g_input_keyboard_data.default_text.c_str()); - elm_entry_cursor_end_set(entry); + entry = create_entry(editfield); evas_object_smart_callback_add(entry, "focused", editfield_focused_cb, editfield); evas_object_smart_callback_add(entry, "unfocused", editfield_unfocused_cb, editfield); - elm_entry_input_panel_return_key_type_set(entry, g_input_keyboard_data.return_key_type); - if (g_input_keyboard_data.return_key_type == ELM_INPUT_PANEL_RETURN_KEY_TYPE_DONE) { - evas_object_smart_callback_add(entry, "activated", enter_keydown_cb, ad); - } - if (g_input_keyboard_data.cursor_position_set != 0) { - elm_entry_cursor_pos_set(entry, g_input_keyboard_data.cursor_position_set); - } - - elm_entry_input_panel_layout_set(entry, g_input_keyboard_data.input_panel_layout); - - evas_object_show(entry); elm_object_part_content_set(editfield, "elm.swallow.content", entry); return editfield; @@ -382,7 +368,7 @@ static Evas_Object *create_editfield_view(void *data) evas_object_size_hint_weight_set(main_box, EVAS_HINT_EXPAND, 0.0); evas_object_show(main_box); - editfield = create_multiline_editfield_layout(main_box, data); + editfield = create_multiline_editfield_layout(main_box); elm_box_pack_end(main_box, editfield); evas_object_show(editfield);