FreeCalypso > hg > fc-magnetite
comparison src/ui3/bmi/mmiBookCallDetailsWindow.c @ 421:6a4d9f47793e
src/ui3/bmi: file renames to make the case consistent
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sun, 21 Jan 2018 03:28:53 +0000 |
parents | src/ui3/bmi/MmiBookCallDetailsWindow.c@e8ddbb0837ed |
children |
comparison
equal
deleted
inserted
replaced
420:e8ddbb0837ed | 421:6a4d9f47793e |
---|---|
1 /******************************************************************************* | |
2 | |
3 CONDAT (UK) | |
4 | |
5 ******************************************************************************** | |
6 | |
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. | |
9 | |
10 ******************************************************************************** | |
11 | |
12 $Project name: Basic MMI | |
13 $Project code: BMI (6349) | |
14 $Module: PhoneBook | |
15 $File: MmiBookCallDetailsWindow.c | |
16 $Revision: 1.0 | |
17 | |
18 $Author: Condat(UK) | |
19 $Date: 25/10/00 | |
20 | |
21 ******************************************************************************** | |
22 | |
23 Description: | |
24 | |
25 This provides the implementation of the call details window for the | |
26 phone book module | |
27 | |
28 ******************************************************************************** | |
29 $History: MmiBookCallDetailsWindow.c | |
30 Feb 22, 2007 OMAPS00115777 a0393213(R.Prabakar) | |
31 Description : Details of any Missed call number shows Invalid information | |
32 Fix : Data was not initialized properly. Now it's initialized properly and | |
33 the fix done as part of CRR 22638 reverted back as it isn't clean | |
34 | |
35 Aug 24, 2004 REF: CRR 22638 xrashmic | |
36 Bug: E-Sample switches off when you attempt to look at details of a number | |
37 in call list. | |
38 Fix: Using the data stored in global variable to avoid corrupt data. | |
39 | |
40 25/10/00 Original Condat(UK) BMI version. | |
41 | |
42 $End | |
43 // Issue Number : SPR#12874 on 31/03/04 by Rashmi.C.N. | |
44 *******************************************************************************/ | |
45 | |
46 | |
47 | |
48 | |
49 /******************************************************************************* | |
50 | |
51 Include Files | |
52 | |
53 *******************************************************************************/ | |
54 #define ENTITY_MFW | |
55 | |
56 /* includes */ | |
57 #include <string.h> | |
58 #include <stdio.h> | |
59 #include <stdlib.h> | |
60 | |
61 #if defined (NEW_FRAME) | |
62 | |
63 #include "typedefs.h" | |
64 #include "vsi.h" | |
65 #include "pei.h" | |
66 #include "custom.h" | |
67 #include "gsm.h" | |
68 | |
69 #else | |
70 | |
71 #include "STDDEFS.H" | |
72 #include "custom.h" | |
73 #include "gsm.h" | |
74 #include "vsi.h" | |
75 | |
76 #endif | |
77 | |
78 #include "mfw_sys.h" | |
79 | |
80 #include "mfw_mfw.h" | |
81 #include "mfw_win.h" | |
82 #include "mfw_kbd.h" | |
83 #include "mfw_lng.h" | |
84 /* SPR#1428 - SH - New Editor changes */ | |
85 #ifndef NEW_EDITOR | |
86 #include "mfw_edt.h" | |
87 #endif | |
88 #include "mfw_icn.h" | |
89 #include "mfw_mnu.h" | |
90 #include "mfw_tim.h" | |
91 | |
92 #include "mfw_sim.h" | |
93 #include "mfw_cm.h" | |
94 #include "mfw_nm.h" | |
95 #include "mfw_phb.h" | |
96 #include "mfw_mme.h" | |
97 #include "mfw_sat.h" | |
98 #include "mfw_sms.h" | |
99 | |
100 #include "dspl.h" | |
101 | |
102 #include "ksd.h" | |
103 #include "psa.h" | |
104 /* SPR#1428 - SH - New Editor changes */ | |
105 #ifdef NEW_EDITOR | |
106 #include "ATBCommon.h" | |
107 #include "ATBDisplay.h" | |
108 #include "ATBEditor.h" | |
109 #include "AUIEditor.h" | |
110 #endif | |
111 | |
112 #include "MmiMain.h" | |
113 #include "MmiBookController.h" | |
114 #include "MmiDummy.h" | |
115 #include "MmiDialogs.h" | |
116 #include "MmiLists.h" | |
117 | |
118 #include "MmiMenu.h" | |
119 #include "mmiCall.h" | |
120 #include "Mmiicons.h" | |
121 #include "MmiIdle.h" | |
122 | |
123 #include "MmiSoftKeys.h" | |
124 #include "MmiSounds.h" | |
125 #include "MmiIdle.h" | |
126 #include "MmiNetwork.h" | |
127 #include "mmiSat_i.h" | |
128 #include "MmiAoc.h" | |
129 | |
130 #include "gdi.h" | |
131 #include "audio.h" | |
132 | |
133 #include "cus_aci.h" | |
134 #include "mfw_ffs.h" | |
135 #include "MmiTimers.h" | |
136 | |
137 #include "MmiBookShared.h" | |
138 #include "MmiCPHS.h" | |
139 #include "mmiColours.h" | |
140 | |
141 | |
142 #define CALLDETAILS_INFO_LEN 32 | |
143 | |
144 | |
145 /******************************************************************************* | |
146 | |
147 Private methods | |
148 | |
149 *******************************************************************************/ | |
150 | |
151 | |
152 | |
153 /******************************************************************************* | |
154 | |
155 $Function: bookCallDetails | |
156 | |
157 $Description: dialog function for the call details windows | |
158 | |
159 $Returns: None. | |
160 | |
161 $Arguments: win, window handle | |
162 event, event to be handled | |
163 value, not used | |
164 parameter, not used | |
165 | |
166 *******************************************************************************/ | |
167 | |
168 static void bookCallDetails( T_MFW_HND win, USHORT event, SHORT value, void * parameter ) | |
169 { | |
170 T_MFW_WIN *win_data = ((T_MFW_HDR *) win)->data; | |
171 tBookStandard *data = (tBookStandard *)win_data->user; | |
172 #ifdef NEW_EDITOR | |
173 T_MFW_PHB_ENTRY p_pEntry; | |
174 tMmiPhbData current = data->phbk->current; | |
175 T_MFW_PHB_ENTRY *my = ¤t.entry[ current.selectedName - current.missedCallsOffset ]; | |
176 T_ATB_TEXT nameText; | |
177 T_ATB_TEXT numberText; | |
178 T_ATB_TEXT otherText; | |
179 char *TempBuffer = (char *)ALLOC_MEMORY(CALLDETAILS_INFO_LEN); | |
180 char *time; | |
181 char *date; | |
182 TRACE_FUNCTION( "bookCallDetails()" ); | |
183 | |
184 /* SPR#1428 - SH - New Editor changes | |
185 * Moved all this stuff here from the WinCb - it shouldn't be there! */ | |
186 | |
187 /* try to get the name from the phone book, null the structure out | |
188 if we can't find it at all | |
189 */ | |
190 | |
191 if ( bookFindNameInPhonebook( (const char *) my->number, &p_pEntry ) ) | |
192 { | |
193 bookCopyPhbName(my, &p_pEntry,PHB_MAX_LEN); | |
194 my->name.len = p_pEntry.name.len; | |
195 } | |
196 else | |
197 { | |
198 my->name.len = 0; | |
199 } | |
200 | |
201 numberText.dcs = ATB_DCS_ASCII; | |
202 numberText.data = my->number; | |
203 ATB_string_Length(&numberText); | |
204 | |
205 #ifdef EASY_TEXT_ENABLED | |
206 if ( my->name.data[0] ==0x80) | |
207 { | |
208 /* UNICODE */ | |
209 nameText.dcs = ATB_DCS_UNICODE; | |
210 nameText.data = &my->name.data[2]; | |
211 } | |
212 else | |
213 #endif /* EASY_TEXT_ENABLED */ | |
214 { | |
215 /* ASCII */ | |
216 nameText.dcs = ATB_DCS_ASCII; | |
217 nameText.data = my->name.data; | |
218 } | |
219 | |
220 ATB_string_Length(&nameText); | |
221 | |
222 ATB_edit_ResetMode(data->editor, ED_MODE_READONLY); /* Switch off read only to add text */ | |
223 ATB_edit_ClearAll(data->editor); /* Blank the editor */ | |
224 ATB_edit_InsertString(data->editor, &nameText); | |
225 ATB_edit_Char(data->editor, ctrlEnter, FALSE); | |
226 ATB_edit_InsertString(data->editor, &numberText); | |
227 ATB_edit_Char(data->editor, ctrlEnter, FALSE); | |
228 | |
229 if (CphsPresent() == TRUE) | |
230 { | |
231 sprintf(TempBuffer, "Line %d", my->line); | |
232 otherText.dcs = ATB_DCS_ASCII; | |
233 otherText.data = (UBYTE *)TempBuffer; | |
234 ATB_string_Length(&otherText); | |
235 ATB_edit_InsertString(data->editor, &otherText); | |
236 ATB_edit_Char(data->editor, ctrlEnter, FALSE); | |
237 } | |
238 | |
239 /* API - 10/09/03 - SPR2513 - Add support to display chinese Data & Time */ | |
240 /* API - 05/09/03 - SPR2357 - Get the character string for the date */ | |
241 | |
242 date = MmiRsrcGetText(TxtCallDate); | |
243 | |
244 if(Mmi_getCurrentLanguage() == CHINESE_LANGUAGE) | |
245 { | |
246 otherText.dcs = ATB_DCS_UNICODE; | |
247 otherText.data = (UBYTE *)date; | |
248 } | |
249 else | |
250 { | |
251 otherText.dcs = ATB_DCS_ASCII; | |
252 otherText.data = (UBYTE *)date; | |
253 } | |
254 ATB_string_Length(&otherText); | |
255 ATB_edit_InsertString(data->editor, &otherText); | |
256 | |
257 /* API - 05/09/03 - SPR2357 - END */ | |
258 /* API - 10/09/03 - SPR2513 - END */ | |
259 | |
260 // API - 21-01-03 - 1566 - Date and Time displayed for Recent calls | |
261 | |
262 // change by Sasken ( Rashmi C N) on March 31th 2004 | |
263 // Issue Number : MMI-SPR-12874 | |
264 // Bug: Wrong date and time in the Missed call details. | |
265 // Solution: converting the date and time into decimal format used in the | |
266 // phonebook management. | |
267 | |
268 sprintf((char*)TempBuffer, "%.2d/%.2d/%.2d",(UBYTE)((my->date.day[0])<<4)+(UBYTE) my->date.day[1], | |
269 (UBYTE) ((my->date.month[0])<<4)+(UBYTE) my->date.month[1], | |
270 (UBYTE) ((my->date.year[0])<<4)+(UBYTE) my->date.year[1]); | |
271 otherText.dcs = ATB_DCS_ASCII; | |
272 otherText.data = (UBYTE *)TempBuffer; | |
273 ATB_string_Length(&otherText); | |
274 ATB_edit_InsertString(data->editor, &otherText); | |
275 ATB_edit_Char(data->editor, ctrlEnter, FALSE); | |
276 | |
277 | |
278 | |
279 /* API - 10/09/03 - SPR2513 - Add support to display chinese Data & Time */ | |
280 /* API - 05/09/03 - SPR2357 - Get the character string for the Time */ | |
281 | |
282 time = MmiRsrcGetText(TxtCallTime); | |
283 | |
284 if(Mmi_getCurrentLanguage() == CHINESE_LANGUAGE) | |
285 { | |
286 otherText.dcs = ATB_DCS_UNICODE; | |
287 otherText.data = (UBYTE *)time; | |
288 } | |
289 else | |
290 { | |
291 otherText.dcs = ATB_DCS_ASCII; | |
292 otherText.data = (UBYTE *)time; | |
293 } | |
294 | |
295 ATB_edit_InsertString(data->editor, &otherText); | |
296 | |
297 /* API - 05/09/03 - SPR2357 - END */ | |
298 /* API - 10/09/03 - SPR2513 - END */ | |
299 | |
300 // API - 21-01-03 - 1566 - Date and Time displayed for Recent calls | |
301 | |
302 // change by Sasken ( Rashmi C N) on March 31th 2004 | |
303 // Issue Number : MMI-SPR-12874 | |
304 // Bug: Wrong date and time in the Missed call details. | |
305 // Solution: converting the date and time into decimal format used in the | |
306 // phonebook management. | |
307 sprintf((char*)TempBuffer, "%.2d:%.2d", (UBYTE) ((my->time.hour[0])<<4)+(UBYTE) my->time.hour[1], | |
308 (UBYTE) ((my->time.minute[0])<<4)+(UBYTE) my->time.minute[1]); | |
309 | |
310 otherText.dcs = ATB_DCS_ASCII; | |
311 otherText.data = (UBYTE *)TempBuffer; | |
312 ATB_string_Length(&otherText); | |
313 ATB_edit_InsertString(data->editor, &otherText); | |
314 | |
315 ATB_edit_SetMode(data->editor, ED_MODE_READONLY); /* Switch on read only again */ | |
316 | |
317 | |
318 FREE_MEMORY((void *)TempBuffer, CALLDETAILS_INFO_LEN); | |
319 | |
320 /* show the editor and update the soft keys | |
321 */ | |
322 /* SH - the string has changed, so we need to refresh the word-wrap */ | |
323 ATB_edit_Refresh(data->editor); | |
324 win_show(data->win); | |
325 | |
326 #else /* NEW_EDITOR */ | |
327 | |
328 if ( event == CALL_DETAILS_INIT ) | |
329 winShow( data->win ); | |
330 | |
331 #endif /* NEW_EDITOR */ | |
332 } | |
333 | |
334 | |
335 | |
336 | |
337 /******************************************************************************* | |
338 | |
339 $Function: bookCallDetailsWinCB | |
340 | |
341 $Description: Window call back function | |
342 | |
343 $Returns: MFW_EVENT_CONSUMED | |
344 | |
345 $Arguments: e, event to be handles, w, window handle | |
346 | |
347 *******************************************************************************/ | |
348 | |
349 static int bookCallDetailsWinCB( MfwEvt e, MfwWin *w ) | |
350 { | |
351 tBookStandard * data = (tBookStandard *)w->user; | |
352 // char *Time; // RAVI | |
353 // char *Date; // RAVI | |
354 | |
355 TRACE_FUNCTION("bookCallDetailsWinCB"); | |
356 switch( e ) | |
357 { | |
358 case MfwWinVisible: | |
359 { | |
360 /* SPR#1428 - SH - New Editor changes - Just show editor, calculate text | |
361 * string to display in bookCallDetails() */ | |
362 #ifdef NEW_EDITOR | |
363 ATB_edit_Show(data->editor); | |
364 resources_setTitleColour(COLOUR_EDITOR); | |
365 | |
366 /* TITLE */ | |
367 | |
368 dspl_Clear(0,0, SCREEN_SIZE_X-1, data->editor->attr->win_size.py-1); | |
369 PROMPT(0,0,0,TxtDetails); | |
370 #else /* NEW_EDITOR */ | |
371 char TempBuffer[32]; | |
372 T_MFW_PHB_ENTRY p_pEntry; | |
373 tMmiPhbData current = data->phbk->current; | |
374 T_MFW_PHB_ENTRY *my = ¤t.entry[ current.selectedName - current.missedCallsOffset ]; | |
375 | |
376 /* default screen update prior to painting below | |
377 */ | |
378 dspl_ClearAll(); | |
379 | |
380 /* try to get the name from the phone book, null the structure out | |
381 if we can't find it at all | |
382 */ | |
383 | |
384 #ifdef NO_ASCIIZ | |
385 { | |
386 UBYTE result; | |
387 | |
388 if ( bookFindNameInPhonebook( (const char *) my->number, &p_pEntry ) ) | |
389 { | |
390 | |
391 | |
392 //GW Copy name and length | |
393 bookCopyPhbName(my, &p_pEntry,PHB_MAX_LEN); | |
394 my->name.len = p_pEntry.name.len; | |
395 } | |
396 else | |
397 { | |
398 TRACE_EVENT(">>>>Length set to zero"); | |
399 my->name.len = 0; | |
400 } | |
401 | |
402 } | |
403 #else /* NO_ASCIIZ */ | |
404 | |
405 if ( bookFindNameInPhonebook( (const char *) my->number, &p_pEntry ) ) | |
406 bookCopyPhbName(my, &p_pEntry, NAME_SCREEN_MAX); //GW Copy name | |
407 else | |
408 memset( (char*) my->name, '\0', NAME_SCREEN_MAX ); | |
409 #endif /* NO_ASCIIZ */ | |
410 | |
411 memset((char*)TempBuffer ,'\0',32); | |
412 | |
413 | |
414 /* API - 1203 - 30/09/02 - Add the Data and the Time to the TempBuffer to be shown when the details of a | |
415 LDN, LMN etc is looked at. Currently commented out as the ACI does not store the | |
416 numbers at present and garbage would be displayed. | |
417 */ | |
418 | |
419 /* API - 1542 - 10/01/03 - Update from issue above Added the values written to the structure by ACI to | |
420 display them to the user. | |
421 */ | |
422 | |
423 /* API - 05/09/03 - SPR2357 - Get the character string for the date and time */ | |
424 Time = MmiRsrcGetText(TxtCallTime); | |
425 Date = MmiRsrcGetText(TxtCallDate); | |
426 | |
427 sprintf((char*)TempBuffer,"%s%d%d%s%d%d%s %s%d%d%s%d%d%s%d%d%s", | |
428 Time, (UBYTE) my->time.hour[0], (UBYTE) my->time.hour[1], ":", | |
429 (UBYTE) my->time.minute[0], (UBYTE) my->time.minute[1], "\n", | |
430 Date, (UBYTE) my->date.day[0], (UBYTE) my->date.day[1], "/", | |
431 (UBYTE) my->date.month[0], (UBYTE) my->date.month[1], "/", | |
432 (UBYTE) my->date.year[0], (UBYTE) my->date.year[1], "\n"); | |
433 /* API - 05/09/03 - SPR2357 - END */ | |
434 | |
435 | |
436 | |
437 #ifdef NO_ASCIIZ | |
438 #ifdef EASY_TEXT_ENABLED | |
439 /*MC SPR 1242, changed macros to function calls e.g FIRST_LINE_CHINESE->Mmi_layout_first_line()*/ | |
440 if (my->name.data[0] ==0x80)//if unicode | |
441 { //display name as unicode | |
442 dspl_TextOut(0,0, DSPL_TXTATTR_UNICODE, (char *)my->name.data); | |
443 if ((my->name.data[MAX_LINE+2] != 0) && (my->name.data[MAX_LINE+3] != 0)) | |
444 dspl_TextOut(0, Mmi_layout_first_line(), 0, (char *) &my->name.data[MAX_LINE+2]); | |
445 //display number | |
446 dspl_TextOut(0, Mmi_layout_second_line(), 0, (char *) my->number); | |
447 if (strlen((char *) my->number) > MAX_LINE) | |
448 /*MC end*/ dspl_TextOut(0, Mmi_layout_second_line() + 8, 0, (char *) &my->number[MAX_LINE]); | |
449 } | |
450 else | |
451 #endif /* EASY_TEXT_ENABLED */ | |
452 { | |
453 if (CphsPresent() == TRUE) | |
454 { | |
455 sprintf( (char *) data->edtBuf, "%s%s%s%s%d%s%s", | |
456 (char *) my->name.data, "\n", | |
457 (char *) my->number,"\n Line ", my->line,"\n", | |
458 TempBuffer ); | |
459 } | |
460 else | |
461 sprintf( (char *) data->edtBuf, "%s%s%s%s%s", | |
462 (char *) my->name.data, "\n", | |
463 (char *) my->number,"\n", | |
464 TempBuffer ); | |
465 | |
466 /* show the editor and update the soft keys | |
467 */ | |
468 edtShow( data->edt ); | |
469 } | |
470 | |
471 #else /* NO_ASCIIZ */ | |
472 if (CphsPresent() == TRUE) | |
473 { | |
474 sprintf( (char *) data->edtBuf, "%s%s%s%s%d%s%s", | |
475 (char *) my->name, "\n", | |
476 (char *) my->number,"\n Line ", my->line,"\n", | |
477 TempBuffer ); | |
478 } | |
479 else | |
480 sprintf( (char *) data->edtBuf, "%s%s%s%s%s", | |
481 (char *) my->name, "\n", | |
482 (char *) my->number,"\n", | |
483 TempBuffer ); | |
484 | |
485 /* show the editor and update the soft keys | |
486 */ | |
487 edtShow( data->edt ); | |
488 #endif /* NO_ASCIIZ */ | |
489 #endif /* NEW_EDITOR */ | |
490 | |
491 displaySoftKeys( TxtNull, TxtSoftBack ); | |
492 } | |
493 break; | |
494 | |
495 default: | |
496 { | |
497 /* default processing, we return IGNORED here and let the | |
498 default handler pick up the ball | |
499 */ | |
500 return MFW_EVENT_PASSED; | |
501 } | |
502 } | |
503 | |
504 return MFW_EVENT_CONSUMED; | |
505 } | |
506 | |
507 | |
508 | |
509 | |
510 /******************************************************************************* | |
511 | |
512 $Function: bookCallDetailsKeyCB | |
513 | |
514 $Description: normal keyboard handler | |
515 | |
516 $Returns: MFW_EVENT_CONSUMED in all cases | |
517 | |
518 $Arguments: e, event to be handled, k keyboard handle | |
519 | |
520 *******************************************************************************/ | |
521 | |
522 static int bookCallDetailsKeyCB( MfwEvt e, MfwKbd *k ) | |
523 { | |
524 T_MFW_HND win = mfwParent( mfw_header() ); | |
525 T_MFW_WIN *win_data = ((T_MFW_HDR *)win)->data; | |
526 tBookStandard *data = (tBookStandard *) win_data->user; | |
527 | |
528 /* make sure we handle null keyboards | |
529 */ | |
530 if ( k == NULL ) | |
531 return MFW_EVENT_CONSUMED; | |
532 | |
533 /* deal with the incoming key code | |
534 */ | |
535 switch( k->code ) | |
536 { | |
537 case KCD_MNUDOWN: | |
538 { | |
539 /* scroll down event | |
540 */ | |
541 | |
542 if ( data->phbk->current.selectedName == data->phbk->current.status.used_entries-1 ) | |
543 { | |
544 data->phbk->current.selectedName = 0; | |
545 } | |
546 else | |
547 data->phbk->current.selectedName++; | |
548 | |
549 } | |
550 break; | |
551 | |
552 case KCD_MNUUP: | |
553 { | |
554 /* scroll up event | |
555 */ | |
556 if ( data->phbk->current.selectedName == 0 ) | |
557 { | |
558 data->phbk->current.selectedName = data->phbk->current.status.used_entries-1; | |
559 } | |
560 else | |
561 data->phbk->current.selectedName--; | |
562 } | |
563 break; | |
564 | |
565 case KCD_CALL: | |
566 { | |
567 /* left, implies make call | |
568 */ | |
569 callNumber( data->phbk->current.entry[data->phbk->current.selectedName].number ); | |
570 bookPhonebookDestroy( data->phbk->win ); | |
571 } | |
572 break; | |
573 | |
574 case KCD_RIGHT: | |
575 { | |
576 bookCallDetailsDestroy(data->win); | |
577 } | |
578 break; | |
579 | |
580 case KCD_HUP: | |
581 { | |
582 /* clear, destroy the window | |
583 */ | |
584 bookCallDetailsDestroy( data->win ); | |
585 } | |
586 break; | |
587 | |
588 default: | |
589 { | |
590 /* no default behaviour required | |
591 */ | |
592 } | |
593 break; | |
594 } | |
595 | |
596 /* if we have scrolled then the behaviour needs to be to perform another | |
597 search to get the window updated correctly | |
598 */ | |
599 if ( ( k->code == KCD_MNUUP ) || ( k->code == KCD_MNUDOWN ) ) | |
600 { | |
601 SEND_EVENT(data->win, 0, 0, 0); | |
602 winShow( win ); | |
603 } | |
604 | |
605 /* and always return consumed | |
606 */ | |
607 return MFW_EVENT_CONSUMED; | |
608 } | |
609 | |
610 | |
611 | |
612 /******************************************************************************* | |
613 | |
614 $Function: bookCallDetailsKbdLongCB | |
615 | |
616 $Description: Keyboard Long Press event handler | |
617 | |
618 $Returns: MFW_EVENT_CONSUMED always | |
619 | |
620 $Arguments: e, event, k, keyboard handle | |
621 | |
622 *******************************************************************************/ | |
623 | |
624 static int bookCallDetailsKeyLongCB( MfwEvt e, MfwKbd *k ) | |
625 { | |
626 T_MFW_HND win = mfwParent( mfw_header() ); | |
627 T_MFW_WIN *win_data = ((T_MFW_HDR *)win)->data; | |
628 tBookStandard *data = (tBookStandard *) win_data->user; | |
629 | |
630 /* hand a long clear event only | |
631 */ | |
632 if ( ( e & KEY_CLEAR ) && ( e & KEY_LONG ) ) | |
633 bookCallDetailsDestroy( data->win ); | |
634 | |
635 return MFW_EVENT_CONSUMED; | |
636 } | |
637 | |
638 | |
639 | |
640 | |
641 /******************************************************************************* | |
642 | |
643 $Function: bookCallDetailsCreate | |
644 | |
645 $Description: Creates the window and associates editors and keyboards | |
646 with it. | |
647 | |
648 $Returns: handle of the newly created window, or NULL if failure | |
649 | |
650 $Arguments: parent, handle of parent window | |
651 | |
652 *******************************************************************************/ | |
653 | |
654 static T_MFW_HND bookCallDetailsCreate( MfwHnd parent ) | |
655 { | |
656 T_MFW_WIN *win_data; | |
657 tBookStandard *data = (tBookStandard *) ALLOC_MEMORY( sizeof( tBookStandard ) ); | |
658 T_MFW_WIN *parent_win_data = ((T_MFW_HDR *)parent)->data; | |
659 T_phbk *phbk = (T_phbk *)parent_win_data->user; | |
660 | |
661 TRACE_FUNCTION ("phbk_call_details_create()"); | |
662 | |
663 /* Deal with allocation failure on the data block | |
664 */ | |
665 if ( ! data ) | |
666 return NULL; | |
667 | |
668 /* create the window | |
669 */ | |
670 if ( ( data->win = win_create( parent, 0, E_WIN_VISIBLE, (T_MFW_CB) bookCallDetailsWinCB ) ) == NULL ) | |
671 return NULL; | |
672 | |
673 /* Associate the dialog and user data areas | |
674 */ | |
675 data->mmi_control.dialog = (T_DIALOG_FUNC) bookCallDetails; | |
676 data->mmi_control.data = data; | |
677 win_data = ((T_MFW_HDR *)data->win)->data; | |
678 win_data->user = (void *) data; | |
679 data->parent_win = parent; | |
680 | |
681 /* Create the keyboards and editor objects, and associate a phone book handler | |
682 */ | |
683 data->kbd = kbdCreate( data->win, KEY_ALL, (MfwCb) bookCallDetailsKeyCB ); | |
684 data->kbd_long = kbdCreate( data->win, KEY_ALL | KEY_LONG, (MfwCb) bookCallDetailsKeyLongCB ); | |
685 /*OMAPS00115777 - a0393213(R.Prabakar) - Details of any Missed call number shows Invalid information | |
686 The phonebook should be set before sending any event to 'call details window'*/ | |
687 data->phbk = phbk; | |
688 /* 1945 MZ Initialise the edtBuf */ | |
689 memset(data->edtBuf,'\0', STANDARD_EDITOR_SIZE ); | |
690 | |
691 /* SPR#1428 - SH - New Editor changes */ | |
692 #ifdef NEW_EDITOR | |
693 AUI_edit_SetAttr( &data->editor_attr, PHB_EDITOR, COLOUR_EDITOR_XX, EDITOR_FONT, | |
694 ED_MODE_READONLY, ED_CURSOR_NONE, ATB_DCS_UNICODE/*SPR2102*/, (UBYTE*) data->edtBuf, STANDARD_EDITOR_SIZE); | |
695 data->editor = ATB_edit_Create(&data->editor_attr,0); | |
696 SEND_EVENT(data->win, 0, 0, 0); | |
697 ATB_edit_Init(data->editor); | |
698 #else/*NEW_EDITOR*/ | |
699 bookSetEditAttributes( PHB_EDITOR, COLOUR_EDITOR_XX , 0, edtCurBar1, 0, | |
700 (char*) data->edtBuf, STANDARD_EDITOR_SIZE, &data->attr ); | |
701 data->edt = edtCreate( data->win, &data->attr, 0, 0 ); | |
702 #endif /*NEW_EDITOR*/ | |
703 | |
704 | |
705 | |
706 /* return the handle to the newly created window | |
707 */ | |
708 return data->win; | |
709 } | |
710 | |
711 | |
712 /******************************************************************************* | |
713 | |
714 Public methods | |
715 | |
716 *******************************************************************************/ | |
717 | |
718 | |
719 | |
720 /******************************************************************************* | |
721 | |
722 $Function: bookCallDetailsStart | |
723 | |
724 $Description: entry point for the call details window | |
725 | |
726 $Returns: handle of newly created window, or NULL | |
727 | |
728 $Arguments: parent, handle of the parent window | |
729 | |
730 *******************************************************************************/ | |
731 | |
732 T_MFW_HND bookCallDetailsStart( MfwHnd parent ) | |
733 { | |
734 T_MFW_HND win; | |
735 | |
736 TRACE_FUNCTION( "bookCallDetailsStart()" ); | |
737 | |
738 /* create and initialise the window | |
739 */ | |
740 if ( ( win = bookCallDetailsCreate( parent ) ) != NULL ) | |
741 SEND_EVENT( win, CALL_DETAILS_INIT, 0, 0 ); | |
742 | |
743 /* return the handle, or NULL if it failed to be created correctly | |
744 */ | |
745 return win; | |
746 } | |
747 | |
748 | |
749 | |
750 /******************************************************************************* | |
751 | |
752 $Function: bookCallDetailsDestroy | |
753 | |
754 $Description: destroys the call details window | |
755 | |
756 $Returns: None. | |
757 | |
758 $Arguments: window, hande of the window to be destroyed | |
759 | |
760 *******************************************************************************/ | |
761 | |
762 void bookCallDetailsDestroy( MfwHnd window ) | |
763 { | |
764 T_MFW_WIN *win = ((T_MFW_HDR *)window)->data; | |
765 tBookStandard *data = (tBookStandard *)win->user; | |
766 | |
767 TRACE_FUNCTION ("bookCallDetailsDestroy()"); | |
768 | |
769 if ( data ) | |
770 { | |
771 /* SPR#1428 - SH - New Editor changes */ | |
772 #ifdef NEW_EDITOR | |
773 /* New editor isn't automatically destroyed with winDelete, | |
774 * so we destroy it here */ | |
775 if (data->editor) | |
776 { | |
777 ATB_edit_Destroy(data->editor); | |
778 } | |
779 #endif | |
780 winDelete( data->win ); | |
781 FREE_MEMORY( (unsigned char *) data, sizeof( tBookStandard ) ); | |
782 } | |
783 } | |
784 | |
785 | |
786 | |
787 | |
788 | |
789 | |
790 /******************************************************************************* | |
791 | |
792 End of File | |
793 | |
794 *******************************************************************************/ |