tizen 2.4 release
[apps/home/ug-lockscreen-setting-efl.git] / ug-lockscreen-setting-efl / include / lockscreen-options-util.h
1 /*
2  * Copyright (c) 2009 - 2015 Samsung Electronics Co., Ltd. All rights reserved.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  *
16  */
17
18
19 #ifndef __LOCKSCREEN_OPTIONS_UTIL_H__
20 #define __LOCKSCREEN_OPTIONS_UTIL_H__
21
22 #include <Elementary.h>
23 #include <efl_extension.h>
24 #include "lockscreen-options.h"
25 #include <Ecore_X.h>
26
27 #ifndef EIWNNU8
28 #define EIWNNU8      unsigned char        /**< Unsigned  8-bit quantity. */
29 #endif
30 #ifndef EIWINNU16
31 #define EIWNNU16     unsigned short       /**< Unsigned 16-bit quantity. */
32 #endif
33 #ifndef EIWNNU32
34 #define EIWNNU32     unsigned long        /**< Unsigned 32-bit quantity. */
35 #endif
36
37 #define EIWNNSYMB  EIWNNU16
38
39 #define USE_PREVIEW 1
40 #define USE_STYLE_PREVIEW 1
41
42 #define EDJE_DIR                    "/usr/apps/ug-lockscreen-options/res/edje"
43 #define IMAGE_DIR                   "/usr/apps/ug-lockscreen-options/res/images"
44 #define LOCKSCREEN_THEMES_DIR       IMAGE_DIR "/lockscreen-options-theme"
45 #define BUF_SIZE                    256
46
47 #define MAX_LENGTH_LINE 2000
48
49 typedef struct {
50         int glStyle;
51         int stringId;
52         Evas_Object *check;
53         void (*func) (void *data, Evas_Object * obj, void *event_info);
54         void *data;
55         Elm_Object_Item *item;
56 } lockscreen_menu_item_info;
57
58 enum {
59         IDS_COM_SK_OK = 0,
60         IDS_COM_SK_CANCEL,
61         IDS_LOCKSCREEN_OPTIONS_SNS,
62         IDS_LOCKSCREEN_OPTIONS_SYSTEM_STRING_MAX,
63 };
64
65 enum {
66         IDS_LOCKSCREEN_OPTIONS_LOCK_SCREEN_SETTINGS =
67             IDS_LOCKSCREEN_OPTIONS_SYSTEM_STRING_MAX,
68         IDS_LOCKSCREEN_ACHEADER2_PERSONAL_MESSAGE,
69         IDS_LOCKSCREEN_ACHEADER2_LOCK_SCREEN_THEMES,
70         IDS_LOCKSCREEN_ACHEADER1_LOCK_SCREEN_SETTINGS,
71         IDS_LOCKSCREEN_ACHEADER1_SET_SHORTCUTS,
72         IDS_LOCKSCREEN_OPTIONS_LOCK_SCREEN_TYPE,
73         IDS_LOCKSCREEN_OPTIONS_LOCK_SCREEN_WALLPAPER,
74         IDS_LOCKSCREEN_OPTIONS_SHORTCUTS,
75         IDS_LOCKSCREEN_OPTIONS_SHORTCUTS_HELP,
76         IDS_LOCKSCREEN_OPTIONS_SHORTCUTS_SETTINGS,
77         IDS_LOCKSCREEN_OPTIONS_SHORTCUTS_SETTINGS_HELP,
78         /* stytle start */
79         IDS_LOCKSCREEN_OPTIONS_LOCK_SCREEN_STYTLE_TITLE,
80         IDS_LOCKSCREEN_OPTIONS_LOCK_SCREEN_STYTLE_CONTENT,
81         IDS_LOCKSCREEN_OPTIONS_LOCK_SCREEN_STYTLE_HELP,
82         IDS_LOCKSCREEN_OPTIONS_LOCK_SCREEN_STYTLE_HELP_1,
83         /* stytle end */
84         IDS_LOCKSCREEN_OPTIONS_LOCKSCREEN_BRIEFING,
85         IDS_LOCKSCREEN_OPTIONS_LOCKSCREEN_BRIEFING_SUB_TITLE,
86         IDS_LOCKSCREEN_OPTIONS_LOCKSCREEN_BRIEFING_HELP,
87         IDS_LOCKSCREEN_OPTIONS_LOCK_SCREEN_TITLE,
88         IDS_LOCKSCREEN_OPTIONS_LOCK_SCREEN_TITLE_HELP,
89         IDS_LOCKSCREEN_OPTIONS_EVENT_NOTIFICATIONS,
90         IDS_LOCKSCREEN_OPTIONS_EVENT_NOTIFICATIONS_HELP,
91         IDS_LOCKSCREEN_OPTIONS_CONTEXTAWARE_NOTI,
92         IDS_LOCKSCREEN_OPTIONS_CONTEXTAWARE_NOTI_HELP,
93 #if USE_CAMERA
94         IDS_LOCKSCREEN_OPTIONS_CAMERA_QUICK_ACCESS,
95         IDS_LOCKSCREEN_OPTIONS_CAMERA_QUICK_ACCESS_HELP,
96 #endif
97         IDS_LOCKSCREEN_OPTIONS_CLOCK,
98         IDS_LOCKSCREEN_OPTIONS_DUAL_CLOCK,
99         IDS_LOCKSCREEN_OPTIONS_DUAL_CLOCK_HELP,
100         IDS_LOCKSCREEN_OPTIONS_DUAL_CLOCK_CONTENT,
101         IDS_LOCKSCREEN_OPTIONS_WAKE_UP,
102         IDS_LOCKSCREEN_OPTIONS_WAKE_UP_HELP,
103         IDS_LOCKSCREEN_OPTIONS_WEATHER,
104         IDS_LOCKSCREEN_OPTIONS_HELPTEXT,
105         IDS_LOCKSCREEN_OPTIONS_HELPTEXT_HELP,
106         IDS_LOCKSCREEN_OPTIONS_SET_SHORTCUTS,
107         IDS_LOCKSCREEN_OPTIONS_EDIT_SHORTCUTS,
108         IDS_LOCKSCREEN_OPTIONS_SET_SHORTCUTS_ON_LOCKSCREEN,
109         IDS_LOCKSCREEN_OPTIONS_TAP_SHORTCUTS,
110         IDS_LOCKSCREEN_OPTIONS_DRAG_DROP_SHORTCUTS,
111         IDS_LOCKSCREEN_OPTIONS_SELECT_APPLICATIONS,
112         IDS_LOCKSCREEN_OPTIONS_LOCK_SCREEN_TITLE_GUIDE_TEXT,
113         IDS_LOCKSCREEN_OPTIONS_LOCK_SCREEN_THEME,
114         IDS_LOCKSCREEN_OPTIONS_SET_LOCKSTYLE,
115         IDS_LOCKSCREEN_OPTIONS_PREVIEW,
116         IDS_LOCKSCREEN_OPTIONS_APPLY,
117         IDS_LOCKSCREEN_OPTIONS_LOCK_SCREEN_BRIEFING,
118         IDS_LOCKSCREEN_OPTIONS_BRIEFING_ITEMS,
119         IDS_LOCKSCREEN_OPTIONS_MUSIC_CONTROLLER,
120         IDS_LOCKSCREEN_OPTIONS_MISSED_EVENTS,
121         IDS_LOCKSCREEN_OPTIONS_NEWS,
122         IDS_LOCKSCREEN_OPTIONS_SCHEDULE,
123         IDS_LOCKSCREEN_OPTIONS_CLEAR,
124         IDS_LOCKSCREEN_OPTIONS_CLOSEUP,
125         IDS_LOCKSCREEN_OPTIONS_BOOKCOVER,
126         IDS_LOCKSCREEN_OPTIONS_SPLENDID,
127         IDS_LOCKSCREEN_OPTIONS_PEACEFUL,
128         IDS_LOCKSCREEN_OPTIONS_FUN,
129         IDS_LOCKSCREEN_OPTIONS_HUMAN,
130         IDS_LOCKSCREEN_OPTIONS_WEATHER_THEME,
131         IDS_ST_BODY_STYLE,
132         IDS_LOCKSCREEN_OPTIONS_STYLE_NONE,
133         IDS_LOCKSCREEN_OPTIONS_STYLE_SWIPE,
134         IDS_LOCKSCREEN_OPTIONS_STYLE_MOTION,
135         IDS_LOCKSCREEN_OPTIONS_STYLE_VOICE,
136         IDS_LOCKSCREEN_OPTIONS_STYLE_SIMPLE_PASSWORD,
137         IDS_LOCKSCREEN_OPTIONS_STYLE_PASSWORD,
138         IDS_LOCKSCREEN_OPTIONS_WALLPAPER_CHANGED,
139         IDS_LOCKSCREEN_OPTIONS_SET_WAKE_UP,
140         IDS_LOCKSCREEN_OPTIONS_EDIT_PERSONAL_MESSAGE,
141         IDS_LOCKSCREEN_OPTIONS_EDIT,
142         IDS_LOCKSCREEN_OPTIONS_EDIT_HELP,
143         IDS_LOCKSCREEN_OPTIONS_UNLOCK_EFFECT,
144         IDS_LOCKSCREEN_OPTIONS_CONFETTI_M_EFFECT,
145         IDS_LOCKSCREEN_OPTIONS_GEOMETRIC_M_EFFECT,
146         IDS_LOCKSCREEN_OPTIONS_STARDUST_M_EFFECT,
147         IDS_LOCKSCREEN_OPTIONS_GLOWWORM_M_EFFECT,
148         IDS_LOCKSCREEN_OPTIONS_EDIT_TITLE,
149         IDS_LOCKSCREEN_OPTIONS_FESTIVAL_WALLPAPER,
150         IDS_LOCKSCREEN_OPTIONS_WEATHER_EFFECT,
151         IDS_LOCKSCREEN_OPTIONS_LOCK_SCREEN_WEATHEREFFECT_HELP,
152         IDS_LOCKSCREEN_OPTIONS_STYLE_FINGERPRINT,
153         IDS_LOCKSCREEN_OPTIONS_STYLE_AUTOLOCK,
154         IDS_LOCKSCREEN_OPTIONS_CAMERA_SHORTCUT,
155         IDS_LOCKSCREEN_OPTIONS_ADD_INFORMATION,
156         IDS_LOCKSCREEN_OPTIONS_ADD_INFORMATION_HELP,
157         IDS_LOCKSCREEN_OPTIONS_ADDINF_WEATHER,
158         IDS_LOCKSCREEN_OPTIONS_PEDOMETER,
159         IDS_LOCKSCREEN_OPTIONS_ADDINF_HELP,
160         IDS_LOCKSCREEN_OPTIONS_WEATHER_EFFECT_HELP,
161         IDS_LOCKSCREEN_OPTIONS_HELP_SHORTCUT,
162         IDS_LOCKSCREEN_OPTIONS_HELP_SHORTCUT_HELP,
163         IDS_LOCKSCREEN_OPTIONS_FESTIVAL_WALLPAPER_HELP,
164         IDS_LOCKSCREEN_OPTIONS_SWIPE_PW,
165         IDS_LOCKSCREEN_OPTIONS_SWIPE_PW_HELP,
166         IDS_LOCKSCREEN_OPTIONS_APP_STRING_MAX,  /* 55 */
167 };
168
169
170 #define COLORTODECIMAL(color, A, R, G, B) \
171         A = (color>>24)&0xFF; \
172         R = (color>>16)&0xFF; \
173         G = (color>>8)&0xFF; \
174         B = color&0xFF;
175
176 #define DECIMALTOCOLOR(color, A, R, G, B) \
177         color = A<<24|R<<16|G<<8|B;
178
179 typedef enum {
180         LOCKSCREEN_READER_OBJ_TYPE_ELM_OBJECT,
181         LOCKSCREEN_READER_OBJ_TYPE_EDJ_OBJECT,
182 } lockscreen_object_type_e;
183
184 Evas_Object *lockscreen_options_util_create_navigation(Evas_Object * parent);
185 Evas_Object *lockscreen_options_util_create_layout(Evas_Object * parent,
186                                                    const char *file,
187                                                    const char *group);
188 void lockscreen_options_util_create_seperator(Evas_Object * genlist);
189 void lockscreen_options_util_create_seperator2(Evas_Object * genlist);
190 void lockscreen_options_util_create_underline(Evas_Object * genlist);
191 char *lockscreen_optoins_get_string(int id);
192 void _lockscreen_options_submenu_gl_item(Elm_Gen_Item_Class * item);
193 int x_to_int(char c);
194 Evas_Object *get_bg_image(Evas_Object *parent);
195 void remove_unused_string(char *text, char *unused_string);
196 void replace_unused_string_with_char(char *text, char *unused_string, char c);
197 void set_object_colors(void *ao, const char *color_class, int color);
198 void get_font_list(Eina_List **font_list);
199 void get_font_name(const char *font_data, char *new_name, int bufsize);
200 int translate_cur_idx(int cur_idx);
201 int revert_cur_idx(int index);
202
203 int ConvertUTF8toUCS2(const char* src, EIWNNSYMB* psTargetStart);
204 int WmStrlen(const EIWNNSYMB* mszInText);
205
206
207 int get_vconf_screenreader(void);
208 void *lockscreen_options_tts_reader_object_get(void *obj, lockscreen_object_type_e type, const char *part, void *parent);
209 void *lockscreen_options_tts_get_focus_object(void *parent);
210 void lockscreen_options_set_tts_info(Evas_Object* obj, const char* label,
211                           const char* traits, const char *state,
212                           const char* guide);
213 Eina_Bool _client_message_rotation_cb(void *data, int type, void *event);
214
215
216 //for string
217 Eina_Bool isEmptyStr(const char *str);
218 int safeStrNCmp(const char *s1, const char *s2, int len);
219 void launch_ug(char* ug_name, app_control_h svc_mt_ug, void *data);
220
221
222 #endif                          /* __OPENLOCK_SETTING_UTIL_H__ */