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.
23 *@defgroup common-data-type
27 #ifndef __SETTING_COMMON_DATA_TYPE_H__
28 #define __SETTING_COMMON_DATA_TYPE_H__
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 */
39 #define bool Eina_Bool
41 #define PWD_FILE "/opt/usr/data/setting/set_info"
42 //#define PLUGIN_CFG_DIR "/opt/usr/data/setting/plugin-cfg"
43 #define PLUGIN_CFG_DIR "/opt/usr/data/setting/plugin-xml"
45 #define SETTING_POSTINST_FILE "/var/lib/dpkg/info/org.tizen.setting.postinst"
46 #define SETTING_PACKAGE "setting"
47 #define SYSTEM_PACKAGE "sys_string"
48 #define SETTING_LOCALEDIR "/usr/apps/org.tizen.setting/res/locale"
50 #define MODE_SYSPOPUP_PACKAGE "mode-syspopup"
51 #define MODE_SYSPOPUP_LOCALEDIR "/usr/apps/org.tizen.mode-syspopup/res/locale"
53 #define SYSTEM_ICON_PATH "/usr/apps/org.tizen.setting/res/icons"
54 #define SETTING_ICON_PATH "/usr/apps/org.tizen.setting/res/icons"
55 #define SETTING_UG_ICON_PATH "/usr/ug/res/icon/org.tizen.setting"
57 #define SETTING_UG_PATH "/usr/ug/lib"
58 #define SETTING_UG_PATH_USR "/usr/ug/lib"
60 //#define SETTING_UG_PATH_OPT "/opt/ug/lib"
61 //#define SETTING_UG_PATH_USR_OPT "/opt/ug/lib"
63 #define SETTING_PATH_MEMORY_OPT "/opt/usr"
64 #define SETTING_PATH_SDCARD_OPT "/opt/storage/sdcard"
65 #define SETTING_PATH_PARENT_SDCARD_OPT "/opt/storage/sdcard/.."
68 #define SETTING_KILOBYTE_VALUE 1024
69 #define SETTING_MEGABYTE_VALUE 1048576
70 #define SETTING_GIGABYTE_VALUE 1073741824
72 #define SETTING_MAX_STR_LEN 30
75 #define SETTING_EDJ_PATH EDJDIR
76 #define SETTING_MEMORY_EDJ_NAME SETTING_EDJ_PATH"/setting-memory.edj"
77 #define SETTING_THEME_EDJ_NAME SETTING_EDJ_PATH"/setting-theme.edj"
78 #define SETTING_NEWUX_EDJ_NAME SETTING_EDJ_PATH"/setting-newux.edj"
79 #define SETTING_SOUND_EDJ_NAME SETTING_EDJ_PATH"/setting-sound.edj"
80 #define SETTING_GENLIST_EDJ_NAME SETTING_EDJ_PATH"/setting-genlist.edj"
81 #define SETTING_NEW_GENLIST_EDJ_NAME SETTING_EDJ_PATH"/setting-new-genlist.edj"
82 #define SETTING_PROC_EDJ_NAME SETTING_EDJ_PATH"/setting-proc.edj"
83 #define SETTING_SPINNER_EDJ_NAME SETTING_EDJ_PATH"/setting-spinner.edj"
84 #define SETTING_SLIDER_EDJ_NAME SETTING_EDJ_PATH"/setting-slider.edj"
85 #define SETTING_EFF_EDJ_NAME SETTING_EDJ_PATH"/setting-eff.edj"
86 #define SETTING_POWER_EDJ_NAME SETTING_EDJ_PATH"/setting-power.edj"
87 #define SETTING_BATT_EDJ_NAME SETTING_EDJ_PATH"/setting-batt.edj"
89 #define SETTING_THEME_COLOR_THEME_EDJ_NAME SETTING_EDJ_PATH"/setting-color-theme.edj"
92 #define RCS_CHECHING_FILE "/opt/share/ims/.RCS_ENABLED"
94 /* inoti (broadcasting without data */
95 #define SETTING_TIME_CHANGED "setting_time_changed"
97 /* anci c color type */
98 #define SETTING_FONT_RED "\033[31m"
99 #define SETTING_FONT_BLACK "\033[0m"
100 #define SETTING_FONT_BGREEN "\033[36m"
102 #define THEME_STYLE "beat"
104 #define IMG_EC_ARROW_OPEN SETTING_ICON_PATH"org.tizen.setting.png"
105 #define IMG_EC_ARROW_CLOSE SETTING_ICON_PATH"org.tizen.setting.png"
107 #define SETTING_IDLE_IMAGE_PATH "/etc/idle_image/"
109 #define NAVI_DEF_BUTTON_STYLE "naviframe/toolbar/default"//"naviframe_control/default"
110 #define NAVI_BACK_BUTTON_STYLE "naviframe/back_btn/default"
111 #define NAVI_MORE_BUTTON_STYLE "naviframe/more/default"//"naviframe_control/default"
114 #define NAVI_CONTROLBAR_PART "controlbar"
116 #define BTN_STYLE_DEF "naviframe/title/default"
117 #define NAVI_BTN_STYLE_LEFT "title_left_btn"
118 #define NAVI_BTN_STYLE_RIGHT "title_right_btn"
119 #define NAVI_BTN_STYLE_MORE "title_more_btn"
120 #define NAVI_BTN_STYLE_PREV "prev_btn"
122 //#define PROGRESSBAR_STYLE "Process_Large"
123 #define PROGRESSBAR_STYLE "process_large"
124 #define SETTING_FONT_CONF_FILE "/opt/etc/fonts/conf.avail/99-slp.conf"
125 #define SETTING_DEFAULT_FONT_CONF_FILE "/usr/opt/etc/fonts/conf.avail/99-slp.conf"
129 //#define GENLIST_LIST_SUB_TEXT_SETTINGS_COLOR_STYLE "#3B73B6FF"
130 #define BLUE_COLOR "#3B73B6" //3B73B6FF <== 59 115 182 255
131 #define GRAY_COLOR "#7B7B7B"
132 #define RED_COLOR "#FF0000"
133 #define WHITE_COLOR "#FFFFFF"
136 * @brief slider, button, and etc.
138 * @param data application context
139 * @param obj Evas Object
140 * @param event_info even type
144 typedef void (*setting_call_back_func) (void *data, Evas_Object *obj, void *event_info);
146 #define WIDGET_SCALE_FACTOR (get_widgets_factor())
147 #define SETTING_PADDING_WIDTH (8 * WIDGET_SCALE_FACTOR)
148 #define SETTING_PADDING_HEIGHT (8 * WIDGET_SCALE_FACTOR)
149 #define SETTING_HALF_SCREEN_WIDTH \
150 (SETTING_PADDING_WIDTH * 22 * WIDGET_SCALE_FACTOR)
152 #define SYS_NOTI_NAME_LEN 128
153 #define MAX_DISPLAY_NAME_LEN_ON_UI 128
154 #define MAX_COMMON_BUFFER_LEN 1024
157 #define MAX_SEARCH_STR_LEN 40
159 #define HELP_MSG_BUFF_SIZE 1000
160 #define MAX_SPECIALIZITION_LEN 1000
161 #define SPECIALIZITION_FONT 25
162 #define HELP_TITLE_SIZE 30
163 #define HELP_CONTENT_SIZE 28
165 #define PHONE_LOCK_ATTEMPS_MAX 5
166 #define SIM_LOCK_ATTEMPS_MAX 5
167 #define PHONE_LOCK_BLOCK_SECONDS 30
168 #define SIM_LOCK_BLOCK_SECONDS 30
169 #define LOCK_TIMESTAMP_LEN 64
170 #define MAX_DATETIME_FORMAT_LEN 64
171 #define MAX_DATE_FORMAT_LEN 10
173 #define SMALL_FONT_DPI (-80)
174 #define MIDDLE_FONT_DPI (-100)
175 #define LARGE_FONT_DPI (-144)
176 #define HUGE_FONT_DPI (-184)
177 #define GIANT_FONT_DPI (-240)
179 #define LABEL_FONT_SIZE_SMALL 24
180 #define LABEL_FONT_SIZE_NORMAL 35
181 #define LABEL_FONT_SIZE_LARGE 55
182 #define LABEL_FONT_SIZE_HUGE 75
183 #define LABEL_FONT_SIZE_GIANT 92
185 #define __STR_EMUL "emul"
186 #define __LEN_STR_EMUL 4
188 #define MAX_SYSTEM_SERVICE_NUM 30
189 #define SYSTEM_SERVICE_LIST_PATH "/opt/osp/system/configuration/system-services.list"
190 #define MAX_PKG_NAME_LEN 128
192 #define MIN_MOVE_DISTANCE 30
196 char* locale; // ex) "en_US.UTF"
197 char* title; // "United Kingdom"
199 //int number; // no - UI
200 } setting_lang_entry;
204 typedef enum _Theme_Type {
207 Theme_Tizen_Black = 1,
212 typedef enum _GENDIAL_Type {
213 GENDIAL_Type_1text_1icon_2 = 0,
214 GENDIAL_Type_1text_2icon = 1,
215 GENDIAL_Type_1icon_2text = 2,
216 GENDIAL_Type_2text_2icon_4 = 3,
217 GENDIAL_Type_1text_2icon_2 = 4,
218 GENDIAL_Type_2text_2icon_3 = 5,
219 GENDIAL_Type_sel_all,
221 GENDIAL_Type_1text_2icon_divider,
222 GENDIAL_Type_group_item,
223 GENDIAL_Type_mygroup_item,
224 GENDIAL_Type_1text_2icon_9,
225 GENDIAL_Type_1text_2icon_10,
226 GENDIAL_Type_2text_3,
227 GENDIAL_Type_1gengrid,
228 GENDIAL_Type_1gengrid_proc,
230 GENDIAL_Type_expandable_proc,
234 typedef enum _SWALLOW_Type {
235 SWALLOW_Type_INVALID = -1,
236 SWALLOW_Type_2ICON = 0,
237 SWALLOW_Type_1ICON_1CHECK = 1,
238 SWALLOW_Type_1ICON_1RADIO = 2,
239 SWALLOW_Type_1CHECK = 3,
240 SWALLOW_Type_1CHECK_RIGHT =4,
241 SWALLOW_Type_1CHECKICON = 5,
242 SWALLOW_Type_1RADIO = 6,
243 SWALLOW_Type_1TOGGLE = 7,
244 SWALLOW_Type_1ICON_1PROCESS,
245 SWALLOW_Type_MULTILINE_1TOGGLE,
246 SWALLOW_Type_1ICON_1DOTTOOGLE,
248 SWALLOW_Type_1ICON_1IMAGE,
251 SWALLOW_Type_1TEXT_1IMAGE,
252 SWALLOW_Type_1BUTTON,
253 SWALLOW_Type_1PROCESS,
254 SWALLOW_Type_1ICON_WITHOUT_CIRCLE_BG,
256 SWALLOW_Type_1RADIO_SUB,
257 SWALLOW_Type_1RADIO_1PROCESS,
258 SWALLOW_Type_1RADIO_1SEARCH,
259 SWALLOW_Type_1RADIO_1LABLE,
260 SWALLOW_Type_1RADIO_1BTN,
261 SWALLOW_Type_1RADIO_1TEXT,
262 SWALLOW_Type_1SEARCH,
264 SWALLOW_Type_1LINE_LAYOUT,
265 SWALLOW_Type_1LINE_LAYOUT_1RADIO,
266 SWALLOW_Type_1LINE_LAYOUT_1TOGGLE,
267 SWALLOW_Type_1LINE_LAYOUT_1CHECK,
268 SWALLOW_Type_LOAD_LAYOUT, //load an app or UG
269 SWALLOW_Type_LAYOUT_ENTRY,
270 SWALLOW_Type_LAYOUT_EDITFIELD,
271 SWALLOW_Type_LAYOUT_SIMPLE_PASSWORD, // for simple password
272 SWALLOW_Type_LAYOUT_DATEFIELD,
273 SWALLOW_Type_LAYOUT_SLIDER,
274 SWALLOW_Type_LAYOUT_SPECIALIZTION,
275 SWALLOW_Type_LAYOUT_SPECIALIZTION_X,//extension
281 UNDEFINED_LIB_SYMBOL = -2,/* undefined symbol : -2 */
282 LOAD_LIB_FAILED = -1,/* load failed : -1 */
283 OPERATE_LIB_SUCESS = 0,
286 typedef enum _POPUP_BTN_RESPONSE_TYPE{
287 POPUP_RESPONSE_INVALID = -1,
288 POPUP_RESPONSE_OK = 0,
289 POPUP_RESPONSE_CANCEL = 1,
290 } POPUP_BTN_RESPONSE_TYPE;
293 SETTING_GROUP_STYLE_NONE = 0,
294 SETTING_GROUP_STYLE_TOP,
295 SETTING_GROUP_STYLE_CENTER,
296 SETTING_GROUP_STYLE_BOTTOM
297 } setting_group_style;
301 * an item node in genlist
302 * @todo begings_to is requried?
303 * @todo isItemDisableFlag is required?
304 * @todo isSinglelineFlag is requred?
306 typedef struct _Setting_GenGroupItem_Data {
310 Evas_Object *win_main;
312 Elm_Object_Item *item;
314 SWALLOW_Type swallow_type;
316 const char *l_swallow_path;
317 const char *r_swallow_path;
319 /* for shortcut item */
320 const char *exec_path;
325 Evas_Object *rgd; /**< radio button */
328 Evas_Object *eo_check; /**< slider, button, check, editfield, datefield */
329 setting_call_back_func chk_change_cb;
331 int chk_status; /**< represent check value, slider value, datefield value etc.. */
332 char *keyStr; /**< title */
333 char *keyStr2; /**< title for font name expanlist item*/
334 char *sub_desc; /**< sub text */
335 char *guide_text; /**< guide text for editfield */
337 /* to swallow a whole layout (genlist item is 1line-layout or 2line-layout) */
338 char *item_style; /**< itc style name */
340 /* for slider control */
341 bool isIndicatorVisible; /**< indicator option (displaying number) */
342 double slider_min; /**< to swallow a slider */
343 double slider_max; /**< to swallow a slider */
344 setting_call_back_func start_change_cb;
345 setting_call_back_func stop_change_cb;
346 setting_call_back_func maxlength_reached_cb;
347 setting_call_back_func focus_cb; /**< for entry */
348 setting_call_back_func activated_cb; /**< for entry */
351 /* sound/vibration */
352 int belongs_to; /**< 1: slider belongs to sound group. 0: slider belongs to vibration group */
355 Elm_Input_Panel_Layout input_type; /**< input panel type */
356 bool input_panel_disable_flag; /** do not show the input panel automatically when the widget is clicked or has focus*/
357 Elm_Input_Panel_Return_Key_Type return_key_type; /** the return key type in input method panel*/
358 int disable_auto_cap; /** do not autocapital the first char in edit field*/
360 void *userdata; /**< just a reference, do not need release. */
364 bool isItemDisableFlag; /**< date/time UG only */
365 bool isSinglelineFlag;
366 bool maxLengthReachFlag;
367 bool enterKeyPressFlag; /**< for about UG, enter or space key are not allowed, if they are pressed, it is true */
368 bool spaceKeyPressFlag; /**<for about UG,if space key is pressed, need to popup a notification>*/
370 int int_slp_setting_binded; /**< its relative vconf value must increase from 0, and step is 1. eg, 0, 1, 2, 3.. */
371 bool entry_auto_focus; /*for enty, if this is true, then entry will be focus state when the entry is created*/
374 Evas_Object *notify; /**< act as any popup to show user any message */
376 Elm_Entry_Filter_Accept_Set *digits_filter_data;
377 Elm_Entry_Filter_Limit_Size *limit_filter_data;
379 Eina_List* childs; /**< child nodes if this has child nodes for handling radio buttons */
381 setting_group_style group_style;
382 setting_group_style exp_style;
383 setting_group_style con_style;
384 bool isGroupStyleTOP; //fix aboutUG device name display style issue.
385 bool focus_unallowed;
389 /* Edit control : min length filter */
390 int minlength; /* min length -- characters */
392 /*for incoming call*/
395 /* for disable item*/
396 Eina_Bool disableflag;
397 Eina_Bool toggleDisableFlag;
401 /*record itc style for all genlist item with check/radio/toggle */
404 /* storage item style */
405 int color; // 2: app, 3: pic,video, 4: audio, 5: Misc files, 6: Avail space
407 /* Sound, ringtone ug, fullpath */
411 Evas_Object *btn_left;
412 Evas_Object *btn_right;
416 } Setting_GenGroupItem_Data;
419 SETTING_VCONF_INT_TYPE = 0,
420 SETTING_VCONF_BOOL_TYPE,
421 SETTING_VCONF_STR_TYPE
422 } setting_vconf_type;
424 #define MAX_RESET_MENU_NUM 100
426 typedef struct _item_table {
427 char *item_name; /* pointer to the key string */
429 Setting_GenGroupItem_Data *data_GenItem;
432 typedef struct _AllowListItem AllowListItem;
434 struct _AllowListItem {
440 * @todo is 50 sufficient value?
442 typedef struct _Setting_Done_List_Data {
443 /* external input arguements */
444 Evas_Object *win_main;
446 Evas_Object *ly_parent;
447 Evas_Object *controllbar;
448 Elm_Object_Item *navi_it;
449 const char navi_title[MAX_DISPLAY_NAME_LEN_ON_UI];
451 /* internal output%input arguements */
452 Item_Table chk_items[MAX_RESET_MENU_NUM];
455 Evas_Object *selInfoPop;
456 Evas_Object *selInfoPop_layout;
457 Elm_Genlist_Item_Class itc_1text_1icon;
458 Elm_Genlist_Item_Class itc_1text_2icon;
459 Elm_Genlist_Item_Class itc_seperator;
460 Elm_Genlist_Item_Class itc_sel_all;
461 Evas_Object *select_all_checkbox;
462 Eina_Bool select_all_checked;
465 AllowListItem allow_items[MAX_RESET_MENU_NUM];
466 } Setting_Done_List_Data;
469 #define MAX_BUTTON_TEXT_LEN 20
470 #define MAX_BUTTON_NUM 20
471 typedef struct _setting_btn_data{
473 const char *btn_text[MAX_BUTTON_NUM];
474 const char *btn_icon[MAX_BUTTON_NUM];
475 setting_call_back_func btn_click_cb;
477 Evas_Object *ctxpopup;
478 Elm_Object_Item *item[MAX_BUTTON_NUM];
481 #define USEC_PER_SEC 1000000UL
483 const char* key_font_name;
485 } settings_font_size_table;
487 #endif /* __SETTING_COMMON_DATA_TYPE_H__ */