Merge branch 'tizen_2.1' of ssh://tizendev.org:29418/apps/home/settings into tizen_2.1
[apps/core/preloaded/settings.git] / setting-common / include / setting-common-data-type.h
1 /*
2  * setting
3  * Copyright (c) 2012 Samsung Electronics Co., Ltd.
4  *
5  * Licensed under the Flora License, Version 1.1 (the License);
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  *     http://floralicense.org/license/
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an AS IS BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */
17
18 /**
19  *@defgroup common-data-type
20  *common data type
21  */
22
23 #ifndef __SETTING_COMMON_DATA_TYPE_H__
24 #define __SETTING_COMMON_DATA_TYPE_H__
25
26 #include <Elementary.h>         /* including Elementary lib */
27 #include <setting-debug.h>      /*  including debuging type */
28 #include <setting-common-resource.h>    /* including one class of data type */
29 #include <setting-common-data-error.h>  /* including another class of data type */
30
31 #ifndef PREFIX
32 #define PREFIX "/opt"
33 #endif
34
35 #ifndef bool
36 #define bool Eina_Bool
37 #endif
38 #define PWD_FILE "/opt/data/setting/set_info"
39 //#define PLUGIN_CFG_DIR "/opt/data/setting/plugin-cfg"
40 #define PLUGIN_CFG_DIR "/opt/data/setting/plugin-xml"
41
42 #define SETTING_POSTINST_FILE "/var/lib/dpkg/info/org.tizen.setting.postinst"
43 #define SETTING_PACKAGE                 "setting"
44 #define SYSTEM_PACKAGE                  "sys_string"
45 #define SETTING_LOCALEDIR               "/usr/apps/org.tizen.setting/res/locale"
46
47 #define SYSTEM_ICON_PATH                "/usr/apps/org.tizen.setting/res/icons"
48 #define SETTING_ICON_PATH               "/usr/apps/org.tizen.setting/res/icons"
49 #define SETTING_UG_ICON_PATH    "/usr/ug/res/icon/org.tizen.setting"
50 #define SETTING_UG_PATH                 "/usr/ug/lib"
51 #define SETTING_UG_PATH_USR             "/usr/ug/lib"
52
53 #define SETTING_UG_PATH_OPT                     "/opt/ug/lib"
54 #define SETTING_UG_PATH_USR_OPT         "/opt/ug/lib"
55
56 #define SETTING_EDJ_PATH                EDJDIR
57 #define SETTING_MEMORY_EDJ_NAME         SETTING_EDJ_PATH"/setting-memory.edj"
58 #define SETTING_THEME_EDJ_NAME          SETTING_EDJ_PATH"/setting-theme.edj"
59 #define SETTING_SOUND_EDJ_NAME          SETTING_EDJ_PATH"/setting-sound.edj"
60
61 /* inoti (broadcasting without data */
62 #define SETTING_TIME_CHANGED    "setting_time_changed"
63
64 /* anci c color type */
65 #define SETTING_FONT_RED "\033[31m"
66 #define SETTING_FONT_BLACK "\033[0m"
67 #define SETTING_FONT_BGREEN "\033[36m"
68
69 #define THEME_STYLE "beat"
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 #define NAVI_DEF_BUTTON_STYLE  "naviframe/toolbar/default"//"naviframe_control/default"
77 #define NAVI_BACK_BUTTON_STYLE "naviframe/back_btn/default"
78
79 #define NAVI_CONTROLBAR_PART "controlbar"
80
81 #define BTN_STYLE_DEF "naviframe/title/default"
82 #define NAVI_BTN_STYLE_LEFT "title_left_btn"
83 #define NAVI_BTN_STYLE_RIGHT "title_right_btn"
84 #define NAVI_BTN_STYLE_MORE "title_more_btn"
85 #define NAVI_BTN_STYLE_PREV "prev_btn"
86
87 #define SETTING_FONT_CONF_FILE "/opt/etc/fonts/conf.avail/99-slp.conf"
88
89
90 //#define GENLIST_LIST_SUB_TEXT_SETTINGS_COLOR_STYLE          "#3B73B6FF"
91 #define BLUE_COLOR          "#3B73B6"  //3B73B6FF <== 59 115 182 255
92 #define GRAY_COLOR "#7B7B7B"
93 #define RED_COLOR "#FF0000"
94
95 /**
96 * @brief slider, button, and etc.
97 *
98 * @param data application context
99 * @param obj Evas Object
100 * @param event_info even type
101 *
102 * @return vo return
103 */
104 typedef void (*setting_call_back_func) (void *data, Evas_Object *obj, void *event_info);
105
106 #define WIDGET_SCALE_FACTOR                             (get_widgets_factor())
107 #define SETTING_PADDING_WIDTH                   (8 * WIDGET_SCALE_FACTOR)
108 #define SETTING_PADDING_HEIGHT                  (8 * WIDGET_SCALE_FACTOR)
109 #define SETTING_HALF_SCREEN_WIDTH \
110                             (SETTING_PADDING_WIDTH * 22 * WIDGET_SCALE_FACTOR)
111
112 #define SYS_NOTI_NAME_LEN                                       128
113 #define MAX_DISPLAY_NAME_LEN_ON_UI                      128
114 #define MAX_COMMON_BUFFER_LEN                           1024
115
116 #define MAX_SEARCH_STR_LEN 20
117
118 #define HELP_MSG_BUFF_SIZE                              1000
119 #define MAX_SPECIALIZITION_LEN                          1000
120 #define SPECIALIZITION_FONT                                     25
121 #define HELP_TITLE_SIZE                                         30
122 #define HELP_CONTENT_SIZE                                       28
123
124 #define PHONE_LOCK_ATTEMPS_MAX                          5
125 #define SIM_LOCK_ATTEMPS_MAX                            5
126 #define PHONE_LOCK_BLOCK_SECONDS                        30
127 #define SIM_LOCK_BLOCK_SECONDS                          30
128 #define LOCK_TIMESTAMP_LEN                                      64
129 #define MAX_DATETIME_FORMAT_LEN                         64
130 #define MAX_DATE_FORMAT_LEN                             10
131
132 #define SMALL_FONT_DPI                                          (-80)
133 #define MIDDLE_FONT_DPI                                         (-100)
134 #define LARGE_FONT_DPI                                          (-144)
135 #define HUGE_FONT_DPI                                           (-184)
136 #define GIANT_FONT_DPI                                          (-240)
137
138 #define LABEL_FONT_SIZE_SMALL                                   24
139 #define LABEL_FONT_SIZE_NORMAL                                  35
140 #define LABEL_FONT_SIZE_LARGE                                   55
141 #define LABEL_FONT_SIZE_HUGE                                    75
142 #define LABEL_FONT_SIZE_GIANT                                   92
143
144 #define __STR_EMUL                                                      "emul"
145 #define __LEN_STR_EMUL                                          4
146
147 #define MAX_SYSTEM_SERVICE_NUM                          30
148 #define SYSTEM_SERVICE_LIST_PATH "/opt/osp/system/configuration/system-services.list"
149 #define MAX_PKG_NAME_LEN                        128
150
151 typedef struct
152 {
153         char* locale;                           // ex) "en_US.UTF"
154         char* title;                            // "United Kingdom"
155         int number;                             // no -  UI
156 } setting_lang_entry;
157
158
159
160 typedef enum _Theme_Type {
161         Theme_Invalid = -1,
162         Theme_Tizen = 0,
163         Theme_Tizen_Black = 1,
164         Theme_Tizen_Blue,
165         Theme_ERROR
166 } Theme_Type;
167
168 typedef enum _GENDIAL_Type {
169         GENDIAL_Type_1text_1icon_2 = 0,
170         GENDIAL_Type_1text_2icon = 1,
171         GENDIAL_Type_1icon_2text = 2,
172         GENDIAL_Type_2text_2icon_4 = 3,
173         GENDIAL_Type_1text_2icon_2 = 4,
174         GENDIAL_Type_2text_2icon_3 = 5,
175         GENDIAL_Type_sel_all,
176
177         GENDIAL_Type_1line_icontext,
178         GENDIAL_Type_group_item,
179         GENDIAL_Type_2text_3,
180         GENDIAL_Type_MAX
181 } GENDIAL_Type;
182
183 typedef enum _SWALLOW_Type {
184         SWALLOW_Type_INVALID = -1,
185         SWALLOW_Type_2ICON = 0,
186         SWALLOW_Type_1ICON_1CHECK = 1,
187         SWALLOW_Type_1ICON_1RADIO = 2,
188         SWALLOW_Type_1CHECK = 3,
189         SWALLOW_Type_1CHECKICON = 4,
190         SWALLOW_Type_1RADIO = 5,
191         SWALLOW_Type_1TOGGLE = 6,
192         SWALLOW_Type_1ICON_1PROCESS,
193         SWALLOW_Type_MULTILINE_1TOGGLE,
194
195         SWALLOW_Type_1ICON_1IMAGE,
196         SWALLOW_Type_1BUTTON,
197         SWALLOW_Type_1PROCESS,
198
199         SWALLOW_Type_1RADIO_SUB,
200         SWALLOW_Type_1RADIO_1PROCESS,
201         SWALLOW_Type_1RADIO_1SEARCH,
202         SWALLOW_Type_1RADIO_1LABLE,
203         SWALLOW_Type_1SEARCH,
204
205         SWALLOW_Type_1LINE_LAYOUT = 20,
206         SWALLOW_Type_1LINE_LAYOUT_1RADIO,
207         SWALLOW_Type_1LINE_LAYOUT_1TOGGLE,
208         SWALLOW_Type_1LINE_LAYOUT_1CHECK,
209         SWALLOW_Type_LAYOUT_ENTRY,
210         SWALLOW_Type_LAYOUT_SIMPLE_PASSWORD, // for simple password
211         SWALLOW_Type_LAYOUT_DATEFIELD,
212         SWALLOW_Type_LAYOUT_SLIDER,
213         SWALLOW_Type_LAYOUT_SPECIALIZTION,
214         SWALLOW_Type_LAYOUT_SPECIALIZTION_X,//extension
215
216         SWALLOW_Type_MAX
217 } SWALLOW_Type;
218
219 typedef enum {
220         UNDEFINED_LIB_SYMBOL = -2,/*  undefined symbol : -2 */
221         LOAD_LIB_FAILED = -1,/*  load failed : -1 */
222         OPERATE_LIB_SUCESS = 0,
223 } OPERATE_LIB_ERROR;
224
225 typedef enum _POPUP_BTN_RESPONSE_TYPE{
226         POPUP_RESPONSE_INVALID = -1,
227         POPUP_RESPONSE_OK = 0,
228         POPUP_RESPONSE_CANCEL = 1,
229 } POPUP_BTN_RESPONSE_TYPE;
230
231 typedef enum {
232         SETTING_GROUP_STYLE_NONE = 0,
233         SETTING_GROUP_STYLE_TOP,
234         SETTING_GROUP_STYLE_CENTER,
235         SETTING_GROUP_STYLE_BOTTOM
236 } setting_group_style;
237
238 /**
239  *an item node in genlist
240  * @todo begings_to is requried?
241  * @todo isItemDisableFlag is required?
242  * @todo isSinglelineFlag is requred?
243  */
244 typedef struct _Setting_GenGroupItem_Data {
245
246         void **pBack;
247
248         Elm_Object_Item *item;
249         SWALLOW_Type swallow_type;
250         const char *l_swallow_path;
251         const char *r_swallow_path;
252         /* for shortcut item */
253         const char *exec_path;
254
255         Evas_Object *win_main;
256         Evas *evas;
257
258         /* radio button */
259         Evas_Object *rgd;                                               /**< radio button */
260         int usb_index;                                                          /**< usb_index number of radio buttons, ex) USB setting */
261
262         /* output */
263         Evas_Object *eo_check;                                  /**< slider, button, check, editfield, datefield */
264         setting_call_back_func chk_change_cb;
265
266         int chk_status;                                                 /**< represent check value, slider value, datefield value etc.. */
267         char *keyStr;                                                   /**< title */
268         char *sub_desc;                                                 /**< sub text */
269
270         /* to swallow a whole layout (genlist item is 1line-layout or 2line-layout) */
271         char *item_style;                                               /**< itc style name */
272
273         /*  for slider control */
274         bool isIndicatorVisible;                                /**< indicator option (displaying number) */
275         double slider_min;                                              /**< to swallow a slider */
276         double slider_max;                                              /**< to swallow a slider */
277         setting_call_back_func start_change_cb;
278         setting_call_back_func stop_change_cb;
279         setting_call_back_func maxlength_reached_cb;
280         void *x_callback_cb;
281
282         /* sound/vibration */
283         int belongs_to;                                                 /**< 1: slider belongs to sound group. 0: slider belongs to vibration group */
284
285         /*  input panel  */
286         Elm_Input_Panel_Layout input_type;              /**< input panel type */
287         bool input_panel_disable_flag;          /** do not show the input panel automatically when the widget is clicked or has focus*/
288
289         void *userdata;                                                 /**< just a reference, do not need release. */
290
291         bool isPasswordFlag;
292         bool isFocusFlag;
293         bool isItemDisableFlag;                                 /**< date/time UG only */
294         bool isSinglelineFlag;
295         bool maxLengthReachFlag;
296         bool enterKeyPressFlag;
297
298         int int_slp_setting_binded;                     /**< its relative vconf value must increase from 0, and step is 1. eg, 0, 1, 2, 3.. */
299
300
301         /* popup */
302         Evas_Object *notify;                                    /**< act as any popup to show user any message */
303
304         Elm_Entry_Filter_Accept_Set *digits_filter_data;
305         Elm_Entry_Filter_Limit_Size *limit_filter_data;
306
307         Eina_List* childs;              /**< child nodes if this has child nodes for handling radio buttons */
308
309         setting_group_style group_style;
310 } Setting_GenGroupItem_Data;
311
312 typedef enum {
313         SETTING_VCONF_INT_TYPE = 0,
314         SETTING_VCONF_BOOL_TYPE,
315         SETTING_VCONF_STR_TYPE
316 } setting_vconf_type;
317
318 #define MAX_RESET_MENU_NUM 50
319
320 typedef struct _item_table {
321         char *item_name;        /* pointer to the key string */
322         char *ug_args;
323         Setting_GenGroupItem_Data *data_GenItem;
324 } Item_Table;
325
326 /**
327  * @todo is 50 sufficient value?
328  */
329 typedef struct _Setting_Done_List_Data {
330         /* external input arguements */
331         Evas_Object *win_main;
332         void *UG_data;
333         Evas_Object *ly_parent;
334         Evas_Object *controllbar;
335         Elm_Object_Item *navi_it;
336
337         /* internal output%input arguements */
338         Item_Table chk_items[MAX_RESET_MENU_NUM];
339         int cur_item_num;
340         Evas_Object *selInfoPop;
341         Evas_Object *selInfoPop_layout;
342         Elm_Genlist_Item_Class itc_1text_1icon;
343         Elm_Genlist_Item_Class itc_seperator;
344         Elm_Genlist_Item_Class itc_sel_all;
345         Evas_Object *select_all_checkbox;
346         Eina_Bool select_all_checked;
347         Eina_List *list;
348 } Setting_Done_List_Data;
349
350 #endif                          /* __SETTING_COMMON_DATA_TYPE_H__ */