diff g23m/condat/ms/src/bmi/MmiBookCallDetailsWindow.c @ 0:509db1a7b7b8

initial import: leo2moko-r1
author Space Falcon <falcon@ivan.Harhan.ORG>
date Mon, 01 Jun 2015 03:24:05 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/g23m/condat/ms/src/bmi/MmiBookCallDetailsWindow.c	Mon Jun 01 03:24:05 2015 +0000
@@ -0,0 +1,793 @@
+/*******************************************************************************
+
+					CONDAT (UK)
+
+********************************************************************************                                                                              
+
+ This software product is the property of Condat (UK) Ltd and may not be
+ disclosed to any third party without the express permission of the owner.                                 
+                                                                              
+********************************************************************************
+
+ $Project name:	Basic MMI                                                      
+ $Project code:	BMI (6349)                                                           
+ $Module:		PhoneBook
+ $File:		    MmiBookCallDetailsWindow.c
+ $Revision:		1.0                                                       
+                                                                              
+ $Author:		Condat(UK)                                                         
+ $Date:		    25/10/00                                                      
+                                                                               
+********************************************************************************
+                                                                              
+ Description:
+
+    This provides the implementation of the call details window for the
+	phone book module
+                        
+********************************************************************************
+ $History: MmiBookCallDetailsWindow.c
+
+       Aug 24, 2004        REF: CRR  22638 xrashmic
+	Bug:  E-Sample switches off when you attempt to look at details of a number 
+		  in call list. 
+	Fix:   Using the data stored in global variable to avoid corrupt data.
+
+	25/10/00			Original Condat(UK) BMI version.	
+	   
+ $End
+  // Issue Number : SPR#12874 on 31/03/04 by Rashmi.C.N.
+*******************************************************************************/
+
+
+
+
+/*******************************************************************************
+                                                                              
+                                Include Files
+                                                                              
+*******************************************************************************/
+#define ENTITY_MFW
+
+/* includes */
+#include <string.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+#if defined (NEW_FRAME)
+
+#include "typedefs.h"
+#include "vsi.h"
+#include "pei.h"
+#include "custom.h"
+#include "gsm.h"
+
+#else
+
+#include "STDDEFS.H"
+#include "custom.h"
+#include "gsm.h"
+#include "vsi.h"
+
+#endif
+
+#include "mfw_sys.h"
+
+#include "mfw_mfw.h"
+#include "mfw_win.h"
+#include "mfw_kbd.h"
+#include "mfw_lng.h"
+/* SPR#1428 - SH - New Editor changes */
+#ifndef NEW_EDITOR
+#include "mfw_edt.h"
+#endif
+#include "mfw_icn.h"
+#include "mfw_mnu.h"
+#include "mfw_tim.h"
+
+#include "mfw_sim.h"
+#include "mfw_cm.h"
+#include "mfw_nm.h"
+#include "mfw_phb.h"
+#include "mfw_mme.h"
+#include "mfw_sat.h"
+#include "mfw_sms.h"
+
+#include "dspl.h"
+
+#include "ksd.h"
+#include "psa.h"
+/* SPR#1428 - SH - New Editor changes */
+#ifdef NEW_EDITOR
+#include "ATBCommon.h"
+#include "ATBDisplay.h"
+#include "ATBEditor.h"
+#include "AUIEditor.h"
+#endif
+
+#include "MmiMain.h"
+#include "MmiBookController.h"
+#include "MmiDummy.h"
+#include "MmiDialogs.h"
+#include "MmiLists.h"
+
+#include "MmiMenu.h"
+#include "mmiCall.h"
+#include "Mmiicons.h"
+#include "MmiIdle.h"
+
+#include "MmiSoftKeys.h"
+#include "MmiSounds.h"
+#include "MmiIdle.h"
+#include "MmiNetwork.h"
+#include "mmiSat_i.h"
+#include "MmiAoc.h"
+
+#include "gdi.h"
+#include "audio.h"
+
+#include "cus_aci.h"
+#include "mfw_ffs.h"
+#include "MmiTimers.h"
+
+#include "MmiBookShared.h"
+#include "MmiCPHS.h"
+#include "mmiColours.h"
+
+
+#define CALLDETAILS_INFO_LEN 32
+
+//       Aug 24, 2004        REF: CRR  22638 xrashmic
+extern tMmiPhbData		g_temp_current ;
+
+/*******************************************************************************
+                                                                              
+                                Private methods
+                                                                              
+*******************************************************************************/
+
+
+
+/*******************************************************************************
+
+ $Function:    	bookCallDetails
+
+ $Description:	dialog function for the call details windows
+ 
+ $Returns:		None.
+
+ $Arguments:	win, window handle
+                event, event to be handled
+				value, not used
+				parameter, not used
+ 
+*******************************************************************************/
+
+static void bookCallDetails( T_MFW_HND win, USHORT event, SHORT value, void * parameter )
+{
+    T_MFW_WIN      *win_data = ((T_MFW_HDR *) win)->data;
+    tBookStandard  *data     = (tBookStandard *)win_data->user;
+#ifdef NEW_EDITOR
+	T_MFW_PHB_ENTRY p_pEntry;
+       //Aug 24, 2004        REF: CRR  22638 xrashmic
+       //Using the data stored in global variable to avoid corrupt data.
+	tMmiPhbData     current =g_temp_current;
+	//tMmiPhbData     current = data->phbk->current;
+	T_MFW_PHB_ENTRY *my = &current.entry[ current.selectedName - current.missedCallsOffset ];
+	T_ATB_TEXT		nameText;
+	T_ATB_TEXT		numberText;
+	T_ATB_TEXT		otherText;
+	char            *TempBuffer = (char *)ALLOC_MEMORY(CALLDETAILS_INFO_LEN);
+	char			*time;
+	char			*date;
+    TRACE_FUNCTION( "bookCallDetails()" );
+
+	/* SPR#1428 - SH - New Editor changes
+	 * Moved all this stuff here from the WinCb - it shouldn't be there! */
+ 
+	/* try to get the name from the phone book, null the structure out
+	   if we can't find it at all
+	*/
+
+	if ( bookFindNameInPhonebook( (const char *) my->number, &p_pEntry ) )
+	{
+		bookCopyPhbName(my, &p_pEntry,PHB_MAX_LEN);
+			my->name.len = p_pEntry.name.len;
+	}
+	else
+	{
+		my->name.len = 0;
+	}
+
+	numberText.dcs = ATB_DCS_ASCII;
+	numberText.data = my->number;
+	ATB_string_Length(&numberText);
+
+#ifdef EASY_TEXT_ENABLED	
+	if ( my->name.data[0] ==0x80)
+	{	
+		/* UNICODE */
+		nameText.dcs = ATB_DCS_UNICODE;
+		nameText.data = &my->name.data[2];
+	}
+	else
+#endif /* EASY_TEXT_ENABLED */
+	{
+		/* ASCII */
+		nameText.dcs = ATB_DCS_ASCII;
+		nameText.data = my->name.data;
+	}
+
+	ATB_string_Length(&nameText);
+
+	ATB_edit_ResetMode(data->editor, ED_MODE_READONLY);		/* Switch off read only to add text */
+	ATB_edit_ClearAll(data->editor);						/* Blank the editor */
+	ATB_edit_InsertString(data->editor, &nameText);
+	ATB_edit_Char(data->editor, ctrlEnter, FALSE);
+	ATB_edit_InsertString(data->editor, &numberText);
+	ATB_edit_Char(data->editor, ctrlEnter, FALSE);
+	
+	if (CphsPresent() == TRUE)
+	{
+		sprintf(TempBuffer, "Line %d", my->line);
+		otherText.dcs = ATB_DCS_ASCII;
+		otherText.data = (UBYTE *)TempBuffer;
+		ATB_string_Length(&otherText);
+		ATB_edit_InsertString(data->editor, &otherText);
+		ATB_edit_Char(data->editor, ctrlEnter, FALSE);
+	}
+	
+	/* API - 10/09/03 - SPR2513 - Add support to display chinese Data & Time */
+	/* API - 05/09/03 - SPR2357 - Get the character string for the date */
+	
+	date = MmiRsrcGetText(TxtCallDate);
+
+	if(Mmi_getCurrentLanguage() == CHINESE_LANGUAGE)
+	{
+		otherText.dcs = ATB_DCS_UNICODE;
+		otherText.data = (UBYTE *)date;
+	}
+	else
+	{
+		otherText.dcs = ATB_DCS_ASCII;
+		otherText.data = (UBYTE *)date;
+	}
+	ATB_string_Length(&otherText);
+	ATB_edit_InsertString(data->editor, &otherText);	
+
+	/* API - 05/09/03 - SPR2357 - END */
+	/* API - 10/09/03 - SPR2513 - END */	
+	
+	// API - 21-01-03 - 1566 - Date and Time displayed for Recent calls
+
+	// change by Sasken ( Rashmi C N) on March 31th 2004
+	// Issue Number : MMI-SPR-12874
+	// Bug: Wrong date and time in the Missed call details.
+	// Solution: converting the date and time into decimal format used in the 
+    //           phonebook management.
+		
+	sprintf((char*)TempBuffer, "%.2d/%.2d/%.2d",(UBYTE)((my->date.day[0])<<4)+(UBYTE) my->date.day[1],
+										  (UBYTE) ((my->date.month[0])<<4)+(UBYTE) my->date.month[1],
+										(UBYTE) ((my->date.year[0])<<4)+(UBYTE) my->date.year[1]);
+	otherText.dcs = ATB_DCS_ASCII;
+	otherText.data = (UBYTE *)TempBuffer;
+	ATB_string_Length(&otherText);
+	ATB_edit_InsertString(data->editor, &otherText);
+	ATB_edit_Char(data->editor, ctrlEnter, FALSE);
+
+	
+
+	/* API - 10/09/03 - SPR2513 - Add support to display chinese Data & Time */
+	/* API - 05/09/03 - SPR2357 - Get the character string for the Time */
+	
+	time = MmiRsrcGetText(TxtCallTime);
+
+	if(Mmi_getCurrentLanguage() == CHINESE_LANGUAGE)
+	{
+		otherText.dcs = ATB_DCS_UNICODE;
+		otherText.data = (UBYTE *)time;
+	}
+	else
+	{
+		otherText.dcs = ATB_DCS_ASCII;
+		otherText.data = (UBYTE *)time;
+	}
+
+	ATB_edit_InsertString(data->editor, &otherText);	
+	
+	/* API - 05/09/03 - SPR2357 - END */
+	/* API - 10/09/03 - SPR2513 - END */	
+
+	// API - 21-01-03 - 1566 - Date and Time displayed for Recent calls
+
+	// change by Sasken ( Rashmi C N) on March 31th 2004
+	// Issue Number : MMI-SPR-12874
+	// Bug: Wrong date and time in the Missed call details.
+	// Solution: converting the date and time into decimal format used in the 
+    //           phonebook management.
+	sprintf((char*)TempBuffer, "%.2d:%.2d", (UBYTE) ((my->time.hour[0])<<4)+(UBYTE) my->time.hour[1], 
+										 (UBYTE) ((my->time.minute[0])<<4)+(UBYTE) my->time.minute[1]);
+
+	otherText.dcs = ATB_DCS_ASCII;
+	otherText.data = (UBYTE *)TempBuffer;
+	ATB_string_Length(&otherText);
+	ATB_edit_InsertString(data->editor, &otherText);
+
+	ATB_edit_SetMode(data->editor, ED_MODE_READONLY);		/* Switch on read only again */
+
+
+	FREE_MEMORY((void *)TempBuffer, CALLDETAILS_INFO_LEN);
+	
+	/* show the editor and update the soft keys
+	*/
+	/* SH - the string has changed, so we need to refresh the word-wrap */
+	ATB_edit_Refresh(data->editor);
+	win_show(data->win);
+
+#else /* NEW_EDITOR */
+
+	if ( event == CALL_DETAILS_INIT )
+		winShow( data->win );
+
+#endif /* NEW_EDITOR */
+  }
+
+
+
+
+/*******************************************************************************
+
+ $Function:    	bookCallDetailsWinCB
+
+ $Description:	Window call back function
+ 
+ $Returns:		MFW_EVENT_CONSUMED
+
+ $Arguments:	e, event to be handles, w, window handle
+ 
+*******************************************************************************/
+
+static int bookCallDetailsWinCB( MfwEvt e, MfwWin *w )
+{
+	tBookStandard * data = (tBookStandard *)w->user;
+//	char		*Time;     // RAVI
+//	char		*Date;     // RAVI
+
+	TRACE_FUNCTION("bookCallDetailsWinCB");
+	switch( e )
+    {
+        case MfwWinVisible:
+		{
+/* SPR#1428 - SH - New Editor changes - Just show editor, calculate text
+ * string to display in bookCallDetails() */
+#ifdef NEW_EDITOR
+			ATB_edit_Show(data->editor);
+			resources_setTitleColour(COLOUR_EDITOR);
+
+			/* TITLE */
+		
+			dspl_Clear(0,0, SCREEN_SIZE_X-1, data->editor->attr->win_size.py-1);
+			PROMPT(0,0,0,TxtDetails);
+#else /* NEW_EDITOR */
+        	char            TempBuffer[32];
+			T_MFW_PHB_ENTRY p_pEntry;
+			tMmiPhbData     current = data->phbk->current;
+			T_MFW_PHB_ENTRY *my = &current.entry[ current.selectedName - current.missedCallsOffset ];
+
+			/* default screen update prior to painting below
+			*/
+		    dspl_ClearAll();
+
+			/* try to get the name from the phone book, null the structure out
+			   if we can't find it at all
+			*/
+
+#ifdef NO_ASCIIZ
+			{
+			UBYTE result;
+
+			if ( bookFindNameInPhonebook( (const char *) my->number, &p_pEntry ) )
+			{
+
+
+                //GW Copy name and length 
+				bookCopyPhbName(my, &p_pEntry,PHB_MAX_LEN);
+					my->name.len = p_pEntry.name.len;
+			}
+			else
+				{
+					TRACE_EVENT(">>>>Length set to zero");
+					my->name.len = 0;
+				}
+
+			}
+#else /* NO_ASCIIZ */
+
+			if ( bookFindNameInPhonebook( (const char *) my->number, &p_pEntry ) )
+				bookCopyPhbName(my, &p_pEntry, NAME_SCREEN_MAX); //GW Copy name
+			else
+				memset( (char*) my->name, '\0', NAME_SCREEN_MAX );
+#endif /* NO_ASCIIZ */
+
+			memset((char*)TempBuffer ,'\0',32);
+
+			
+			/* API - 1203 - 30/09/02 - Add the Data and the Time to the TempBuffer to be shown when the details of a
+									   LDN, LMN etc is looked at. Currently commented out as the ACI does not store the
+									   numbers at present and garbage would be displayed.
+			*/
+
+			/* API - 1542 - 10/01/03 - Update from issue above Added the values written to the structure by ACI to 
+									   display them to the user.
+			*/
+
+			/* API - 05/09/03 - SPR2357 - Get the character string for the date and time */
+			Time = MmiRsrcGetText(TxtCallTime);  
+			Date = MmiRsrcGetText(TxtCallDate); 
+			
+			sprintf((char*)TempBuffer,"%s%d%d%s%d%d%s %s%d%d%s%d%d%s%d%d%s", 
+				Time, (UBYTE) my->time.hour[0], (UBYTE) my->time.hour[1], ":", 
+						(UBYTE) my->time.minute[0], (UBYTE) my->time.minute[1], "\n",
+				Date, (UBYTE) my->date.day[0], (UBYTE) my->date.day[1],  "/", 
+						(UBYTE) my->date.month[0], (UBYTE) my->date.month[1], "/",
+						(UBYTE) my->date.year[0], (UBYTE) my->date.year[1], "\n");
+			/* API - 05/09/03 - SPR2357 - END */
+
+			
+
+#ifdef NO_ASCIIZ
+#ifdef EASY_TEXT_ENABLED	
+/*MC SPR 1242, changed macros to function calls e.g FIRST_LINE_CHINESE->Mmi_layout_first_line()*/
+				if (my->name.data[0] ==0x80)//if unicode
+				{	//display name as unicode
+					dspl_TextOut(0,0, DSPL_TXTATTR_UNICODE, (char *)my->name.data);
+					if ((my->name.data[MAX_LINE+2] != 0) && (my->name.data[MAX_LINE+3] != 0))
+						dspl_TextOut(0, Mmi_layout_first_line(), 0,  (char *) &my->name.data[MAX_LINE+2]);
+					//display number
+					dspl_TextOut(0, Mmi_layout_second_line(), 0,  (char *) my->number);
+					if (strlen((char *) my->number) > MAX_LINE)
+/*MC end*/						dspl_TextOut(0, Mmi_layout_second_line() + 8, 0,  (char *) &my->number[MAX_LINE]);
+				}
+				else
+#endif /* EASY_TEXT_ENABLED */
+				{
+					if (CphsPresent() == TRUE)
+					{
+						sprintf( (char *) data->edtBuf, "%s%s%s%s%d%s%s",
+						(char *) my->name.data,   "\n",
+						(char *) my->number,"\n Line ",  my->line,"\n",
+						TempBuffer );
+					}
+					else
+						sprintf( (char *) data->edtBuf, "%s%s%s%s%s",
+						(char *) my->name.data,   "\n",
+						(char *) my->number,"\n",
+						TempBuffer );
+				
+					/* show the editor and update the soft keys
+					*/
+					edtShow( data->edt );
+				}
+
+#else /* NO_ASCIIZ */
+				if (CphsPresent() == TRUE)
+					{
+						sprintf( (char *) data->edtBuf, "%s%s%s%s%d%s%s",
+						(char *) my->name,   "\n",
+						(char *) my->number,"\n Line ",  my->line,"\n",
+						TempBuffer );
+					}
+					else
+						sprintf( (char *) data->edtBuf, "%s%s%s%s%s",
+						(char *) my->name,   "\n",
+						(char *) my->number,"\n",
+						TempBuffer );
+				
+			/* show the editor and update the soft keys
+			*/
+					edtShow( data->edt );
+#endif /* NO_ASCIIZ */
+#endif /* NEW_EDITOR */
+
+			displaySoftKeys( TxtNull, TxtSoftBack );
+		}
+		break;
+
+        default:
+		{
+			/* default processing, we return IGNORED here and let the
+			   default handler pick up the ball
+			*/
+			return MFW_EVENT_PASSED;
+		}
+    }
+
+    return MFW_EVENT_CONSUMED;
+}
+
+
+
+
+/*******************************************************************************
+
+ $Function:    	bookCallDetailsKeyCB
+
+ $Description:	normal keyboard handler
+ 
+ $Returns:		MFW_EVENT_CONSUMED in all cases
+
+ $Arguments:	e, event to be handled, k keyboard handle
+ 
+*******************************************************************************/
+
+static int bookCallDetailsKeyCB( MfwEvt e, MfwKbd *k )
+{
+	T_MFW_HND     win       = mfwParent( mfw_header() );
+    T_MFW_WIN     *win_data = ((T_MFW_HDR *)win)->data;
+    tBookStandard *data     = (tBookStandard *) win_data->user;
+
+	/* make sure we handle null keyboards
+	*/
+	if ( k == NULL )
+		return MFW_EVENT_CONSUMED;
+
+	/* deal with the incoming key code
+	*/
+    switch( k->code )
+    {
+		case KCD_MNUDOWN:
+		{
+			/* scroll down event
+			*/
+
+			if ( data->phbk->current.selectedName == data->phbk->current.status.used_entries-1 )
+			{
+	            data->phbk->current.selectedName = 0;
+	        }
+	        else
+	        	data->phbk->current.selectedName++;
+			
+		}
+        break;
+
+        case KCD_MNUUP:
+		{				
+			/* scroll up event
+			*/
+	        if ( data->phbk->current.selectedName == 0 )
+	        {
+				data->phbk->current.selectedName = data->phbk->current.status.used_entries-1;
+			}
+			else
+				data->phbk->current.selectedName--;
+		}
+        break;
+
+        case KCD_CALL:
+		{
+			/* left, implies make call
+			*/
+			callNumber( data->phbk->current.entry[data->phbk->current.selectedName].number );
+			bookPhonebookDestroy( data->phbk->win );
+		}
+		break;
+
+        case KCD_RIGHT:
+		{
+			bookCallDetailsDestroy(data->win);
+		}
+        break;
+
+        case KCD_HUP:
+		{
+			/* clear, destroy the window
+			*/
+			bookCallDetailsDestroy( data->win );
+		}
+		break;
+
+        default:
+		{
+			/* no default behaviour required
+			*/
+		}
+		break;
+    }
+
+	/* if we have scrolled then the behaviour needs to be to perform another
+	   search to get the window updated correctly
+	*/
+	if ( ( k->code == KCD_MNUUP ) || ( k->code == KCD_MNUDOWN ) )
+	{
+		SEND_EVENT(data->win, 0, 0, 0);
+        winShow( win );
+	}
+
+	/* and always return consumed
+	*/
+    return MFW_EVENT_CONSUMED;
+}
+
+
+
+/*******************************************************************************
+
+ $Function:    	bookCallDetailsKbdLongCB
+
+ $Description:	Keyboard Long Press event handler
+ 
+ $Returns:		MFW_EVENT_CONSUMED always
+
+ $Arguments:	e, event, k, keyboard handle
+ 
+*******************************************************************************/
+
+static int bookCallDetailsKeyLongCB( MfwEvt e, MfwKbd *k )
+{
+    T_MFW_HND		win			= mfwParent( mfw_header() );
+    T_MFW_WIN		*win_data	= ((T_MFW_HDR *)win)->data;
+    tBookStandard	*data		= (tBookStandard *) win_data->user;
+
+	/* hand a long clear event only
+	*/
+	if ( ( e & KEY_CLEAR ) && ( e & KEY_LONG ) )
+		bookCallDetailsDestroy( data->win );
+
+	return MFW_EVENT_CONSUMED;
+}
+
+
+
+
+/*******************************************************************************
+
+ $Function:    	bookCallDetailsCreate
+
+ $Description:	Creates the window and associates editors and keyboards
+                with it.
+ 
+ $Returns:		handle of the newly created window, or NULL if failure
+
+ $Arguments:	parent, handle of parent window
+ 
+*******************************************************************************/
+
+static T_MFW_HND bookCallDetailsCreate( MfwHnd parent )
+{
+	T_MFW_WIN     *win_data;
+	tBookStandard *data             = (tBookStandard *) ALLOC_MEMORY( sizeof( tBookStandard ) );
+	T_MFW_WIN     *parent_win_data  = ((T_MFW_HDR *)parent)->data;
+	T_phbk        *phbk             = (T_phbk *)parent_win_data->user;
+
+	TRACE_FUNCTION ("phbk_call_details_create()");
+
+	/* Deal with allocation failure on the data block
+	*/
+	if ( ! data )
+		return NULL;
+
+	/* create the window
+	*/
+	if ( ( data->win = win_create( parent, 0, E_WIN_VISIBLE, (T_MFW_CB) bookCallDetailsWinCB ) ) == NULL )
+		return NULL;
+
+	/* Associate the dialog and user data areas
+	*/
+    data->mmi_control.dialog	= (T_DIALOG_FUNC) bookCallDetails;
+    data->mmi_control.data		= data;
+    win_data					= ((T_MFW_HDR *)data->win)->data;
+    win_data->user				= (void *) data;
+	data->parent_win			= parent;
+
+    /* Create the keyboards and editor objects, and associate a phone book handler
+    */
+	data->kbd      = kbdCreate( data->win, KEY_ALL,            (MfwCb) bookCallDetailsKeyCB      );
+    data->kbd_long = kbdCreate( data->win, KEY_ALL | KEY_LONG, (MfwCb) bookCallDetailsKeyLongCB );
+
+	/* 1945 MZ Initialise the edtBuf   */
+	memset(data->edtBuf,'\0', STANDARD_EDITOR_SIZE );
+
+/* SPR#1428 - SH - New Editor changes */
+#ifdef NEW_EDITOR
+	AUI_edit_SetAttr( &data->editor_attr, PHB_EDITOR, COLOUR_EDITOR_XX, EDITOR_FONT,
+		ED_MODE_READONLY, ED_CURSOR_NONE, ATB_DCS_UNICODE/*SPR2102*/, 	(UBYTE*) data->edtBuf, STANDARD_EDITOR_SIZE);
+	data->editor = ATB_edit_Create(&data->editor_attr,0);
+	SEND_EVENT(data->win, 0, 0, 0);
+	ATB_edit_Init(data->editor);
+#else/*NEW_EDITOR*/
+	bookSetEditAttributes( PHB_EDITOR, COLOUR_EDITOR_XX , 0, edtCurBar1, 0,
+		(char*) data->edtBuf, STANDARD_EDITOR_SIZE, &data->attr );
+	data->edt      = edtCreate( data->win, &data->attr, 0, 0 );
+#endif /*NEW_EDITOR*/
+
+	data->phbk     = phbk;
+
+	/* return the handle to the newly created window
+	*/
+    return data->win;
+}
+
+
+/*******************************************************************************
+                                                                              
+                                Public methods
+                                                                              
+*******************************************************************************/
+
+
+
+/*******************************************************************************
+
+ $Function:    	bookCallDetailsStart
+
+ $Description:	entry point for the call details window
+ 
+ $Returns:		handle of newly created window, or NULL
+
+ $Arguments:	parent, handle of the parent window
+ 
+*******************************************************************************/
+
+T_MFW_HND bookCallDetailsStart( MfwHnd parent )
+{
+	T_MFW_HND win;
+
+	TRACE_FUNCTION( "bookCallDetailsStart()" );
+
+	/* create and initialise the window
+	*/
+    if ( ( win = bookCallDetailsCreate( parent ) ) != NULL )
+        SEND_EVENT( win, CALL_DETAILS_INIT, 0, 0 );
+
+	/* return the handle, or NULL if it failed to be created correctly
+	*/
+    return win;
+}
+
+
+
+/*******************************************************************************
+
+ $Function:    	bookCallDetailsDestroy
+
+ $Description:	destroys the call details window
+ 
+ $Returns:		None.
+
+ $Arguments:	window, hande of the window to be destroyed
+ 
+*******************************************************************************/
+
+void bookCallDetailsDestroy( MfwHnd window )
+{
+	T_MFW_WIN     *win  = ((T_MFW_HDR *)window)->data;
+	tBookStandard *data = (tBookStandard *)win->user;
+
+	TRACE_FUNCTION ("bookCallDetailsDestroy()");
+
+	if ( data )
+	{
+	/* SPR#1428 - SH - New Editor changes */
+#ifdef NEW_EDITOR
+		/* New editor isn't automatically destroyed with winDelete,
+		 * so we destroy it here */
+		if (data->editor)
+		{
+			ATB_edit_Destroy(data->editor);
+		}
+#endif
+		winDelete( data->win );
+		FREE_MEMORY( (unsigned char *) data, sizeof( tBookStandard ) );
+	}
+}
+
+
+
+
+
+
+/*******************************************************************************
+                                                                              
+                                End of File
+                                                                              
+*******************************************************************************/