IdleToolbar.h
9.48 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
/*****************************************************************************
* Copyright Statement:
* --------------------
* This software is protected by Copyright and the information contained
* herein is confidential. The software may not be copied and the information
* contained herein may not be used or disclosed except with the written
* permission of MediaTek Inc. (C) 2005
*
* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
*
* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
*
* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
*
*****************************************************************************/
/*****************************************************************************
*
* Filename:
* ---------
* IdleToolbar.h
*
* Project:
* --------
* MAUI
*
* Description:
* ------------
* This file is the internal header file of the OP12 Toolbar.
*
* Author:
* -------
* -------
*
*============================================================================
* HISTORY
* Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
*------------------------------------------------------------------------------
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
*------------------------------------------------------------------------------
* Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
*============================================================================
****************************************************************************/
#ifndef _MMI_IDLE_TOOLBAR_H
#define _MMI_IDLE_TOOLBAR_H
#include "MMI_features.h"
#ifdef __MMI_OP12_TOOLBAR__
#include "IdleToolbarGprot.h"
/**********************************************************************
* Default constants definition
**********************************************************************/
#define MMI_TB_UT 1
#define MMI_TB_STR_LEN (MAX_SUB_MENU_SIZE / ENCODING_LENGTH)
#define MMI_TB_URL_LEN 128
#define MMI_TB_ENTRY_GUARD_TOV 2000
/* Max number of entries of the live module */
#define MMI_TB_MAX_LIVE_ENTRY_NUM 8
/* Max number of events of a certain kind in the messages module */
#define MMI_TB_MAX_VOICEMAIL_ENTRY_NUM 2
#define MMI_TB_MAX_EMAIL_ENTRY_NUM 1
#define MMI_TB_MAX_IM_ENTRY_NUM 1
#define MMI_TB_MAX_PUSH_ENTRY_NUM 4
#define MMI_TB_MAX_CB_ENTRY_NUM 1
/* Max number of entries of the messages module */
#define MMI_TB_MAX_MSG_ENTRY_NUM 19
/* Max number of entries of the profiles module */
#define MMI_TB_MAX_PROF_ENTRY_NUM 2
/* Max number of shortcuts in the shortcuts module */
#define MMI_TB_MAX_SHCT_ENTRY_NUM 40
/* Message iterator option flag: */
#define MMI_ITER_MSG_SKIP_UM 0x01
/* Toolbar option flag: */
#define MMI_TB_NULL 0x0000
#define MMI_TB_QUERYING 0x0001
#define MMI_TB_HISTORY_DISCARDED 0x0002
#define MMI_TB_HISTORY_FOR_REDRAW 0x0004
#define MMI_TB_ENTRY_WITHOUT_QUERY 0x0008
#define MMI_TB_OPENED 0x0010
/**********************************************************************
* Macro definition
**********************************************************************/
#define MMI_TB_GET_SIZE(x) (sizeof(x) / sizeof(x[0]))
#define MMI_TB_ASSERT(x) ASSERT(x)
#define MMI_TB_EASSERT(x, y1, y2, y3) EXT_ASSERT(x, y1, y2, y3)
#ifdef MMI_TB_UT /* __PRODUCTION_RELEASE__ */
#define MMI_TB_ASSERT_DBG(x) ASSERT(x)
#define MMI_TB_EASSERT_DBG(x, y1, y2, y3) EXT_ASSERT(x, y1, y2, y3)
#else
#define MMI_TB_ASSERT_DBG(x)
#define MMI_TB_EASSERT_DBG(x, y1, y2, y3)
#endif
/**********************************************************************
* Enum definitions
**********************************************************************/
/* Module type enum */
typedef enum
{
MMI_TB_MOD_LIVE,
MMI_TB_MOD_MSG,
MMI_TB_MOD_MISSED_CALLS,
MMI_TB_MOD_PROFILE,
MMI_TB_MOD_SHORTCUTS,
MMI_TB_MOD_NUM
} mmi_tb_module_type;
/**********************************************************************
* Structure definitions
**********************************************************************/
/* Structure for the application registration. */
typedef struct
{
S32 type;
mmi_tb_query_func_t query;
} mmi_tb_ctrl_tbl_struct;
/* Menu entry: messages and missed call modules */
typedef struct
{
S8 subject[MMI_TB_STR_LEN * ENCODING_LENGTH];
U16 icon;
MMI_BOOL is_time_present;
MYTIME time;
void *user_data;
} mmi_tb_event_struct;
/* Message iterator structure */
typedef struct
{
mmi_tb_evnt_enum type;
mmi_tb_event_struct *evnt;
} mmi_tb_iter_result_struct;
typedef struct
{
mmi_tb_evnt_enum type;
U8 idx;
U8 flag;
U8 n_um;
mmi_tb_iter_result_struct *um;
} mmi_tb_iter_struct;
/* History structure */
typedef struct
{
/*
* module:
* the hilighted module
*
* msg_evnt:
* copy of the highlighted dynamic item in message module
*
* call_evnt:
* copy of the highlighted dynamic item in call module
*/
mmi_tb_module_type module;
S32 index[MMI_TB_MOD_NUM];
U16 shct_id;
S32 msg_type;
mmi_tb_event_struct msg_evnt;
mmi_tb_event_struct call_evnt;
} mmi_tb_hist_struct;
/* Menu entry: OP12 live! */
typedef struct
{
U16 str_id;
U16 icon_id;
S8 *url;
} mmi_tb_link_struct;
/* Live module context structure */
typedef struct
{
S32 num;
mmi_tb_link_struct *entry[MMI_TB_MAX_LIVE_ENTRY_NUM];
} mmi_tb_live_cntx_struct;
/* Messages module context structure */
typedef struct
{
S32 total_num[MMI_TB_EVNT_NUM];
S32 num[MMI_TB_EVNT_NUM];
mmi_tb_evnt_cbf_t single_hdlr[MMI_TB_EVNT_NUM];
mmi_tb_multi_evnt_cbf_t multi_hdlr[MMI_TB_EVNT_NUM];
mmi_tb_event_struct sms[MMI_TB_MAX_NEW_MESSAGE_NUM];
mmi_tb_event_struct mms[MMI_TB_MAX_NEW_MESSAGE_NUM];
mmi_tb_event_struct voicemail[MMI_TB_MAX_VOICEMAIL_ENTRY_NUM];
mmi_tb_event_struct email[MMI_TB_MAX_EMAIL_ENTRY_NUM];
mmi_tb_event_struct im[MMI_TB_MAX_IM_ENTRY_NUM];
mmi_tb_event_struct push[MMI_TB_MAX_PUSH_ENTRY_NUM];
mmi_tb_event_struct cb[MMI_TB_MAX_CB_ENTRY_NUM];
mmi_tb_event_struct call[MMI_TB_MAX_NEW_MISSED_CALL_NUM];
} mmi_tb_event_cntx_struct;
/* Toolbar NVRAM record structure */
#define MMI_TB_NVRAM_RECORD_STRUCT \
U8 enable; \
U8 mod_state[MMI_TB_MOD_NUM]
typedef struct
{
MMI_TB_NVRAM_RECORD_STRUCT;
} mmi_tb_nvram_record_struct;
/* Toolbar context structure */
typedef struct
{
MMI_TB_NVRAM_RECORD_STRUCT;
mmi_tb_live_cntx_struct live;
mmi_tb_event_cntx_struct event;
mmi_tb_hist_struct hist;
U8 mod_state_tmp[MMI_TB_MOD_NUM];
U8 index;
U32 tb_state;
U32 flag;
U8 *gui_buffer;
} mmi_tb_context_struct;
/**********************************************************************
* External Interfaces
**********************************************************************/
extern const mmi_tb_ctrl_tbl_struct
mmi_tb_evnt_query_tbl[];
extern void
mmi_tb_entry_toolbar(void);
extern void
mmi_tb_hilight_switch_on_off(void);
extern void
mmi_tb_hilight_modify_modules(void);
extern void
mmi_tb_hilight_modify_shortcuts(void);
extern void
mmi_tb_discard_history(void);
extern void
mmi_tb_pre_fetch_history(void);
extern void
mmi_tb_redraw_toolbar(void);
extern void
mmi_tb_open_toolbar(void);
extern void
mmi_tb_close_toolbar(void);
#endif /* __MMI_OP12_TOOLBAR__ */
#endif /* _MMI_IDLE_TOOLBAR_H */