3 * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd.
\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
9 * http://www.apache.org/license/
\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
19 #include <Elementary.h>
\r
24 #include "ui_manager.h"
\r
28 _win_delete_request_cb(void *data, Evas_Object *obj, void *event_info)
\r
34 _resize_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
\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
42 app_create(void *data)
\r
44 moment_info_s *moment_info = data;
\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
50 moment_info->win = elm_win_util_standard_add(PACKAGE, PACKAGE);
\r
51 retv_if(!moment_info->win, false);
\r
53 if (elm_win_wm_rotation_supported_get(moment_info->win)) {
\r
55 elm_win_wm_rotation_available_rotations_set(moment_info->win, (const int *)(&rots), 1);
\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
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
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
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
72 elm_win_resize_object_add(moment_info->win, moment_info->conform);
\r
73 elm_win_conformant_set(moment_info->win, EINA_TRUE);
\r
75 evas_object_show(moment_info->conform);
\r
77 _D("Window size (%d:%d)", moment_info->width, moment_info->height);
\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
88 app_control(app_control_h app_control, void *data)
\r
90 moment_info_s *moment_info = data;
\r
91 ret_if(!moment_info);
\r
92 ret_if(!moment_info->conform);
\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
102 app_pause(void *data)
\r
108 app_resume(void *data)
\r
114 app_terminate(void *data)
\r
116 moment_info_s *moment_info = data;
\r
118 if (moment_info->ui_manager)
\r
119 ui_manager_destroy(moment_info->ui_manager);
\r
121 if (moment_info->conform)
\r
122 evas_object_del(moment_info->conform);
\r
124 if (moment_info->win)
\r
125 evas_object_del(moment_info->win);
\r
129 ui_app_lang_changed(app_event_info_h event_info, void *user_data)
\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
140 ui_app_orient_changed(app_event_info_h event_info, void *user_data)
\r
142 /*APP_EVENT_DEVICE_ORIENTATION_CHANGED*/
\r
147 ui_app_region_changed(app_event_info_h event_info, void *user_data)
\r
149 /*APP_EVENT_REGION_FORMAT_CHANGED*/
\r
153 ui_app_low_battery(app_event_info_h event_info, void *user_data)
\r
155 /*APP_EVENT_LOW_BATTERY*/
\r
159 ui_app_low_memory(app_event_info_h event_info, void *user_data)
\r
161 /*APP_EVENT_LOW_MEMORY*/
\r
165 main(int argc, char *argv[])
\r
167 moment_info_s moment_info = {0,};
\r
170 ui_app_lifecycle_callback_s event_callback = {0,};
\r
171 app_event_handler_h handlers[5] = {NULL, };
\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
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
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