FreeCalypso > hg > fc-tourmaline
diff src/ui/bmi/mmiBookSDNWindow.c @ 142:ec9f955fc487
mmiBook*.c: bogotab fixes
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sat, 14 Nov 2020 08:43:59 +0000 |
parents | c0052fe355d3 |
children |
line wrap: on
line diff
--- a/src/ui/bmi/mmiBookSDNWindow.c Sat Nov 14 04:29:03 2020 +0000 +++ b/src/ui/bmi/mmiBookSDNWindow.c Sat Nov 14 08:43:59 2020 +0000 @@ -1,6 +1,6 @@ /******************************************************************************* - CONDAT (UK) + CONDAT (UK) ******************************************************************************** @@ -9,14 +9,14 @@ ******************************************************************************** - $Project name: Basic MMI - $Project code: BMI (6349) - $Module: PhoneBook - $File: MmiBookSDNWindow.c - $Revision: 1.0 + $Project name: Basic MMI + $Project code: BMI (6349) + $Module: PhoneBook + $File: MmiBookSDNWindow.c + $Revision: 1.0 - $Author: Condat(UK) - $Date: 25/10/00 + $Author: Condat(UK) + $Date: 25/10/00 ******************************************************************************** @@ -32,7 +32,7 @@ sending MMS/EMS. Solution: The new feature to select the number from phonebook while sending MMS/EMS is added - 25/10/00 Original Condat(UK) BMI version. + 25/10/00 Original Condat(UK) BMI version. $End @@ -40,7 +40,6 @@ - /******************************************************************************* Include Files @@ -91,7 +90,7 @@ #include "mfw_mme.h" #include "mfw_sat.h" #include "mfw_sms.h" -#include "mfw_cnvt.h" //GW Added for 'mfw_SIM2GsmStr' +#include "mfw_cnvt.h" //GW Added for 'mfw_SIM2GsmStr' #include "dspl.h" @@ -105,7 +104,6 @@ #include "MmiLists.h" - #include "MmiMenu.h" #include "mmiCall.h" #include "Mmiicons.h" @@ -130,8 +128,6 @@ #include "mmiColours.h" - - /******************************************************************************* Private methods @@ -140,16 +136,16 @@ /******************************************************************************* - $Function: bookSDN + $Function: bookSDN - $Description: window dialog function + $Description: window dialog function - $Returns: none. + $Returns: none. - $Arguments: win, window handle + $Arguments: win, window handle event, event to be handled - value, not used - parameter, not used + value, not used + parameter, not used *******************************************************************************/ @@ -157,190 +153,188 @@ { T_MFW_WIN *win_data = ((T_MFW_HDR *) win)->data; tBookStandard *data = (tBookStandard *)win_data->user; - MfwMnu *mnu; - tMmiPhbData *my; + MfwMnu *mnu; + tMmiPhbData *my; TRACE_FUNCTION ("bookSDN()"); - /* Guard against bad incoming data - */ - if ( ! data ) - return; + /* Guard against bad incoming data + */ + if ( ! data ) + return; - /* Grab the current phonebook data element, we use this a lot - */ - my = &data->phbk->current; + /* Grab the current phonebook data element, we use this a lot + */ + my = &data->phbk->current; - /* simple event handler, dealing with the messages we know about - */ + /* simple event handler, dealing with the messages we know about + */ switch (event) - { - case SEARCH_INIT: - { - /* Search initialise, no action required - */ - } - break; + { + case SEARCH_INIT: + { + /* Search initialise, no action required + */ + } + break; - case SEARCH_SCROLL_UP: - { - /* Scroll up event we need to deal with correctly - */ - if ( ( my->index==1 ) && ( my->selectedName == 0 ) ) - { - /* select the correct boundary for the list - */ - my->selectedName = my->status.used_entries; - if ( my->selectedName > MAX_SEARCH_NAME ) - my->selectedName = MAX_SEARCH_NAME; + case SEARCH_SCROLL_UP: + { + /* Scroll up event we need to deal with correctly + */ + if ( ( my->index==1 ) && ( my->selectedName == 0 ) ) + { + /* select the correct boundary for the list + */ + my->selectedName = my->status.used_entries; + if ( my->selectedName > MAX_SEARCH_NAME ) + my->selectedName = MAX_SEARCH_NAME; - /* and subtract one cos we are dealing with an array starting - at zero - */ - my->selectedName--; + /* and subtract one cos we are dealing with an array starting + at zero + */ + my->selectedName--; - /* and calculate the correct index value - */ - my->index = my->status.used_entries - my->selectedName; + /* and calculate the correct index value + */ + my->index = my->status.used_entries - my->selectedName; - } - else - { - if ( my->selectedName == 0 ) - my->index--; - else - my->selectedName--; - } + } + else + { + if ( my->selectedName == 0 ) + my->index--; + else + my->selectedName--; + } - /* update menu structures - */ - mnu = (MfwMnu *)mfwControl( data->menu ); - mnu->lCursor[ mnu->level ] = my->selectedName; + /* update menu structures + */ + mnu = (MfwMnu *)mfwControl( data->menu ); + mnu->lCursor[ mnu->level ] = my->selectedName; - /* and go find the name - */ - bookFindName( MAX_SEARCH_NAME, &data->phbk->current ); - } - break; + /* and go find the name + */ + bookFindName( MAX_SEARCH_NAME, &data->phbk->current ); + } + break; - case SEARCH_SCROLL_DOWN: - { - /* scroll down event is a bit easier than the scroll up - */ - if ( (my->index + my->selectedName) == my->status.used_entries ) - { - my->index = 1; - my->selectedName = 0; - } - else - { - if ( my->selectedName == (MAX_SEARCH_NAME - 1) ) - my->index++; - else - my->selectedName++; - } + case SEARCH_SCROLL_DOWN: + { + /* scroll down event is a bit easier than the scroll up + */ + if ( (my->index + my->selectedName) == my->status.used_entries ) + { + my->index = 1; + my->selectedName = 0; + } + else + { + if ( my->selectedName == (MAX_SEARCH_NAME - 1) ) + my->index++; + else + my->selectedName++; + } - /* update menu structures - */ - mnu = (MfwMnu *)mfwControl( data->menu ); - mnu->lCursor[ mnu->level ] = my->selectedName; + /* update menu structures + */ + mnu = (MfwMnu *)mfwControl( data->menu ); + mnu->lCursor[ mnu->level ] = my->selectedName; - /* and go find the name - */ - bookFindName( MAX_SEARCH_NAME, &data->phbk->current ); - } - break; + /* and go find the name + */ + bookFindName( MAX_SEARCH_NAME, &data->phbk->current ); + } + break; - case SEARCH_STRING: - { - /* search for the current element selected in our buffer - */ - my->index = my->index + my->selectedName; + case SEARCH_STRING: + { + /* search for the current element selected in our buffer + */ + my->index = my->index + my->selectedName; - if ( bookSearchName( data->edtBuf, MAX_SEARCH_NAME, &data->phbk->current ) == MFW_PHB_OK ) - { - if ( my->index > (my->status.used_entries - MAX_SEARCH_NAME + 1) ) - { - /* need to reorganise a bit here - */ - if ( my->status.used_entries > MAX_SEARCH_NAME ) - { - my->selectedName = my->index - my->status.used_entries; - my->selectedName += MAX_SEARCH_NAME - 1; - my->index -= my->selectedName; - } - else - { - my->selectedName = my->index - 1; - my->index = 1; - } + if ( bookSearchName( data->edtBuf, MAX_SEARCH_NAME, &data->phbk->current ) == MFW_PHB_OK ) + { + if ( my->index > (my->status.used_entries - MAX_SEARCH_NAME + 1) ) + { + /* need to reorganise a bit here + */ + if ( my->status.used_entries > MAX_SEARCH_NAME ) + { + my->selectedName = my->index - my->status.used_entries; + my->selectedName += MAX_SEARCH_NAME - 1; + my->index -= my->selectedName; + } + else + { + my->selectedName = my->index - 1; + my->index = 1; + } - /* find the appropriate name - */ - bookFindName( MAX_SEARCH_NAME, &data->phbk->current ); - } - else - data->phbk->current.selectedName = 0; + /* find the appropriate name + */ + bookFindName( MAX_SEARCH_NAME, &data->phbk->current ); + } + else + data->phbk->current.selectedName = 0; - /* update menu structures - */ - mnu = (MfwMnu *)mfwControl(data->menu); - mnu->lCursor[mnu->level] = data->phbk->current.selectedName; - } - } - break; + /* update menu structures + */ + mnu = (MfwMnu *)mfwControl(data->menu); + mnu->lCursor[mnu->level] = data->phbk->current.selectedName; + } + } + break; - case SEARCH_UPDATE: - { - /* Update search message - */ - my->index = 1; - my->selectedName = 0; - memset( data->edtBuf, '\0', sizeof( data->edtBuf ) ); + case SEARCH_UPDATE: + { + /* Update search message + */ + my->index = 1; + my->selectedName = 0; + memset( data->edtBuf, '\0', sizeof( data->edtBuf ) ); /* SPR#1428 - SH - New Editor changes */ #ifdef NEW_EDITOR - ATB_edit_Reset( data->editor ); + ATB_edit_Reset( data->editor ); #else /* NEW_EDITOR */ - edtReset( data->edt ); + edtReset( data->edt ); #endif /* NEW_EDITOR */ - /* deal with the new search using the method above - */ - SEND_EVENT( win, SEARCH_STRING, 0, 0 ); - } - break; + /* deal with the new search using the method above + */ + SEND_EVENT( win, SEARCH_STRING, 0, 0 ); + } + break; /* SPR#1428 - SH - New Editor: added event so we can * prompt a redraw when required. */ #ifdef NEW_EDITOR - case SEARCH_REDRAW: - win_show(data->win); - break; + case SEARCH_REDRAW: + win_show(data->win); + break; #endif - default: - { - /* no default handler, just ignore any other messages - */ - } - break; + default: + { + /* no default handler, just ignore any other messages + */ + } + break; - } + } } - - /******************************************************************************* - $Function: bookSDNWinCB + $Function: bookSDNWinCB - $Description: Window call back function + $Description: Window call back function - $Returns: status indicating if event handled or not + $Returns: status indicating if event handled or not - $Arguments: e, event, w, window handle + $Arguments: e, event, w, window handle *******************************************************************************/ @@ -348,117 +342,115 @@ { tBookStandard *data = (tBookStandard *)w->user; - char *ElemPtr, *NumPtr; + char *ElemPtr, *NumPtr; - /* x0045876, 14-Aug-2006 (WR - "Position" was set but never used) */ - /* int leftKey, rightKey, ElemSize, i, Position; */ - int leftKey, rightKey, ElemSize, i; + /* x0045876, 14-Aug-2006 (WR - "Position" was set but never used) */ + /* int leftKey, rightKey, ElemSize, i, Position; */ + int leftKey, rightKey, ElemSize, i; TRACE_FUNCTION ("phbk_sdn_win_cb()"); - switch (e) + switch (e) { case MfwWinVisible: - { - /* Paint function, clear the screen and paint in each - of our controls - */ - dspl_ClearAll(); + { + /* Paint function, clear the screen and paint in each + of our controls + */ + dspl_ClearAll(); /* SPR#1428 - SH - New Editor changes */ #ifdef NEW_EDITOR - ATB_edit_Show(data->editor); + ATB_edit_Show(data->editor); #else /* NEW_EDITOR */ - edtShow(data->edt); + edtShow(data->edt); #endif /* NEW_EDITOR */ - /* Populate the names screen buffer - */ - for (i=0;i<MAX_SEARCH_NAME;i++) - { - /* Grab info for this element - */ - ElemPtr = MmiBookCallList(i); - ElemSize = MmiBookCallListSize(i); + /* Populate the names screen buffer + */ + for (i=0;i<MAX_SEARCH_NAME;i++) + { + /* Grab info for this element + */ + ElemPtr = MmiBookCallList(i); + ElemSize = MmiBookCallListSize(i); - /* Decide on whether to use number or name - */ + /* Decide on whether to use number or name + */ #ifdef NO_ASCIIZ - NumPtr = (char*)data->phbk->current.entry[i].name.data; + NumPtr = (char*)data->phbk->current.entry[i].name.data; #else - NumPtr = (char*)data->phbk->current.entry[i].name; + NumPtr = (char*)data->phbk->current.entry[i].name; #endif - if ( *NumPtr == '\0' ) - { - NumPtr = (char*)data->phbk->current.entry[i].number; - /* x0045876, 14-Aug-2006 (WR - "Position" was set but never used) */ - /* Position = POS_END; */ - } - /* BEGIN: x0045876, 14-Aug-2006 (WR - "Position" was set but never used) */ - /* - else - Position = POS_BEGIN; - */ - /* END: x0045876, 14-Aug-2006 (WR - "Position" was set but never used) */ + if ( *NumPtr == '\0' ) + { + NumPtr = (char*)data->phbk->current.entry[i].number; + /* x0045876, 14-Aug-2006 (WR - "Position" was set but never used) */ + /* Position = POS_END; */ + } + /* BEGIN: x0045876, 14-Aug-2006 (WR - "Position" was set but never used) */ + /* + else + Position = POS_BEGIN; + */ + /* END: x0045876, 14-Aug-2006 (WR - "Position" was set but never used) */ - /* Clear the buffer, then fill it with the required value - */ - memset( ElemPtr, '\0', ElemSize ); - /*mc, SPR 1442, replaced old truncation function with new one*/ - resources_truncate_to_screen_width(NumPtr, 0, ElemPtr, ElemSize,SCREEN_SIZE_X, FALSE); - } + /* Clear the buffer, then fill it with the required value + */ + memset( ElemPtr, '\0', ElemSize ); + /*mc, SPR 1442, replaced old truncation function with new one*/ + resources_truncate_to_screen_width(NumPtr, 0, ElemPtr, ElemSize,SCREEN_SIZE_X, FALSE); + } - /* Show the menu and stick up the find prompt - */ - mnuUnhide(data->menu); - PROMPT( MmiBookMenuArea().px, Mmi_layout_line(SECOND_LAST_LINE_TOP), 0, TxtFind ); + /* Show the menu and stick up the find prompt + */ + mnuUnhide(data->menu); + PROMPT( MmiBookMenuArea().px, Mmi_layout_line(SECOND_LAST_LINE_TOP), 0, TxtFind ); - /* The softkeys are dependant on how we got here - */ - //CRR: 25302 - xpradipg 10 Nov 2004 - //check also if phonebook is invoked by MMS/EMS - if ( ( data->phbk->fromSMS ) || ( data->phbk->fromSMSSC )|| (data->phbk->fromMmsEms) ||( data->phbk->current.status.book == PHB_SDN ) ) - { - leftKey = TxtSoftSelect; - rightKey = TxtSoftBack; - } - else - { - leftKey = TxtSoftCall; - rightKey = TxtSoftOptions; - } - displaySoftKeys( leftKey, rightKey ); - } - break; + /* The softkeys are dependant on how we got here + */ + //CRR: 25302 - xpradipg 10 Nov 2004 + //check also if phonebook is invoked by MMS/EMS + if ( ( data->phbk->fromSMS ) || ( data->phbk->fromSMSSC )|| (data->phbk->fromMmsEms) ||( data->phbk->current.status.book == PHB_SDN ) ) + { + leftKey = TxtSoftSelect; + rightKey = TxtSoftBack; + } + else + { + leftKey = TxtSoftCall; + rightKey = TxtSoftOptions; + } + displaySoftKeys( leftKey, rightKey ); + } + break; - default: - { - /* Default handler, just return zero and let the next handler in the - chain deal with the event if required - */ - return 0; - } + default: + { + /* Default handler, just return zero and let the next handler in the + chain deal with the event if required + */ + return 0; + } } - /* return non-zero status indicating we have dealt with the event - */ - return MFW_EVENT_CONSUMED; + /* return non-zero status indicating we have dealt with the event + */ + return MFW_EVENT_CONSUMED; } - - /******************************************************************************* - $Function: bookSDNKbdCB + $Function: bookSDNKbdCB - $Description: Keyboard handler + $Description: Keyboard handler - $Returns: stats indicating if event handled or not + $Returns: stats indicating if event handled or not (Always MFW_EVENT_CONSUMED) - $Arguments: e, event, k, keyboard handle + $Arguments: e, event, k, keyboard handle *******************************************************************************/ @@ -467,247 +459,240 @@ T_MFW_HND win = mfwParent(mfw_header()); T_MFW_WIN *win_data = ((T_MFW_HDR *)win)->data; tBookStandard *data = (tBookStandard *)win_data->user; - tBookMessageEvents MyEvent = SEARCH_STRING; - char *Number; + tBookMessageEvents MyEvent = SEARCH_STRING; + char *Number; -// int i = 0; // RAVI +// int i = 0; // RAVI TRACE_FUNCTION ("bookSDNKbdCB()"); /* SPR#1428 - SH - New Editor changes */ #ifdef NEW_EDITOR - AUI_entry_EventKey(data->entry_data, e, k); + AUI_entry_EventKey(data->entry_data, e, k); #else /* NEW_EDITOR */ - /* Make sure we have the correct editor enabled - * (unnecessary for NEW_EDITOR) */ - if ( activeEditor() != data->edt ) - editActivate( data->edt, TRUE ); - editEventKey( e, k ); + /* Make sure we have the correct editor enabled + * (unnecessary for NEW_EDITOR) */ + if ( activeEditor() != data->edt ) + editActivate( data->edt, TRUE ); + editEventKey( e, k ); #endif /* NEW_EDITOR */ - /* Handle the events we need to deal with here - */ - switch (k->code) + /* Handle the events we need to deal with here + */ + switch (k->code) { case KCD_MNUUP: - { - /* Scroll up event, just mark our event as such and it'll - be dealt with in due course - */ - MyEvent = SEARCH_SCROLL_UP; - } - break; + { + /* Scroll up event, just mark our event as such and it'll + be dealt with in due course + */ + MyEvent = SEARCH_SCROLL_UP; + } + break; case KCD_MNUDOWN: - { - /* Scroll down event, just mark our event as such and it'll - be dealt with in due course - */ - MyEvent = SEARCH_SCROLL_DOWN; - } - break; + { + /* Scroll down event, just mark our event as such and it'll + be dealt with in due course + */ + MyEvent = SEARCH_SCROLL_DOWN; + } + break; - case KCD_CALL: + case KCD_CALL: case KCD_LEFT: - { - /* left key is a select, we either need to send the number - back to the parent window, or call it - */ - Number = (char *) data->phbk->current.entry[ data->phbk->current.selectedName ].number; + { + /* left key is a select, we either need to send the number + back to the parent window, or call it + */ + Number = (char *) data->phbk->current.entry[ data->phbk->current.selectedName ].number; - if ( data->phbk->fromSMS ) - SEND_EVENT( data->phbk->parent_win, SMS_PHBK_NUMBER, 0, (UBYTE *) Number ); - if ( data->phbk->fromSMSSC ) - SEND_EVENT( data->phbk->parent_win, SMSSC_PHBK_NUMBER, 0, (UBYTE *) Number ); - else if(data->phbk->fromDivert ) - SEND_EVENT( data->phbk->parent_win, DIVERT_PHBK_NUMBER, 0, (UBYTE *) Number ); - else if(data->phbk->fromDeflect )/*SPR 1392, send event to call dialogue*/ - SEND_EVENT( data->phbk->parent_win, DEFLECT_PHBK_NUMBER, 0, (UBYTE *) Number ); + if ( data->phbk->fromSMS ) + SEND_EVENT( data->phbk->parent_win, SMS_PHBK_NUMBER, 0, (UBYTE *) Number ); + if ( data->phbk->fromSMSSC ) + SEND_EVENT( data->phbk->parent_win, SMSSC_PHBK_NUMBER, 0, (UBYTE *) Number ); + else if(data->phbk->fromDivert ) + SEND_EVENT( data->phbk->parent_win, DIVERT_PHBK_NUMBER, 0, (UBYTE *) Number ); + else if(data->phbk->fromDeflect )/*SPR 1392, send event to call dialogue*/ + SEND_EVENT( data->phbk->parent_win, DEFLECT_PHBK_NUMBER, 0, (UBYTE *) Number ); //CRR: 25302 - xpradipg 10 Nov 2004 //send even if invoked by MMS/EMS else if(data->phbk->fromMmsEms) SEND_EVENT( data->phbk->parent_win, MMS_EMS_PHBK_NUMBER, 0, (UBYTE *) Number ); - else - callNumber( (UBYTE *) Number ); + else + callNumber( (UBYTE *) Number ); - /* Having dealt with the number, we destroy our phone book - context and exit the handler early - */ - bookPhonebookDestroy( data->phbk->win ); - return MFW_EVENT_CONSUMED; - } - //break; // RAVI + /* Having dealt with the number, we destroy our phone book + context and exit the handler early + */ + bookPhonebookDestroy( data->phbk->win ); + return MFW_EVENT_CONSUMED; + } + //break; // RAVI case KCD_RIGHT: - { - /* Right key is a cancel - */ - bookSDNDestroy( data->win ); - data->phbk->search_win = 0; - return MFW_EVENT_CONSUMED; - } -// break; // RAVI + { + /* Right key is a cancel + */ + bookSDNDestroy( data->win ); + data->phbk->search_win = 0; + return MFW_EVENT_CONSUMED; + } +// break; // RAVI case KCD_HUP: - { - /* Clear key deletes the last character, or if none left will - take us out of here - */ + { + /* Clear key deletes the last character, or if none left will + take us out of here + */ if ( data->edtBuf[0] == '\0' ) - { - bookSDNDestroy( data->win ); - data->phbk->search_win = 0; - return MFW_EVENT_CONSUMED; - } + { + bookSDNDestroy( data->win ); + data->phbk->search_win = 0; + return MFW_EVENT_CONSUMED; + } else - { - /* Delete last character entered - */ - /* SPR#1428 - SH - New Editor changes */ + { + /* Delete last character entered + */ + /* SPR#1428 - SH - New Editor changes */ #ifdef NEW_EDITOR - ATB_edit_DeleteLeft(data->editor, TRUE); /* SPR#2342 */ + ATB_edit_DeleteLeft(data->editor, TRUE); /* SPR#2342 */ #else /* NEW_EDITOR */ edtChar( data->edt, ecBack ); #endif /* NEW_EDITOR */ - } - } + } + } break; default: - { - /* No default processing required - */ - } + { + /* No default processing required + */ + } break; } - /* Initiate a new search based on the current settings, MyEvent - will have been set accordingly - */ + /* Initiate a new search based on the current settings, MyEvent + will have been set accordingly + */ SEND_EVENT( data->win, MyEvent, 0, 0 ); - winShow( data->win ); + winShow( data->win ); - /* And make sure no calling routines try to do anything with the - event we have just dealt with - */ + /* And make sure no calling routines try to do anything with the + event we have just dealt with + */ return MFW_EVENT_CONSUMED; } - - /******************************************************************************* - $Function: bookSDNKeyLongCB + $Function: bookSDNKeyLongCB - $Description: long keyboard event handler + $Description: long keyboard event handler - $Returns: MFW_EVENT_CONSUMED always + $Returns: MFW_EVENT_CONSUMED always - $Arguments: e, event to handle, k, keyboard handle + $Arguments: e, event to handle, k, keyboard handle *******************************************************************************/ static int bookSDNKeyLongCB( MfwEvt e, MfwKbd *k ) { T_MFW_HND win = mfwParent(mfw_header()); - T_MFW_WIN *win_data = ((T_MFW_HDR *)win)->data; + T_MFW_WIN *win_data = ((T_MFW_HDR *)win)->data; tBookStandard *data = (tBookStandard *)win_data->user; - /* Just checks for clear and long being set, if so it will - destroy the window - */ - if ( (e & KEY_CLEAR) && (e & KEY_LONG) ) - { - bookSDNDestroy( win ); - data->phbk->search_win = 0; - } + /* Just checks for clear and long being set, if so it will + destroy the window + */ + if ( (e & KEY_CLEAR) && (e & KEY_LONG) ) + { + bookSDNDestroy( win ); + data->phbk->search_win = 0; + } - /* Force event consumed always, prevents default behaviour - kicking in - */ - return MFW_EVENT_CONSUMED; + /* Force event consumed always, prevents default behaviour + kicking in + */ + return MFW_EVENT_CONSUMED; } - - /******************************************************************************* - $Function: bookSDNCreate + $Function: bookSDNCreate - $Description: Creates the Service numbers widow + $Description: Creates the Service numbers widow - $Returns: Window Handle, or NULL if unsuccessfull + $Returns: Window Handle, or NULL if unsuccessfull - $Arguments: Parent, handle of the parent window + $Arguments: Parent, handle of the parent window *******************************************************************************/ static T_MFW_HND bookSDNCreate( 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; + 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( "bookSDNCreate()" ); + TRACE_FUNCTION( "bookSDNCreate()" ); - /* Create the window - */ - if ( ( data->win = win_create (parent, 0, E_WIN_VISIBLE, (T_MFW_CB) bookSDNWinCB ) ) == NULL ) - return NULL; + /* Create the window + */ + if ( ( data->win = win_create (parent, 0, E_WIN_VISIBLE, (T_MFW_CB) bookSDNWinCB ) ) == NULL ) + return NULL; - /*SPR 2123, MC allocate memory for phonebook list*/ - if (create_mmi_phonebook_names_list() == NULL) - return NULL; + /*SPR 2123, MC allocate memory for phonebook list*/ + if (create_mmi_phonebook_names_list() == NULL) + return NULL; - /* set up the basic window elements, dialog and user data pointers - */ - data->mmi_control.dialog = (T_DIALOG_FUNC)bookSDN; - data->mmi_control.data = data; - win_data = ((T_MFW_HDR *)data->win)->data; - win_data->user = (void *)data; - data->parent_win = parent; + /* set up the basic window elements, dialog and user data pointers + */ + data->mmi_control.dialog = (T_DIALOG_FUNC)bookSDN; + data->mmi_control.data = data; + win_data = ((T_MFW_HDR *)data->win)->data; + win_data->user = (void *)data; + data->parent_win = parent; - /* Create keyboard and menu handlers to be associated with - this window - */ - data->kbd = kbdCreate( data->win, KEY_ALL, (MfwCb) bookSDNKbdCB ); + /* Create keyboard and menu handlers to be associated with + this window + */ + data->kbd = kbdCreate( data->win, KEY_ALL, (MfwCb) bookSDNKbdCB ); data->kbd_long = kbdCreate( data->win, KEY_ALL | KEY_LONG, (MfwCb) bookSDNKeyLongCB ); - data->menu = mnuCreate( data->win, MmiBookMenuDetailsList(), 0, 0 ); + data->menu = mnuCreate( data->win, MmiBookMenuDetailsList(), 0, 0 ); - /* Set basic edit attributes structure and create an editor - associated with these attributes - */ - /* SPR#1428 - SH - New Editor changes */ + /* Set basic edit attributes structure and create an editor + associated with these attributes + */ + /* SPR#1428 - SH - New Editor changes */ #ifdef NEW_EDITOR - AUI_edit_SetAttr( &data->editor_attr, BOOKSDN_EDITOR, COLOUR_EDITOR_XX, EDITOR_FONT, ED_MODE_ALPHA, ED_CURSOR_BAR, ATB_DCS_ASCII, (UBYTE*) data->edtBuf, MAX_SEARCH_CHAR); - data->editor = ATB_edit_Create(&data->editor_attr,0); - data->entry_data = AUI_entry_Create(data->win, data->editor, SEARCH_REDRAW); - ATB_edit_Init(data->editor); + AUI_edit_SetAttr( &data->editor_attr, BOOKSDN_EDITOR, COLOUR_EDITOR_XX, EDITOR_FONT, ED_MODE_ALPHA, ED_CURSOR_BAR, ATB_DCS_ASCII, (UBYTE*) data->edtBuf, MAX_SEARCH_CHAR); + data->editor = ATB_edit_Create(&data->editor_attr,0); + data->entry_data = AUI_entry_Create(data->win, data->editor, SEARCH_REDRAW); + ATB_edit_Init(data->editor); #else /* NEW_EDITOR */ - bookSetEditAttributes( BOOKSDN_EDITOR, COLOUR_EDITOR_XX , 0, edtCurBar1, 0, (char*) data->edtBuf, MAX_SEARCH_CHAR, &data->attr ); - data->edt = edtCreate( data->win, &data->attr, 0, 0 ); + bookSetEditAttributes( BOOKSDN_EDITOR, COLOUR_EDITOR_XX , 0, edtCurBar1, 0, (char*) data->edtBuf, MAX_SEARCH_CHAR, &data->attr ); + data->edt = edtCreate( data->win, &data->attr, 0, 0 ); #endif /* NEW_EDITOR */ - /* Show the menu - */ - mnuUnhide(data->menu); + /* Show the menu + */ + mnuUnhide(data->menu); - /* associate the phonebook handler - */ - data->phbk = phbk; + /* associate the phonebook handler + */ + data->phbk = phbk; - /* and return the newly created window handle - */ + /* and return the newly created window handle + */ return data->win; } - - - /******************************************************************************* Public methods @@ -716,246 +701,241 @@ /******************************************************************************* - $Function: bookSDNStart + $Function: bookSDNStart - $Description: This is the entry point for the service numbers window handler + $Description: This is the entry point for the service numbers window handler - $Returns: handle of window we are creating + $Returns: handle of window we are creating - $Arguments: Parent, handle of the parent window + $Arguments: Parent, handle of the parent window *******************************************************************************/ T_MFW_HND bookSDNStart( MfwHnd parent ) { - T_MFW_HND win; + T_MFW_HND win; T_MFW_WIN *win_data; tBookStandard *data; - MfwMnu *mnu; + MfwMnu *mnu; - TRACE_FUNCTION( "bookSDNCreate()" ); + TRACE_FUNCTION( "bookSDNCreate()" ); - /* We can't actually create the window if the phone book is - still loading, so we will deal with this up front - */ - if ( phb_get_mode() == PHB_LOADING ) - { - bookShowInformation( idle_get_window(), TxtPleaseWait ,NULL, NULL ); - return NULL; - } + /* We can't actually create the window if the phone book is + still loading, so we will deal with this up front + */ + if ( phb_get_mode() == PHB_LOADING ) + { + bookShowInformation( idle_get_window(), TxtPleaseWait ,NULL, NULL ); + return NULL; + } - /* Create the basic window, dealing with errors here and just terminating - if we can't create the window correctly. - */ + /* Create the basic window, dealing with errors here and just terminating + if we can't create the window correctly. + */ if ( ( win = bookSDNCreate( parent ) ) == NULL ) - return NULL; + return NULL; - /* Okay, we have created the window, so set up our internal - working pointers and check if the current phone book has - some entries in it - */ - win_data = ((T_MFW_HDR *) win)->data; + /* Okay, we have created the window, so set up our internal + working pointers and check if the current phone book has + some entries in it + */ + win_data = ((T_MFW_HDR *) win)->data; data = (tBookStandard *)win_data->user; - data->phbk->current.status.book = PHB_SDN; + data->phbk->current.status.book = PHB_SDN; - /* we need to determine if there are any entries in the phone book - before we allow the service number windows to be displayed, we - do this by searching for an empty name - */ - bookGetCurrentStatus( &data->phbk->current.status ); - memset( data->edtBuf, '\0' , sizeof( data->edtBuf ) ); - data->phbk->current.index = 1; - data->phbk->current.selectedName = 0; - bookFindName( MAX_SEARCH_NAME, &data->phbk->current ); + /* we need to determine if there are any entries in the phone book + before we allow the service number windows to be displayed, we + do this by searching for an empty name + */ + bookGetCurrentStatus( &data->phbk->current.status ); + memset( data->edtBuf, '\0' , sizeof( data->edtBuf ) ); + data->phbk->current.index = 1; + data->phbk->current.selectedName = 0; + bookFindName( MAX_SEARCH_NAME, &data->phbk->current ); - /* If the current index is still zero then we have been unable to - find an entry, in this case we need to shutdown the service - numbers window, since we can't do anything with it. - */ - if ( data->phbk->current.index == 0 ) - { - bookSDNDestroy( win ); - data->phbk->search_win = 0; - bookShowInformation( idle_get_window(), TxtEmptyList ,NULL, NULL ); - return 0; - } + /* If the current index is still zero then we have been unable to + find an entry, in this case we need to shutdown the service + numbers window, since we can't do anything with it. + */ + if ( data->phbk->current.index == 0 ) + { + bookSDNDestroy( win ); + data->phbk->search_win = 0; + bookShowInformation( idle_get_window(), TxtEmptyList ,NULL, NULL ); + return 0; + } - /* We are still running, so set up the menu and edit structures - accordingly, and display the window - */ - mnu = (MfwMnu *) mfwControl( data->menu ); - mnu->lCursor[ mnu->level ] = data->phbk->current.selectedName; + /* We are still running, so set up the menu and edit structures + accordingly, and display the window + */ + mnu = (MfwMnu *) mfwControl( data->menu ); + mnu->lCursor[ mnu->level ] = data->phbk->current.selectedName; /* SPR#1428 - SH - New Editor: editActivate no longer needed */ #ifndef NEW_EDITOR - editActivate( data->edt, 1 ); + editActivate( data->edt, 1 ); #endif - winShow( data->win ); + winShow( data->win ); - /* return the pointer to the window - */ + /* return the pointer to the window + */ return win; } - /******************************************************************************* - $Function: bookFindNameInSDNPhonebook + $Function: bookFindNameInSDNPhonebook - $Description: This routine performs the FindNameInPhoneBook functionality, - tuned to the particular requirements of the service numbers - phonebook. + $Description: This routine performs the FindNameInPhoneBook functionality, + tuned to the particular requirements of the service numbers + phonebook. - $Returns: handle of window we are creating + $Returns: handle of window we are creating - $Arguments: Parent, handle of the parent window + $Arguments: Parent, handle of the parent window *******************************************************************************/ int bookFindNameInSDNPhonebook( const char* p_pszNumber, T_MFW_PHB_ENTRY* p_pEntry ) { - T_MFW_PHB_LIST phb_list; + T_MFW_PHB_LIST phb_list; #ifdef NO_ASCIIZ - T_MFW_PHB_TEXT p_pszNumberText; + T_MFW_PHB_TEXT p_pszNumberText; #endif - SHORT phb_index=0; + SHORT phb_index=0; /*MC SPR 1257, replacing PHB_MAX_LEN with MAX_ALPHA_LEN for name strings*/ - UBYTE l_name[MAX_ALPHA_LEN]; - int status; + UBYTE l_name[MAX_ALPHA_LEN]; + int status; char bfr[80]; - TRACE_FUNCTION("bookFindNameInSDNPhonebook()"); + TRACE_FUNCTION("bookFindNameInSDNPhonebook()"); - /* guard against dodgy input data - */ - if( ( p_pszNumber == NULL ) || ( p_pEntry == NULL ) ) - return 0; - if ( strlen(p_pszNumber) < 1) - return (0); - /* initialise the search structures - */ - memset(p_pEntry, 0, sizeof(T_MFW_PHB_ENTRY)); - memset(&phb_list, 0, sizeof(phb_list)); - phb_list.entry = p_pEntry; - phb_list.num_entries = 1; - phb_list.book = PHB_SDN; + /* guard against dodgy input data + */ + if( ( p_pszNumber == NULL ) || ( p_pEntry == NULL ) ) + return 0; + if ( strlen(p_pszNumber) < 1) + return (0); + /* initialise the search structures + */ + memset(p_pEntry, 0, sizeof(T_MFW_PHB_ENTRY)); + memset(&phb_list, 0, sizeof(phb_list)); + phb_list.entry = p_pEntry; + phb_list.num_entries = 1; + phb_list.book = PHB_SDN; - //GW Set up data structure for NO_ASCIIZ + //GW Set up data structure for NO_ASCIIZ #ifdef NO_ASCIIZ - p_pszNumberText.dcs = MFW_DCS_8bits; - p_pszNumberText.len = strlen(p_pszNumber); - strcpy((char*)p_pszNumberText.data, p_pszNumber); + p_pszNumberText.dcs = MFW_DCS_8bits; + p_pszNumberText.len = strlen(p_pszNumber); + strcpy((char*)p_pszNumberText.data, p_pszNumber); #endif - /* see what we can find using the standard search routine for - any phone book, giving the service numbers book as a parameter - */ + /* see what we can find using the standard search routine for + any phone book, giving the service numbers book as a parameter + */ #ifdef NO_ASCIIZ - status = phb_find_entries( (UBYTE)PHB_SDN, &phb_index, (UBYTE)MFW_PHB_NUMBER, 1, &p_pszNumberText, &phb_list ); + status = phb_find_entries( (UBYTE)PHB_SDN, &phb_index, (UBYTE)MFW_PHB_NUMBER, 1, &p_pszNumberText, &phb_list ); #else - status = phb_find_entries( PHB_SDN, &phb_index, MFW_PHB_NUMBER, 1, (char *) p_pszNumber, &phb_list ); + status = phb_find_entries( PHB_SDN, &phb_index, MFW_PHB_NUMBER, 1, (char *) p_pszNumber, &phb_list ); #endif - sprintf(bfr,"len:%2d , name: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",p_pEntry->name.len); - memcpy(&bfr[16], p_pEntry->name.data, PHB_MAX_LEN); - TRACE_FUNCTION(bfr); - sprintf(bfr,"number:'%s'",p_pEntry->number); - TRACE_FUNCTION(bfr); + sprintf(bfr,"len:%2d , name: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",p_pEntry->name.len); + memcpy(&bfr[16], p_pEntry->name.data, PHB_MAX_LEN); + TRACE_FUNCTION(bfr); + sprintf(bfr,"number:'%s'",p_pEntry->number); + TRACE_FUNCTION(bfr); - if (status != MFW_PHB_OK) - { - phb_list.result = MFW_NO_ENTRY; - TRACE_FUNCTION("bookFindNameInSDNPhonebook()- status error"); - } + if (status != MFW_PHB_OK) + { + phb_list.result = MFW_NO_ENTRY; + TRACE_FUNCTION("bookFindNameInSDNPhonebook()- status error"); + } - /* convert the returned data to manageable information - */ + /* convert the returned data to manageable information + */ #ifdef NO_ASCIIZ - //GW Check that conversion returned a valid string - //GW Testing for 0 is stupid but since the macros PASSED and FAILED that are used by the procedure are not in the header (duh!) we can't use them. - /*MC SPR 1257, replacing PHB_MAX_LEN with MAX_ALPHA_LEN for name strings*/ - if (mfw_SIM2GsmStr( p_pEntry->name.len, p_pEntry->name.data, MAX_ALPHA_LEN, l_name ) == 0) - memcpy(p_pEntry->name.data, l_name, MAX_ALPHA_LEN); + //GW Check that conversion returned a valid string + //GW Testing for 0 is stupid but since the macros PASSED and FAILED that are used by the procedure are not in the header (duh!) we can't use them. + /*MC SPR 1257, replacing PHB_MAX_LEN with MAX_ALPHA_LEN for name strings*/ + if (mfw_SIM2GsmStr( p_pEntry->name.len, p_pEntry->name.data, MAX_ALPHA_LEN, l_name ) == 0) + memcpy(p_pEntry->name.data, l_name, MAX_ALPHA_LEN); - p_pEntry->name.data[0] = 0x00; + p_pEntry->name.data[0] = 0x00; #else - bookGsm2Alpha( p_pEntry->name ); + bookGsm2Alpha( p_pEntry->name ); #endif /* if we couldn't find any information, null out the return - structure, this will stop people who don't check the return - status from getting sensible information - */ - if( phb_list.result != MFW_ENTRY_EXIST ) - memset(p_pEntry, 0, sizeof(T_MFW_PHB_ENTRY)); + structure, this will stop people who don't check the return + status from getting sensible information + */ + if( phb_list.result != MFW_ENTRY_EXIST ) + memset(p_pEntry, 0, sizeof(T_MFW_PHB_ENTRY)); - /* return status depends on result of search - */ - return ( phb_list.result == MFW_ENTRY_EXIST ); + /* return status depends on result of search + */ + return ( phb_list.result == MFW_ENTRY_EXIST ); } - - - - /******************************************************************************* - $Function: bookSDNDestroy + $Function: bookSDNDestroy - $Description: destroys the Service Numbers window + $Description: destroys the Service Numbers window - $Returns: none. + $Returns: none. - $Arguments: window, handle of the window to be destroyed + $Arguments: window, handle of the window to be destroyed *******************************************************************************/ void bookSDNDestroy( MfwHnd window ) { - T_MFW_WIN *win = ((T_MFW_HDR *)window)->data; - tBookStandard *data = (tBookStandard *)win->user; + T_MFW_WIN *win = ((T_MFW_HDR *)window)->data; + tBookStandard *data = (tBookStandard *)win->user; - TRACE_FUNCTION( "bookSDNDestroy" ); + TRACE_FUNCTION( "bookSDNDestroy" ); - /* Guard against bad incoming data - */ - if ( ! data ) - return; + /* Guard against bad incoming data + */ + if ( ! data ) + return; /* SPR#1428 - SH - New Editor changes */ #ifdef NEW_EDITOR - /* Editor is no longer destroyed with winDelete, - * so destroy it here. */ - if (data->editor) - { - ATB_edit_Destroy(data->editor); - data->editor = 0; - } - if (data->entry_data) - { - AUI_entry_Destroy(data->entry_data); - data->entry_data = 0; - } + /* Editor is no longer destroyed with winDelete, + * so destroy it here. */ + if (data->editor) + { + ATB_edit_Destroy(data->editor); + data->editor = 0; + } + if (data->entry_data) + { + AUI_entry_Destroy(data->entry_data); + data->entry_data = 0; + } #endif /* NEW_EDITOR */ - /* Destroy the window using the appropriate method - */ - if ( data->phbk->root_win == window ) - bookPhonebookDestroy( data->phbk->win ); - else - { - /* deleting the window, so make sure we free the memory - */ - data->phbk->search_win = 0; - winDelete( data->win ); - FREE_MEMORY( (void *)data, sizeof( tBookStandard ) ); - } - /*SPR2123, MC deallocate memory for phonebook list*/ - destroy_mmi_phonebook_names_list(MmiBookMenuDetailsList()); + /* Destroy the window using the appropriate method + */ + if ( data->phbk->root_win == window ) + bookPhonebookDestroy( data->phbk->win ); + else + { + /* deleting the window, so make sure we free the memory + */ + data->phbk->search_win = 0; + winDelete( data->win ); + FREE_MEMORY( (void *)data, sizeof( tBookStandard ) ); + } + /*SPR2123, MC deallocate memory for phonebook list*/ + destroy_mmi_phonebook_names_list(MmiBookMenuDetailsList()); } @@ -964,4 +944,3 @@ End of File *******************************************************************************/ -