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>
18 #include <system_settings_private.h>
20 /* For multi-user support */
21 #include <tzplatform_config.h>
23 static void _quit_cb(void *data, Evas_Object* obj, void* event_info)
25 Evas_Object *win = (Evas_Object *) data;
29 static Evas_Object* create_win(const char *name)
34 eo = elm_win_add(NULL, name, ELM_WIN_BASIC);
37 elm_win_title_set(eo, name);
38 elm_win_borderless_set(eo, EINA_TRUE);
39 elm_win_autodel_set(eo, EINA_TRUE);
40 evas_object_smart_callback_add(eo, "delete,request", _quit_cb, NULL);
43 Ecore_X_Window xwin = 0;
44 xwin = elm_win_xwindow_get(eo);
45 if (xwin > 0) ecore_x_window_size_get(ecore_x_window_root_first_get(), &w, &h);
49 Ecore_Wl_Window *wlwin = NULL;
50 wlwin = elm_win_wl_window_get(eo);
51 if (wlwin != NULL) ecore_wl_screen_size_get(&w, &h);
57 evas_object_resize(eo, w, h);
62 static Evas_Object* _create_bg(Evas_Object *parent)
66 bg = elm_bg_add(parent);
67 evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
68 elm_win_resize_object_add(parent, bg);
74 static Evas_Object* _create_layout_main(Evas_Object* parent)
78 layout = elm_layout_add(parent);
80 elm_layout_theme_set(layout, "layout", "application", "default");
81 evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
82 elm_win_resize_object_add(parent, layout);
84 evas_object_show(layout);
89 static Evas_Object* _create_naviframe_layout(Evas_Object* parent)
93 navi = elm_naviframe_add(parent);
94 elm_object_part_content_set(parent, "elm.swallow.content", navi);
96 evas_object_show(navi);
102 static void _create_view_layout(struct appdata *ad)
107 list = _create_list_winset(ad->win_main, ad);
108 btn = elm_button_add(ad->navi);
109 elm_object_style_set(btn, "naviframe/end_btn/default");
110 evas_object_smart_callback_add(btn, "clicked", _quit_cb, ad->win_main);
111 elm_naviframe_item_push(ad->navi, _("Tizen UI"), btn, NULL, list, NULL);
114 void list_item_touch_handler_exit(void* data, Evas_Object* obj, void* event_info)
122 void list_item_touch_handler1(void* data, Evas_Object* obj, void* event_info)
125 ret = system_settings_set_value_int(SYSTEM_SETTINGS_KEY_FONT_SIZE, SYSTEM_SETTINGS_FONT_SIZE_HUGE);
126 ret = system_settings_set_value_string(SYSTEM_SETTINGS_KEY_FONT_TYPE, "HelveticaNeue");
132 void list_item_touch_handler2(void* data, Evas_Object* obj, void* event_info)
136 ret = system_settings_set_value_int(SYSTEM_SETTINGS_KEY_FONT_SIZE, SYSTEM_SETTINGS_FONT_SIZE_NORMAL);
137 ret = system_settings_set_value_string(SYSTEM_SETTINGS_KEY_FONT_TYPE, "HelveticaNeue");
140 void list_item_touch_handler3(void* data, Evas_Object* obj, void* event_info)
143 ret = system_settings_set_value_string(SYSTEM_SETTINGS_KEY_FONT_TYPE, "HelveticaNeue");
146 void list_item_touch_handler4(void* data, Evas_Object* obj, void* event_info)
149 ret = system_settings_set_value_string(SYSTEM_SETTINGS_KEY_FONT_TYPE, "HelveticaNeue");
152 void list_item_touch_handler5(void* data, Evas_Object* obj, void* event_info)
154 SETTING_TRACE(">>>>>>>> motion activation ON (SET)");
155 system_settings_set_value_bool(SYSTEM_SETTINGS_KEY_MOTION_ACTIVATION, 1/*ON*/);
157 bool enableMotion = false;;
158 int errorcode = system_settings_get_value_bool(SYSTEM_SETTINGS_KEY_MOTION_ACTIVATION, &enableMotion);
159 SETTING_TRACE(">>>>>>>> motion activation (GET TEST 1) -- %d - errorcode : %d", enableMotion, errorcode);
161 SETTING_TRACE(">>>>>>>> motion activation ON (SET)");
162 system_settings_set_value_bool(SYSTEM_SETTINGS_KEY_MOTION_ACTIVATION, 0/*ON*/);
164 errorcode = system_settings_get_value_bool(SYSTEM_SETTINGS_KEY_MOTION_ACTIVATION, &enableMotion);
165 SETTING_TRACE(">>>>>>>> motion activation (GET TEST 2) -- %d - errorcode : %d ", enableMotion, errorcode);
168 void list_item_touch_handler6(void* data, Evas_Object* obj, void* event_info)
170 SETTING_TRACE(">>>>>>>> motion activation OFF ");
171 system_settings_set_value_bool(SYSTEM_SETTINGS_KEY_MOTION_ACTIVATION, 0/*OFF*/);
174 void system_settings_changed_font_size(system_settings_key_e key, void *user_data)
176 struct appdata* ad = (struct appdata*)user_data;
177 SETTING_TRACE(" font size -- %s ", ad->pkgname);
178 SETTING_TRACE(">>>>>>>> system_settings_changed_font_size key = %d ", key);
179 SETTING_TRACE("---------------------------------CALLED BY USER APPLICATION -FONT SIZE ");
182 void system_settings_changed_font_type(system_settings_key_e key, void *user_data)
184 struct appdata* ad = (struct appdata*)user_data;
185 SETTING_TRACE(" font type -- %s ", ad->pkgname);
186 SETTING_TRACE(">>>>>>>> system_settings_changed_font_type key = %d ", key);
187 SETTING_TRACE("---------------------------------CALLED BY USER APPLICATION -FONT TYPE ");
190 void system_settings_changed_motion_activation(system_settings_key_e key, void *user_data)
192 struct appdata* ad = (struct appdata*)user_data;
193 SETTING_TRACE(" motion type -- %s ", ad->pkgname);
194 SETTING_TRACE(">>>>>>>> system_settings_changed_motion_activation key = %d ", key);
195 SETTING_TRACE("---------------------------------CALLED BY USER APPLICATION-MOTION ACTIVIATION ");
197 void list_item_touch_handler7(void* data, Evas_Object* obj, void* event_info)
199 const char* path = tzplatform_mkpath(TZ_USER_CONTENT, "Images/image16.jpg");
200 int ret = system_settings_set_value_string(SYSTEM_SETTINGS_KEY_WALLPAPER_HOME_SCREEN, "/aaa.png");
201 SETTING_TRACE(">>>>>>>> home screen - error case :: %d ", ret);
203 ret = system_settings_set_value_string(SYSTEM_SETTINGS_KEY_WALLPAPER_HOME_SCREEN, path);
204 SETTING_TRACE(">>>>>>>> home screen - error case :: %d ", ret);
208 void list_item_touch_handler8(void* data, Evas_Object* obj, void* event_info)
210 const char* path = tzplatform_mkpath(TZ_USER_CONTENT, "Images/image16.jpg");
211 int ret = system_settings_set_value_string(SYSTEM_SETTINGS_KEY_WALLPAPER_LOCK_SCREEN, "aaa.png");
212 SETTING_TRACE(">>>>>>>> lock screen - error case : %d ", ret);
214 ret = system_settings_set_value_string(SYSTEM_SETTINGS_KEY_WALLPAPER_LOCK_SCREEN, path);
215 SETTING_TRACE(">>>>>>>> lock screen - error case : %d ", ret);
218 // SYSTEM_SETTINGS_KEY_USB_DEBUGGING_ENABLED, /**< Indicates whether the usb debugging is enabled */
219 // get 3g data network
220 void list_item_touch_handler9(void* data, Evas_Object* obj, void* event_info)
223 int errorcode = system_settings_get_value_bool(SYSTEM_SETTINGS_KEY_3G_DATA_NETWORK_ENABLED, &state);
224 SETTING_TRACE(">>>>>>>> 3G data network (GET TEST) -- %d - errorcode : %d ", state, errorcode);
227 // set 3g data network to ON
228 void list_item_touch_handler10(void* data, Evas_Object* obj, void* event_info)
230 SETTING_TRACE(">>>>>>>> set 3G data network to ON ");
231 system_settings_set_value_bool(SYSTEM_SETTINGS_KEY_3G_DATA_NETWORK_ENABLED, 1/*ON*/);
234 // set 3g data network to OFF
235 void list_item_touch_handler11(void* data, Evas_Object* obj, void* event_info)
237 SETTING_TRACE(">>>>>>>> set 3G data network to OFF ");
238 system_settings_set_value_bool(SYSTEM_SETTINGS_KEY_3G_DATA_NETWORK_ENABLED, 0/*OFF*/);
242 void list_item_touch_handler12(void* data, Evas_Object* obj, void* event_info)
245 int errorcode = system_settings_get_value_bool(SYSTEM_SETTINGS_KEY_USB_DEBUGGING_ENABLED, &state);
246 SETTING_TRACE(">>>>>>>> USB Debugging (GET TEST) -- %d - errorcode : %d ", state, errorcode);
249 // set USB debugging to ON
250 void list_item_touch_handler13(void* data, Evas_Object* obj, void* event_info)
252 SETTING_TRACE(">>>>>>>> set USB debugging to ON ");
253 system_settings_set_value_bool(SYSTEM_SETTINGS_KEY_USB_DEBUGGING_ENABLED, 1/*ON*/);
256 // set USB debugging to OFF
257 void list_item_touch_handler14(void* data, Evas_Object* obj, void* event_info)
259 SETTING_TRACE(">>>>>>>> set USB debugging to OFF ");
260 system_settings_set_value_bool(SYSTEM_SETTINGS_KEY_USB_DEBUGGING_ENABLED, 0/*OFF*/);
264 void list_item_touch_handler15(void* data, Evas_Object* obj, void* event_info)
266 SETTING_TRACE(">>>>>>>> get ringtone path ");
267 char *ringtonepath = NULL;
268 int ret = system_settings_get_value_string(SYSTEM_SETTINGS_KEY_INCOMING_CALL_RINGTONE, &ringtonepath);
269 SETTING_TRACE("current ringtone path : (%s) ", ringtonepath);
273 // get ringtone path - exception case
274 void list_item_touch_handler16(void* data, Evas_Object* obj, void* event_info)
276 SETTING_TRACE(">>>>>>>> get ringtone path - exception case ");
278 char *ringtonepath = NULL;
279 const char *path_to_mp3 = tzplatform_mkpath(TZ_SYS_SHARE, "settings/Ringtones/Over the horizon.mp3");
281 ret = system_settings_set_value_string(SYSTEM_SETTINGS_KEY_INCOMING_CALL_RINGTONE, path_to_mp3);
282 ret = system_settings_get_value_string(SYSTEM_SETTINGS_KEY_INCOMING_CALL_RINGTONE, &ringtonepath);
283 SETTING_TRACE(" 1 current ringtone path : (%s) ", ringtonepath);
284 // set the key to the wrong value
285 ret = system_settings_set_value_string(SYSTEM_SETTINGS_KEY_INCOMING_CALL_RINGTONE, "aaa.wav");
287 ret = system_settings_get_value_string(SYSTEM_SETTINGS_KEY_INCOMING_CALL_RINGTONE, &ringtonepath);
288 SETTING_TRACE("2 current ringtone path : (%s) ", ringtonepath);
291 static Evas_Object* _create_list_winset(Evas_Object* parent, struct appdata* ad)
295 //struct _menu_item *menu_its;
297 ret = system_settings_set_changed_cb(SYSTEM_SETTINGS_KEY_FONT_SIZE, system_settings_changed_font_size, ad);
299 ret = system_settings_set_changed_cb(SYSTEM_SETTINGS_KEY_FONT_TYPE, system_settings_changed_font_type, ad);
301 SETTING_TRACE("SYSTEM_SETTINGS_KEY_FONT_TYPE returns negative values = %d ", ret);
303 SETTING_TRACE("SYSTEM_SETTINGS_KEY_FONT_TYPE returns positive values = %d, means successful return. ", ret);
306 // callback registration
307 ret = system_settings_set_changed_cb(SYSTEM_SETTINGS_KEY_MOTION_ACTIVATION, system_settings_changed_motion_activation, ad);
309 SETTING_TRACE("SYSTEM_SETTINGS_KEY_MOTION_ACTIVATION returns negative values = %d ", ret);
311 SETTING_TRACE("SYSTEM_SETTINGS_KEY_MOTION_ACTIVATION returns positive values = %d, means successful return. ", ret);
314 li = elm_list_add(parent);
315 elm_list_mode_set(li, ELM_LIST_COMPRESS);
317 elm_list_item_append( li, "QUIT", NULL, NULL, list_item_touch_handler_exit, ad);
318 elm_list_item_append( li, "font size - bigger ", NULL, NULL, list_item_touch_handler1, ad);
319 elm_list_item_append( li, "font size - normal ", NULL, NULL, list_item_touch_handler2, ad);
320 elm_list_item_append( li, "font type - choose Helvetica 1 ", NULL, NULL, list_item_touch_handler3, ad);
321 elm_list_item_append( li, "font type - choose Helvetica 2 ", NULL, NULL, list_item_touch_handler4, ad);
322 elm_list_item_append( li, "motion activation ON ", NULL, NULL, list_item_touch_handler5, ad);
323 elm_list_item_append( li, "motion activation OFF ", NULL, NULL, list_item_touch_handler6, ad);
324 elm_list_item_append( li, "homescreen - set ", NULL, NULL, list_item_touch_handler7, ad);
325 elm_list_item_append( li, "lockscreen - set ", NULL, NULL, list_item_touch_handler8, ad);
327 elm_list_item_append( li, "3g data network GET ", NULL, NULL, list_item_touch_handler9, ad);
328 elm_list_item_append( li, "3g data network SET - ON ", NULL, NULL, list_item_touch_handler10, ad);
329 elm_list_item_append( li, "3g data network SET - OFF ", NULL, NULL, list_item_touch_handler11, ad);
331 elm_list_item_append( li, "usb debugging GET ", NULL, NULL, list_item_touch_handler12, ad);
332 elm_list_item_append( li, "usb debugging SET - ON ", NULL, NULL, list_item_touch_handler13, ad);
333 elm_list_item_append( li, "usb debugging SET - OFF ", NULL, NULL, list_item_touch_handler14, ad);
335 elm_list_item_append( li, "get call ringtone ", NULL, NULL, list_item_touch_handler15, ad);
336 elm_list_item_append( li, "get call ringtone - exception ", NULL, NULL, list_item_touch_handler16, ad);
341 static void _mouse_down_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info)
343 //struct appdata *ad = (struct appdata *)data;
344 //Evas_Event_Mouse_Down *ev = event_info;
348 static void _mouse_up_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info)
350 //struct appdata *ad = (struct appdata *)data;
354 static void _mouse_move_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info)
356 //struct appdata *ad = (struct appdata *)data;
359 static void _window_resize_cb(void *data, Evas * e, Evas_Object * obj, void *event_info)
361 struct appdata *ad = (struct appdata *)data;
362 evas_object_geometry_get(ad->win_main, NULL, NULL, &ad->root_w, &ad->root_h);
365 static int _rotation_cb(enum appcore_rm mode, void *data)
367 struct appdata *ad = (struct appdata *)data;
371 case APPCORE_RM_LANDSCAPE_NORMAL:
375 case APPCORE_RM_LANDSCAPE_REVERSE:
379 case APPCORE_RM_PORTRAIT_REVERSE:
383 case APPCORE_RM_UNKNOWN:
384 case APPCORE_RM_PORTRAIT_NORMAL:
390 elm_win_rotation_with_resize_set(ad->win_main, angle);
391 // set_rotation_degree(angle);
393 // This is need for customized rotation process.
394 // rotate_for_winset(mode);
399 int app_create(void *data)
401 struct appdata *ad = (struct appdata *) data;
403 // Set the engine to opengl_x11
404 //elm_config_engine_set("opengl_x11");
406 ad->win_main = create_win(PACKAGE);
408 evas_object_event_callback_add(ad->win_main, EVAS_CALLBACK_RESIZE, _window_resize_cb, ad);
409 evas_object_show(ad->win_main);
410 ad->evas = evas_object_evas_get(ad->win_main);
411 appcore_set_rotation_cb(_rotation_cb, ad);
413 // set_edj_name(NULL);
415 ad->bg = _create_bg(ad->win_main);
416 ad->layout_main = _create_layout_main(ad->win_main);
417 elm_win_indicator_mode_set(ad->win_main, ELM_WIN_INDICATOR_SHOW);
419 ad->navi = _create_naviframe_layout(ad->layout_main);
421 _create_view_layout(ad);
423 evas_object_event_callback_add(ad->navi, EVAS_CALLBACK_MOUSE_DOWN, _mouse_down_cb, ad);
424 evas_object_event_callback_add(ad->navi, EVAS_CALLBACK_MOUSE_UP, _mouse_up_cb, ad);
425 evas_object_event_callback_add(ad->navi, EVAS_CALLBACK_MOUSE_MOVE, _mouse_move_cb, ad);
430 int app_terminate(void *data)
432 //struct appdata *ad = data;
436 ret = system_settings_unset_changed_cb(SYSTEM_SETTINGS_KEY_FONT_SIZE);
437 ret = system_settings_unset_changed_cb(SYSTEM_SETTINGS_KEY_FONT_TYPE);
438 ret = system_settings_unset_changed_cb(SYSTEM_SETTINGS_KEY_MOTION_ACTIVATION);
442 int app_pause(void *data)
444 //struct appdata *ad = data;
449 int app_resume(void *data)
451 //struct appdata *ad = data;
456 int app_reset(bundle* b, void* data)
458 struct appdata* ad = data;
461 elm_win_activate(ad->win_main);
467 int main(int argc, char* argv[])
471 ad.pkgname = "ARGUMENTATION SUCCESS *********************************";
473 struct appcore_ops ops = {
474 .create = app_create,
475 .terminate = app_terminate,
477 .resume = app_resume,
483 return appcore_efl_main(PACKAGE, &argc, &argv, &ops);