Tizen release 1.0
[apps/home/settings.git] / setting-common / include / setting-common-data-type.h
1 /*
2  * setting
3  *
4  * Copyright (c) 2000 - 2012 Samsung Electronics Co., Ltd All Rights Reserved 
5  *
6  * This file is part of org.tizen.setting
7  * Written by Hyejin Kim <hyejin0906.kim@samsung.com>
8  *
9  * PROPRIETARY/CONFIDENTIAL
10  * 
11  * This software is the confidential and proprietary information of 
12  * SAMSUNG ELECTRONICS ("Confidential Information"). You shall not
13  * disclose such Confidential Information and shall use it only in
14  * accordance with the terms of the license agreement you entered
15  * into with SAMSUNG ELECTRONICS.
16  *
17  * SAMSUNG make no representations or warranties about the suitability 
18  * of the software, either express or implied, including but not limited
19  * to the implied warranties of merchantability, fitness for a particular
20  * purpose, or non-infringement. SAMSUNG shall not be liable for any
21  * damages suffered by licensee as a result of using, modifying or
22  * distributing this software or its derivatives.
23  *
24  */
25
26 /**
27  *@defgroup common-data-type
28  *common data type
29  */
30
31 #ifndef __SETTING_COMMON_DATA_TYPE_H__
32 #define __SETTING_COMMON_DATA_TYPE_H__
33
34 #include <Elementary.h>         /* including Elementary lib */
35 #include <setting-debug.h>      /*  including debuging type */
36 #include <setting-common-resource.h>    /* including one class of data type */
37 #include <setting-common-data-error.h>  /* including another class of data type */
38
39 #ifndef PREFIX
40 #define PREFIX "/opt"
41 #endif
42
43 #ifndef bool
44 #define bool Eina_Bool
45 #endif
46 #define PWD_FILE "/opt/data/setting/set_info"
47
48 #define SETTING_POSTINST_FILE "/var/lib/dpkg/info/org.tizen.setting.postinst"
49 #define SETTING_PACKAGE                 "setting"
50 #define SYSTEM_PACKAGE                  "sys_string"
51 #define SETTING_LOCALEDIR               "/opt/apps/org.tizen.setting/res/locale"
52
53 #define SYSTEM_ICON_PATH                "/opt/apps/org.tizen.setting/res/icons"
54 #define SETTING_ICON_PATH               "/opt/apps/org.tizen.setting/res/icons"
55 #define SETTING_UG_ICON_PATH    "/opt/ug/res/icon/org.tizen.setting"
56 #define SETTING_UG_PATH                 "/opt/ug/lib"
57
58 #define SETTING_EDJ_PATH                EDJDIR
59 #define SETTING_MEMORY_EDJ_NAME         SETTING_EDJ_PATH"/setting-memory.edj"
60 #define SETTING_THEME_EDJ_NAME          SETTING_EDJ_PATH"/setting-theme.edj"
61 #define SETTING_SOUND_EDJ_NAME          SETTING_EDJ_PATH"/setting-sound.edj"
62
63 /* inoti (broadcasting without data */
64 #define SETTING_TIME_CHANGED    "setting_time_changed"
65
66 /* anci c color type */
67 #define SETTING_FONT_RED "\033[31m"
68 #define SETTING_FONT_BLACK "\033[0m"
69 #define SETTING_FONT_BGREEN "\033[36m"
70
71 #define IMG_EC_ARROW_OPEN  SETTING_ICON_PATH"/00_button_expand_opened.png"
72 #define IMG_EC_ARROW_CLOSE SETTING_ICON_PATH"/00_button_expand_closed.png"
73
74 #define SETTING_IDLE_IMAGE_PATH "/etc/idle_image/"
75
76 #ifdef SUPPORT_NAVIGATIONBAR
77 #define NAVI_CONTROLBAR_STYLE "navigationbar"
78 #define NAVI_DEF_BUTTON_STYLE "navigationbar_control/center"
79 #define NAVI_BACK_BUTTON_STYLE "navigationbar_backbutton/default"
80 #else
81 #define NAVI_CONTROLBAR_STYLE "naviframe"
82 #define NAVI_DEF_BUTTON_STYLE  "naviframe_control/default"
83 #define NAVI_BACK_BUTTON_STYLE "naviframe/back_btn/default"
84 #endif
85
86 #if SUPPORT_BOTTOM_BTNS
87 #define NAVI_CONTROLBAR_PART "controlbar"
88 #else
89 #define NAVI_CONTROLBAR_PART "optionheader"
90 #endif
91
92 /**
93 * @brief slider, button, and etc.
94 *
95 * @param data application context
96 * @param obj Evas Object
97 * @param event_info even type
98 *
99 * @return vo return
100 */
101 typedef void (*setting_call_back_func) (void *data, Evas_Object *obj, void *event_info);
102
103 #define WIDGET_SCALE_FACTOR                             (get_widgets_factor())
104 #define SETTING_PADDING_WIDTH                   (8 * WIDGET_SCALE_FACTOR)
105 #define SETTING_PADDING_HEIGHT                  (8 * WIDGET_SCALE_FACTOR)
106 #define SETTING_HALF_SCREEN_WIDTH \
107                             (SETTING_PADDING_WIDTH * 22 * WIDGET_SCALE_FACTOR)
108
109 #define SYS_NOTI_NAME_LEN                                       128
110 #define MAX_DISPLAY_NAME_LEN_ON_UI                      128
111 #define MAX_COMMON_BUFFER_LEN                           1024
112
113 #define MAX_SEARCH_STR_LEN 20
114
115 #define HELP_MSG_BUFF_SIZE                              1000
116 #define MAX_SPECIALIZITION_LEN                          1000
117 #define SPECIALIZITION_FONT                                     25
118 #define HELP_TITLE_SIZE                                         30
119 #define HELP_CONTENT_SIZE                                       28
120
121 #define PHONE_LOCK_ATTEMPS_MAX                          5
122 #define SIM_LOCK_ATTEMPS_MAX                            5
123 #define PHONE_LOCK_BLOCK_SECONDS                        30
124 #define SIM_LOCK_BLOCK_SECONDS                          30
125 #define LOCK_TIMESTAMP_LEN                                      64
126 #define MAX_DATETIME_FORMAT_LEN                         64
127 #define MAX_DATE_FORMAT_LEN                             10
128
129 #define SMALL_FONT_DPI                                          48
130 #define MIDDLE_FONT_DPI                                         72
131 #define LARGE_FONT_DPI                                          96
132 #define HUGE_FONT_DPI                                           100
133 #define GIANT_FONT_DPI                                          111
134
135 #define __STR_EMUL                                                      "emul"
136 #define __LEN_STR_EMUL                                          4
137 #define BIN_INFO_FILE_PATH                                      "/etc/info.ini"
138
139 typedef struct
140 {
141         int index;                                      // auto - russia
142         char* locale;                           // ex) "en_US.UTF"
143         char* title;                            // "United Kingdom"
144 } setting_lang_entry;
145
146
147
148 typedef enum _Theme_Type {
149         Theme_Invalid = -1,
150         Theme_Tizen = 1,
151         Theme_Tizen_Black = 2,
152         Theme_Tizen_Blue,
153         Theme_Tizen_Grey,
154         Theme_ERROR
155 } Theme_Type;
156
157 typedef enum _GENDIAL_Type {
158         GENDIAL_Type_1text_1icon_2 = 0,
159         GENDIAL_Type_1text_2icon = 1,
160         GENDIAL_Type_1icon_2text = 2,
161         GENDIAL_Type_2text_2icon_4 = 3,
162         GENDIAL_Type_1text_2icon_2 = 4,
163         GENDIAL_Type_sel_all,
164
165         GENDIAL_Type_1line_icontext,
166         GENDIAL_Type_group_item,
167         GENDIAL_Type_MAX
168 } GENDIAL_Type;
169
170 typedef enum _SWALLOW_Type {
171         SWALLOW_Type_INVALID = -1,
172         SWALLOW_Type_2ICON = 0,
173         SWALLOW_Type_1ICON_1CHECK = 1,
174         SWALLOW_Type_1ICON_1RADIO = 2,
175         SWALLOW_Type_1CHECK = 3,
176         SWALLOW_Type_1CHECKICON = 4,
177         SWALLOW_Type_1RADIO = 5,
178         SWALLOW_Type_1TOGGLE = 6,
179
180         SWALLOW_Type_1ICON_1IMAGE,
181         SWALLOW_Type_1BUTTON,
182         SWALLOW_Type_1PROCESS,
183
184         SWALLOW_Type_1RADIO_SUB,
185         SWALLOW_Type_1RADIO_1PROCESS,
186         SWALLOW_Type_1RADIO_1SEARCH,
187         SWALLOW_Type_1RADIO_1LABLE,
188         SWALLOW_Type_0RADIO_1SEARCH,
189
190         SWALLOW_Type_1LINE_LAYOUT = 20,
191         SWALLOW_Type_1LINE_LAYOUT_1RADIO,
192         SWALLOW_Type_1LINE_LAYOUT_1TOGGLE,
193         SWALLOW_Type_1LINE_LAYOUT_1CHECK,
194         SWALLOW_Type_LAYOUT_ENTRY,
195         SWALLOW_Type_LAYOUT_SIMPLE_PASSWORD, // for simple password
196         SWALLOW_Type_LAYOUT_DATEFIELD,
197         SWALLOW_Type_LAYOUT_SLIDER,
198         SWALLOW_Type_LAYOUT_SPECIALIZTION,
199         SWALLOW_Type_LAYOUT_SPECIALIZTION_X,//extension
200         SWALLOW_Type_LAYOUT_SLIDER_WITH_TITLE,
201
202         SWALLOW_Type_MAX
203 } SWALLOW_Type;
204
205 typedef enum {
206         UNDEFINED_LIB_SYMBOL = -2,/*  undefined symbol : -2 */
207         LOAD_LIB_FAILED = -1,/*  load failed : -1 */
208         OPERATE_LIB_SUCESS = 0,
209 } OPERATE_LIB_ERROR;
210
211 typedef enum _POPUP_BTN_RESPONSE_TYPE{
212         POPUP_RESPONSE_INVALID = -1,
213         POPUP_RESPONSE_OK = 0,
214         POPUP_RESPONSE_CANCEL = 1,
215 } POPUP_BTN_RESPONSE_TYPE;
216 /**
217  *an item node in genlist
218  */
219 typedef struct _Setting_GenGroupItem_Data {
220         void **pBack;
221
222         Elm_Object_Item *item;
223         SWALLOW_Type swallow_type;
224         const char *l_swallow_path;
225         const char *r_swallow_path;
226
227         int chk_status;                  /**< represent check value, slider value, datefield value etc.. */
228         char *keyStr;
229         char *title;
230         char *sub_desc;
231         Evas_Object *rgd;
232
233         /* output */
234         Evas_Object *eo_check;
235         setting_call_back_func chk_change_cb;
236
237         /* to swallow a whole layout (genlist item is 1line-layout or 2line-layout) */
238
239         char *item_style;                                               /**< itc style name */
240         Evas_Object *win_main;
241         Evas *evas;
242
243         /*  for slider control */
244
245         double slider_min;                              /**< to swallow a slider */
246
247         double slider_max;                              /**< to swallow a slider */
248         setting_call_back_func start_change_cb;
249         setting_call_back_func stop_change_cb;
250         int belongs_to; /**< 1: slider belongs to sound group. 0: slider belongs to vibration group */
251
252         /*  input panel  */
253
254         Elm_Input_Panel_Layout input_type;              /**< input panel type */
255         bool input_panel_disable_flag;      /** do not show the input panel automatically when the widget is clicked or has focus*/
256
257         void *userdata;                                         /**< just a reference, do not need release. */
258         bool isPasswordFlag;
259         bool isFocusFlag;
260         bool isItemDisableFlag;
261         bool isSinglelineFlag;
262
263         int int_slp_setting_binded; /**< its relative vconf value must increase from 0, and step is 1. eg, 0, 1, 2, 3.. */
264         int index;
265
266
267         Evas_Object *notify;//act as any popup to show user any message
268
269         Elm_Entry_Filter_Accept_Set *digits_filter_data;
270         Elm_Entry_Filter_Limit_Size *limit_filter_data;
271
272 } Setting_GenGroupItem_Data;
273
274 typedef enum {
275         SETTING_VCONF_INT_TYPE = 0,
276         SETTING_VCONF_BOOL_TYPE,
277         SETTING_VCONF_STR_TYPE
278 } setting_vconf_type;
279
280 #define MAX_RESET_MENU_NUM 50
281
282 typedef struct _item_table {
283         char *item_name;        /* pointer to the key string */
284         char *ug_args;
285         Setting_GenGroupItem_Data *data_GenItem;
286 } Item_Table;
287
288 typedef struct _Setting_Done_List_Data {
289         /* external input arguements */
290         Evas_Object *win_main;
291         void *UG_data;
292         Evas_Object *ly_parent;
293         Evas_Object *controllbar;
294
295         /* internal output%input arguements */
296         Item_Table chk_items[MAX_RESET_MENU_NUM];
297         int cur_item_num;
298         Evas_Object *selInfoPop;
299         Evas_Object *selInfoPop_layout;
300         Elm_Genlist_Item_Class itc_1text_1icon;
301         Elm_Genlist_Item_Class itc_seperator;
302         Elm_Genlist_Item_Class itc_sel_all;
303 } Setting_Done_List_Data;
304
305 #endif                          /* __SETTING_COMMON_DATA_TYPE_H__ */