diff options
Diffstat (limited to 'src/search_bar.cpp')
-rwxr-xr-x | src/search_bar.cpp | 89 |
1 files changed, 49 insertions, 40 deletions
diff --git a/src/search_bar.cpp b/src/search_bar.cpp index 9403621..bcb3978 100755 --- a/src/search_bar.cpp +++ b/src/search_bar.cpp @@ -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. @@ -23,11 +23,17 @@ #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); |