2 * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
4 * Licensed under the Apache License, Version 2.0 (the License);
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an AS IS BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 #include <system_settings.h>
19 static void _quit_cb(void *data, Evas_Object* obj, void* event_info)
21 Evas_Object *win = (Evas_Object *) data;
25 static Evas_Object* create_win(const char *name)
30 eo = elm_win_add(NULL, name, ELM_WIN_BASIC);
33 elm_win_title_set(eo, name);
34 elm_win_borderless_set(eo, EINA_TRUE);
35 elm_win_autodel_set(eo, EINA_TRUE);
36 evas_object_smart_callback_add(eo, "delete,request", _quit_cb, NULL);
37 ecore_x_window_size_get(ecore_x_window_root_first_get(), &w, &h);
38 evas_object_resize(eo, w, h);
43 static Evas_Object* _create_bg(Evas_Object *parent)
47 bg = elm_bg_add(parent);
48 evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
49 elm_win_resize_object_add(parent, bg);
55 static Evas_Object* _create_layout_main(Evas_Object* parent)
59 layout = elm_layout_add(parent);
61 elm_layout_theme_set(layout, "layout", "application", "default");
62 evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
63 elm_win_resize_object_add(parent, layout);
65 evas_object_show(layout);
70 static Evas_Object* _create_naviframe_layout(Evas_Object* parent)
74 navi = elm_naviframe_add(parent);
75 elm_object_part_content_set(parent, "elm.swallow.content", navi);
77 evas_object_show(navi);
83 static void _create_view_layout(struct appdata *ad)
88 list = _create_list_winset(ad->win_main, ad);
89 btn = elm_button_add(ad->navi);
90 elm_object_style_set(btn, "naviframe/end_btn/default");
91 evas_object_smart_callback_add(btn, "clicked", _quit_cb, ad->win_main);
92 elm_naviframe_item_push(ad->navi, _("Tizen UI"), btn, NULL, list, NULL);
95 void list_item_touch_handler_exit(void* data, Evas_Object* obj, void* event_info)
103 void list_item_touch_handler1(void* data, Evas_Object* obj, void* event_info)
106 ret = system_settings_set_value_int(SYSTEM_SETTINGS_KEY_FONT_SIZE, SYSTEM_SETTINGS_FONT_SIZE_HUGE);
107 ret = system_settings_set_value_string(SYSTEM_SETTINGS_KEY_FONT_TYPE, "HelveticaNeue");
113 void list_item_touch_handler2(void* data, Evas_Object* obj, void* event_info)
117 ret = system_settings_set_value_int(SYSTEM_SETTINGS_KEY_FONT_SIZE, SYSTEM_SETTINGS_FONT_SIZE_NORMAL);
118 ret = system_settings_set_value_string(SYSTEM_SETTINGS_KEY_FONT_TYPE, "HelveticaNeue");
121 void list_item_touch_handler3(void* data, Evas_Object* obj, void* event_info)
124 ret = system_settings_set_value_string(SYSTEM_SETTINGS_KEY_FONT_TYPE, "HelveticaNeue");
127 void list_item_touch_handler4(void* data, Evas_Object* obj, void* event_info)
130 ret = system_settings_set_value_string(SYSTEM_SETTINGS_KEY_FONT_TYPE, "HelveticaNeue");
133 void list_item_touch_handler5(void* data, Evas_Object* obj, void* event_info)
135 bool enableMotion = false;;
136 printf(">>>>>>>> motion activation (GET) \n");
137 int errorcode = system_settings_get_value_bool(SYSTEM_SETTINGS_KEY_MOTION_ACTIVATION, &enableMotion);
140 printf(">>>>>>>> motion activation ON (SET) \n");
141 system_settings_set_value_bool(SYSTEM_SETTINGS_KEY_MOTION_ACTIVATION, 1/*ON*/);
144 void list_item_touch_handler6(void* data, Evas_Object* obj, void* event_info)
146 printf(">>>>>>>> motion activation OFF \n");
147 system_settings_set_value_bool(SYSTEM_SETTINGS_KEY_MOTION_ACTIVATION, 0/*OFF*/);
150 void system_settings_changed_font_size(system_settings_key_e key, void *user_data)
152 printf(">>>>>>>> system_settings_changed_font_size key = %d \n", key);
153 printf("---------------------------------CALLED BY USER APPLICATION -FONT SIZE \n");
156 void system_settings_changed_font_type(system_settings_key_e key, void *user_data)
158 printf(">>>>>>>> system_settings_changed_font_type key = %d \n", key);
159 printf("---------------------------------CALLED BY USER APPLICATION -FONT TYPE \n");
162 void system_settings_changed_motion_activation(system_settings_key_e key, void *user_data)
164 printf(">>>>>>>> system_settings_changed_motion_activation key = %d \n", key);
165 printf("---------------------------------CALLED BY USER APPLICATION-MOTION ACTIVIATION \n");
167 void list_item_touch_handler7(void* data, Evas_Object* obj, void* event_info)
169 char* path = "/opt/usr/media/Images/image16.jpg";
170 int ret = system_settings_set_value_string(SYSTEM_SETTINGS_KEY_WALLPAPER_HOME_SCREEN, "/aaa.png");
171 printf(">>>>>>>> home screen - error case :: %d \n", ret);
173 ret = system_settings_set_value_string(SYSTEM_SETTINGS_KEY_WALLPAPER_HOME_SCREEN, path);
174 printf(">>>>>>>> home screen - error case :: %d \n", ret);
178 void list_item_touch_handler8(void* data, Evas_Object* obj, void* event_info)
180 char* path = "/opt/usr/media/Images/image16.jpg";
181 int ret = system_settings_set_value_string(SYSTEM_SETTINGS_KEY_WALLPAPER_LOCK_SCREEN, "aaa.png");
182 printf(">>>>>>>> lock screen - error case : %d \n", ret);
184 ret = system_settings_set_value_string(SYSTEM_SETTINGS_KEY_WALLPAPER_LOCK_SCREEN, path);
185 printf(">>>>>>>> lock screen - error case : %d \n", ret);
188 static Evas_Object* _create_list_winset(Evas_Object* parent, struct appdata* ad)
192 //struct _menu_item *menu_its;
194 ret = system_settings_set_changed_cb(SYSTEM_SETTINGS_KEY_FONT_SIZE, system_settings_changed_font_size, NULL);
196 ret = system_settings_set_changed_cb(SYSTEM_SETTINGS_KEY_FONT_TYPE, system_settings_changed_font_type, NULL);
198 printf("SYSTEM_SETTINGS_KEY_FONT_TYPE returns negative values = %d \n", ret);
200 printf("SYSTEM_SETTINGS_KEY_FONT_TYPE returns positive values = %d, means successful return. \n", ret);
203 // callback registration
204 ret = system_settings_set_changed_cb(SYSTEM_SETTINGS_KEY_MOTION_ACTIVATION, system_settings_changed_motion_activation, NULL);
206 printf("SYSTEM_SETTINGS_KEY_MOTION_ACTIVATION returns negative values = %d \n", ret);
208 printf("SYSTEM_SETTINGS_KEY_MOTION_ACTIVATION returns positive values = %d, means successful return. \n", ret);
211 li = elm_list_add(parent);
212 elm_list_mode_set(li, ELM_LIST_COMPRESS);
214 elm_list_item_append( li, "QUIT", NULL, NULL, list_item_touch_handler_exit, ad);
215 elm_list_item_append( li, "font size - bigger ", NULL, NULL, list_item_touch_handler1, ad);
216 elm_list_item_append( li, "font size - normal ", NULL, NULL, list_item_touch_handler2, ad);
217 elm_list_item_append( li, "font type - choose Helvetica 1 ", NULL, NULL, list_item_touch_handler3, ad);
218 elm_list_item_append( li, "font type - choose Helvetica 2 ", NULL, NULL, list_item_touch_handler4, ad);
219 elm_list_item_append( li, "motion activation ON ", NULL, NULL, list_item_touch_handler5, ad);
220 elm_list_item_append( li, "motion activation OFF ", NULL, NULL, list_item_touch_handler6, ad);
221 elm_list_item_append( li, "homescreen - set ", NULL, NULL, list_item_touch_handler7, ad);
222 elm_list_item_append( li, "lockscreen - set ", NULL, NULL, list_item_touch_handler8, ad);
228 static void _mouse_down_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info)
230 //struct appdata *ad = (struct appdata *)data;
231 //Evas_Event_Mouse_Down *ev = event_info;
235 static void _mouse_up_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info)
237 //struct appdata *ad = (struct appdata *)data;
241 static void _mouse_move_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info)
243 //struct appdata *ad = (struct appdata *)data;
246 static void _window_resize_cb(void *data, Evas * e, Evas_Object * obj, void *event_info)
248 struct appdata *ad = (struct appdata *)data;
249 evas_object_geometry_get(ad->win_main, NULL, NULL, &ad->root_w, &ad->root_h);
252 static int _rotation_cb(enum appcore_rm mode, void *data)
254 struct appdata *ad = (struct appdata *)data;
258 case APPCORE_RM_LANDSCAPE_NORMAL:
262 case APPCORE_RM_LANDSCAPE_REVERSE:
266 case APPCORE_RM_PORTRAIT_REVERSE:
270 case APPCORE_RM_UNKNOWN:
271 case APPCORE_RM_PORTRAIT_NORMAL:
277 elm_win_rotation_with_resize_set(ad->win_main, angle);
278 // set_rotation_degree(angle);
280 // This is need for customized rotation process.
281 // rotate_for_winset(mode);
286 int app_create(void *data)
288 struct appdata *ad = (struct appdata *) data;
290 // Set the engine to opengl_x11
291 //elm_config_engine_set("opengl_x11");
293 ad->win_main = create_win(PACKAGE);
295 evas_object_event_callback_add(ad->win_main, EVAS_CALLBACK_RESIZE, _window_resize_cb, ad);
296 evas_object_show(ad->win_main);
297 ad->evas = evas_object_evas_get(ad->win_main);
298 appcore_set_rotation_cb(_rotation_cb, ad);
300 // set_edj_name(NULL);
302 ad->bg = _create_bg(ad->win_main);
303 ad->layout_main = _create_layout_main(ad->win_main);
304 elm_win_indicator_mode_set(ad->win_main, ELM_WIN_INDICATOR_SHOW);
306 ad->navi = _create_naviframe_layout(ad->layout_main);
308 _create_view_layout(ad);
310 evas_object_event_callback_add(ad->navi, EVAS_CALLBACK_MOUSE_DOWN, _mouse_down_cb, ad);
311 evas_object_event_callback_add(ad->navi, EVAS_CALLBACK_MOUSE_UP, _mouse_up_cb, ad);
312 evas_object_event_callback_add(ad->navi, EVAS_CALLBACK_MOUSE_MOVE, _mouse_move_cb, ad);
317 int app_terminate(void *data)
319 //struct appdata *ad = data;
323 ret = system_settings_unset_changed_cb(SYSTEM_SETTINGS_KEY_FONT_SIZE);
324 ret = system_settings_unset_changed_cb(SYSTEM_SETTINGS_KEY_FONT_TYPE);
325 ret = system_settings_unset_changed_cb(SYSTEM_SETTINGS_KEY_MOTION_ACTIVATION);
329 int app_pause(void *data)
331 //struct appdata *ad = data;
336 int app_resume(void *data)
338 //struct appdata *ad = data;
343 int app_reset(bundle* b, void* data)
345 struct appdata* ad = data;
348 elm_win_activate(ad->win_main);
354 int main(int argc, char* argv[])
358 struct appcore_ops ops = {
359 .create = app_create,
360 .terminate = app_terminate,
362 .resume = app_resume,
368 return appcore_efl_main(PACKAGE, &argc, &argv, &ops);