[Coding Style] Polish map.c
[apps/native/sample/adventure.git] / src / main.c
1 /*\r
2  * Samsung API\r
3  * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd.\r
4  *\r
5  * Licensed under the Apache License, Version 2.0 (the License);\r
6  * you may not use this file except in compliance with the License.\r
7  * You may obtain a copy of the License at\r
8  *\r
9  * http://www.apache.org/license/\r
10  *\r
11  * Unless required by applicable law or agreed to in writing, software\r
12  * distributed under the License is distributed on an AS IS BASIS,\r
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
14  * See the License for the specific language governing permissions and\r
15  * limitations under the License.\r
16  */\r
17 \r
18 #include <tizen.h>\r
19 #include <Elementary.h>\r
20 \r
21 #include "log.h"\r
22 #include "util.h"\r
23 #include "main.h"\r
24 #include "ui_manager.h"\r
25 #include "db.h"\r
26 \r
27 static void\r
28 _win_delete_request_cb(void *data, Evas_Object *obj, void *event_info)\r
29 {\r
30         ui_app_exit();\r
31 }\r
32 \r
33 static void\r
34 _resize_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)\r
35 {\r
36         int x, y, w, h;\r
37         evas_object_geometry_get(obj, &x, &y, &w, &h);\r
38         _D("%s (%d:%d:%d:%d)", data, x, y, w, h);\r
39 }\r
40 \r
41 static bool\r
42 app_create(void *data)\r
43 {\r
44         moment_info_s *moment_info = data;\r
45 \r
46         elm_app_base_scale_set(1.8);\r
47         elm_config_accel_preference_set("hw");\r
48         elm_config_preferred_engine_set("opengl_x11");\r
49 \r
50         moment_info->win = elm_win_util_standard_add(PACKAGE, PACKAGE);\r
51         retv_if(!moment_info->win, false);\r
52 \r
53         if (elm_win_wm_rotation_supported_get(moment_info->win)) {\r
54                 int rots[1] = {0};\r
55                 elm_win_wm_rotation_available_rotations_set(moment_info->win, (const int *)(&rots), 1);\r
56         }\r
57         elm_win_autodel_set(moment_info->win, EINA_TRUE);\r
58         elm_win_indicator_mode_set(moment_info->win, ELM_WIN_INDICATOR_HIDE);\r
59         elm_win_screen_size_get(moment_info->win, NULL, NULL, &moment_info->width, &moment_info->height);\r
60 \r
61         evas_object_smart_callback_add(moment_info->win, "delete,request", _win_delete_request_cb, NULL);\r
62         evas_object_show(moment_info->win);\r
63 \r
64         moment_info->conform = elm_conformant_add(moment_info->win);\r
65         elm_object_signal_emit(moment_info->conform, "elm,state,indicator,overlap", "elm");\r
66         elm_object_signal_emit(moment_info->conform, "elm,state,virtualkeypad,disable", "");\r
67         elm_object_signal_emit(moment_info->conform, "elm,state,clipboard,disable", "");\r
68 \r
69         evas_object_size_hint_weight_set(moment_info->conform, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);\r
70         evas_object_event_callback_add(moment_info->conform, EVAS_CALLBACK_RESIZE, _resize_cb, "conform");\r
71 \r
72         elm_win_resize_object_add(moment_info->win, moment_info->conform);\r
73         elm_win_conformant_set(moment_info->win, EINA_TRUE);\r
74 \r
75         evas_object_show(moment_info->conform);\r
76 \r
77         _D("Window size (%d:%d)", moment_info->width, moment_info->height);\r
78 \r
79         moment_info->e = evas_object_evas_get(moment_info->win);\r
80         moment_info->db = db_open();\r
81         //db_drop_table(moment_info->db);\r
82         db_create_table(moment_info->db);\r
83 \r
84         return true;\r
85 }\r
86 \r
87 static void\r
88 app_control(app_control_h app_control, void *data)\r
89 {\r
90         moment_info_s *moment_info = data;\r
91         ret_if(!moment_info);\r
92         ret_if(!moment_info->conform);\r
93 \r
94         _D("app_control");\r
95 \r
96         moment_info->ui_manager = ui_manager_create(moment_info->conform, moment_info, moment_info->width, moment_info->height);\r
97         ret_if(!moment_info->ui_manager);\r
98         elm_object_content_set(moment_info->conform, moment_info->ui_manager);\r
99 }\r
100 \r
101 static void\r
102 app_pause(void *data)\r
103 {\r
104         _D("pause");\r
105 }\r
106 \r
107 static void\r
108 app_resume(void *data)\r
109 {\r
110         _D("resume");\r
111 }\r
112 \r
113 static void\r
114 app_terminate(void *data)\r
115 {\r
116         moment_info_s *moment_info = data;\r
117 \r
118         if (moment_info->ui_manager)\r
119                 ui_manager_destroy(moment_info->ui_manager);\r
120 \r
121         if (moment_info->conform)\r
122                 evas_object_del(moment_info->conform);\r
123 \r
124         if (moment_info->win)\r
125                 evas_object_del(moment_info->win);\r
126 }\r
127 \r
128 static void\r
129 ui_app_lang_changed(app_event_info_h event_info, void *user_data)\r
130 {\r
131         /*APP_EVENT_LANGUAGE_CHANGED*/\r
132         char *locale = NULL;\r
133         system_settings_get_value_string(SYSTEM_SETTINGS_KEY_LOCALE_LANGUAGE, &locale);\r
134         elm_language_set(locale);\r
135         free(locale);\r
136         return;\r
137 }\r
138 \r
139 static void\r
140 ui_app_orient_changed(app_event_info_h event_info, void *user_data)\r
141 {\r
142         /*APP_EVENT_DEVICE_ORIENTATION_CHANGED*/\r
143         return;\r
144 }\r
145 \r
146 static void\r
147 ui_app_region_changed(app_event_info_h event_info, void *user_data)\r
148 {\r
149         /*APP_EVENT_REGION_FORMAT_CHANGED*/\r
150 }\r
151 \r
152 static void\r
153 ui_app_low_battery(app_event_info_h event_info, void *user_data)\r
154 {\r
155         /*APP_EVENT_LOW_BATTERY*/\r
156 }\r
157 \r
158 static void\r
159 ui_app_low_memory(app_event_info_h event_info, void *user_data)\r
160 {\r
161         /*APP_EVENT_LOW_MEMORY*/\r
162 }\r
163 \r
164 int\r
165 main(int argc, char *argv[])\r
166 {\r
167         moment_info_s moment_info = {0,};\r
168         int ret = 0;\r
169 \r
170         ui_app_lifecycle_callback_s event_callback = {0,};\r
171         app_event_handler_h handlers[5] = {NULL, };\r
172 \r
173         event_callback.create = app_create;\r
174         event_callback.terminate = app_terminate;\r
175         event_callback.pause = app_pause;\r
176         event_callback.resume = app_resume;\r
177         event_callback.app_control = app_control;\r
178 \r
179         ui_app_add_event_handler(&handlers[APP_EVENT_LOW_BATTERY], APP_EVENT_LOW_BATTERY, ui_app_low_battery, &moment_info);\r
180         ui_app_add_event_handler(&handlers[APP_EVENT_LOW_MEMORY], APP_EVENT_LOW_MEMORY, ui_app_low_memory, &moment_info);\r
181         ui_app_add_event_handler(&handlers[APP_EVENT_DEVICE_ORIENTATION_CHANGED], APP_EVENT_DEVICE_ORIENTATION_CHANGED, ui_app_orient_changed, &moment_info);\r
182         ui_app_add_event_handler(&handlers[APP_EVENT_LANGUAGE_CHANGED], APP_EVENT_LANGUAGE_CHANGED, ui_app_lang_changed, &moment_info);\r
183         ui_app_add_event_handler(&handlers[APP_EVENT_REGION_FORMAT_CHANGED], APP_EVENT_REGION_FORMAT_CHANGED, ui_app_region_changed, &moment_info);\r
184         ui_app_remove_event_handler(handlers[APP_EVENT_LOW_MEMORY]);\r
185 \r
186         ret = ui_app_main(argc, argv, &event_callback, &moment_info);\r
187         if (ret != APP_ERROR_NONE) {\r
188                 dlog_print(DLOG_ERROR, LOG_TAG, "ui_app_main() is failed. err = %d", ret);\r
189         }\r
190 \r
191         return ret;\r
192 }\r