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 static void _quit_cb(void *data, Evas_Object* obj, void* event_info)
22 Evas_Object *win = (Evas_Object *) data;
26 static Evas_Object* create_win(const char *name)
31 eo = elm_win_add(NULL, name, ELM_WIN_BASIC);
34 elm_win_title_set(eo, name);
35 elm_win_borderless_set(eo, EINA_TRUE);
36 elm_win_autodel_set(eo, EINA_TRUE);
37 evas_object_smart_callback_add(eo, "delete,request", _quit_cb, NULL);
40 Ecore_X_Window xwin = 0;
41 xwin = elm_win_xwindow_get(eo);
42 if (xwin > 0) ecore_x_window_size_get(ecore_x_window_root_first_get(), &w, &h);
46 Ecore_Wl_Window *wlwin = NULL;
47 wlwin = elm_win_wl_window_get(eo);
48 if (wlwin != NULL) ecore_wl_screen_size_get(&w, &h);
54 evas_object_resize(eo, w, h);
59 static Evas_Object* _create_bg(Evas_Object *parent)
63 bg = elm_bg_add(parent);
64 evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
65 elm_win_resize_object_add(parent, bg);
71 static Evas_Object* _create_layout_main(Evas_Object* parent)
75 layout = elm_layout_add(parent);
77 elm_layout_theme_set(layout, "layout", "application", "default");
78 evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
79 elm_win_resize_object_add(parent, layout);
81 evas_object_show(layout);
86 static Evas_Object* _create_naviframe_layout(Evas_Object* parent)
90 navi = elm_naviframe_add(parent);
91 elm_object_part_content_set(parent, "elm.swallow.content", navi);
93 evas_object_show(navi);
99 static void _create_view_layout(struct appdata *ad)
104 list = _create_list_winset(ad->win_main, ad);
105 btn = elm_button_add(ad->navi);
106 elm_object_style_set(btn, "naviframe/end_btn/default");
107 evas_object_smart_callback_add(btn, "clicked", _quit_cb, ad->win_main);
108 elm_naviframe_item_push(ad->navi, _("Tizen UI"), btn, NULL, list, NULL);
111 void list_item_touch_handler_exit(void* data, Evas_Object* obj, void* event_info)
119 void list_item_touch_handler1(void* data, Evas_Object* obj, void* event_info)
122 ret = system_settings_set_value_int(SYSTEM_SETTINGS_KEY_FONT_SIZE, SYSTEM_SETTINGS_FONT_SIZE_HUGE);
123 ret = system_settings_set_value_string(SYSTEM_SETTINGS_KEY_FONT_TYPE, "HelveticaNeue");
129 void list_item_touch_handler2(void* data, Evas_Object* obj, void* event_info)
133 ret = system_settings_set_value_int(SYSTEM_SETTINGS_KEY_FONT_SIZE, SYSTEM_SETTINGS_FONT_SIZE_NORMAL);
134 ret = system_settings_set_value_string(SYSTEM_SETTINGS_KEY_FONT_TYPE, "HelveticaNeue");
137 void list_item_touch_handler3(void* data, Evas_Object* obj, void* event_info)
140 ret = system_settings_set_value_string(SYSTEM_SETTINGS_KEY_FONT_TYPE, "HelveticaNeue");
143 void list_item_touch_handler4(void* data, Evas_Object* obj, void* event_info)
146 ret = system_settings_set_value_string(SYSTEM_SETTINGS_KEY_FONT_TYPE, "HelveticaNeue");
149 void list_item_touch_handler5(void* data, Evas_Object* obj, void* event_info)
151 SETTING_TRACE(">>>>>>>> motion activation ON (SET)");
152 system_settings_set_value_bool(SYSTEM_SETTINGS_KEY_MOTION_ACTIVATION, 1/*ON*/);
154 bool enableMotion = false;;
155 int errorcode = system_settings_get_value_bool(SYSTEM_SETTINGS_KEY_MOTION_ACTIVATION, &enableMotion);
156 SETTING_TRACE(">>>>>>>> motion activation (GET TEST 1) -- %d - errorcode : %d", enableMotion, errorcode);
158 SETTING_TRACE(">>>>>>>> motion activation ON (SET)");
159 system_settings_set_value_bool(SYSTEM_SETTINGS_KEY_MOTION_ACTIVATION, 0/*ON*/);
161 errorcode = system_settings_get_value_bool(SYSTEM_SETTINGS_KEY_MOTION_ACTIVATION, &enableMotion);
162 SETTING_TRACE(">>>>>>>> motion activation (GET TEST 2) -- %d - errorcode : %d ", enableMotion, errorcode);
165 void list_item_touch_handler6(void* data, Evas_Object* obj, void* event_info)
167 SETTING_TRACE(">>>>>>>> motion activation OFF ");
168 system_settings_set_value_bool(SYSTEM_SETTINGS_KEY_MOTION_ACTIVATION, 0/*OFF*/);
171 void system_settings_changed_font_size(system_settings_key_e key, void *user_data)
173 struct appdata* ad = (struct appdata*)user_data;
174 SETTING_TRACE(" font size -- %s ", ad->pkgname);
175 SETTING_TRACE(">>>>>>>> system_settings_changed_font_size key = %d ", key);
176 SETTING_TRACE("---------------------------------CALLED BY USER APPLICATION -FONT SIZE ");
179 void system_settings_changed_font_type(system_settings_key_e key, void *user_data)
181 struct appdata* ad = (struct appdata*)user_data;
182 SETTING_TRACE(" font type -- %s ", ad->pkgname);
183 SETTING_TRACE(">>>>>>>> system_settings_changed_font_type key = %d ", key);
184 SETTING_TRACE("---------------------------------CALLED BY USER APPLICATION -FONT TYPE ");
187 void system_settings_changed_motion_activation(system_settings_key_e key, void *user_data)
189 struct appdata* ad = (struct appdata*)user_data;
190 SETTING_TRACE(" motion type -- %s ", ad->pkgname);
191 SETTING_TRACE(">>>>>>>> system_settings_changed_motion_activation key = %d ", key);
192 SETTING_TRACE("---------------------------------CALLED BY USER APPLICATION-MOTION ACTIVIATION ");
194 void list_item_touch_handler7(void* data, Evas_Object* obj, void* event_info)
196 char* path = "/opt/usr/media/Images/image16.jpg";
197 int ret = system_settings_set_value_string(SYSTEM_SETTINGS_KEY_WALLPAPER_HOME_SCREEN, "/aaa.png");
198 SETTING_TRACE(">>>>>>>> home screen - error case :: %d ", ret);
200 ret = system_settings_set_value_string(SYSTEM_SETTINGS_KEY_WALLPAPER_HOME_SCREEN, path);
201 SETTING_TRACE(">>>>>>>> home screen - error case :: %d ", ret);
205 void list_item_touch_handler8(void* data, Evas_Object* obj, void* event_info)
207 char* path = "/opt/usr/media/Images/image16.jpg";
208 int ret = system_settings_set_value_string(SYSTEM_SETTINGS_KEY_WALLPAPER_LOCK_SCREEN, "aaa.png");
209 SETTING_TRACE(">>>>>>>> lock screen - error case : %d ", ret);
211 ret = system_settings_set_value_string(SYSTEM_SETTINGS_KEY_WALLPAPER_LOCK_SCREEN, path);
212 SETTING_TRACE(">>>>>>>> lock screen - error case : %d ", ret);
215 // SYSTEM_SETTINGS_KEY_USB_DEBUGGING_ENABLED, /**< Indicates whether the usb debugging is enabled */
216 // get 3g data network
217 void list_item_touch_handler9(void* data, Evas_Object* obj, void* event_info)
220 int errorcode = system_settings_get_value_bool(SYSTEM_SETTINGS_KEY_3G_DATA_NETWORK_ENABLED, &state);
221 SETTING_TRACE(">>>>>>>> 3G data network (GET TEST) -- %d - errorcode : %d ", state, errorcode);
224 // set 3g data network to ON
225 void list_item_touch_handler10(void* data, Evas_Object* obj, void* event_info)
227 SETTING_TRACE(">>>>>>>> set 3G data network to ON ");
228 system_settings_set_value_bool(SYSTEM_SETTINGS_KEY_3G_DATA_NETWORK_ENABLED, 1/*ON*/);
231 // set 3g data network to OFF
232 void list_item_touch_handler11(void* data, Evas_Object* obj, void* event_info)
234 SETTING_TRACE(">>>>>>>> set 3G data network to OFF ");
235 system_settings_set_value_bool(SYSTEM_SETTINGS_KEY_3G_DATA_NETWORK_ENABLED, 0/*OFF*/);
239 void list_item_touch_handler12(void* data, Evas_Object* obj, void* event_info)
242 int errorcode = system_settings_get_value_bool(SYSTEM_SETTINGS_KEY_USB_DEBUGGING_ENABLED, &state);
243 SETTING_TRACE(">>>>>>>> USB Debugging (GET TEST) -- %d - errorcode : %d ", state, errorcode);
246 // set USB debugging to ON
247 void list_item_touch_handler13(void* data, Evas_Object* obj, void* event_info)
249 SETTING_TRACE(">>>>>>>> set USB debugging to ON ");
250 system_settings_set_value_bool(SYSTEM_SETTINGS_KEY_USB_DEBUGGING_ENABLED, 1/*ON*/);
253 // set USB debugging to OFF
254 void list_item_touch_handler14(void* data, Evas_Object* obj, void* event_info)
256 SETTING_TRACE(">>>>>>>> set USB debugging to OFF ");
257 system_settings_set_value_bool(SYSTEM_SETTINGS_KEY_USB_DEBUGGING_ENABLED, 0/*OFF*/);
261 void list_item_touch_handler15(void* data, Evas_Object* obj, void* event_info)
263 SETTING_TRACE(">>>>>>>> get ringtone path ");
264 char *ringtonepath = NULL;
265 int ret = system_settings_get_value_string(SYSTEM_SETTINGS_KEY_INCOMING_CALL_RINGTONE, &ringtonepath);
266 SETTING_TRACE("current ringtone path : (%s) ", ringtonepath);
270 // get ringtone path - exception case
271 void list_item_touch_handler16(void* data, Evas_Object* obj, void* event_info)
273 SETTING_TRACE(">>>>>>>> get ringtone path - exception case ");
275 char *ringtonepath = NULL;
276 //opt/share/settings/Ringtones/Over the horizon.mp3
277 ret = system_settings_set_value_string(SYSTEM_SETTINGS_KEY_INCOMING_CALL_RINGTONE, "/opt/share/settings/Ringtones/Over the horizon.mp3");
278 ret = system_settings_get_value_string(SYSTEM_SETTINGS_KEY_INCOMING_CALL_RINGTONE, &ringtonepath);
279 SETTING_TRACE(" 1 current ringtone path : (%s) ", ringtonepath);
280 // set the key to the wrong value
281 ret = system_settings_set_value_string(SYSTEM_SETTINGS_KEY_INCOMING_CALL_RINGTONE, "aaa.wav");
283 ret = system_settings_get_value_string(SYSTEM_SETTINGS_KEY_INCOMING_CALL_RINGTONE, &ringtonepath);
284 SETTING_TRACE("2 current ringtone path : (%s) ", ringtonepath);
287 static Evas_Object* _create_list_winset(Evas_Object* parent, struct appdata* ad)
291 //struct _menu_item *menu_its;
293 ret = system_settings_set_changed_cb(SYSTEM_SETTINGS_KEY_FONT_SIZE, system_settings_changed_font_size, ad);
295 ret = system_settings_set_changed_cb(SYSTEM_SETTINGS_KEY_FONT_TYPE, system_settings_changed_font_type, ad);
297 SETTING_TRACE("SYSTEM_SETTINGS_KEY_FONT_TYPE returns negative values = %d ", ret);
299 SETTING_TRACE("SYSTEM_SETTINGS_KEY_FONT_TYPE returns positive values = %d, means successful return. ", ret);
302 // callback registration
303 ret = system_settings_set_changed_cb(SYSTEM_SETTINGS_KEY_MOTION_ACTIVATION, system_settings_changed_motion_activation, ad);
305 SETTING_TRACE("SYSTEM_SETTINGS_KEY_MOTION_ACTIVATION returns negative values = %d ", ret);
307 SETTING_TRACE("SYSTEM_SETTINGS_KEY_MOTION_ACTIVATION returns positive values = %d, means successful return. ", ret);
310 li = elm_list_add(parent);
311 elm_list_mode_set(li, ELM_LIST_COMPRESS);
313 elm_list_item_append( li, "QUIT", NULL, NULL, list_item_touch_handler_exit, ad);
314 elm_list_item_append( li, "font size - bigger ", NULL, NULL, list_item_touch_handler1, ad);
315 elm_list_item_append( li, "font size - normal ", NULL, NULL, list_item_touch_handler2, ad);
316 elm_list_item_append( li, "font type - choose Helvetica 1 ", NULL, NULL, list_item_touch_handler3, ad);
317 elm_list_item_append( li, "font type - choose Helvetica 2 ", NULL, NULL, list_item_touch_handler4, ad);
318 elm_list_item_append( li, "motion activation ON ", NULL, NULL, list_item_touch_handler5, ad);
319 elm_list_item_append( li, "motion activation OFF ", NULL, NULL, list_item_touch_handler6, ad);
320 elm_list_item_append( li, "homescreen - set ", NULL, NULL, list_item_touch_handler7, ad);
321 elm_list_item_append( li, "lockscreen - set ", NULL, NULL, list_item_touch_handler8, ad);
323 elm_list_item_append( li, "3g data network GET ", NULL, NULL, list_item_touch_handler9, ad);
324 elm_list_item_append( li, "3g data network SET - ON ", NULL, NULL, list_item_touch_handler10, ad);
325 elm_list_item_append( li, "3g data network SET - OFF ", NULL, NULL, list_item_touch_handler11, ad);
327 elm_list_item_append( li, "usb debugging GET ", NULL, NULL, list_item_touch_handler12, ad);
328 elm_list_item_append( li, "usb debugging SET - ON ", NULL, NULL, list_item_touch_handler13, ad);
329 elm_list_item_append( li, "usb debugging SET - OFF ", NULL, NULL, list_item_touch_handler14, ad);
331 elm_list_item_append( li, "get call ringtone ", NULL, NULL, list_item_touch_handler15, ad);
332 elm_list_item_append( li, "get call ringtone - exception ", NULL, NULL, list_item_touch_handler16, ad);
337 static void _mouse_down_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info)
339 //struct appdata *ad = (struct appdata *)data;
340 //Evas_Event_Mouse_Down *ev = event_info;
344 static void _mouse_up_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info)
346 //struct appdata *ad = (struct appdata *)data;
350 static void _mouse_move_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info)
352 //struct appdata *ad = (struct appdata *)data;
355 static void _window_resize_cb(void *data, Evas * e, Evas_Object * obj, void *event_info)
357 struct appdata *ad = (struct appdata *)data;
358 evas_object_geometry_get(ad->win_main, NULL, NULL, &ad->root_w, &ad->root_h);
361 static int _rotation_cb(enum appcore_rm mode, void *data)
363 struct appdata *ad = (struct appdata *)data;
367 case APPCORE_RM_LANDSCAPE_NORMAL:
371 case APPCORE_RM_LANDSCAPE_REVERSE:
375 case APPCORE_RM_PORTRAIT_REVERSE:
379 case APPCORE_RM_UNKNOWN:
380 case APPCORE_RM_PORTRAIT_NORMAL:
386 elm_win_rotation_with_resize_set(ad->win_main, angle);
387 // set_rotation_degree(angle);
389 // This is need for customized rotation process.
390 // rotate_for_winset(mode);
395 int app_create(void *data)
397 struct appdata *ad = (struct appdata *) data;
399 // Set the engine to opengl_x11
400 //elm_config_engine_set("opengl_x11");
402 ad->win_main = create_win(PACKAGE);
404 evas_object_event_callback_add(ad->win_main, EVAS_CALLBACK_RESIZE, _window_resize_cb, ad);
405 evas_object_show(ad->win_main);
406 ad->evas = evas_object_evas_get(ad->win_main);
407 appcore_set_rotation_cb(_rotation_cb, ad);
409 // set_edj_name(NULL);
411 ad->bg = _create_bg(ad->win_main);
412 ad->layout_main = _create_layout_main(ad->win_main);
413 elm_win_indicator_mode_set(ad->win_main, ELM_WIN_INDICATOR_SHOW);
415 ad->navi = _create_naviframe_layout(ad->layout_main);
417 _create_view_layout(ad);
419 evas_object_event_callback_add(ad->navi, EVAS_CALLBACK_MOUSE_DOWN, _mouse_down_cb, ad);
420 evas_object_event_callback_add(ad->navi, EVAS_CALLBACK_MOUSE_UP, _mouse_up_cb, ad);
421 evas_object_event_callback_add(ad->navi, EVAS_CALLBACK_MOUSE_MOVE, _mouse_move_cb, ad);
426 int app_terminate(void *data)
428 //struct appdata *ad = data;
432 ret = system_settings_unset_changed_cb(SYSTEM_SETTINGS_KEY_FONT_SIZE);
433 ret = system_settings_unset_changed_cb(SYSTEM_SETTINGS_KEY_FONT_TYPE);
434 ret = system_settings_unset_changed_cb(SYSTEM_SETTINGS_KEY_MOTION_ACTIVATION);
438 int app_pause(void *data)
440 //struct appdata *ad = data;
445 int app_resume(void *data)
447 //struct appdata *ad = data;
452 int app_reset(bundle* b, void* data)
454 struct appdata* ad = data;
457 elm_win_activate(ad->win_main);
463 int main(int argc, char* argv[])
467 ad.pkgname = "ARGUMENTATION SUCCESS *********************************";
469 struct appcore_ops ops = {
470 .create = app_create,
471 .terminate = app_terminate,
473 .resume = app_resume,
479 return appcore_efl_main(PACKAGE, &argc, &argv, &ops);