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 */
40 #define bool Eina_Bool
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"
46 #define SETTING_POSTINST_FILE "/var/lib/dpkg/info/com.samsung.setting.postinst"
47 #define SETTING_PACKAGE "setting"
48 #define SYSTEM_PACKAGE "sys_string"
49 #define SETTING_LOCALEDIR "/opt/apps/com.samsung.setting/res/locale"
51 #define SYSTEM_ICON_PATH "/opt/apps/com.samsung.setting/res/icons"
52 #define SETTING_ICON_PATH "/opt/apps/com.samsung.setting/res/icons"
53 #define SETTING_UG_ICON_PATH "/opt/ug/res/icon/com.samsung.setting"
54 #define SETTING_UG_PATH "/opt/ug/lib"
55 #define SETTING_UG_PATH_USR "/usr/ug/lib"
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"
62 /* inoti (broadcasting without data */
63 #define SETTING_TIME_CHANGED "setting_time_changed"
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"
70 #define THEME_STYLE "beat"
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"
75 #define SETTING_IDLE_IMAGE_PATH "/etc/idle_image/"
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"
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"
87 #if SUPPORT_BOTTOM_BTNS
88 #define NAVI_CONTROLBAR_PART "controlbar"
90 #define NAVI_CONTROLBAR_PART "optionheader"
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"
98 #define SETTING_FONT_CONF_FILE "/opt/etc/fonts/conf.avail/99-slp.conf"
101 * @brief slider, button, and etc.
103 * @param data application context
104 * @param obj Evas Object
105 * @param event_info even type
109 typedef void (*setting_call_back_func) (void *data, Evas_Object *obj, void *event_info);
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)
117 #define SYS_NOTI_NAME_LEN 128
118 #define MAX_DISPLAY_NAME_LEN_ON_UI 128
119 #define MAX_COMMON_BUFFER_LEN 1024
121 #define MAX_SEARCH_STR_LEN 20
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
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
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)
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
149 #define __STR_EMUL "emul"
150 #define __LEN_STR_EMUL 4
151 #define BIN_INFO_FILE_PATH "/etc/info.ini"
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
159 SYSTEM_SETTINGS_FONT_SIZE_SMALL = 0, /**< A small size */
160 SYSTEM_SETTINGS_FONT_SIZE_NORMAL, /**< A normal size */
161 SYSTEM_SETTINGS_FONT_SIZE_LARGE, /**< A large size */
162 SYSTEM_SETTINGS_FONT_SIZE_HUGE, /**< A huge size */
163 SYSTEM_SETTINGS_FONT_SIZE_GIANT /**< A giant size */
164 } settings_font_size_e;
168 char* locale; // ex) "en_US.UTF"
169 char* title; // "United Kingdom"
170 int number; // no - UI
171 } setting_lang_entry;
175 typedef enum _Theme_Type {
178 Theme_Tizen_Black = 1,
183 typedef enum _GENDIAL_Type {
184 GENDIAL_Type_1text_1icon_2 = 0,
185 GENDIAL_Type_1text_2icon = 1,
186 GENDIAL_Type_1icon_2text = 2,
187 GENDIAL_Type_2text_2icon_4 = 3,
188 GENDIAL_Type_1text_2icon_2 = 4,
189 GENDIAL_Type_sel_all,
191 GENDIAL_Type_1line_icontext,
192 GENDIAL_Type_group_item,
193 GENDIAL_Type_2text_3,
197 typedef enum _SWALLOW_Type {
198 SWALLOW_Type_INVALID = -1,
199 SWALLOW_Type_2ICON = 0,
200 SWALLOW_Type_1ICON_1CHECK = 1,
201 SWALLOW_Type_1ICON_1RADIO = 2,
202 SWALLOW_Type_1CHECK = 3,
203 SWALLOW_Type_1CHECKICON = 4,
204 SWALLOW_Type_1RADIO = 5,
205 SWALLOW_Type_1TOGGLE = 6,
206 SWALLOW_Type_MULTILINE_1TOGGLE,
208 SWALLOW_Type_1ICON_1IMAGE,
209 SWALLOW_Type_1BUTTON,
210 SWALLOW_Type_1PROCESS,
212 SWALLOW_Type_1RADIO_SUB,
213 SWALLOW_Type_1RADIO_1PROCESS,
214 SWALLOW_Type_1RADIO_1SEARCH,
215 SWALLOW_Type_1RADIO_1LABLE,
216 SWALLOW_Type_1SEARCH,
218 SWALLOW_Type_1LINE_LAYOUT = 20,
219 SWALLOW_Type_1LINE_LAYOUT_1RADIO,
220 SWALLOW_Type_1LINE_LAYOUT_1TOGGLE,
221 SWALLOW_Type_1LINE_LAYOUT_1CHECK,
222 SWALLOW_Type_LAYOUT_ENTRY,
223 SWALLOW_Type_LAYOUT_SIMPLE_PASSWORD, // for simple password
224 SWALLOW_Type_LAYOUT_DATEFIELD,
225 SWALLOW_Type_LAYOUT_SLIDER,
226 SWALLOW_Type_LAYOUT_SPECIALIZTION,
227 SWALLOW_Type_LAYOUT_SPECIALIZTION_X,//extension
233 UNDEFINED_LIB_SYMBOL = -2,/* undefined symbol : -2 */
234 LOAD_LIB_FAILED = -1,/* load failed : -1 */
235 OPERATE_LIB_SUCESS = 0,
238 typedef enum _POPUP_BTN_RESPONSE_TYPE{
239 POPUP_RESPONSE_INVALID = -1,
240 POPUP_RESPONSE_OK = 0,
241 POPUP_RESPONSE_CANCEL = 1,
242 } POPUP_BTN_RESPONSE_TYPE;
244 *an item node in genlist
245 * @todo begings_to is requried?
246 * @todo isItemDisableFlag is required?
247 * @todo isSinglelineFlag is requred?
249 typedef struct _Setting_GenGroupItem_Data {
253 Elm_Object_Item *item;
254 SWALLOW_Type swallow_type;
255 const char *l_swallow_path;
256 const char *r_swallow_path;
258 Evas_Object *win_main;
262 Evas_Object *rgd; /**< radio button */
263 int usb_index; /**< usb_index number of radio buttons, ex) USB setting */
266 Evas_Object *eo_check; /**< slider, button, check, editfield, datefield */
267 setting_call_back_func chk_change_cb;
269 int chk_status; /**< represent check value, slider value, datefield value etc.. */
270 char *keyStr; /**< title */
271 char *sub_desc; /**< sub text */
273 /* to swallow a whole layout (genlist item is 1line-layout or 2line-layout) */
274 char *item_style; /**< itc style name */
276 /* for slider control */
277 bool isIndicatorVisible; /**< indicator option (displaying number) */
278 double slider_min; /**< to swallow a slider */
279 double slider_max; /**< to swallow a slider */
280 setting_call_back_func start_change_cb;
281 setting_call_back_func stop_change_cb;
283 /* sound/vibration */
284 int belongs_to; /**< 1: slider belongs to sound group. 0: slider belongs to vibration group */
287 Elm_Input_Panel_Layout input_type; /**< input panel type */
288 bool input_panel_disable_flag; /** do not show the input panel automatically when the widget is clicked or has focus*/
290 void *userdata; /**< just a reference, do not need release. */
294 bool isItemDisableFlag; /**< date/time UG only */
295 bool isSinglelineFlag;
297 int int_slp_setting_binded; /**< its relative vconf value must increase from 0, and step is 1. eg, 0, 1, 2, 3.. */
301 Evas_Object *notify; /**< act as any popup to show user any message */
303 Elm_Entry_Filter_Accept_Set *digits_filter_data;
304 Elm_Entry_Filter_Limit_Size *limit_filter_data;
306 } Setting_GenGroupItem_Data;
309 SETTING_VCONF_INT_TYPE = 0,
310 SETTING_VCONF_BOOL_TYPE,
311 SETTING_VCONF_STR_TYPE
312 } setting_vconf_type;
314 #define MAX_RESET_MENU_NUM 50
316 typedef struct _item_table {
317 char *item_name; /* pointer to the key string */
319 Setting_GenGroupItem_Data *data_GenItem;
323 * @todo is 50 sufficient value?
325 typedef struct _Setting_Done_List_Data {
326 /* external input arguements */
327 Evas_Object *win_main;
329 Evas_Object *ly_parent;
330 Evas_Object *controllbar;
332 /* internal output%input arguements */
333 Item_Table chk_items[MAX_RESET_MENU_NUM];
335 Evas_Object *selInfoPop;
336 Evas_Object *selInfoPop_layout;
337 Elm_Genlist_Item_Class itc_1text_1icon;
338 Elm_Genlist_Item_Class itc_seperator;
339 Elm_Genlist_Item_Class itc_sel_all;
340 Evas_Object *select_all_checkbox;
341 Eina_Bool select_all_checked;
342 } Setting_Done_List_Data;
344 #endif /* __SETTING_COMMON_DATA_TYPE_H__ */