Reduce duplicated code for creating entry 14/316014/2
authorJihoon Kim <jihoon48.kim@samsung.com>
Mon, 9 Dec 2024 08:17:21 +0000 (17:17 +0900)
committerJihoon Kim <jihoon48.kim@samsung.com>
Mon, 9 Dec 2024 08:21:16 +0000 (17:21 +0900)
Change-Id: I19fbc2c19e9cc9a2f4d17c4b178fa21af2486d98
Signed-off-by: Jihoon Kim <jihoon48.kim@samsung.com>
src/w-input-keyboard.cpp

index 837b0a7e50b603aa10bdce6b9030a56348d059d1..c5387f51c387c66a0fea1f51d1f055bd1c29731f 100644 (file)
@@ -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);