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
27 _win_delete_request_cb(void *data, Evas_Object *obj, void *event_info)
\r
33 _resize_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
\r
36 evas_object_geometry_get(obj, &x, &y, &w, &h);
\r
37 _D("%s (%d:%d:%d:%d)", data, x, y, w, h);
\r
41 app_create(void *data)
\r
43 moment_info_s *moment_info = data;
\r
45 elm_app_base_scale_set(1.8);
\r
46 elm_config_accel_preference_set("hw");
\r
47 elm_config_preferred_engine_set("opengl_x11");
\r
49 moment_info->win = elm_win_util_standard_add(PACKAGE, PACKAGE);
\r
50 retv_if(!moment_info->win, false);
\r
52 if (elm_win_wm_rotation_supported_get(moment_info->win)) {
\r
54 elm_win_wm_rotation_available_rotations_set(moment_info->win, (const int *)(&rots), 1);
\r
56 elm_win_autodel_set(moment_info->win, EINA_TRUE);
\r
57 elm_win_indicator_mode_set(moment_info->win, ELM_WIN_INDICATOR_HIDE);
\r
58 elm_win_screen_size_get(moment_info->win, NULL, NULL, &moment_info->width, &moment_info->height);
\r
60 evas_object_smart_callback_add(moment_info->win, "delete,request", _win_delete_request_cb, NULL);
\r
61 evas_object_show(moment_info->win);
\r
63 moment_info->conform = elm_conformant_add(moment_info->win);
\r
64 elm_object_signal_emit(moment_info->conform, "elm,state,indicator,overlap", "elm");
\r
65 elm_object_signal_emit(moment_info->conform, "elm,state,virtualkeypad,disable", "");
\r
66 elm_object_signal_emit(moment_info->conform, "elm,state,clipboard,disable", "");
\r
68 evas_object_size_hint_weight_set(moment_info->conform, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
\r
69 evas_object_event_callback_add(moment_info->conform, EVAS_CALLBACK_RESIZE, _resize_cb, "conform");
\r
71 elm_win_resize_object_add(moment_info->win, moment_info->conform);
\r
72 elm_win_conformant_set(moment_info->win, EINA_TRUE);
\r
74 evas_object_show(moment_info->conform);
\r
76 _D("Window size (%d:%d)", moment_info->width, moment_info->height);
\r
78 moment_info->e = evas_object_evas_get(moment_info->win);
\r
84 app_control(app_control_h app_control, void *data)
\r
86 moment_info_s *moment_info = data;
\r
87 ret_if(!moment_info);
\r
88 ret_if(!moment_info->conform);
\r
92 moment_info->ui_manager = ui_manager_create(moment_info->conform, moment_info, moment_info->width, moment_info->height);
\r
93 ret_if(!moment_info->ui_manager);
\r
94 elm_object_content_set(moment_info->conform, moment_info->ui_manager);
\r
98 app_pause(void *data)
\r
104 app_resume(void *data)
\r
110 app_terminate(void *data)
\r
112 moment_info_s *moment_info = data;
\r
114 if (moment_info->ui_manager)
\r
115 ui_manager_destroy(moment_info->ui_manager);
\r
117 if (moment_info->conform)
\r
118 evas_object_del(moment_info->conform);
\r
120 if (moment_info->win)
\r
121 evas_object_del(moment_info->win);
\r
125 ui_app_lang_changed(app_event_info_h event_info, void *user_data)
\r
127 /*APP_EVENT_LANGUAGE_CHANGED*/
\r
128 char *locale = NULL;
\r
129 system_settings_get_value_string(SYSTEM_SETTINGS_KEY_LOCALE_LANGUAGE, &locale);
\r
130 elm_language_set(locale);
\r
136 ui_app_orient_changed(app_event_info_h event_info, void *user_data)
\r
138 /*APP_EVENT_DEVICE_ORIENTATION_CHANGED*/
\r
143 ui_app_region_changed(app_event_info_h event_info, void *user_data)
\r
145 /*APP_EVENT_REGION_FORMAT_CHANGED*/
\r
149 ui_app_low_battery(app_event_info_h event_info, void *user_data)
\r
151 /*APP_EVENT_LOW_BATTERY*/
\r
155 ui_app_low_memory(app_event_info_h event_info, void *user_data)
\r
157 /*APP_EVENT_LOW_MEMORY*/
\r
161 main(int argc, char *argv[])
\r
163 moment_info_s moment_info = {0,};
\r
166 ui_app_lifecycle_callback_s event_callback = {0,};
\r
167 app_event_handler_h handlers[5] = {NULL, };
\r
169 event_callback.create = app_create;
\r
170 event_callback.terminate = app_terminate;
\r
171 event_callback.pause = app_pause;
\r
172 event_callback.resume = app_resume;
\r
173 event_callback.app_control = app_control;
\r
175 ui_app_add_event_handler(&handlers[APP_EVENT_LOW_BATTERY], APP_EVENT_LOW_BATTERY, ui_app_low_battery, &moment_info);
\r
176 ui_app_add_event_handler(&handlers[APP_EVENT_LOW_MEMORY], APP_EVENT_LOW_MEMORY, ui_app_low_memory, &moment_info);
\r
177 ui_app_add_event_handler(&handlers[APP_EVENT_DEVICE_ORIENTATION_CHANGED], APP_EVENT_DEVICE_ORIENTATION_CHANGED, ui_app_orient_changed, &moment_info);
\r
178 ui_app_add_event_handler(&handlers[APP_EVENT_LANGUAGE_CHANGED], APP_EVENT_LANGUAGE_CHANGED, ui_app_lang_changed, &moment_info);
\r
179 ui_app_add_event_handler(&handlers[APP_EVENT_REGION_FORMAT_CHANGED], APP_EVENT_REGION_FORMAT_CHANGED, ui_app_region_changed, &moment_info);
\r
180 ui_app_remove_event_handler(handlers[APP_EVENT_LOW_MEMORY]);
\r
182 ret = ui_app_main(argc, argv, &event_callback, &moment_info);
\r
183 if (ret != APP_ERROR_NONE) {
\r
184 dlog_print(DLOG_ERROR, LOG_TAG, "ui_app_main() is failed. err = %d", ret);
\r