From: Hyoyoung Chang Date: Thu, 9 Dec 2010 05:09:49 +0000 (+0900) Subject: [searchbar] add focus hook function X-Git-Tag: REL_I9200_20110603-1~582 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=ff7f0d8044b0991519c94fc7e975b3ccebaa9d4e;p=framework%2Fuifw%2Felementary.git [searchbar] add focus hook function --- diff --git a/src/lib/elm_searchbar.c b/src/lib/elm_searchbar.c index 96225c6..2c03c72 100644 --- a/src/lib/elm_searchbar.c +++ b/src/lib/elm_searchbar.c @@ -24,6 +24,7 @@ struct _Widget_Data static void _del_hook(Evas_Object *obj); static void _theme_hook(Evas_Object *obj); +static void _on_focus_hook(void *data, Evas_Object *obj); static void _sizing_eval(Evas_Object *obj); static void _clicked(void *data, Evas_Object *obj, void *event_info); static void _changed(void *data, Evas_Object *obj, void *event_info); @@ -54,6 +55,24 @@ static void _theme_hook(Evas_Object *obj) _sizing_eval(obj); } +static void +_on_focus_hook(void *data, Evas_Object *obj) +{ + Widget_Data *wd = elm_widget_data_get(obj); + if (!wd || !wd->base) + return; + if (elm_widget_focus_get(obj)) + { + elm_entry_cursor_end_set(elm_editfield_entry_get(wd->eb)); + + if (wd->cancel_btn_show_mode) + { + if (wd->cancel_btn_ani_flag) edje_object_signal_emit(wd->base, "CANCELIN", "PROG"); + else edje_object_signal_emit(wd->base, "CANCELSHOW", "PROG"); + } + } +} + static void _sizing_eval(Evas_Object *obj) { Widget_Data *wd = elm_widget_data_get(obj); @@ -146,6 +165,7 @@ EAPI Evas_Object *elm_searchbar_add(Evas_Object *parent) elm_widget_data_set(obj, wd); elm_widget_del_hook_set(obj, _del_hook); elm_widget_theme_hook_set(obj, _theme_hook); + elm_widget_on_focus_hook_set( obj, _on_focus_hook, NULL ); elm_widget_can_focus_set(obj, 1 ); wd->base = edje_object_add(e);