summaryrefslogtreecommitdiff
path: root/src/search_bar.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/search_bar.cpp')
-rwxr-xr-xsrc/search_bar.cpp89
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);