tizen 2.3.1 release
[apps/home/settings.git] / setting-display / include / setting-display.h
1 /*
2  * setting
3  *
4  * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd.
5  *
6  * Contact: MyoungJune Park <mj2004.park@samsung.com>
7  *
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
11  *
12  * http://www.apache.org/licenses/LICENSE-2.0
13  *
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.
19  *
20  */
21 #ifndef __SETTING_DISPLAY_H__
22 #define __SETTING_DISPLAY_H__
23
24 #include <stdio.h>
25 #include <string.h>
26
27 #include <Elementary.h>
28
29
30 #include <glib-object.h>
31
32 #include <setting-common-draw-widget.h>
33 #include <setting-common-view.h>
34
35 #include <device.h>
36 #include <dd-display.h>
37 #include <dd-deviced.h>
38 /*#include <devman.h> */
39
40 #define Keystr_Dynamic          "IDS_ST_BODY_DYNAMIC_T_DISPLAY_EFFECT"
41 #define Keystr_Standard         "IDS_ST_BODY_STANDARD_T_DISPLAY_EFFECT"
42 #define Keystr_Natural          "IDS_ST_BODY_NATURAL_T_DISPLAY_EFFECT"
43 #define Keystr_Movie            "IDS_ST_BODY_MOVIE_T_DISPLAY_EFFECT"
44
45 #define LAUNCH_EFFECT_STR "IDS_ST_BODY_APP_OPENING_EFFECT"
46 #define LAUNCH_IMAGE_STR  "IDS_ST_BODY_APP_OPENING_IMAGE"
47
48 #define KeyStr_AdjustScreenTone_Dsc "IDS_ST_BODY_SAVE_POWER_BY_ADJUSTING_SCREEN_TONE_ACCORDING_TO_ANALYSIS_OF_IMAGES"
49 #define KeyStr_HighTouchSensitivity_Dsc "IDS_ST_SBODY_INCREASE_THE_SENSITIVITY_OF_THE_TOUCH_SCREEN_SBODY_MSG"
50
51 #define LAUNCH_BATTERY_DESC  "IDS_ST_BODY_SHOWS_BATTERY_PERCENTAGE_ON_INDICATOR" /*"Increase the screen's sensitivity so you can touch it while wearing gloves" */
52
53 #define SETTING_DISPLAY_TIME_15_SEC_STR "IDS_ST_BODY_15SEC"
54 #define SETTING_DISPLAY_TIME_30_SEC_STR "IDS_ST_BODY_30SEC"
55 #define SETTING_DISPLAY_TIME_1_MIN_STR "IDS_COM_BODY_1_MINUTE"
56
57 #define SETTING_DISPLAY_TIME_2_MIN_STR "IDS_ST_BODY_2_MINUTES"
58 #define SETTING_DISPLAY_TIME_5_MIN_STR "IDS_ST_BODY_5_MINUTES"
59 #define SETTING_DISPLAY_TIME_10_MIN_STR "IDS_ST_BODY_10_MINUTES"
60 #define SMART_SCREEN_TRY_IT_IMAGE_L  SETTING_ICON_PATH_CFG"air_jump_try_full_h.png"
61 #define SMART_SCREEN_TRY_IT_IMAGE_P  SETTING_ICON_PATH_CFG"air_jump_try_full.png"
62
63 #define KeyStr_ScreenCapture "IDS_MF_BODY_SCREEN_CAPTURE_M_NOUN"
64 #define KeyStr_ScreenCapture_Destination "IDS_LBS_BODY_DESTINATION"
65 #define KeyStr_ScreenCapture_Ask "IDS_SKM_BODY_ASK_M_IDEA_SKETCH"
66 #define KeyStr_ScreenCapture_Gallery "IDS_COM_BODY_GALLERY"
67 #define KeyStr_ScreenCapture_KeepIt "IDS_KEEPIT_HEADER_KEEPIT_M_APPLICATION_NAME"
68 #define KeyStr_ScreenCapture_Help "IDS_ST_MBODY_SELECT_WHERE_CAPTURED_IMAGES_WILL_BE_SAVED"
69 #define KeyStr_ScreenCapture_Edit "IDS_ST_MBODY_EDIT_AFTER_SCREEN_CAPTURE"
70 #define KeyStr_Dynamic_Status_Bar "IDS_ST_BODY_DYNAMIC_STATUS_BAR"
71 #define KeyStr_Dynamic_Status_Bar_Help "IDS_ST_BODY_KEEPS_THE_STATUS_BAR_TIDY_TAP_THE_REPRESENTATIVE_ICON_TO_SHOW_ALL_THE_ICONS"
72
73
74 #define URI_SMART_STAY "tizen-help://org.tizen.setting/smartstay"
75 #define URI_SMART_ROTATION "tizen-help://org.tizen.setting/smartrotation"
76
77 #define SETTING_DISPLAY_SMART_SCREEN_TURN_ON_SMART_ROATION_POPUP "IDS_ST_POP_ENABLE_SMART_ROTATION_TO_TRY_IT_T_HELP"
78 #define SETTING_DISPLAY_SMART_SCREEN_TURN_ON_SMART_STAY_POPUP "IDS_ST_POP_ENABLE_SMART_STAY_TO_TRY_IT_T_HELP"
79 #define POPUP_TURN_ON_STR "IDS_ST_BUTTON_ENABLE"
80
81 #define SAMRT_SCREEN_TRY_IT_IAMGE_PORTRAIT_H 2636
82 #define SAMRT_SCREEN_TRY_IT_IAMGE_PORTRAIT_W 720
83 #define SAMRT_SCREEN_TRY_IT_IAMGE_LANDSCAPE_H 2055
84 #define SAMRT_SCREEN_TRY_IT_IAMGE_LANDSCAPE_W 1280
85
86 typedef enum {
87     SCREENMODE_DYNAMIC = 0,
88     SCREENMODE_STANDARD,
89     SCREENMODE_NATURAL,
90     SCREENMODE_MOVIE,
91     SCREENMODE_MAX
92 } screenmode_t;
93
94 typedef enum {
95     DISPLAY_EXPAND_NONE = 0,
96     DISPLAY_EXPAND_BACKLIGHT,
97     DISPLAY_EXPAND_TOUCH_KEY_LIGHT_DURATION
98 } DisplayExpandState;
99
100
101 typedef struct _Ctxpopup_Data {
102         Evas_Object *ctx;
103         Evas_Object *btn;
104 } Ctxpopup_Data;
105
106 typedef enum {
107     SETTING_DISPLAY_VIEWTYPE_MAIN,
108     SETTING_DISPLAY_VIEWTYPE_BRIGHTNESS,
109     SETTING_DISPLAY_VIEWTYPE_BACKLIGHT,
110     SETTING_DISPLAY_VIEWTYPE_SMARTSCREEN,
111     SETTING_DISPLAY_VIEWTYPE_MAX,
112 } display_viewtype;
113
114 typedef struct _SettingDisplayUG SettingDisplayUG;
115
116 #define OPENING_EFFECT 0
117 #define BRIGHTNESS_DISPLAY 0
118
119 /**
120  * Setting Display UG context
121  * all UG function has void* as an agument. this is casted back to SettingDisplayUG
122  * and the functions access app context.
123  */
124 struct _SettingDisplayUG {
125         ui_gadget_h ug;
126
127         /* add more variables here (move your appdata to here) */
128         Evas *evas;
129         Evas_Object *win_main_layout;
130         Evas_Object *win_get;
131
132         ui_gadget_h ug_loading;
133         ui_gadget_h ug_font;
134         ui_gadget_h ug_passwd;
135         ui_gadget_h ug_ledindicator;
136
137         Evas_Object *ly_main;   /**< link to src/setting-display-main.c */
138
139         Evas_Object *navi_bar;  /*  for navigation effect */
140         Elm_Object_Item *nf_it;
141         Ecore_Timer *event_freeze_timer;
142
143         Setting_GenGroupItem_Data *data_screen_mode;
144         Setting_GenGroupItem_Data *data_br;
145         Setting_GenGroupItem_Data *data_back;
146         Setting_GenGroupItem_Data *data_touchkey_light_duration;
147         Setting_GenGroupItem_Data *data_br_auto;
148         Setting_GenGroupItem_Data *data_br_sli;
149         Setting_GenGroupItem_Data *data_adjust;
150         Setting_GenGroupItem_Data *data_overheating;
151
152         Setting_GenGroupItem_Data *data_br_adjustment;
153
154 #if OPENING_EFFECT
155         Setting_GenGroupItem_Data *data_launch_effect;
156 #endif
157
158         Setting_GenGroupItem_Data *data_launch_image;
159         Setting_GenGroupItem_Data *data_battery;
160         Setting_GenGroupItem_Data *data_auto_rotate;
161         Setting_GenGroupItem_Data *data_screencapture_dest;
162         Setting_GenGroupItem_Data *data_screencapture_edit;
163
164         /* smart screen */
165         Setting_GenGroupItem_Data *data_smart_screen;
166         Setting_GenGroupItem_Data *data_smart_stay;
167         Setting_GenGroupItem_Data *data_smart_rotation;
168         Setting_GenGroupItem_Data *data_auto_adjust_scrn_tone;
169         Setting_GenGroupItem_Data *data_high_touch_sensitivity;
170         Setting_GenGroupItem_Data *data_dynamic;
171
172
173         Evas_Object *more_popup;
174         Ctxpopup_Data ctx_data;
175
176         Setting_GenGroupItem_Data *tilting_head;
177         Setting_GenGroupItem_Data *tilting_device;
178         Setting_GenGroupItem_Data *smart_scroll_speed;
179         Setting_GenGroupItem_Data *visual_feedback_display;
180         Setting_GenGroupItem_Data *scroll_speed_slider;
181         Setting_GenGroupItem_Data *smart_screen_help;
182         Setting_GenGroupItem_Data *try_tilting_head;
183         Setting_GenGroupItem_Data *try_tilting_device;
184         Setting_GenGroupItem_Data *data_smart_screen_image;
185         Setting_GenGroupItem_Data *data_smart_screen_rotation_image;
186
187         /*int bright_value; */
188         int low_bat;
189
190         setting_view *view_to_load;
191
192         Evas_Object *popup_chk;
193         Evas_Object *popup;
194
195         Elm_Genlist_Item_Class itc_2text_2;
196         Elm_Genlist_Item_Class itc_1text_1icon;
197         Elm_Genlist_Item_Class itc_1icon_1text_sub;
198         Elm_Genlist_Item_Class itc_1text;
199         Elm_Genlist_Item_Class itc_screen_mode;
200         Elm_Genlist_Item_Class itc_2text_3;
201         Elm_Genlist_Item_Class itc_1text_1icon_divider;
202         Elm_Genlist_Item_Class itc_1icon;
203         Elm_Genlist_Item_Class itc_variable_height;
204         Elm_Genlist_Item_Class itc_2text_3_parent_backlight;
205         Elm_Genlist_Item_Class itc_2text_3_parent_touch_duration;
206         Elm_Genlist_Item_Class itc_1icon_1text_sub_back;
207         Elm_Genlist_Item_Class itc_1icon_1text_sub_touch;
208         Elm_Genlist_Item_Class itc_multiline_text;
209         Elm_Genlist_Item_Class itc_multiline_text_help;
210         Elm_Genlist_Item_Class itc_multiline_overheating;
211
212
213         ui_gadget_h ug_gallery;
214         ui_gadget_h ug_imageviewer;
215         Eina_Bool isLoading;
216         Setting_GenGroupItem_Data *data_backlight_always_on;
217         Setting_GenGroupItem_Data *data_backlight_15sec;
218         Setting_GenGroupItem_Data *data_backlight_30sec;
219         Setting_GenGroupItem_Data *data_backlight_1min;
220         Setting_GenGroupItem_Data *data_backlight_2min;
221         Setting_GenGroupItem_Data *data_backlight_5min;
222         Setting_GenGroupItem_Data *data_backlight_10min;
223         /*Improve response speed */
224         Ecore_Idler *set_idler;
225         Ecore_Timer *set_timer;
226
227         /* genlist */
228         Evas_Object *genlist;
229
230         DBusConnection *bus;
231         Ecore_Event_Handler *help_event_handler;
232         Evas_Object *help_popup;
233         char *uri;
234
235         /*for brightness*/
236         Eina_Bool is_event_registered;
237         int last_requested_level;
238         display_viewtype display_viewtype;
239
240         /*for smart screen try it*/
241         Evas_Object *smart_stay_image;
242         Evas_Object *smart_rotation_image;
243         Evas_Object *smart_stay_sublayout;
244         Evas_Object *smart_rotation_sublayout;
245         Ecore_Timer *timer_show_guide;
246
247         DisplayExpandState display_expand_state;
248
249 };
250
251 extern setting_view setting_view_display_main;
252 extern setting_view setting_view_display_brightness;
253 /*extern setting_view setting_view_display_screen_mode; */
254 /*extern setting_view setting_view_display_smart_screen; */
255 /*extern setting_view setting_view_display_smart_screen_smart_stay; */
256 /*extern setting_view setting_view_display_smart_screen_smart_rotation; */
257 /*extern setting_view setting_view_display_smart_screen_help; */
258
259
260
261 extern setting_view setting_view_display_backlight;
262
263 void setting_display_layout_ug_cb(ui_gadget_h ug, enum ug_mode mode,
264                                   void *priv);
265
266 extern int setting_display_set_auto_adjust_tone(int value);
267 Eina_Bool __show_smartstay_guide_popup(void *data);
268 Eina_Bool __show_smartrotation_guide_popup(void *data);
269
270
271
272 #endif                          /* __SETTING_DISPLAY_H__ */