Fix layout issue realte to giant font size
[apps/home/smartsearch.git] / src / search_bar.cpp
index b67c734..3943af4 100755 (executable)
@@ -214,24 +214,24 @@ __search_searchbar_state_event_cb(void *data, Ecore_IMF_Context *imf_context, in
        SEARCH_FUNC_END;
 }
 
-static Evas_Object* __search_searchbar_create(void *data)
+static void __search_searchbar_create(void *data)
 {
        SEARCH_FUNC_START;
 
        struct appdata *ad = (struct appdata *)data;
-       int category = 0;
-       Evas_Object *search_layout = NULL;
-       Evas_Object *cate_btn;
-       Evas_Object *cate_icon;
-       char *imgpath = NULL;
-
        if (!ad)
-               return NULL;
+               return;
 
        if (ad->search_bar) {
-               elm_object_signal_callback_del(ad->search_bar, "elm,bg,clicked", "elm",
+               elm_object_signal_callback_del(
+                                                               ad->search_bar,
+                                                               "elm,bg,clicked",
+                                                               "elm",
                                                                __search_searchbar_bg_clicked_cb);
-               elm_object_signal_callback_del(ad->search_bar, "elm,eraser,clicked", "elm",
+               elm_object_signal_callback_del(
+                                                               ad->search_bar,
+                                                               "elm,eraser,clicked",
+                                                               "elm",
                                                                __search_searchbar_eraser_clicked_cb);
 
                evas_object_del(ad->search_bar);
@@ -239,13 +239,21 @@ static Evas_Object* __search_searchbar_create(void *data)
        }
 
        if (ad->search_entry) {
-               evas_object_smart_callback_del(ad->search_entry, "changed",
+               evas_object_smart_callback_del(
+                                                               ad->search_entry,
+                                                               "changed",
                                                                __search_searchbar_entry_changed_cb);
-               evas_object_smart_callback_del(ad->search_entry, "preedit,changed",
+               evas_object_smart_callback_del(
+                                                               ad->search_entry,
+                                                               "preedit,changed",
                                                                __search_searchbar_entry_changed_cb);
-               evas_object_smart_callback_del(ad->search_entry, "focused",
+               evas_object_smart_callback_del(
+                                                               ad->search_entry,
+                                                               "focused",
                                                                __search_searchbar_entry_focused_cb);
-               evas_object_smart_callback_del(ad->search_entry, "unfocused",
+               evas_object_smart_callback_del(
+                                                               ad->search_entry,
+                                                               "unfocused",
                                                                __search_searchbar_entry_unfocused_cb);
 
                evas_object_del(ad->search_entry);
@@ -253,31 +261,15 @@ static Evas_Object* __search_searchbar_create(void *data)
        }
 
        if (ad->search_cancel_btn) {
-               evas_object_smart_callback_del(ad->search_cancel_btn, "clicked",
+               evas_object_smart_callback_del(
+                                                               ad->search_cancel_btn,
+                                                               "clicked",
                                               __search_searchbar_cancel_clicked_cb);
                evas_object_del(ad->search_cancel_btn);
                ad->search_cancel_btn = NULL;
        }
 
-       search_layout = elm_layout_add(ad->sb_layout);
-       elm_layout_file_set(search_layout,
-                                               SEARCH_EDJ,
-                                               "smartsearch/search_bar");
-
-       imgpath = ad->category_info[ad->search_category].btn_icon_path;
-       cate_icon = search_searchbar_category_icon_add(imgpath, search_layout);
-       cate_btn = elm_button_add(search_layout);
-
-       elm_object_style_set(cate_btn, "icon");
-       elm_object_content_set(ad->cate_btn, cate_icon);
-
-       evas_object_show(cate_btn);
-       ad->cate_btn = cate_btn;
-
-       elm_object_part_content_set(search_layout, "searchbar_area_category", cate_btn);
-
-       /* Make Search entry with cancel button */
-       ad->search_bar = elm_layout_add(search_layout);
+       ad->search_bar = elm_layout_add(ad->navi_bar);
        elm_layout_theme_set(ad->search_bar , "layout", "searchbar", "cancel_button");
 
        ad->search_cancel_btn = elm_button_add(ad->search_bar);
@@ -292,8 +284,8 @@ static Evas_Object* __search_searchbar_create(void *data)
        elm_object_part_text_set(ad->search_bar, "elm.guidetext", dgettext("sys_string", "IDS_COM_BODY_SEARCH"));
        elm_entry_cnp_mode_set(ad->search_entry, ELM_CNP_MODE_PLAINTEXT);
 
-       evas_object_size_hint_weight_set(ad->search_bar, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-       evas_object_size_hint_align_set(ad->search_bar, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_size_hint_weight_set(ad->search_bar, EVAS_HINT_EXPAND, 0);
+       evas_object_size_hint_align_set(ad->search_bar, EVAS_HINT_FILL, 0.0);
 
        elm_entry_input_panel_layout_set(ad->search_entry, ELM_INPUT_PANEL_LAYOUT_NORMAL);
        Ecore_IMF_Context *imf_context = (Ecore_IMF_Context *)elm_entry_imf_context_get(ad->search_entry);
@@ -302,43 +294,57 @@ static Evas_Object* __search_searchbar_create(void *data)
                                                         __search_searchbar_state_event_cb,
                                                         data);
 
-       elm_object_part_content_set(search_layout, "searchbar_area_entry", ad->search_bar);
-
        /* Set Searchbar Callback */
-       elm_object_signal_callback_add(ad->search_bar, "elm,bg,clicked", "elm",
+       elm_object_signal_callback_add(
+                                                               ad->search_bar,
+                                                               "elm,bg,clicked",
+                                                               "elm",
                                                                __search_searchbar_bg_clicked_cb,
                                                                ad);
-       elm_object_signal_callback_add(ad->search_bar, "elm,eraser,clicked", "elm",
+       elm_object_signal_callback_add(
+                                                               ad->search_bar,
+                                                               "elm,eraser,clicked",
+                                                               "elm",
                                                                __search_searchbar_eraser_clicked_cb,
                                                                ad);
 
        /* Set Search-Entry Callback */
-       evas_object_smart_callback_add(ad->search_entry, "changed",
+       evas_object_smart_callback_add(
+                                                               ad->search_entry,
+                                                               "changed",
                                                                __search_searchbar_entry_changed_cb,
                                                                ad);
-       evas_object_smart_callback_add(ad->search_entry, "preedit,changed",
+       evas_object_smart_callback_add(
+                                                               ad->search_entry,
+                                                               "preedit,changed",
                                                                __search_searchbar_entry_changed_cb,
                                                                ad);
 
-       evas_object_smart_callback_add(ad->search_entry, "focused",
+       evas_object_smart_callback_add(
+                                                               ad->search_entry,
+                                                               "focused",
                                                                __search_searchbar_entry_focused_cb,
                                                                ad);
-       evas_object_smart_callback_add(ad->search_entry, "unfocused",
+       evas_object_smart_callback_add(
+                                                               ad->search_entry,
+                                                               "unfocused",
                                                                __search_searchbar_entry_unfocused_cb,
                                                                ad);
-       evas_object_event_callback_add(ad->search_entry, EVAS_CALLBACK_KEY_DOWN,
+       evas_object_event_callback_add(
+                                                               ad->search_entry,
+                                                               EVAS_CALLBACK_KEY_DOWN,
                                                                __search_searchbar_key_down_cb,
                                                        ad);
 
        /* Set Searchbar Cancel Button Callback */
-       evas_object_smart_callback_add(ad->search_cancel_btn, "clicked",
+       evas_object_smart_callback_add(
+                                                               ad->search_cancel_btn,
+                                                               "clicked",
                                                                __search_searchbar_cancel_clicked_cb,
                                                                ad);
 
        evas_object_show(ad->search_bar);
 
-       return search_layout;
-
        SEARCH_FUNC_END;
 }
 
@@ -390,30 +396,43 @@ void search_searchbar_cb(void *data, Evas_Object * obj, void *event_info)
 
        struct appdata *ad = (struct appdata *)data;
 
-       /* create layout */
+       Evas_Object *cate_btn;
+       Evas_Object *cate_icon;
+       int category = 0;
+       char *imgpath = NULL;
 
+       /* create layout */
        ad->sb_layout = elm_layout_add(ad->navi_bar);
-       elm_layout_theme_set(ad->sb_layout, "layout", "application", "searchbar_base");
-       elm_object_signal_emit(ad->sb_layout, "elm,state,show,searchbar", "elm");
+       elm_layout_file_set(ad->sb_layout,
+                                               SEARCH_EDJ,
+                                               "smartsearch/search_result");
+
+               category = SEARCH_CATE_PHONE;
+
+       imgpath = ad->category_info[ad->search_category].btn_icon_path;
+       cate_icon = search_searchbar_category_icon_add(imgpath, ad->sb_layout);
+       cate_btn = elm_button_add(ad->sb_layout);
+       elm_object_content_set(ad->cate_btn, cate_icon);
+
+       evas_object_show(cate_btn);
+       ad->cate_btn = cate_btn;
+
+       elm_object_part_content_set(ad->sb_layout, "searchbar_area_category", cate_btn);
 
        /* set search bar area */
-       ad->search_layout = __search_searchbar_create(ad);
-       elm_object_part_content_set(ad->sb_layout, "searchbar", ad->search_layout);
 
-       /* set search result area */
-       ad->result_layout = elm_layout_add(ad->sb_layout);
-       elm_layout_file_set(ad->result_layout,
-                                               SEARCH_EDJ,
-                                               "smartsearch/search_result");
+       __search_searchbar_create(ad);
+
+       elm_object_part_content_set(ad->sb_layout, "searchbar_area_entry", ad->search_bar);
 
        /* set search result area */
+
        ad->noresult_view = __search_init_noresult_view(ad);
 
-       elm_object_part_content_set(ad->result_layout,
+       elm_object_part_content_set(ad->sb_layout,
                                                "list_noresult",
                                                ad->noresult_view);
 
-       elm_object_part_content_set(ad->sb_layout, "elm.swallow.content", ad->result_layout);
        evas_object_size_hint_weight_set(
                                                        ad->sb_layout,
                                                        EVAS_HINT_EXPAND,