FreeCalypso > hg > fc-tourmaline
comparison src/ui/bmi/mmiLists.c @ 153:65f0ce5bd32f
mmiLists.c: bogotab fixes
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Mon, 16 Nov 2020 19:49:08 +0000 |
parents | c0052fe355d3 |
children |
comparison
equal
deleted
inserted
replaced
152:8129ee8ee6c2 | 153:65f0ce5bd32f |
---|---|
1 /******************************************************************************* | 1 /******************************************************************************* |
2 | 2 |
3 CONDAT (UK) | 3 CONDAT (UK) |
4 | 4 |
5 ******************************************************************************** | 5 ******************************************************************************** |
6 | 6 |
7 This software product is the property of Condat (UK) Ltd and may not be | 7 This software product is the property of Condat (UK) Ltd and may not be |
8 disclosed to any third party without the express permission of the owner. | 8 disclosed to any third party without the express permission of the owner. |
9 | 9 |
10 ******************************************************************************** | 10 ******************************************************************************** |
11 | 11 |
12 $Project name: Basic MMI | 12 $Project name: Basic MMI |
13 $Project code: BMI (6349) | 13 $Project code: BMI (6349) |
14 $Module: MMI | 14 $Module: MMI |
15 $File: MmiLists.c | 15 $File: MmiLists.c |
16 $Revision: 1.0 | 16 $Revision: 1.0 |
17 | 17 |
18 $Author: Condat(UK) | 18 $Author: Condat(UK) |
19 $Date: 22/02/01 | 19 $Date: 22/02/01 |
20 | 20 |
21 ******************************************************************************** | 21 ******************************************************************************** |
22 | 22 |
23 Description: | 23 Description: |
24 | |
25 | 24 |
26 | 25 |
27 ******************************************************************************** | 26 ******************************************************************************** |
28 | 27 |
29 $History: MmiLists.c | 28 $History: MmiLists.c |
34 | 33 |
35 Mar 30, 2007 REF: OMAPS00122691 x0039928 | 34 Mar 30, 2007 REF: OMAPS00122691 x0039928 |
36 Description: COMBO: No melody heard on parsing over different volums in tones menu | 35 Description: COMBO: No melody heard on parsing over different volums in tones menu |
37 Solution: E_MELODY_START event is sent to play the melody. | 36 Solution: E_MELODY_START event is sent to play the melody. |
38 | 37 |
39 xrashmic 8 Sep 2006, OMAPS00091618 | 38 xrashmic 8 Sep 2006, OMAPS00091618 |
40 Removed redundant code introduced during integration | 39 Removed redundant code introduced during integration |
41 | 40 |
42 June 19, 2006 REF: DRT OMAPS00076378 x0012849 : Jagannatha | 41 June 19, 2006 REF: DRT OMAPS00076378 x0012849 : Jagannatha |
43 Description: MIDI files should play while browsing | 42 Description: MIDI files should play while browsing |
44 Solution: Event will be generated upon press of Menu up and down key. | 43 Solution: Event will be generated upon press of Menu up and down key. |
45 | 44 |
46 June 05, 2006 REF:OMAPS00060424 x0045876 | 45 June 05, 2006 REF:OMAPS00060424 x0045876 |
47 Description: Header Toggling | 46 Description: Header Toggling |
48 Solution: Implemented the toggling of header when displaying the length text in SELECT ITEM and SET UP MENU | 47 Solution: Implemented the toggling of header when displaying the length text in SELECT ITEM and SET UP MENU |
49 | 48 |
50 May 18, 2006 REF: DRT OMAPS00076438 xdeepadh | 49 May 18, 2006 REF: DRT OMAPS00076438 xdeepadh |
51 Description: Scrolling not implemented in Imageviewer | 50 Description: Scrolling not implemented in Imageviewer |
52 Solution: The support for scrolling has been provided. | 51 Solution: The support for scrolling has been provided. |
53 | 52 |
54 May 03, 2006 REF: DRT OMAPS00076439 xdeepadh | 53 May 03, 2006 REF: DRT OMAPS00076439 xdeepadh |
55 Description: Image viewer back not working | 54 Description: Image viewer back not working |
56 Solution: The Preview List will be repopulated, when the list window is | 55 Solution: The Preview List will be repopulated, when the list window is |
57 resumed. | 56 resumed. |
58 | 57 |
59 May 03, 2006 REF: DRT OMAPS00076376 xdeepadh | 58 May 03, 2006 REF: DRT OMAPS00076376 xdeepadh |
60 Description: File Viewer-N5.12 issues (very unstable) | 59 Description: File Viewer-N5.12 issues (very unstable) |
61 Solution: The keys are blocked until the view or preview is completed. | 60 Solution: The keys are blocked until the view or preview is completed. |
62 | 61 |
63 Dec 22, 2005 REF: ENH xdeepadh | 62 Dec 22, 2005 REF: ENH xdeepadh |
64 Description: Image Viewer Application | 63 Description: Image Viewer Application |
65 Solution: Implemeted the Image Viewer to view the jpeg images | 64 Solution: Implemeted the Image Viewer to view the jpeg images |
66 | 65 |
67 xrashmic 5 Oct, 2005 MMI-SPR-29356, MMI-SPR-29357 | 66 xrashmic 5 Oct, 2005 MMI-SPR-29356, MMI-SPR-29357 |
68 Using the MenuSelect Key for requesting the help info in STK menu. Storing the info that | 67 Using the MenuSelect Key for requesting the help info in STK menu. Storing the info that |
69 MenuSelectKey was pressed in a list view. | 68 MenuSelectKey was pressed in a list view. |
70 | 69 |
71 May 24, 2005 REF: CRR 29358 x0021334 | 70 May 24, 2005 REF: CRR 29358 x0021334 |
72 Description: CT_PTCRB 27.22.4.9.8 fails: wrong terminal response | 71 Description: CT_PTCRB 27.22.4.9.8 fails: wrong terminal response |
73 Fix: The implementation is now based on timer. After the specified timeout period | 72 Fix: The implementation is now based on timer. After the specified timeout period |
74 the control comes back to SAT main menu, if there is no selection done by the user. | 73 the control comes back to SAT main menu, if there is no selection done by the user. |
75 | 74 |
76 25/10/00 Original Condat(UK) BMI version. | 75 25/10/00 Original Condat(UK) BMI version. |
77 | 76 |
78 $End | 77 $End |
79 | 78 |
80 *******************************************************************************/ | 79 *******************************************************************************/ |
81 | 80 |
119 | 118 |
120 #include "prim.h" | 119 #include "prim.h" |
121 #ifndef PCM_2_FFS | 120 #ifndef PCM_2_FFS |
122 #include "pcm.h" | 121 #include "pcm.h" |
123 #endif | 122 #endif |
124 | |
125 | |
126 | 123 |
127 | 124 |
128 #include "mfw_sys.h" | 125 #include "mfw_sys.h" |
129 | 126 |
130 #include "mfw_mfw.h" | 127 #include "mfw_mfw.h" |
157 #include "MmiDummy.h" | 154 #include "MmiDummy.h" |
158 #include "MmiDialogs.h" | 155 #include "MmiDialogs.h" |
159 #include "MmiLists.h" | 156 #include "MmiLists.h" |
160 | 157 |
161 | 158 |
162 | |
163 #include "MmiMenu.h" | 159 #include "MmiMenu.h" |
164 #include "mmiCall.h" | 160 #include "mmiCall.h" |
165 #include "Mmiicons.h" | 161 #include "Mmiicons.h" |
166 #include "MmiIdle.h" | 162 #include "MmiIdle.h" |
167 | 163 |
176 #include "cus_aci.h" | 172 #include "cus_aci.h" |
177 #include "mfw_ffs.h" | 173 #include "mfw_ffs.h" |
178 #include "MmiTimers.h" | 174 #include "MmiTimers.h" |
179 | 175 |
180 | 176 |
181 | |
182 #include "mmiColours.h" | 177 #include "mmiColours.h" |
183 | 178 |
184 | 179 |
185 #ifndef MFW_EVENT_PASSED | 180 #ifndef MFW_EVENT_PASSED |
186 #define MFW_EVENT_PASSED 0 | 181 #define MFW_EVENT_PASSED 0 |
201 E_BACK, | 196 E_BACK, |
202 E_RETURN, | 197 E_RETURN, |
203 E_ABORT, | 198 E_ABORT, |
204 E_EXIT | 199 E_EXIT |
205 } e_lists_events; | 200 } e_lists_events; |
206 | |
207 | 201 |
208 | 202 |
209 /*----------------------------------------------------------------------------- | 203 /*----------------------------------------------------------------------------- |
210 * | 204 * |
211 * List menu handling functions: | 205 * List menu handling functions: |
229 | 223 |
230 /******************************************************************************* | 224 /******************************************************************************* |
231 | 225 |
232 $Function: listIconsDisplayListMenu | 226 $Function: listIconsDisplayListMenu |
233 | 227 |
234 $Description: Creates a list menu from data stored in NVRAM. | 228 $Description: Creates a list menu from data stored in NVRAM. |
235 | 229 |
236 $Returns: none. | 230 $Returns: none. |
237 | 231 |
238 $Arguments: | 232 $Arguments: |
239 | 233 |
240 *******************************************************************************/ | 234 *******************************************************************************/ |
241 MfwHnd winIconsLists; | 235 MfwHnd winIconsLists; |
247 T_MFW Status = LISTS_OK; | 241 T_MFW Status = LISTS_OK; |
248 | 242 |
249 TRACE_FUNCTION ("listIconsDisplayListMenu() Start"); | 243 TRACE_FUNCTION ("listIconsDisplayListMenu() Start"); |
250 | 244 |
251 winLists = winCreate(Parent, 0, E_WIN_VISIBLE |E_WIN_RESUME|E_WIN_SUSPEND, (MfwCb)listsIconsWinEvent); | 245 winLists = winCreate(Parent, 0, E_WIN_VISIBLE |E_WIN_RESUME|E_WIN_SUSPEND, (MfwCb)listsIconsWinEvent); |
252 winIconsLists=winLists; | 246 winIconsLists=winLists; |
253 if (winLists == NULL) | 247 if (winLists == NULL) |
254 { | 248 { |
255 Status = LISTS_FAIL; /* Inform caller of failure. */ | 249 Status = LISTS_FAIL; /* Inform caller of failure. */ |
256 TRACE_EVENT ("win creation fails"); | 250 TRACE_EVENT ("win creation fails"); |
257 } | 251 } |
258 else | 252 else |
259 { | 253 { |
260 ListIconsWinInfo * ListData = (ListIconsWinInfo *)ALLOC_MEMORY (sizeof (ListIconsWinInfo)); | 254 ListIconsWinInfo * ListData = (ListIconsWinInfo *)ALLOC_MEMORY (sizeof (ListIconsWinInfo)); |
261 | 255 |
262 if (!ListData) | 256 if (!ListData) |
263 { | 257 { |
264 /* cq12719. if insufficient memory for listdata then delete window and Free allocated memory.16-03-04.MZ */ | 258 /* cq12719. if insufficient memory for listdata then delete window and Free allocated memory.16-03-04.MZ */ |
265 if(NULL != winLists) | 259 if(NULL != winLists) |
266 winDelete(winLists); | 260 winDelete(winLists); |
267 | 261 |
268 TRACE_EVENT ("(ListIconsWinInfo *)ALLOC_MEMORY fails"); | 262 TRACE_EVENT ("(ListIconsWinInfo *)ALLOC_MEMORY fails"); |
269 return LISTS_FAIL; | 263 return LISTS_FAIL; |
270 } | 264 } |
271 | 265 |
272 ListData->mmi_control.dialog = (T_DIALOG_FUNC)lists_exec_cb; | 266 ListData->mmi_control.dialog = (T_DIALOG_FUNC)lists_exec_cb; |
273 ListData->mmi_control.data = ListData; | 267 ListData->mmi_control.data = ListData; |
274 win = ((MfwHdr *)winLists)->data; | 268 win = ((MfwHdr *)winLists)->data; |
275 win->user = (void *) ListData; | 269 win->user = (void *) ListData; |
276 | 270 |
277 ListData->Parent = Parent; | 271 ListData->Parent = Parent; |
278 ListData->Callback = cbFunc; | 272 ListData->Callback = cbFunc; |
279 ListData->winLists = winLists; | 273 ListData->winLists = winLists; |
280 ListData->kbdLists = kbdCreate(winLists,Data->KeyEvents|KEY_MAKE,(MfwCb)listsIconsKeyEvent); | 274 ListData->kbdLists = kbdCreate(winLists,Data->KeyEvents|KEY_MAKE,(MfwCb)listsIconsKeyEvent); |
281 ListData->kbdLists_long = kbdCreate(winLists,Data->KeyEvents|KEY_LONG,(MfwCb)listsIconsKeyEvent); | 275 ListData->kbdLists_long = kbdCreate(winLists,Data->KeyEvents|KEY_LONG,(MfwCb)listsIconsKeyEvent); |
282 | 276 |
283 if ((ListData->kbdLists == NULL) || (ListData->kbdLists_long == NULL)) | 277 if ((ListData->kbdLists == NULL) || (ListData->kbdLists_long == NULL)) |
284 { | 278 { |
285 Status = LISTS_FAIL; | 279 Status = LISTS_FAIL; |
286 TRACE_EVENT ("ListData->kbdLists fails"); | 280 TRACE_EVENT ("ListData->kbdLists fails"); |
287 } | 281 } |
288 else | 282 else |
289 { | 283 { |
290 /* Create initial list menu for display. */ | 284 /* Create initial list menu for display. */ |
291 | 285 |
292 /* | 286 /* |
293 * set menu list from outside | 287 * set menu list from outside |
294 */ | 288 */ |
295 ListData->MenuListsAttr = *Data->Attr; /* copy contents */ | 289 ListData->MenuListsAttr = *Data->Attr; /* copy contents */ |
296 | 290 |
297 /* SPR#2492 - DS - Do not overwrite mode settings unless mode is zero */ | 291 /* SPR#2492 - DS - Do not overwrite mode settings unless mode is zero */ |
298 if (ListData->MenuListsAttr.mode == 0x0000) /* Mode not yet setup */ | 292 if (ListData->MenuListsAttr.mode == 0x0000) /* Mode not yet setup */ |
299 ListData->MenuListsAttr.mode = MNU_LEFT | MNU_LIST | MNU_CUR_LINE; | 293 ListData->MenuListsAttr.mode = MNU_LEFT | MNU_LIST | MNU_CUR_LINE; |
300 else | 294 else |
301 ListData->MenuListsAttr.mode |= Data->Attr->mode; | 295 ListData->MenuListsAttr.mode |= Data->Attr->mode; |
302 | 296 |
303 ListData->MenuListsAttr.font = Data->Font; | 297 ListData->MenuListsAttr.font = Data->Font; |
304 ListData->MenuListsAttr.items = Data->List; | 298 ListData->MenuListsAttr.items = Data->List; |
305 ListData->MenuListsAttr.nItems = Data->ListLength; | 299 ListData->MenuListsAttr.nItems = Data->ListLength; |
306 | 300 |
307 /* START: x0045876, 05-June-2006 (OMAPS00060424 - Header Toggle) */ | 301 /* START: x0045876, 05-June-2006 (OMAPS00060424 - Header Toggle) */ |
308 ListData->MenuListsAttr.header_toggle = Data->Attr->header_toggle; | 302 ListData->MenuListsAttr.header_toggle = Data->Attr->header_toggle; |
309 if (ListData->MenuListsAttr.header_toggle) | 303 if (ListData->MenuListsAttr.header_toggle) |
310 g_win = winLists; | 304 g_win = winLists; |
311 /* END: x0045876, 05-June-2006 (OMAPS00060424 - Header Toggle) */ | 305 /* END: x0045876, 05-June-2006 (OMAPS00060424 - Header Toggle) */ |
312 | 306 |
313 | 307 |
314 /* | 308 /* |
315 * Intialize List Menu Data | 309 * Intialize List Menu Data |
316 */ | 310 */ |
317 ListData->MenuData = Data; /* copy contents */ | 311 ListData->MenuData = Data; /* copy contents */ |
318 ListData->MenuData->listCol = COLOUR_LIST_XX; //Set-up colour | 312 ListData->MenuData->listCol = COLOUR_LIST_XX; //Set-up colour |
319 ListData->MenuData->Attr = &ListData->MenuListsAttr; /* copy data*/ | 313 ListData->MenuData->Attr = &ListData->MenuListsAttr; /* copy data*/ |
320 ListData->MenuLists = mnuCreate(winLists, &ListData->MenuListsAttr, | 314 ListData->MenuLists = mnuCreate(winLists, &ListData->MenuListsAttr, |
321 E_MNU_SELECT | E_MNU_ESCAPE| E_MNU_POSTDRAW, | 315 E_MNU_SELECT | E_MNU_ESCAPE| E_MNU_POSTDRAW, |
322 (MfwCb)listsIconsListCbMenu); | 316 (MfwCb)listsIconsListCbMenu); |
323 ListData->MenuData->win = winLists; | 317 ListData->MenuData->win = winLists; |
324 Data->win = winLists; | 318 Data->win = winLists; |
325 mnuScrollMode(ListData->MenuLists,0); | 319 mnuScrollMode(ListData->MenuLists,0); |
326 if (Data->Strings) | 320 if (Data->Strings) |
327 mnuLang (ListData->MenuLists,0); | 321 mnuLang (ListData->MenuLists,0); |
328 else | 322 else |
329 mnuLang (ListData->MenuLists,mainMmiLng); | 323 mnuLang (ListData->MenuLists,mainMmiLng); |
330 | 324 |
331 /* SPR#1983 - SH - Set up whether menu is in unicode or not */ | 325 /* SPR#1983 - SH - Set up whether menu is in unicode or not */ |
332 if (inUnicode != 0) | 326 if (inUnicode != 0) |
333 { | 327 { |
334 mnuDCSType(ListData->MenuLists, inUnicode); /* Unicode display */ | 328 mnuDCSType(ListData->MenuLists, inUnicode); /* Unicode display */ |
335 } | 329 } |
336 mnuChooseVisibleItem(ListData->MenuLists, Data->ListPosition-1); | 330 mnuChooseVisibleItem(ListData->MenuLists, Data->ListPosition-1); |
337 mnuUnhide(ListData->MenuLists); | 331 mnuUnhide(ListData->MenuLists); |
338 displaySoftKeys(ListData->MenuData->LeftSoftKey,ListData->MenuData->RightSoftKey); | 332 displaySoftKeys(ListData->MenuData->LeftSoftKey,ListData->MenuData->RightSoftKey); |
339 winShow(winLists); | 333 winShow(winLists); |
340 | 334 |
341 } | 335 } |
342 } | 336 } |
343 return Status; | 337 return Status; |
344 } | 338 } |
345 | 339 |
346 static int listsIconsKeyEvent (MfwEvt e, MfwKbd *k) | 340 static int listsIconsKeyEvent (MfwEvt e, MfwKbd *k) |
347 /* list keyboard event handler */ | 341 /* list keyboard event handler */ |
349 T_MFW_HND win = mfwParent(mfw_header()); | 343 T_MFW_HND win = mfwParent(mfw_header()); |
350 T_MFW_WIN * win_data = ((T_MFW_HDR *)win)->data; | 344 T_MFW_WIN * win_data = ((T_MFW_HDR *)win)->data; |
351 ListIconsWinInfo * data = (ListIconsWinInfo *)win_data->user; | 345 ListIconsWinInfo * data = (ListIconsWinInfo *)win_data->user; |
352 MfwMnu *MenuHandle; | 346 MfwMnu *MenuHandle; |
353 | 347 |
354 /* This trace function was added inside the fflag by vinoj to remove compilation error: 2/6/06*/ | 348 /* This trace function was added inside the fflag by vinoj to remove compilation error: 2/6/06*/ |
355 TRACE_FUNCTION("listsIconsKeyEvent() start"); | 349 TRACE_FUNCTION("listsIconsKeyEvent() start"); |
356 { | 350 { |
357 //xrashmic 5 Oct, 2005 MMI-SPR-29356, MMI-SPR-29357 | 351 //xrashmic 5 Oct, 2005 MMI-SPR-29356, MMI-SPR-29357 |
358 //Initialize selectKey to FALSE here. It will be set to TRUE only when a key event for KCD_MNUSELECT occurs. | 352 //Initialize selectKey to FALSE here. It will be set to TRUE only when a key event for KCD_MNUSELECT occurs. |
359 data->MenuData->selectKey = FALSE; | 353 data->MenuData->selectKey = FALSE; |
360 if (!(e & KEY_MAKE)) | 354 if (!(e & KEY_MAKE)) |
361 { | 355 { |
362 return MFW_EVENT_CONSUMED; | 356 return MFW_EVENT_CONSUMED; |
363 } | 357 } |
364 if(data->MenuData->block_keys == TRUE) | 358 if(data->MenuData->block_keys == TRUE) |
365 { | 359 { |
366 return MFW_EVENT_CONSUMED; | 360 return MFW_EVENT_CONSUMED; |
367 } | 361 } |
368 if (e & KEY_LONG) | 362 if (e & KEY_LONG) |
369 { | 363 { |
370 switch (k->code) | 364 switch (k->code) |
371 { | 365 { |
372 case KCD_HUP: /* back to previous menu */ | 366 case KCD_HUP: /* back to previous menu */ |
373 mnuEscape(data->MenuLists); | 367 mnuEscape(data->MenuLists); |
374 break; | 368 break; |
375 case KCD_RIGHT: /* Power Down */ | 369 case KCD_RIGHT: /* Power Down */ |
376 return MFW_EVENT_PASSED; /* handled by idle */ | 370 return MFW_EVENT_PASSED; /* handled by idle */ |
377 default: /* no response to all other keys */ | 371 default: /* no response to all other keys */ |
378 return MFW_EVENT_CONSUMED; | 372 return MFW_EVENT_CONSUMED; |
379 } | 373 } |
380 } | 374 } |
381 else | 375 else |
382 { | 376 { |
383 switch (k->code) | 377 switch (k->code) |
384 { | 378 { |
385 case KCD_MNUUP: /* highlight previous entry */ | 379 case KCD_MNUUP: /* highlight previous entry */ |
386 mnuUp(data->MenuLists); | 380 mnuUp(data->MenuLists); |
387 { | 381 { |
388 MenuHandle = mfwControl(data->MenuLists); | 382 MenuHandle = mfwControl(data->MenuLists); |
389 data->MenuData->Reason = LISTS_REASON_SCROLL; | 383 data->MenuData->Reason = LISTS_REASON_SCROLL; |
390 data->MenuData->CursorPosition = MenuHandle->lCursor[MenuHandle->level]; | 384 data->MenuData->CursorPosition = MenuHandle->lCursor[MenuHandle->level]; |
391 data->MenuData->ListPosition = MenuHandle->lCursor[MenuHandle->level]; | 385 data->MenuData->ListPosition = MenuHandle->lCursor[MenuHandle->level]; |
392 // Send event to indicate that the user has scrolled list items | 386 // Send event to indicate that the user has scrolled list items |
393 SEND_EVENT(data->Parent, LISTS_REASON_SCROLL, 0, NULL); | 387 SEND_EVENT(data->Parent, LISTS_REASON_SCROLL, 0, NULL); |
394 } | 388 } |
395 | 389 |
396 break; | 390 break; |
397 case KCD_MNUDOWN: /* highlight next entry */ | 391 case KCD_MNUDOWN: /* highlight next entry */ |
398 mnuDown(data->MenuLists); | 392 mnuDown(data->MenuLists); |
399 { | 393 { |
400 MenuHandle = mfwControl(data->MenuLists); | 394 MenuHandle = mfwControl(data->MenuLists); |
401 data->MenuData->Reason = LISTS_REASON_SCROLL; | 395 data->MenuData->Reason = LISTS_REASON_SCROLL; |
402 data->MenuData->CursorPosition = MenuHandle->lCursor[MenuHandle->level]; | 396 data->MenuData->CursorPosition = MenuHandle->lCursor[MenuHandle->level]; |
403 data->MenuData->ListPosition = MenuHandle->lCursor[MenuHandle->level]; | 397 data->MenuData->ListPosition = MenuHandle->lCursor[MenuHandle->level]; |
404 // Send event to indicate that the user has scrolled list items | 398 // Send event to indicate that the user has scrolled list items |
405 SEND_EVENT(data->Parent, LISTS_REASON_SCROLL, 0, NULL); | 399 SEND_EVENT(data->Parent, LISTS_REASON_SCROLL, 0, NULL); |
406 } | 400 } |
407 break; | 401 break; |
408 case KCD_MNUSELECT: | 402 case KCD_MNUSELECT: |
409 //xrashmic 5 Oct, 2005 MMI-SPR-29356, MMI-SPR-29357 | 403 //xrashmic 5 Oct, 2005 MMI-SPR-29356, MMI-SPR-29357 |
410 //Menu Select Key was pressed, storing this for future use. | 404 //Menu Select Key was pressed, storing this for future use. |
411 data->MenuData->selectKey = TRUE; | 405 data->MenuData->selectKey = TRUE; |
412 //Break is delibrately not used here. The control should pass through the KCD_LEFT case. | 406 //Break is delibrately not used here. The control should pass through the KCD_LEFT case. |
413 case KCD_LEFT: /* activate this entry */ | 407 case KCD_LEFT: /* activate this entry */ |
414 MenuHandle = mfwControl(data->MenuLists); | 408 MenuHandle = mfwControl(data->MenuLists); |
415 data->MenuData->CursorPosition = MenuHandle->lCursor[MenuHandle->level]; | 409 data->MenuData->CursorPosition = MenuHandle->lCursor[MenuHandle->level]; |
416 mnuSelect(data->MenuLists); | 410 mnuSelect(data->MenuLists); |
417 break; | 411 break; |
418 case KCD_CALL: /* press send key */ | 412 case KCD_CALL: /* press send key */ |
419 data->ExitReason = LISTS_REASON_SEND; | 413 data->ExitReason = LISTS_REASON_SEND; |
420 data->MenuData->Reason = LISTS_REASON_SEND; | 414 data->MenuData->Reason = LISTS_REASON_SEND; |
421 MenuHandle = mfwControl(data->MenuLists); | 415 MenuHandle = mfwControl(data->MenuLists); |
422 data->MenuData->CursorPosition = MenuHandle->lCursor[MenuHandle->level]; | 416 data->MenuData->CursorPosition = MenuHandle->lCursor[MenuHandle->level]; |
423 data->MenuData->ListPosition = MenuHandle->lCursor[MenuHandle->level]; /* True cursor position in list menu. */ | 417 data->MenuData->ListPosition = MenuHandle->lCursor[MenuHandle->level]; /* True cursor position in list menu. */ |
424 | 418 |
425 /* SPR998 - SH - check if callback exists before calling it! */ | 419 /* SPR998 - SH - check if callback exists before calling it! */ |
426 if (data->Callback) | 420 if (data->Callback) |
427 data->Callback(data->Parent, data->MenuData); | 421 data->Callback(data->Parent, data->MenuData); |
428 | 422 |
429 if (data->MenuData->autoDestroy) | 423 if (data->MenuData->autoDestroy) |
430 { | 424 { |
431 /* START: 05-June-2006, x0045876 (OMAPS00060424 - Header Toggle) */ | 425 /* START: 05-June-2006, x0045876 (OMAPS00060424 - Header Toggle) */ |
432 if (data->MenuListsAttr.header_toggle) | 426 if (data->MenuListsAttr.header_toggle) |
433 { | 427 { |
434 if (g_title_timer) | 428 if (g_title_timer) |
435 { | 429 { |
436 tim_delete(g_title_timer); | 430 tim_delete(g_title_timer); |
437 g_title_timer = NULL; | 431 g_title_timer = NULL; |
438 } | 432 } |
439 } | 433 } |
440 /* END: 05-June-2006, x0045876 (OMAPS00060424 - Header Toggle) */ | 434 /* END: 05-June-2006, x0045876 (OMAPS00060424 - Header Toggle) */ |
441 winDelete (win); | 435 winDelete (win); |
442 FREE_MEMORY ((void*)data, sizeof (ListIconsWinInfo)); | 436 FREE_MEMORY ((void*)data, sizeof (ListIconsWinInfo)); |
443 } | 437 } |
444 break; | 438 break; |
445 case KCD_HUP: /* back to previous menu */ | 439 case KCD_HUP: /* back to previous menu */ |
446 data->ExitReason = LISTS_REASON_HANGUP; | 440 data->ExitReason = LISTS_REASON_HANGUP; |
447 data->MenuData->Reason = LISTS_REASON_HANGUP; | 441 data->MenuData->Reason = LISTS_REASON_HANGUP; |
448 /*NM, p023 */ | 442 /*NM, p023 */ |
449 | 443 |
450 MenuHandle = mfwControl(data->MenuLists); | 444 MenuHandle = mfwControl(data->MenuLists); |
451 data->MenuData->CursorPosition = MenuHandle->lCursor[MenuHandle->level]; | 445 data->MenuData->CursorPosition = MenuHandle->lCursor[MenuHandle->level]; |
452 data->MenuData->ListPosition = MenuHandle->lCursor[MenuHandle->level]; /* True cursor position in list menu. */ | 446 data->MenuData->ListPosition = MenuHandle->lCursor[MenuHandle->level]; /* True cursor position in list menu. */ |
453 /*NM, p023 end */ | 447 /*NM, p023 end */ |
454 data->Callback(data->Parent, data->MenuData); | 448 data->Callback(data->Parent, data->MenuData); |
455 //July 10, 2007 REF: DRT OMAPS00135679 x0073106 | 449 //July 10, 2007 REF: DRT OMAPS00135679 x0073106 |
456 /*if (data->MenuData->autoDestroy) | 450 /*if (data->MenuData->autoDestroy) |
457 {*/ | 451 {*/ |
458 /* START: 05-June-2006, x0045876 (OMAPS00060424 - Header Toggle) */ | 452 /* START: 05-June-2006, x0045876 (OMAPS00060424 - Header Toggle) */ |
459 if (data->MenuListsAttr.header_toggle) | 453 if (data->MenuListsAttr.header_toggle) |
460 { | 454 { |
461 if (g_title_timer) | 455 if (g_title_timer) |
462 { | 456 { |
463 tim_delete(g_title_timer); | 457 tim_delete(g_title_timer); |
464 g_title_timer = NULL; | 458 g_title_timer = NULL; |
465 } | 459 } |
466 } | 460 } |
467 /* END: 05-June-2006, x0045876 (OMAPS00060424 - Header Toggle) */ | 461 /* END: 05-June-2006, x0045876 (OMAPS00060424 - Header Toggle) */ |
468 /* winDelete (win); | 462 /* winDelete (win); |
469 FREE_MEMORY ((void*)data, sizeof (ListIconsWinInfo)); | 463 FREE_MEMORY ((void*)data, sizeof (ListIconsWinInfo)); |
470 }*/ | 464 }*/ |
471 break; | 465 break; |
472 case KCD_RIGHT: /* back to previous menu */ | 466 case KCD_RIGHT: /* back to previous menu */ |
473 mnuEscape(data->MenuLists); | 467 mnuEscape(data->MenuLists); |
474 break; | 468 break; |
475 default: /* no response to all other keys */ | 469 default: /* no response to all other keys */ |
476 return MFW_EVENT_CONSUMED; | 470 return MFW_EVENT_CONSUMED; |
477 } | 471 } |
478 } | 472 } |
479 } | 473 } |
480 return MFW_EVENT_CONSUMED; | 474 return MFW_EVENT_CONSUMED; |
481 } | 475 } |
482 | 476 |
483 /******************************************************************************* | 477 /******************************************************************************* |
484 | 478 |
485 $Function: listsWinEvent | 479 $Function: listsWinEvent |
486 | 480 |
487 $Description: window event handler | 481 $Description: window event handler |
488 | 482 |
489 $Returns: none. | 483 $Returns: none. |
490 | 484 |
491 $Arguments: | 485 $Arguments: |
492 | 486 |
493 *******************************************************************************/ | 487 *******************************************************************************/ |
494 static int listsIconsWinEvent(MfwEvt e, MfwWin *w) | 488 static int listsIconsWinEvent(MfwEvt e, MfwWin *w) |
496 ListIconsWinInfo * ListData = (ListIconsWinInfo *)w->user; | 490 ListIconsWinInfo * ListData = (ListIconsWinInfo *)w->user; |
497 | 491 |
498 TRACE_FUNCTION("listsIconsWinEvent() start"); | 492 TRACE_FUNCTION("listsIconsWinEvent() start"); |
499 TRACE_EVENT_P1("ListData->Parent %x",ListData->Parent); | 493 TRACE_EVENT_P1("ListData->Parent %x",ListData->Parent); |
500 switch (e) | 494 switch (e) |
501 { | 495 { |
502 case E_WIN_VISIBLE: | 496 case E_WIN_VISIBLE: |
503 SEND_EVENT(ListData->Parent,LISTS_REASON_VISIBLE,0,(void*)ListData); | 497 SEND_EVENT(ListData->Parent,LISTS_REASON_VISIBLE,0,(void*)ListData); |
504 break; | 498 break; |
505 case MfwWinResume: | 499 case MfwWinResume: |
506 SEND_EVENT(ListData->Parent,LISTS_REASON_RESUME,0,(void*)ListData); | 500 SEND_EVENT(ListData->Parent,LISTS_REASON_RESUME,0,(void*)ListData); |
507 break; | 501 break; |
508 case MfwWinSuspend: | 502 case MfwWinSuspend: |
509 SEND_EVENT(ListData->Parent,LISTS_REASON_SUSPEND,0,(void*)ListData); | 503 SEND_EVENT(ListData->Parent,LISTS_REASON_SUSPEND,0,(void*)ListData); |
510 break; | 504 break; |
511 } | 505 } |
512 return MFW_EVENT_CONSUMED; | 506 return MFW_EVENT_CONSUMED; |
513 } | 507 } |
514 /*a0393213 lint warning removal - This function is not used currently. So it's put under the flag. If it is required just remove the flag.*/ | 508 /*a0393213 lint warning removal - This function is not used currently. So it's put under the flag. If it is required just remove the flag.*/ |
515 #ifdef MMI_LINT_WARNING_REMOVAL | 509 #ifdef MMI_LINT_WARNING_REMOVAL |
516 static void listsIcons_exec_cb (T_MFW_HND win, USHORT event, SHORT value, void * parameter) | 510 static void listsIcons_exec_cb (T_MFW_HND win, USHORT event, SHORT value, void * parameter) |
521 SHORT l_id; | 515 SHORT l_id; |
522 | 516 |
523 TRACE_FUNCTION ("listsIcons_exec_cb() start"); | 517 TRACE_FUNCTION ("listsIcons_exec_cb() start"); |
524 | 518 |
525 switch (event) | 519 switch (event) |
526 { | 520 { |
527 case E_INIT: | 521 case E_INIT: |
528 case E_BACK: | 522 case E_BACK: |
529 case E_RETURN: | 523 case E_RETURN: |
530 case E_ABORT: | 524 case E_ABORT: |
531 case E_EXIT: | 525 case E_EXIT: |
532 /* defaultreaction */ | 526 /* defaultreaction */ |
533 l_parent = ListData->Parent; | 527 l_parent = ListData->Parent; |
534 l_id = ListData->id; | 528 l_id = ListData->id; |
535 | 529 |
536 /* START: 05-June-2006, x0045876 (OMAPS00060424 - Header Toggle) */ | 530 /* START: 05-June-2006, x0045876 (OMAPS00060424 - Header Toggle) */ |
537 if (ListData->MenuListsAttr.header_toggle) | 531 if (ListData->MenuListsAttr.header_toggle) |
538 { | 532 { |
539 if (g_title_timer) | 533 if (g_title_timer) |
540 { | 534 { |
541 tim_delete(g_title_timer); | 535 tim_delete(g_title_timer); |
542 g_title_timer = NULL; | 536 g_title_timer = NULL; |
543 } | 537 } |
544 } | 538 } |
545 /* END: 05-June-2006, x0045876 (OMAPS00060424 - Header Toggle) */ | 539 /* END: 05-June-2006, x0045876 (OMAPS00060424 - Header Toggle) */ |
546 winDelete (win); | 540 winDelete (win); |
547 FREE_MEMORY ((void*) ListData, sizeof (ListIconsWinInfo)); | 541 FREE_MEMORY ((void*) ListData, sizeof (ListIconsWinInfo)); |
548 SEND_EVENT (l_parent, event, l_id, NULL); /* forward event to parent */ | 542 SEND_EVENT (l_parent, event, l_id, NULL); /* forward event to parent */ |
549 break; | 543 break; |
550 default: | 544 default: |
551 return; | 545 return; |
552 } | 546 } |
553 } | 547 } |
554 #endif | 548 #endif |
555 | 549 |
556 | 550 |
557 /******************************************************************************* | 551 /******************************************************************************* |
558 | 552 |
559 $Function: listsListCbMenu | 553 $Function: listsListCbMenu |
560 | 554 |
561 $Description: List menu handler. (mfw callback function) | 555 $Description: List menu handler. (mfw callback function) |
562 | 556 |
563 $Returns: none. | 557 $Returns: none. |
564 | 558 |
565 $Arguments: | 559 $Arguments: |
566 | 560 |
567 *******************************************************************************/ | 561 *******************************************************************************/ |
568 int listsIconsListCbMenu(MfwEvt EventCode, MfwMnu *MenuHandle) | 562 int listsIconsListCbMenu(MfwEvt EventCode, MfwMnu *MenuHandle) |
572 T_MFW_WIN * win_data = ((T_MFW_HDR *)win)->data; | 566 T_MFW_WIN * win_data = ((T_MFW_HDR *)win)->data; |
573 ListIconsWinInfo* ListData = (ListIconsWinInfo *)win_data->user; | 567 ListIconsWinInfo* ListData = (ListIconsWinInfo *)win_data->user; |
574 | 568 |
575 TRACE_FUNCTION("listsIconsListCbMenu() "); | 569 TRACE_FUNCTION("listsIconsListCbMenu() "); |
576 switch (EventCode) | 570 switch (EventCode) |
577 { | 571 { |
578 case E_MNU_SELECT: | 572 case E_MNU_SELECT: |
579 ListData->ExitReason = E_MNU_SELECT; | 573 ListData->ExitReason = E_MNU_SELECT; |
580 ListData->MenuData->Reason = LISTS_REASON_SELECT;// MZ 14/2/01 E_MNU_SELECT; | 574 ListData->MenuData->Reason = LISTS_REASON_SELECT;// MZ 14/2/01 E_MNU_SELECT; |
581 ListData->MenuData->CursorPosition = MenuHandle->lCursor[MenuHandle->level]; | 575 ListData->MenuData->CursorPosition = MenuHandle->lCursor[MenuHandle->level]; |
582 ListData->MenuData->ListPosition = MenuHandle->lCursor[MenuHandle->level]; /* True cursor position in list menu. */ | 576 ListData->MenuData->ListPosition = MenuHandle->lCursor[MenuHandle->level]; /* True cursor position in list menu. */ |
583 /* SPR998 - SH - check if callback exists before calling it! */ | 577 /* SPR998 - SH - check if callback exists before calling it! */ |
584 if (ListData->Callback) | 578 if (ListData->Callback) |
585 ListData->Callback(ListData->Parent, ListData->MenuData); | 579 ListData->Callback(ListData->Parent, ListData->MenuData); |
586 break; | 580 break; |
587 case E_MNU_ESCAPE: | 581 case E_MNU_ESCAPE: |
588 ListData->ExitReason = LISTS_REASON_BACK; | 582 ListData->ExitReason = LISTS_REASON_BACK; |
589 ListData->MenuData->Reason = LISTS_REASON_BACK; | 583 ListData->MenuData->Reason = LISTS_REASON_BACK; |
590 /*NM, p023*/ | 584 /*NM, p023*/ |
591 ListData->MenuData->CursorPosition = MenuHandle->lCursor[MenuHandle->level]; | 585 ListData->MenuData->CursorPosition = MenuHandle->lCursor[MenuHandle->level]; |
592 ListData->MenuData->ListPosition = MenuHandle->lCursor[MenuHandle->level]; /* True cursor position in list menu. */ | 586 ListData->MenuData->ListPosition = MenuHandle->lCursor[MenuHandle->level]; /* True cursor position in list menu. */ |
593 /*NM, p023*/ | 587 /*NM, p023*/ |
594 | 588 |
595 /* SPR998 - SH - check if callback exists before calling it! */ | 589 /* SPR998 - SH - check if callback exists before calling it! */ |
596 if (ListData->Callback) | 590 if (ListData->Callback) |
597 ListData->Callback(ListData->Parent, ListData->MenuData); | 591 ListData->Callback(ListData->Parent, ListData->MenuData); |
598 | 592 |
599 break; | 593 break; |
600 case E_MNU_POSTDRAW: | 594 case E_MNU_POSTDRAW: |
601 { | 595 { |
602 T_MFW_WIN * winIconsLists_data = ((T_MFW_HDR *)winIconsLists)->data; | 596 T_MFW_WIN * winIconsLists_data = ((T_MFW_HDR *)winIconsLists)->data; |
603 ListIconsWinInfo* winIconsListsData = (ListIconsWinInfo *)winIconsLists_data->user; | 597 ListIconsWinInfo* winIconsListsData = (ListIconsWinInfo *)winIconsLists_data->user; |
604 winIconsListsData->ExitReason = LISTS_REASON_DRAWCOMPLETE; | 598 winIconsListsData->ExitReason = LISTS_REASON_DRAWCOMPLETE; |
605 winIconsListsData->MenuData->Reason = LISTS_REASON_DRAWCOMPLETE; | 599 winIconsListsData->MenuData->Reason = LISTS_REASON_DRAWCOMPLETE; |
606 winIconsListsData->MenuData->CursorPosition = MenuHandle->lCursor[MenuHandle->level]; | 600 winIconsListsData->MenuData->CursorPosition = MenuHandle->lCursor[MenuHandle->level]; |
607 winIconsListsData->MenuData->ListPosition = MenuHandle->lCursor[MenuHandle->level]; /* True cursor position in list menu. */ | 601 winIconsListsData->MenuData->ListPosition = MenuHandle->lCursor[MenuHandle->level]; /* True cursor position in list menu. */ |
608 winIconsListsData->MenuData->lineHeight= MenuHandle->lineHeight; | 602 winIconsListsData->MenuData->lineHeight= MenuHandle->lineHeight; |
609 if (winIconsListsData->Callback) | 603 if (winIconsListsData->Callback) |
610 winIconsListsData->Callback(winIconsListsData->Parent, winIconsListsData->MenuData); | 604 winIconsListsData->Callback(winIconsListsData->Parent, winIconsListsData->MenuData); |
611 } | 605 } |
612 break; | 606 break; |
613 default: | 607 default: |
614 Status = LISTS_FAIL; | 608 Status = LISTS_FAIL; |
615 break; | 609 break; |
616 } | 610 } |
617 | |
618 | 611 |
619 return Status; | 612 return Status; |
620 } | 613 } |
621 | 614 |
622 void listsIconsDestroy(T_MFW_HND win) | 615 void listsIconsDestroy(T_MFW_HND win) |
623 { | 616 { |
624 T_MFW_WIN * win_data = ((T_MFW_HDR *) win)->data; | 617 T_MFW_WIN * win_data = ((T_MFW_HDR *) win)->data; |
625 ListIconsWinInfo * ListData = (ListIconsWinInfo *)win_data->user; | 618 ListIconsWinInfo * ListData = (ListIconsWinInfo *)win_data->user; |
626 TRACE_EVENT_P1("listsIconsDestroy %x",win); | 619 TRACE_EVENT_P1("listsIconsDestroy %x",win); |
627 | 620 |
628 /* START: 05-June-2006, x0045876 (OMAPS00060424 - Header Toggle) */ | 621 /* START: 05-June-2006, x0045876 (OMAPS00060424 - Header Toggle) */ |
629 if (ListData->MenuListsAttr.header_toggle) | 622 if (ListData->MenuListsAttr.header_toggle) |
630 { | 623 { |
631 if(g_title_timer) | 624 if(g_title_timer) |
632 { | 625 { |
633 tim_delete(g_title_timer); | 626 tim_delete(g_title_timer); |
634 g_title_timer = NULL; | 627 g_title_timer = NULL; |
635 } | 628 } |
636 } | 629 } |
637 /* END: 05-June-2006, x0045876 (OMAPS00060424 - Header Toggle) */ | 630 /* END: 05-June-2006, x0045876 (OMAPS00060424 - Header Toggle) */ |
638 | 631 |
639 winDelete (win); | 632 winDelete (win); |
640 FREE_MEMORY ((void*) ListData, sizeof (ListIconsWinInfo)); | 633 FREE_MEMORY ((void*) ListData, sizeof (ListIconsWinInfo)); |
641 | |
642 } | 634 } |
643 | 635 |
644 /******************************************************************************* | 636 /******************************************************************************* |
645 | 637 |
646 $Function: listDisplayListMenu | 638 $Function: listDisplayListMenu |
647 | 639 |
648 $Description: Creates a list menu from data stored in NVRAM. | 640 $Description: Creates a list menu from data stored in NVRAM. |
649 | 641 |
650 $Returns: none. | 642 $Returns: none. |
651 | 643 |
652 $Arguments: | 644 $Arguments: |
653 | 645 |
654 *******************************************************************************/ | 646 *******************************************************************************/ |
655 T_MFW listDisplayListMenu (MfwHnd Parent, ListMenuData *Data, ListCbFunc cbFunc,int inUnicode) | 647 T_MFW listDisplayListMenu (MfwHnd Parent, ListMenuData *Data, ListCbFunc cbFunc,int inUnicode) |
662 TRACE_FUNCTION ("listDisplayListMenu() Start"); | 654 TRACE_FUNCTION ("listDisplayListMenu() Start"); |
663 | 655 |
664 winLists = winCreate(Parent, 0, E_WIN_VISIBLE |E_WIN_RESUME|E_WIN_SUSPEND, (MfwCb)listsWinEvent); | 656 winLists = winCreate(Parent, 0, E_WIN_VISIBLE |E_WIN_RESUME|E_WIN_SUSPEND, (MfwCb)listsWinEvent); |
665 | 657 |
666 if (winLists == NULL) | 658 if (winLists == NULL) |
667 { | 659 { |
668 Status = LISTS_FAIL; /* Inform caller of failure. */ | 660 Status = LISTS_FAIL; /* Inform caller of failure. */ |
669 TRACE_EVENT ("win creation fails"); | 661 TRACE_EVENT ("win creation fails"); |
670 } | 662 } |
671 else | 663 else |
672 { | 664 { |
673 ListWinInfo * ListData = (ListWinInfo *)ALLOC_MEMORY (sizeof (ListWinInfo)); | 665 ListWinInfo * ListData = (ListWinInfo *)ALLOC_MEMORY (sizeof (ListWinInfo)); |
674 | 666 |
675 if (!ListData) | 667 if (!ListData) |
676 { | 668 { |
677 /* cq12719. if insufficient memory for listdata then delete window and Free allocated memory.16-03-04.MZ */ | 669 /* cq12719. if insufficient memory for listdata then delete window and Free allocated memory.16-03-04.MZ */ |
678 if(NULL != winLists) | 670 if(NULL != winLists) |
679 winDelete(winLists); | 671 winDelete(winLists); |
680 | 672 |
681 TRACE_EVENT ("(ListWinInfo *)ALLOC_MEMORY fails"); | 673 TRACE_EVENT ("(ListWinInfo *)ALLOC_MEMORY fails"); |
682 return LISTS_FAIL; | 674 return LISTS_FAIL; |
683 } | 675 } |
684 | 676 |
685 ListData->mmi_control.dialog = (T_DIALOG_FUNC)lists_exec_cb; | 677 ListData->mmi_control.dialog = (T_DIALOG_FUNC)lists_exec_cb; |
686 ListData->mmi_control.data = ListData; | 678 ListData->mmi_control.data = ListData; |
687 win = ((MfwHdr *)winLists)->data; | 679 win = ((MfwHdr *)winLists)->data; |
688 win->user = (void *) ListData; | 680 win->user = (void *) ListData; |
689 | 681 |
690 ListData->Parent = Parent; | 682 ListData->Parent = Parent; |
691 ListData->Callback = cbFunc; | 683 ListData->Callback = cbFunc; |
692 ListData->winLists = winLists; | 684 ListData->winLists = winLists; |
693 ListData->kbdLists = kbdCreate(winLists,Data->KeyEvents|KEY_MAKE, (MfwCb)listsKeyEvent); | 685 ListData->kbdLists = kbdCreate(winLists,Data->KeyEvents|KEY_MAKE, (MfwCb)listsKeyEvent); |
694 ListData->kbdLists_long = kbdCreate(winLists,Data->KeyEvents|KEY_LONG,(MfwCb)listsKeyEvent); | 686 ListData->kbdLists_long = kbdCreate(winLists,Data->KeyEvents|KEY_LONG,(MfwCb)listsKeyEvent); |
695 | 687 |
696 if ((ListData->kbdLists == NULL) || (ListData->kbdLists_long == NULL)) | 688 if ((ListData->kbdLists == NULL) || (ListData->kbdLists_long == NULL)) |
697 { | 689 { |
698 Status = LISTS_FAIL; | 690 Status = LISTS_FAIL; |
699 TRACE_EVENT ("ListData->kbdLists fails"); | 691 TRACE_EVENT ("ListData->kbdLists fails"); |
700 } | 692 } |
701 else | 693 else |
702 { | 694 { |
703 /* Create initial list menu for display. */ | 695 /* Create initial list menu for display. */ |
704 | 696 |
705 /* | 697 /* |
706 * set menu list from outside | 698 * set menu list from outside |
707 */ | 699 */ |
708 ListData->MenuListsAttr = *Data->Attr; /* copy contents */ | 700 ListData->MenuListsAttr = *Data->Attr; /* copy contents */ |
709 | 701 |
710 /* SPR#2492 - DS - Do not overwrite mode settings unless mode is zero */ | 702 /* SPR#2492 - DS - Do not overwrite mode settings unless mode is zero */ |
711 if (ListData->MenuListsAttr.mode == 0x0000) /* Mode not yet setup */ | 703 if (ListData->MenuListsAttr.mode == 0x0000) /* Mode not yet setup */ |
712 ListData->MenuListsAttr.mode = MNU_LEFT | MNU_LIST | MNU_CUR_LINE; | 704 ListData->MenuListsAttr.mode = MNU_LEFT | MNU_LIST | MNU_CUR_LINE; |
713 else | 705 else |
714 ListData->MenuListsAttr.mode |= Data->Attr->mode; | 706 ListData->MenuListsAttr.mode |= Data->Attr->mode; |
715 | 707 |
716 ListData->MenuListsAttr.font = Data->Font; | 708 ListData->MenuListsAttr.font = Data->Font; |
717 ListData->MenuListsAttr.items = Data->List; | 709 ListData->MenuListsAttr.items = Data->List; |
718 ListData->MenuListsAttr.nItems = Data->ListLength; | 710 ListData->MenuListsAttr.nItems = Data->ListLength; |
719 | 711 |
720 /* START: x0045876, 05-June-2006 (OMAPS00060424 - Header Toggle) */ | 712 /* START: x0045876, 05-June-2006 (OMAPS00060424 - Header Toggle) */ |
721 ListData->MenuListsAttr.header_toggle = Data->Attr->header_toggle; | 713 ListData->MenuListsAttr.header_toggle = Data->Attr->header_toggle; |
722 if (ListData->MenuListsAttr.header_toggle) | 714 if (ListData->MenuListsAttr.header_toggle) |
723 g_win = winLists; | 715 g_win = winLists; |
724 /* END: x0045876, 05-June-2006 (OMAPS00060424 - Header Toggle) */ | 716 /* END: x0045876, 05-June-2006 (OMAPS00060424 - Header Toggle) */ |
725 | 717 |
726 | 718 |
727 /* | 719 /* |
728 * Intialize List Menu Data | 720 * Intialize List Menu Data |
729 */ | 721 */ |
730 ListData->MenuData = *Data; /* copy contents */ | 722 ListData->MenuData = *Data; /* copy contents */ |
731 ListData->MenuData.listCol = COLOUR_LIST_XX; //Set-up colour | 723 ListData->MenuData.listCol = COLOUR_LIST_XX; //Set-up colour |
732 ListData->MenuData.Attr = &ListData->MenuListsAttr; /* copy data*/ | 724 ListData->MenuData.Attr = &ListData->MenuListsAttr; /* copy data*/ |
733 ListData->MenuLists = mnuCreate(winLists, &ListData->MenuListsAttr, | 725 ListData->MenuLists = mnuCreate(winLists, &ListData->MenuListsAttr, |
734 E_MNU_SELECT | E_MNU_ESCAPE, | 726 E_MNU_SELECT | E_MNU_ESCAPE, |
735 (MfwCb)listsListCbMenu); | 727 (MfwCb)listsListCbMenu); |
736 ListData->MenuData.win = winLists; | 728 ListData->MenuData.win = winLists; |
737 Data->win = winLists; | 729 Data->win = winLists; |
738 mnuScrollMode(ListData->MenuLists,1); | 730 mnuScrollMode(ListData->MenuLists,1); |
739 if (Data->Strings) | 731 if (Data->Strings) |
740 mnuLang (ListData->MenuLists,0); | 732 mnuLang (ListData->MenuLists,0); |
741 else | 733 else |
742 mnuLang (ListData->MenuLists,mainMmiLng); | 734 mnuLang (ListData->MenuLists,mainMmiLng); |
743 | 735 |
744 /* SPR#1983 - SH - Set up whether menu is in unicode or not */ | 736 /* SPR#1983 - SH - Set up whether menu is in unicode or not */ |
745 if (inUnicode != 0) | 737 if (inUnicode != 0) |
746 { | 738 { |
747 mnuDCSType(ListData->MenuLists, inUnicode); /* Unicode display */ | 739 mnuDCSType(ListData->MenuLists, inUnicode); /* Unicode display */ |
748 } | 740 } |
749 mnuChooseVisibleItem(ListData->MenuLists, Data->ListPosition-1); | 741 mnuChooseVisibleItem(ListData->MenuLists, Data->ListPosition-1); |
750 mnuUnhide(ListData->MenuLists); | 742 mnuUnhide(ListData->MenuLists); |
751 TRACE_EVENT ("mmiList winShow()"); | 743 TRACE_EVENT ("mmiList winShow()"); |
752 winShow(winLists); | 744 winShow(winLists); |
753 } | 745 } |
754 } | 746 } |
755 | 747 |
756 return Status; | 748 return Status; |
757 } | 749 } |
758 | 750 |
759 | 751 |
760 /******************************************************************************* | 752 /******************************************************************************* |
761 | 753 |
762 $Function: listsKeyEvent | 754 $Function: listsKeyEvent |
763 | 755 |
764 $Description: Keyboard event handler | 756 $Description: Keyboard event handler |
765 | 757 |
766 $Returns: none. | 758 $Returns: none. |
767 | 759 |
768 $Arguments: | 760 $Arguments: |
769 | 761 |
770 *******************************************************************************/ | 762 *******************************************************************************/ |
771 static int listsKeyEvent (MfwEvt e, MfwKbd *k) | 763 static int listsKeyEvent (MfwEvt e, MfwKbd *k) |
774 T_MFW_HND win = mfwParent(mfw_header()); | 766 T_MFW_HND win = mfwParent(mfw_header()); |
775 T_MFW_WIN * win_data = ((T_MFW_HDR *)win)->data; | 767 T_MFW_WIN * win_data = ((T_MFW_HDR *)win)->data; |
776 ListWinInfo * data = (ListWinInfo *)win_data->user; | 768 ListWinInfo * data = (ListWinInfo *)win_data->user; |
777 MfwMnu *MenuHandle; | 769 MfwMnu *MenuHandle; |
778 | 770 |
779 /* This trace function was added inside the fflag by vinoj to remove compilation error: 2/6/06*/ | 771 /* This trace function was added inside the fflag by vinoj to remove compilation error: 2/6/06*/ |
780 | 772 |
781 { | 773 { |
782 //xrashmic 5 Oct, 2005 MMI-SPR-29356, MMI-SPR-29357 | 774 //xrashmic 5 Oct, 2005 MMI-SPR-29356, MMI-SPR-29357 |
783 //Initialize selectKey to FALSE here. It will be set to TRUE only when a key event for KCD_MNUSELECT occurs. | 775 //Initialize selectKey to FALSE here. It will be set to TRUE only when a key event for KCD_MNUSELECT occurs. |
784 data->MenuData.selectKey = FALSE; | 776 data->MenuData.selectKey = FALSE; |
785 if (!(e & KEY_MAKE)) | 777 if (!(e & KEY_MAKE)) |
786 { | 778 { |
787 return MFW_EVENT_CONSUMED; | 779 return MFW_EVENT_CONSUMED; |
788 } | 780 } |
789 | 781 |
790 | 782 |
791 if (e & KEY_LONG) | 783 if (e & KEY_LONG) |
792 { | 784 { |
793 switch (k->code) | 785 switch (k->code) |
794 { | 786 { |
795 case KCD_HUP: /* back to previous menu */ | 787 case KCD_HUP: /* back to previous menu */ |
796 mnuEscape(data->MenuLists); | 788 mnuEscape(data->MenuLists); |
797 break; | 789 break; |
798 case KCD_RIGHT: /* Power Down */ | 790 case KCD_RIGHT: /* Power Down */ |
799 return MFW_EVENT_PASSED; /* handled by idle */ | 791 return MFW_EVENT_PASSED; /* handled by idle */ |
800 default: /* no response to all other keys */ | 792 default: /* no response to all other keys */ |
801 return MFW_EVENT_CONSUMED; | 793 return MFW_EVENT_CONSUMED; |
802 } | 794 } |
803 } | 795 } |
804 else | 796 else |
805 { | 797 { |
806 switch (k->code) | 798 switch (k->code) |
807 { | 799 { |
808 case KCD_MNUUP: /* highlight previous entry */ | 800 case KCD_MNUUP: /* highlight previous entry */ |
809 mnuUp(data->MenuLists); | 801 mnuUp(data->MenuLists); |
810 //GW Not needed? winShow(win); | 802 //GW Not needed? winShow(win); |
811 // Only required in melody list selection. | 803 // Only required in melody list selection. |
812 /* Mar 30, 2007 REF: OMAPS00122691 x0039928 */ | 804 /* Mar 30, 2007 REF: OMAPS00122691 x0039928 */ |
813 /* This event will be used to play the selected file. */ | 805 /* This event will be used to play the selected file. */ |
814 | 806 |
815 if(getMelodyListStatus()== TRUE) | 807 if(getMelodyListStatus()== TRUE) |
816 { | 808 { |
817 MenuHandle = mfwControl(data->MenuLists); | 809 MenuHandle = mfwControl(data->MenuLists); |
818 | 810 |
819 data->MenuData.Reason = LISTS_REASON_SCROLL; | 811 data->MenuData.Reason = LISTS_REASON_SCROLL; |
820 data->MenuData.CursorPosition = MenuHandle->lCursor[MenuHandle->level]; | 812 data->MenuData.CursorPosition = MenuHandle->lCursor[MenuHandle->level]; |
821 data->MenuData.ListPosition = MenuHandle->lCursor[MenuHandle->level]; | 813 data->MenuData.ListPosition = MenuHandle->lCursor[MenuHandle->level]; |
822 SEND_EVENT(data->Parent,E_START_MELODY,0,(void*)data); | 814 SEND_EVENT(data->Parent,E_START_MELODY,0,(void*)data); |
823 } | 815 } |
824 | 816 |
825 if(getScrollStatus() == TRUE) | 817 if(getScrollStatus() == TRUE) |
826 { | 818 { |
827 // Send event to indicate that the user has scrolled list items | 819 // Send event to indicate that the user has scrolled list items |
828 SEND_EVENT(data->Parent, LISTS_REASON_SCROLL, 0, NULL); | 820 SEND_EVENT(data->Parent, LISTS_REASON_SCROLL, 0, NULL); |
829 } | 821 } |
830 break; | 822 break; |
831 case KCD_MNUDOWN: /* highlight next entry */ | 823 case KCD_MNUDOWN: /* highlight next entry */ |
832 mnuDown(data->MenuLists); | 824 mnuDown(data->MenuLists); |
833 //GW Not needed? winShow(win); | 825 //GW Not needed? winShow(win); |
834 /* Mar 30, 2007 REF: OMAPS00122691 x0039928 */ | 826 /* Mar 30, 2007 REF: OMAPS00122691 x0039928 */ |
835 /* This event will be used to play the selected file. */ | 827 /* This event will be used to play the selected file. */ |
836 | 828 |
837 if(getMelodyListStatus()== TRUE) | 829 if(getMelodyListStatus()== TRUE) |
838 { | 830 { |
839 MenuHandle = mfwControl(data->MenuLists); | 831 MenuHandle = mfwControl(data->MenuLists); |
840 | 832 |
841 data->MenuData.Reason = LISTS_REASON_SCROLL; | 833 data->MenuData.Reason = LISTS_REASON_SCROLL; |
842 data->MenuData.CursorPosition = MenuHandle->lCursor[MenuHandle->level]; | 834 data->MenuData.CursorPosition = MenuHandle->lCursor[MenuHandle->level]; |
843 data->MenuData.ListPosition = MenuHandle->lCursor[MenuHandle->level]; | 835 data->MenuData.ListPosition = MenuHandle->lCursor[MenuHandle->level]; |
844 SEND_EVENT(data->Parent,E_START_MELODY,0,(void*)data); | 836 SEND_EVENT(data->Parent,E_START_MELODY,0,(void*)data); |
845 } | 837 } |
846 | 838 |
847 if(getScrollStatus() == TRUE) | 839 if(getScrollStatus() == TRUE) |
848 { | 840 { |
849 // Send event to indicate that the user has scrolled list items | 841 // Send event to indicate that the user has scrolled list items |
850 SEND_EVENT(data->Parent, LISTS_REASON_SCROLL, 0, NULL); | 842 SEND_EVENT(data->Parent, LISTS_REASON_SCROLL, 0, NULL); |
851 } | 843 } |
852 break; | 844 break; |
853 case KCD_MNUSELECT: | 845 case KCD_MNUSELECT: |
854 //xrashmic 5 Oct, 2005 MMI-SPR-29356, MMI-SPR-29357 | 846 //xrashmic 5 Oct, 2005 MMI-SPR-29356, MMI-SPR-29357 |
855 //Menu Select Key was pressed, storing this for future use. | 847 //Menu Select Key was pressed, storing this for future use. |
856 data->MenuData.selectKey = TRUE; | 848 data->MenuData.selectKey = TRUE; |
857 //Break is delibrately not used here. The control should pass through the KCD_LEFT case. | 849 //Break is delibrately not used here. The control should pass through the KCD_LEFT case. |
858 case KCD_LEFT: /* activate this entry */ | 850 case KCD_LEFT: /* activate this entry */ |
859 mnuSelect(data->MenuLists); | 851 mnuSelect(data->MenuLists); |
860 MenuHandle = mfwControl(data->MenuLists); | 852 MenuHandle = mfwControl(data->MenuLists); |
861 if ((MenuHandle != NULL) && // Marcus: Issue 1810: 12/03/2003 | 853 if ((MenuHandle != NULL) && // Marcus: Issue 1810: 12/03/2003 |
862 (MenuHandle->curAttr != NULL) && | 854 (MenuHandle->curAttr != NULL) && |
863 winIsFocussed(win)) | 855 winIsFocussed(win)) |
864 { | 856 { |
865 softKeys_displayId( TxtSoftSelect, TxtSoftBack, 0, MenuHandle->curAttr->mnuColour); | 857 softKeys_displayId( TxtSoftSelect, TxtSoftBack, 0, MenuHandle->curAttr->mnuColour); |
866 } | 858 } |
867 break; | 859 break; |
868 case KCD_CALL: /* press send key */ | 860 case KCD_CALL: /* press send key */ |
869 data->ExitReason = LISTS_REASON_SEND; | 861 data->ExitReason = LISTS_REASON_SEND; |
870 data->MenuData.Reason = LISTS_REASON_SEND; | 862 data->MenuData.Reason = LISTS_REASON_SEND; |
871 MenuHandle = mfwControl(data->MenuLists); | 863 MenuHandle = mfwControl(data->MenuLists); |
872 data->MenuData.CursorPosition = MenuHandle->lCursor[MenuHandle->level]; | 864 data->MenuData.CursorPosition = MenuHandle->lCursor[MenuHandle->level]; |
873 data->MenuData.ListPosition = MenuHandle->lCursor[MenuHandle->level]; /* True cursor position in list menu. */ | 865 data->MenuData.ListPosition = MenuHandle->lCursor[MenuHandle->level]; /* True cursor position in list menu. */ |
874 | 866 |
875 /* SPR998 - SH - check if callback exists before calling it! */ | 867 /* SPR998 - SH - check if callback exists before calling it! */ |
876 if (data->Callback) | 868 if (data->Callback) |
877 data->Callback(data->Parent, &data->MenuData); | 869 data->Callback(data->Parent, &data->MenuData); |
878 | 870 |
879 if (data->MenuData.autoDestroy) | 871 if (data->MenuData.autoDestroy) |
880 { | 872 { |
881 /* START: 05-June-2006, x0045876 (OMAPS00060424 - Header Toggle) */ | 873 /* START: 05-June-2006, x0045876 (OMAPS00060424 - Header Toggle) */ |
882 if (data->MenuListsAttr.header_toggle) | 874 if (data->MenuListsAttr.header_toggle) |
883 { | 875 { |
884 if (g_title_timer) | 876 if (g_title_timer) |
885 { | 877 { |
886 tim_delete(g_title_timer); | 878 tim_delete(g_title_timer); |
887 g_title_timer = NULL; | 879 g_title_timer = NULL; |
888 } | 880 } |
889 } | 881 } |
890 /* END: 05-June-2006, x0045876 (OMAPS00060424 - Header Toggle) */ | 882 /* END: 05-June-2006, x0045876 (OMAPS00060424 - Header Toggle) */ |
891 winDelete (win); | 883 winDelete (win); |
892 FREE_MEMORY ((void*)data, sizeof (ListWinInfo)); | 884 FREE_MEMORY ((void*)data, sizeof (ListWinInfo)); |
893 } | 885 } |
894 break; | 886 break; |
895 case KCD_HUP: /* back to previous menu */ | 887 case KCD_HUP: /* back to previous menu */ |
896 data->ExitReason = LISTS_REASON_HANGUP; | 888 data->ExitReason = LISTS_REASON_HANGUP; |
897 data->MenuData.Reason = LISTS_REASON_HANGUP; | 889 data->MenuData.Reason = LISTS_REASON_HANGUP; |
898 /*NM, p023 */ | 890 /*NM, p023 */ |
899 MenuHandle = mfwControl(data->MenuLists); | 891 MenuHandle = mfwControl(data->MenuLists); |
900 data->MenuData.CursorPosition = MenuHandle->lCursor[MenuHandle->level]; | 892 data->MenuData.CursorPosition = MenuHandle->lCursor[MenuHandle->level]; |
901 data->MenuData.ListPosition = MenuHandle->lCursor[MenuHandle->level]; /* True cursor position in list menu. */ | 893 data->MenuData.ListPosition = MenuHandle->lCursor[MenuHandle->level]; /* True cursor position in list menu. */ |
902 /*NM, p023 end */ | 894 /*NM, p023 end */ |
903 data->Callback(data->Parent, &data->MenuData); | 895 data->Callback(data->Parent, &data->MenuData); |
904 if (data->MenuData.autoDestroy) | 896 if (data->MenuData.autoDestroy) |
905 { | 897 { |
906 /* START: 05-June-2006, x0045876 (OMAPS00060424 - Header Toggle) */ | 898 /* START: 05-June-2006, x0045876 (OMAPS00060424 - Header Toggle) */ |
907 if (data->MenuListsAttr.header_toggle) | 899 if (data->MenuListsAttr.header_toggle) |
908 { | 900 { |
909 if (g_title_timer) | 901 if (g_title_timer) |
910 { | 902 { |
911 tim_delete(g_title_timer); | 903 tim_delete(g_title_timer); |
912 g_title_timer = NULL; | 904 g_title_timer = NULL; |
913 } | 905 } |
914 } | 906 } |
915 /* END: 05-June-2006, x0045876 (OMAPS00060424 - Header Toggle) */ | 907 /* END: 05-June-2006, x0045876 (OMAPS00060424 - Header Toggle) */ |
916 winDelete (win); | 908 winDelete (win); |
917 FREE_MEMORY ((void*)data, sizeof (ListWinInfo)); | 909 FREE_MEMORY ((void*)data, sizeof (ListWinInfo)); |
918 } | 910 } |
919 break; | 911 break; |
920 case KCD_RIGHT: /* back to previous menu */ | 912 case KCD_RIGHT: /* back to previous menu */ |
921 mnuEscape(data->MenuLists); | 913 mnuEscape(data->MenuLists); |
922 break; | 914 break; |
923 default: /* no response to all other keys */ | 915 default: /* no response to all other keys */ |
924 return MFW_EVENT_CONSUMED; | 916 return MFW_EVENT_CONSUMED; |
925 } | 917 } |
926 } | 918 } |
927 } | 919 } |
928 TRACE_FUNCTION("listsKeyEvent()-end"); | 920 TRACE_FUNCTION("listsKeyEvent()-end"); |
929 return MFW_EVENT_CONSUMED; | 921 return MFW_EVENT_CONSUMED; |
930 } | 922 } |
931 | 923 |
932 /******************************************************************************* | 924 /******************************************************************************* |
933 | 925 |
934 $Function: listsWinEvent | 926 $Function: listsWinEvent |
935 | 927 |
936 $Description: window event handler | 928 $Description: window event handler |
937 | 929 |
938 $Returns: none. | 930 $Returns: none. |
939 | 931 |
940 $Arguments: | 932 $Arguments: |
941 | 933 |
942 *******************************************************************************/ | 934 *******************************************************************************/ |
943 static int listsWinEvent(MfwEvt e, MfwWin *w) | 935 static int listsWinEvent(MfwEvt e, MfwWin *w) |
945 ListWinInfo * ListData = (ListWinInfo *)w->user; | 937 ListWinInfo * ListData = (ListWinInfo *)w->user; |
946 | 938 |
947 TRACE_FUNCTION("listsWinEvent()"); | 939 TRACE_FUNCTION("listsWinEvent()"); |
948 | 940 |
949 switch (e) | 941 switch (e) |
950 { | 942 { |
951 case E_WIN_VISIBLE: | 943 case E_WIN_VISIBLE: |
952 SEND_EVENT(ListData->Parent,LISTS_REASON_VISIBLE,0,(void*)ListData); | 944 SEND_EVENT(ListData->Parent,LISTS_REASON_VISIBLE,0,(void*)ListData); |
953 break; | 945 break; |
954 case MfwWinResume: | 946 case MfwWinResume: |
955 SEND_EVENT(ListData->Parent,LISTS_REASON_RESUME,0,(void*)ListData); | 947 SEND_EVENT(ListData->Parent,LISTS_REASON_RESUME,0,(void*)ListData); |
956 break; | 948 break; |
957 case MfwWinSuspend: | 949 case MfwWinSuspend: |
958 SEND_EVENT(ListData->Parent,LISTS_REASON_SUSPEND,0,(void*)ListData); | 950 SEND_EVENT(ListData->Parent,LISTS_REASON_SUSPEND,0,(void*)ListData); |
959 break; | 951 break; |
960 } | 952 } |
961 return MFW_EVENT_CONSUMED; | 953 return MFW_EVENT_CONSUMED; |
962 } | 954 } |
963 | 955 |
964 static void lists_exec_cb (T_MFW_HND win, USHORT event, SHORT value, void * parameter) | 956 static void lists_exec_cb (T_MFW_HND win, USHORT event, SHORT value, void * parameter) |
965 { | 957 { |
969 SHORT l_id; | 961 SHORT l_id; |
970 | 962 |
971 TRACE_FUNCTION ("lists_exec_cb()"); | 963 TRACE_FUNCTION ("lists_exec_cb()"); |
972 | 964 |
973 switch (event) | 965 switch (event) |
974 { | 966 { |
975 case E_INIT: | 967 case E_INIT: |
976 case E_BACK: | 968 case E_BACK: |
977 case E_RETURN: | 969 case E_RETURN: |
978 case E_ABORT: | 970 case E_ABORT: |
979 case E_EXIT: | 971 case E_EXIT: |
980 /* defaultreaction */ | 972 /* defaultreaction */ |
981 l_parent = ListData->Parent; | 973 l_parent = ListData->Parent; |
982 l_id = ListData->id; | 974 l_id = ListData->id; |
983 | 975 |
984 /* START: 05-June-2006, x0045876 (OMAPS00060424 - Header Toggle) */ | 976 /* START: 05-June-2006, x0045876 (OMAPS00060424 - Header Toggle) */ |
985 if (ListData->MenuListsAttr.header_toggle) | 977 if (ListData->MenuListsAttr.header_toggle) |
986 { | 978 { |
987 if (g_title_timer) | 979 if (g_title_timer) |
988 { | 980 { |
989 tim_delete(g_title_timer); | 981 tim_delete(g_title_timer); |
990 g_title_timer = NULL; | 982 g_title_timer = NULL; |
991 } | 983 } |
992 } | 984 } |
993 /* END: 05-June-2006, x0045876 (OMAPS00060424 - Header Toggle) */ | 985 /* END: 05-June-2006, x0045876 (OMAPS00060424 - Header Toggle) */ |
994 winDelete (win); | 986 winDelete (win); |
995 FREE_MEMORY ((void*) ListData, sizeof (ListWinInfo)); | 987 FREE_MEMORY ((void*) ListData, sizeof (ListWinInfo)); |
996 SEND_EVENT (l_parent, event, l_id, NULL); /* forward event to parent */ | 988 SEND_EVENT (l_parent, event, l_id, NULL); /* forward event to parent */ |
997 break; | 989 break; |
998 default: | 990 default: |
999 return; | 991 return; |
1000 } | 992 } |
1001 } | 993 } |
1002 | |
1003 | 994 |
1004 | 995 |
1005 /******************************************************************************* | 996 /******************************************************************************* |
1006 | 997 |
1007 $Function: listsListCbMenu | 998 $Function: listsListCbMenu |
1008 | 999 |
1009 $Description: List menu handler. (mfw callback function) | 1000 $Description: List menu handler. (mfw callback function) |
1010 | 1001 |
1011 $Returns: none. | 1002 $Returns: none. |
1012 | 1003 |
1013 $Arguments: | 1004 $Arguments: |
1014 | 1005 |
1015 *******************************************************************************/ | 1006 *******************************************************************************/ |
1016 int listsListCbMenu(MfwEvt EventCode, MfwMnu *MenuHandle) | 1007 int listsListCbMenu(MfwEvt EventCode, MfwMnu *MenuHandle) |
1021 ListWinInfo* ListData = (ListWinInfo *)win_data->user; | 1012 ListWinInfo* ListData = (ListWinInfo *)win_data->user; |
1022 | 1013 |
1023 TRACE_FUNCTION("listsCbMenu()"); | 1014 TRACE_FUNCTION("listsCbMenu()"); |
1024 | 1015 |
1025 switch (EventCode) | 1016 switch (EventCode) |
1026 { | 1017 { |
1027 case E_MNU_SELECT: | 1018 case E_MNU_SELECT: |
1028 ListData->ExitReason = E_MNU_SELECT; | 1019 ListData->ExitReason = E_MNU_SELECT; |
1029 ListData->MenuData.Reason = LISTS_REASON_SELECT;// MZ 14/2/01 E_MNU_SELECT; | 1020 ListData->MenuData.Reason = LISTS_REASON_SELECT;// MZ 14/2/01 E_MNU_SELECT; |
1030 ListData->MenuData.CursorPosition = MenuHandle->lCursor[MenuHandle->level]; | 1021 ListData->MenuData.CursorPosition = MenuHandle->lCursor[MenuHandle->level]; |
1031 ListData->MenuData.ListPosition = MenuHandle->lCursor[MenuHandle->level]; /* True cursor position in list menu. */ | 1022 ListData->MenuData.ListPosition = MenuHandle->lCursor[MenuHandle->level]; /* True cursor position in list menu. */ |
1032 /* SPR998 - SH - check if callback exists before calling it! */ | 1023 /* SPR998 - SH - check if callback exists before calling it! */ |
1033 if (ListData->Callback) | 1024 if (ListData->Callback) |
1034 ListData->Callback(ListData->Parent, &ListData->MenuData); | 1025 ListData->Callback(ListData->Parent, &ListData->MenuData); |
1035 break; | 1026 break; |
1036 | 1027 |
1037 case E_MNU_ESCAPE: | 1028 case E_MNU_ESCAPE: |
1038 ListData->ExitReason = LISTS_REASON_BACK; | 1029 ListData->ExitReason = LISTS_REASON_BACK; |
1039 ListData->MenuData.Reason = LISTS_REASON_BACK; | 1030 ListData->MenuData.Reason = LISTS_REASON_BACK; |
1040 /*NM, p023*/ | 1031 /*NM, p023*/ |
1041 ListData->MenuData.CursorPosition = MenuHandle->lCursor[MenuHandle->level]; | 1032 ListData->MenuData.CursorPosition = MenuHandle->lCursor[MenuHandle->level]; |
1042 ListData->MenuData.ListPosition = MenuHandle->lCursor[MenuHandle->level]; /* True cursor position in list menu. */ | 1033 ListData->MenuData.ListPosition = MenuHandle->lCursor[MenuHandle->level]; /* True cursor position in list menu. */ |
1043 /*NM, p023*/ | 1034 /*NM, p023*/ |
1044 | 1035 |
1045 /* SPR998 - SH - check if callback exists before calling it! */ | 1036 /* SPR998 - SH - check if callback exists before calling it! */ |
1046 if (ListData->Callback) | 1037 if (ListData->Callback) |
1047 ListData->Callback(ListData->Parent, &ListData->MenuData); | 1038 ListData->Callback(ListData->Parent, &ListData->MenuData); |
1048 break; | 1039 break; |
1049 | 1040 |
1050 default: | 1041 default: |
1051 Status = LISTS_FAIL; | 1042 Status = LISTS_FAIL; |
1052 TRACE_EVENT("Activation 77 error"); | 1043 TRACE_EVENT("Activation 77 error"); |
1053 break; | 1044 break; |
1054 } | 1045 } |
1055 | 1046 |
1056 /* | 1047 /* |
1057 * Free all allocated memory and handler | 1048 * Free all allocated memory and handler |
1058 */ | 1049 */ |
1059 if (ListData->MenuData.autoDestroy) | 1050 if (ListData->MenuData.autoDestroy) |
1060 { | 1051 { |
1061 /* START: 05-June-2006, x0045876 (OMAPS00060424 - Header Toggle) */ | 1052 /* START: 05-June-2006, x0045876 (OMAPS00060424 - Header Toggle) */ |
1062 if (ListData->MenuListsAttr.header_toggle) | 1053 if (ListData->MenuListsAttr.header_toggle) |
1063 { | 1054 { |
1064 if (g_title_timer) | 1055 if (g_title_timer) |
1065 { | 1056 { |
1066 tim_delete(g_title_timer); | 1057 tim_delete(g_title_timer); |
1067 g_title_timer = NULL; | 1058 g_title_timer = NULL; |
1068 } | 1059 } |
1069 } | 1060 } |
1070 /* END: 05-June-2006, x0045876 (OMAPS00060424 - Header Toggle) */ | 1061 /* END: 05-June-2006, x0045876 (OMAPS00060424 - Header Toggle) */ |
1071 winDelete (win); | 1062 winDelete (win); |
1072 FREE_MEMORY ((void*) ListData, sizeof (ListWinInfo)); | 1063 FREE_MEMORY ((void*) ListData, sizeof (ListWinInfo)); |
1073 } | 1064 } |
1074 return Status; | 1065 return Status; |
1075 } | 1066 } |
1076 | 1067 |
1077 void listsDestroy(T_MFW_HND win) | 1068 void listsDestroy(T_MFW_HND win) |
1078 { | 1069 { |
1079 T_MFW_WIN * win_data = ((T_MFW_HDR *) win)->data; | 1070 T_MFW_WIN * win_data = ((T_MFW_HDR *) win)->data; |
1080 ListWinInfo * ListData = (ListWinInfo *)win_data->user; | 1071 ListWinInfo * ListData = (ListWinInfo *)win_data->user; |
1081 | 1072 |
1082 /* START: 05-June-2006, x0045876 (OMAPS00060424 - Header Toggle) */ | 1073 /* START: 05-June-2006, x0045876 (OMAPS00060424 - Header Toggle) */ |
1083 if (ListData->MenuListsAttr.header_toggle) | 1074 if (ListData->MenuListsAttr.header_toggle) |
1084 { | 1075 { |
1085 if(g_title_timer) | 1076 if(g_title_timer) |
1086 { | 1077 { |
1087 tim_delete(g_title_timer); | 1078 tim_delete(g_title_timer); |
1088 g_title_timer = NULL; | 1079 g_title_timer = NULL; |
1089 } | 1080 } |
1090 } | 1081 } |
1091 /* END: 05-June-2006, x0045876 (OMAPS00060424 - Header Toggle) */ | 1082 /* END: 05-June-2006, x0045876 (OMAPS00060424 - Header Toggle) */ |
1092 | 1083 |
1093 winDelete (win); | 1084 winDelete (win); |
1094 FREE_MEMORY ((void*) ListData, sizeof (ListWinInfo)); | 1085 FREE_MEMORY ((void*) ListData, sizeof (ListWinInfo)); |
1095 | 1086 } |
1096 } | |
1097 |