Version : 150811
[apps/native/sample/adventure.git] / src / main_view.c
index a1cde8f..7f7e62e 100644 (file)
@@ -65,8 +65,10 @@ static void _clean_searchlist(Evas_Object *searchlist)
 
 static void _update_searchlist(Evas_Object *searchlist, const char *str, main_view_s *main_view_info)
 {
+       Evas_Object *predict_item = NULL;
        city_s *city_info = NULL;
        register int i = 0;
+       int count = 0;
 
        ret_if(!searchlist);
 
@@ -75,6 +77,12 @@ static void _update_searchlist(Evas_Object *searchlist, const char *str, main_vi
        city_info = city_get();
        ret_if(!city_info);
 
+       /* This is the padding before the search list */
+       predict_item = item_create_padding(searchlist);
+       if (predict_item) {
+               _append_item_to_searchlist(searchlist, predict_item);
+       }
+
        for (; i < CITY_MAX; i++) {
                int matched = 0;
                if (city_info[i].name && strstr(city_info[i].name, str))
@@ -83,13 +91,22 @@ static void _update_searchlist(Evas_Object *searchlist, const char *str, main_vi
                        matched = 1;
 
                if (matched) {
-                       Evas_Object *predict_item = NULL;
                        predict_item = item_create_typing(searchlist, i, main_view_info);
                        if (predict_item)
                                _append_item_to_searchlist(searchlist, predict_item);
                }
        }
+
        elm_object_signal_emit(main_view_info->main_view, "show", "entry_result");
+
+       count = scroller_count_item(searchlist);
+       if (count > 1)
+               return;
+
+       predict_item = item_create_typing(searchlist, -1, main_view_info); 
+       if (predict_item) {
+               _append_item_to_searchlist(searchlist, predict_item);
+       }
 }
 
 static void _change_entry_cb(void *data, Evas_Object *obj, void *event_info)
@@ -206,13 +223,14 @@ static Evas_Object *_create_searchbar(Evas_Object *parent, main_view_s *main_vie
        retv_if(!entry_obj, NULL);
 
        elm_entry_single_line_set(entry_obj, EINA_TRUE);
-       elm_entry_scrollable_set(entry_obj, EINA_TRUE);
+       /* This makes the text upper */
+       elm_entry_scrollable_set(entry_obj, EINA_FALSE);
        elm_entry_cnp_mode_set(entry_obj, ELM_CNP_MODE_PLAINTEXT);
        elm_entry_text_style_user_push(entry_obj, "DEFAULT='font_size=20'");
        elm_object_part_text_set(entry_obj, "elm.guide", "<font_size=20>Search</font_size>");
 
        evas_object_size_hint_weight_set(entry_obj, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-       evas_object_size_hint_align_set(entry_obj, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_size_hint_align_set(entry_obj, 0.0, 0.5);
 
        evas_object_smart_callback_add(entry_obj, "changed", _change_entry_cb, main_view_info);
        evas_object_smart_callback_add(entry_obj, "focused", _focus_entry_cb, main_view_info);
@@ -327,6 +345,8 @@ static Evas_Object *_create_next_btn(Evas_Object *parent, main_view_s *main_view
                elm_object_content_set(next_btn, icon);
        }
 
+       button_effect(next_btn);
+
        return next_btn;
 }
 
@@ -380,7 +400,11 @@ static void _click_add_btn_cb(void *data, Evas_Object *obj, void *event_info)
        ret_if(!main_view_info->main_view);
 
        elm_object_signal_emit(main_view_info->main_view, "momentic,state,page1", "");
+}
 
+static void _page1_done_cb(void *data, Evas_Object *obj, const char *signal, const char *source)
+{
+       elm_object_focus_set(data, EINA_TRUE);
 }
 
 static Evas_Object *_create_add_btn(Evas_Object *parent, main_view_s *main_view_info)
@@ -409,6 +433,8 @@ static Evas_Object *_create_add_btn(Evas_Object *parent, main_view_s *main_view_
                elm_object_content_set(add_btn, icon);
        }
 
+       button_effect(add_btn);
+
        return add_btn;
 }
 
@@ -602,6 +628,11 @@ static void _destroy_group_scroller(Evas_Object *group_scroller)
        evas_object_del(group_scroller);
 }
 
+static void _main_view_back_cb(void *data, Evas_Object *obj, void *event_info)
+{
+   elm_object_signal_emit(obj, "momentic,state,page,back", "");
+}
+
 Evas_Object *main_view_create(Evas_Object *parent, moment_info_s *moment_info)
 {
        main_view_s *main_view_info = NULL;
@@ -628,6 +659,8 @@ Evas_Object *main_view_create(Evas_Object *parent, moment_info_s *moment_info)
                return NULL;
        }
 
+       eext_object_event_callback_add(main_view_info->main_view, EEXT_CALLBACK_BACK, _main_view_back_cb, main_view_info);
+
        elm_layout_file_set(main_view_info->main_view, full_path, "main");
        evas_object_size_hint_weight_set(main_view_info->main_view, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
        evas_object_size_hint_align_set(main_view_info->main_view, EVAS_HINT_FILL, EVAS_HINT_FILL);
@@ -667,6 +700,8 @@ Evas_Object *main_view_create(Evas_Object *parent, moment_info_s *moment_info)
                evas_object_hide(main_view_info->group_scroller);
                //elm_object_part_content_set(main_view_info->main_view, "group_scroller", main_view_info->group_scroller);
 
+       elm_object_signal_callback_add(main_view_info->main_view, "momentic,page1,done", "", _page1_done_cb, main_view_info->searchbar);
+
        return main_view_info->main_view;
 }