Update changed code
[apps/home/smartsearch.git] / src / search_bar.cpp
index 9403621..bcb3978 100755 (executable)
@@ -1,12 +1,12 @@
 /*
  * Copyright 2012  Samsung Electronics Co., Ltd
- * 
+ *
  * Licensed under the Flora License, Version 1.0 (the License);
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  *     http://www.tizenopensource.org/license
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an AS IS BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 #include "smartsearch.h"
 #include "Elementary.h"
 
-static const char* g_search_category_icon[SEARCH_CATE_BTN_IMG_TYPE_MAX] = 
+Eina_Bool __search_entry_timer_cb(void *data)
 {
-       "B10_Phone.png", 
-       "B10_Phone_press.png",
-};
+       SEARCH_FUNC_START;
+       struct appdata *ad = (struct appdata *)data;
+
+       search_set_result_list(ad);
+       ad->search_timer = NULL;
+
+       SEARCH_FUNC_END;
+       return ECORE_CALLBACK_CANCEL;
+}
 
 void __search_searchbar_entry_changed_cb(void *data, Evas_Object * obj,
                                       void *event_info)
@@ -46,7 +52,7 @@ void __search_searchbar_entry_changed_cb(void *data, Evas_Object * obj,
                else
                        elm_object_signal_emit(ad->search_bar, "elm,state,eraser,show", "elm");
        } else {
-               if (elm_entry_is_empty(ad->search_entry)) 
+               if (elm_entry_is_empty(ad->search_entry))
                        elm_object_signal_emit(ad->search_bar, "elm,state,guidetext,show", "elm");
                else
                        elm_object_signal_emit(ad->search_bar, "elm,state,guidetext,hide", "elm");
@@ -56,11 +62,11 @@ void __search_searchbar_entry_changed_cb(void *data, Evas_Object * obj,
                    && (SEARCH_STRCMP(text, ad->search_word) == 0)) {
                        SEARCH_DEBUG_LOG("text is same as prev text");
        } else {
-               if(ad->idler_search)
-                       ecore_idler_del(ad->idler_search);
-               
-               ad->idler_search = ecore_idler_add(search_set_result_list, ad);
-       }               
+               /* Make timer for check user's input */
+               search_stop_search(ad);
+
+               ad->search_timer = ecore_timer_add(0.4, __search_entry_timer_cb, ad);
+       }
 
        SEARCH_FUNC_END;
        return;
@@ -185,21 +191,21 @@ __search_searchbar_state_event_cb(void *data, Ecore_IMF_Context *imf_context, in
        {
                case ECORE_IMF_INPUT_PANEL_STATE_SHOW:
                        evas_object_smart_callback_add(
-                                       ad->search_gl, 
-                                       "scroll,drag,start", 
-                                       __search_searchbar_gl_drag_scroll_start_cb, 
-                                       data);                          
+                                       ad->search_gl,
+                                       "scroll,drag,start",
+                                       __search_searchbar_gl_drag_scroll_start_cb,
+                                       data);
                break;
                case ECORE_IMF_INPUT_PANEL_STATE_HIDE:
-               // ISE state has changed to ISE_STATE_HIDE status
+                       /* ISE state has changed to ISE_STATE_HIDE status */
                        evas_object_smart_callback_del(
-                                       ad->search_gl, 
-                                       "scroll,drag,start", 
+                                       ad->search_gl,
+                                       "scroll,drag,start",
                                        __search_searchbar_gl_drag_scroll_start_cb);
                break;
        }
 
-       SEARCH_FUNC_END;        
+       SEARCH_FUNC_END;
 }
 
 static void __search_searchbar_create(void *data)
@@ -264,7 +270,7 @@ static void __search_searchbar_create(void *data)
        elm_object_part_content_set(ad->search_bar, "button_cancel", ad->search_cancel_btn);
        elm_object_style_set(ad->search_cancel_btn, "searchbar/default");
        elm_object_text_set(ad->search_cancel_btn, dgettext("sys_string", "IDS_COM_SK_CANCEL"));
-       
+
        ad->search_entry = elm_entry_add(ad->search_bar);
        elm_entry_scrollable_set(ad->search_entry, EINA_TRUE);
        elm_entry_single_line_set(ad->search_entry, EINA_TRUE);
@@ -295,7 +301,7 @@ static void __search_searchbar_create(void *data)
                                                                "elm",
                                                                __search_searchbar_eraser_clicked_cb,
                                                                ad);
-       
+
        /* Set Search-Entry Callback */
        evas_object_smart_callback_add(
                                                                ad->search_entry,
@@ -320,7 +326,7 @@ static void __search_searchbar_create(void *data)
                                                                ad);
        evas_object_event_callback_add(
                                                                ad->search_entry,
-                                                               EVAS_CALLBACK_KEY_DOWN, 
+                                                               EVAS_CALLBACK_KEY_DOWN,
                                                                __search_searchbar_key_down_cb,
                                                        ad);
 
@@ -353,21 +359,25 @@ static Evas_Object *__search_init_noresult_view(void *data)
        return noc;
 }
 
-Evas_Object *search_searchbar_category_icon_add(int cate_type, int press_type, Evas_Object *parent)
+Evas_Object *search_searchbar_category_icon_add(char* img, Evas_Object *parent)
 {
        SEARCH_FUNC_START;
 
-       Evas_Object* cate_icon;
-       char buf[128] = { 0, };
+       char buf[MAX_LENGTH_PER_PATH] = { 0, };
+       Evas_Object* cate_icon = NULL;
 
+       if( img != NULL ) {
        cate_icon = elm_icon_add(parent);
-       
-       snprintf(buf, sizeof(buf), SEARCH_ICON_PATH "%s", g_search_category_icon[press_type]);
+
+       snprintf(buf, sizeof(buf), SEARCH_ICON_PATH "%s", img);
+
+       SEARCH_DEBUG_LOG("buf : %s", buf);
 
        elm_icon_file_set(cate_icon, buf, NULL);
 
        evas_object_size_hint_aspect_set(cate_icon, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
-       elm_icon_resizable_set(cate_icon, EINA_TRUE, EINA_TRUE);
+       elm_icon_resizable_set(cate_icon, EINA_FALSE, EINA_FALSE);
+       }
 
        SEARCH_FUNC_END;
 
@@ -379,11 +389,11 @@ void search_searchbar_cb(void *data, Evas_Object * obj, void *event_info)
        SEARCH_FUNC_START;
 
        struct appdata *ad = (struct appdata *)data;
-       
+
        Evas_Object *cate_btn;
        Evas_Object *cate_icon;
        int category = 0;
-       int err = 0;
+       char *imgpath = NULL;
 
        /* create layout */
 
@@ -392,20 +402,19 @@ void search_searchbar_cb(void *data, Evas_Object * obj, void *event_info)
                                                SEARCH_EDJ,
                                                "smartsearch/search_result");
 
-       category = SEARCH_TYPE_PHONE;
+       category = SEARCH_CATE_PHONE;
 
-       cate_icon = search_searchbar_category_icon_add(category, 
-                                                                                                       SEARCH_CATE_BTN_IMG_TYPE_UNPRESSED, 
-                                                                                                       ad->sb_layout);
+       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 */
        __search_searchbar_create(ad);
        elm_object_part_content_set(ad->sb_layout, "searchbar_area_entry", ad->search_bar);
@@ -413,12 +422,12 @@ void search_searchbar_cb(void *data, Evas_Object * obj, void *event_info)
        /* set search result area */
        ad->noresult_view = __search_init_noresult_view(ad);
 
-       elm_object_part_content_set(ad->sb_layout, 
+       elm_object_part_content_set(ad->sb_layout,
                                                "list_noresult",
                                                ad->noresult_view);
 
        evas_object_size_hint_weight_set(
-                                                       ad->sb_layout, 
+                                                       ad->sb_layout,
                                                        EVAS_HINT_EXPAND,
                                                        EVAS_HINT_EXPAND);