4 * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd.
6 * Contact: MyoungJune Park <mj2004.park@samsung.com>
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
12 * http://www.apache.org/licenses/LICENSE-2.0
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
21 #include <setting-display-smart-screen-smart-stay.h>
29 static int setting_display_smart_screen_smart_stay_create(void *cb);
30 static int setting_display_smart_screen_smart_stay_destroy(void *cb);
31 static int setting_display_smart_screen_smart_stay_update(void *cb);
32 static int setting_display_smart_screen_smart_stay_cleanup(void *cb);
34 setting_view setting_view_display_smart_screen_smart_stay = {
35 .create = setting_display_smart_screen_smart_stay_create,
36 .destroy = setting_display_smart_screen_smart_stay_destroy,
37 .update = setting_display_smart_screen_smart_stay_update,
38 .cleanup = setting_display_smart_screen_smart_stay_cleanup,
41 static int setting_display_smart_screen_smart_stay_create(void *cb)
45 setting_retvm_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER, "cb is NULL");
46 SettingDisplayUG *ad = (SettingDisplayUG *) cb;
48 Elm_Object_Item *nav_item = NULL;
49 Evas_Object *sub_layout = elm_layout_add(ad->win_main_layout);
50 elm_layout_file_set(sub_layout, SETTING_THEME_EDJ_NAME, "smart_tryit");
52 edje_object_part_text_set(_EDJ(sub_layout), "top_popup.text", _(KeyStr_Smart_Top_Popup_Text));
53 Evas_Object *smart_icon = setting_create_image(sub_layout, IMG_SMART_SCREEN_ICON);
54 elm_object_part_content_set(sub_layout, "smart_icon", smart_icon);
55 /*elm_object_signal_emit(sub_layout,"elm,state,top,show","elm"); */
57 edje_object_part_text_set(_EDJ(sub_layout), "center_popup.text", _(KeyStr_Smart_Stay_Center_Popup_Text));
58 ad->smart_stay_sublayout = sub_layout;
60 Evas_Object *scroller = elm_scroller_add(sub_layout);
61 elm_scroller_bounce_set(scroller, EINA_TRUE, EINA_TRUE);
63 elm_scroller_policy_set(scroller, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
64 evas_object_show(scroller);
65 elm_object_part_content_set(ad->smart_stay_sublayout, "bg_swallow", scroller);
67 ad->smart_stay_image = evas_object_image_add(ad->evas);
70 app_device_orientation_e m = elm_win_rotation_get(ad->win_get);
72 if (APP_DEVICE_ORIENTATION_90 == m || APP_DEVICE_ORIENTATION_270 == m) {
73 /*ecore_x_window_size_get(ecore_x_window_root_first_get(), &h, &w); */
74 evas_object_image_file_set(ad->smart_stay_image, SMART_SCREEN_TRY_IT_IMAGE_L, NULL);
75 h = SAMRT_SCREEN_TRY_IT_IAMGE_LANDSCAPE_H;
76 w = SAMRT_SCREEN_TRY_IT_IAMGE_LANDSCAPE_W;
78 /*ecore_x_window_size_get(ecore_x_window_root_first_get(), &w, &h); */
79 evas_object_image_file_set(ad->smart_stay_image, SMART_SCREEN_TRY_IT_IMAGE_P, NULL);
80 h = SAMRT_SCREEN_TRY_IT_IAMGE_PORTRAIT_H;
81 w = SAMRT_SCREEN_TRY_IT_IAMGE_PORTRAIT_W;
84 evas_object_size_hint_weight_set(ad->smart_stay_image, 0.0, EVAS_HINT_EXPAND);
85 evas_object_image_fill_set(ad->smart_stay_image, 0, 0, w, h);
86 evas_object_image_border_set(ad->smart_stay_image, 16, 16, 16, 16); /*for round corner */
87 evas_object_image_filled_set(ad->smart_stay_image, 1); /*to full fill */
88 evas_object_size_hint_min_set(ad->smart_stay_image, ELM_SCALE_SIZE(w), ELM_SCALE_SIZE(h));
89 evas_object_size_hint_max_set(ad->smart_stay_image, w, h);
92 elm_object_content_set(scroller, ad->smart_stay_image);
94 /*setting_resize_object(ad->smart_stay_image, w, h); */
95 elm_scroller_region_bring_in(scroller, 0, 0, 0, 0);
96 setting_disable_evas_object(scroller);
99 if (ad->view_to_load == &setting_view_display_smart_screen_smart_stay) {
100 ad->ly_main = setting_create_layout_navi_bar(ad->win_main_layout, ad->win_get,
105 __setting_display_smart_screen_smart_stay_click_softkey_back_cb,
107 ad, sub_layout, &ad->navi_bar, NULL);
108 nav_item = elm_naviframe_top_item_get(ad->navi_bar);
110 nav_item = setting_push_layout_navi_bar(NULL,
114 __setting_display_smart_screen_smart_stay_click_softkey_back_cb,
116 NULL, ad, sub_layout, ad->navi_bar, NULL);
118 elm_naviframe_item_pop_cb_set(nav_item, (Elm_Naviframe_Item_Pop_Cb)__setting_display_smart_screen_smart_stay_click_softkey_back_cb, ad);
119 elm_naviframe_item_title_enabled_set(nav_item, EINA_FALSE, EINA_FALSE);
122 int smart_stay_status = 0;
123 vconf_get_int(VCONFKEY_SETAPPL_SMARTSCREEN_SMARTSTAY_STATUS, &smart_stay_status);
124 if (smart_stay_status && !safeStrCmp(ad->uri, URI_SMART_STAY)) {
125 if (ad->smart_stay_sublayout) {
126 elm_object_signal_emit(ad->smart_stay_sublayout, "elm,state,top,show", "elm");
127 ad->timer_show_guide = ecore_timer_add(3, (Ecore_Task_Cb)__show_smartstay_guide_popup, ad);
129 SETTING_TRACE("layout is null");
132 setting_view_display_smart_screen_smart_stay.is_create = 1;
133 return SETTING_RETURN_SUCCESS;
136 static int setting_display_smart_screen_smart_stay_destroy(void *cb)
140 setting_retvm_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER, "cb is NULL");
141 retv_if(!(setting_view_display_smart_screen_smart_stay.is_create), SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
142 SettingDisplayUG *ad = (SettingDisplayUG *) cb;
143 if (ad->smart_stay_image) {
144 ad->smart_stay_image = NULL;
146 if (ad->smart_stay_sublayout) {
147 ad->smart_stay_sublayout = NULL;
149 if (ad->timer_show_guide) {
150 ecore_timer_del(ad->timer_show_guide);
151 ad->timer_show_guide = NULL;
153 if (&setting_view_display_smart_screen_smart_stay == ad->view_to_load) {
155 evas_object_del(ad->ly_main);
159 elm_naviframe_item_pop(ad->navi_bar);
161 setting_view_display_smart_screen_smart_stay.is_create = 0;
163 return SETTING_RETURN_SUCCESS;
166 static int setting_display_smart_screen_smart_stay_update(void *cb)
170 setting_retvm_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER, "cb is NULL");
172 return SETTING_RETURN_SUCCESS;
175 static int setting_display_smart_screen_smart_stay_cleanup(void *cb)
178 setting_retvm_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER, "cb is NULL");
180 SettingDisplayUG *ad = (SettingDisplayUG *) cb;
182 setting_display_smart_screen_smart_stay_destroy(ad);
184 return SETTING_RETURN_SUCCESS;
187 /* ***************************************************
191 ***************************************************/
193 static void __setting_display_smart_screen_smart_stay_click_softkey_back_cb(void *data, Evas_Object *obj, void *event_info)
197 setting_retm_if(data == NULL,
198 "[Setting > Display] Data parameter is NULL");
200 SettingDisplayUG *ad = (SettingDisplayUG *) data;
201 if (&setting_view_display_smart_screen_smart_stay == ad->view_to_load) {
202 /* Send destroy request */
203 ug_destroy_me(ad->ug);
206 setting_view_cleanup(&setting_view_display_smart_screen_smart_stay, ad);