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