Search : scroller & item
[apps/native/sample/adventure.git] / new / src / main_view.c
1 #include <Elementary.h>\r
2 #include "main.h"\r
3 #include "log.h"\r
4 #include "scroller"\r
5 \r
6 const char *const MAIN_VIEW_EDJE = "main_view.edj";\r
7 \r
8 static void _change_entry_cb(void *data, Evas_Object *obj, void *event_info)\r
9 {\r
10         moment_info_s *moment_info = data;\r
11 \r
12         ret_if(!moment_info);\r
13 }\r
14 \r
15 static Evas_Object *_create_search_entry(Evas_Object *parent, moment_info_s *moment_info)\r
16 {\r
17         Evas_Object *entry = NULL;\r
18 \r
19         retv_if(!parent, NULL);\r
20 \r
21         entry = elm_entry_add(parent);\r
22         retv_if(!entry, NULL);\r
23 \r
24         elm_entry_single_line_set(entry, EINA_TRUE);\r
25         elm_entry_scrollable_set(entry, EINA_TRUE);\r
26         elm_entry_cnp_mode_set(entry, ELM_CNP_MODE_PLAINTEXT);\r
27         elm_object_part_text_set(entry, "elm.guide", "City");\r
28 \r
29         evas_object_size_hint_weight_set(entry, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);\r
30         evas_object_size_hint_align_set(entry, EVAS_HINT_FILL, EVAS_HINT_FILL);\r
31 \r
32         evas_object_smart_callback_add(entry, "changed", _change_entry_cb, moment_info);\r
33         evas_object_smart_callback_add(entry, "focused", _focus_entry_cb, moment_info);\r
34         evas_object_smart_callback_add(entry, "unfocused", _focus_entry_cb, moment_info);\r
35 \r
36         evas_object_show(entry);\r
37 \r
38         return entry;\r
39 }\r
40 \r
41 void _destroy_search_entry(Evas_Object *entry)\r
42 {\r
43         ret_if(!entry);\r
44         evas_object_del(entry);\r
45 }\r
46 \r
47 static _clicked_cb(void *data, Evas_Object *obj, void *event_info)\r
48 {\r
49         moment_info_s *moment_info = data;\r
50 \r
51         _D("Add button is clicked");\r
52 \r
53         ret_if(!moment_info);\r
54 \r
55         elm_object_signal_emit(moment_info->main_view\r
56 \r
57         moment_info->scroller = scroller_create(moment_info->ui_manager);\r
58         ret_if(!moment_info->scroller);\r
59 }\r
60 \r
61 Evas_Object *main_view_create(Evas_Object *parent, moment_info_s *moment_info)\r
62 {\r
63         Evas_Object *main_view = NULL;\r
64         Evas_Object *button = NULL;\r
65         char *path = NULL;\r
66         char full_path[] = {0, };\r
67 \r
68         retv_if(!parent, NULL);\r
69 \r
70         path = app_get_resource_path();\r
71         retv_if(!path, NULL);\r
72 \r
73         snprintf(full_path, sizeof(full_path), "%s/edje/%s", path, MAIN_VIEW_EDJE);\r
74         free(path);\r
75 \r
76         main_view = elm_layout_add(parent);\r
77         retv_if(!main_view, NULL);\r
78         elm_layout_file_set(main_view, full_path, "main");\r
79         evas_object_size_hint_weight_set(main_view, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);\r
80         evas_object_size_hint_align_set(main_view, EVAS_HINT_FILL, EVAS_HINT_FILL);\r
81         evas_object_show(main_view);\r
82 \r
83         elm_object_part_text_set(main_view, "title", "No cities");\r
84         elm_object_part_text_set(main_view, "description", "After you add cities, they will be shown here.");\r
85 \r
86         button = elm_button_add(parent);\r
87         if (button) {\r
88                 elm_object_text_set(button, "+ Add");\r
89                 elm_object_part_content_set(main_view, "button", button);\r
90                 evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);\r
91                 evas_object_size_hint_align_set(button, EVAS_HINT_FILL, EVAS_HINT_FILL);\r
92                 evas_object_smart_callback_add(button, "clicked", _clicked_cb, moment_info);\r
93         }\r
94 \r
95         return main_view;\r
96 }\r
97 \r
98 void main_view_destroy(Evas_Object *main_view)\r
99 {\r
100         Evas_Object *button = NULL;\r
101 \r
102         ret_if(!main_view);\r
103 \r
104         button = elm_object_part_content_unset(main_view, "button");\r
105         if (button) {\r
106                 evas_object_del(button);\r
107         }\r
108 \r
109         evas_object_del(main_view);\r
110 }\r