📄 mmibookphonebook.c
字号:
data->menu_main_win = bookMenuStart( data->win, bookPhonebookMenuAttributes(), *reason);
data->root_win = data->menu_main_win;
data->phbk->EntryType =PhbkNormal;
}
break;
case PhbkFromCall:
{
data->phbk->current.status.book = bookActiveBook(READ);
data->phbk->EntryType = PhbkFromCall;
data->CallPhbk_win= bookCallPhbStart( data->phbk->win );
data->root_win=data->CallPhbk_win;
}
break;
case PhbkMainMenu:
{
// Normal initialisation
data->current.status.book = bookActiveBook(READ);
data->current.index = 1;
data->menu_main_win = bookMenuStart( data->win, bookMainMenuAttributes(), *reason);
data->root_win = data->menu_main_win;
}
break;
//xsf add 2002.08.19
case PhbkHostkeyList:
{
data->current.index = 1;
data->menu_main_win = bookMenuStart( data->win, bookHostkeyMenuAttributes(), *reason);
data->root_win = data->menu_main_win;
}
break;
//xsf add 2002.08.23
case PhbkHostkeyOnOffList:
{
data->current.index = 1;
data->menu_main_win = bookMenuStart( data->win, bookHostkeyOnOffAttributes(), *reason);
data->root_win = data->menu_main_win;
}
break;
case PhbkReplyListNormal:
{
// reply list
bookCallListStart(win,PHB_LRN);
}
break;
case PhbkMissedCallsListNormal:
{
// reply list
bookCallListStart(win,PHB_LMN);
}
break;
case PhbkRedialListNormal:
{
// Redial list
bookCallListStart(win,PHB_LDN);
}
break;
case PhbkNameEnterIdle:
case PhbkNameEnterSms:
case PhbkNameEnterRecentCall: //wufei add
{
data->current.status.book = bookActiveBook(READ);
data->current.index = 1;
data->menu_main_win = bookMenuStart( data->win, bookPhonebookAdd(), *reason);
data->root_win = data->menu_main_win;
data->phbk->UpdateAction = ADD_FROM_IDLE;
data->phbk->deletenumber=1;
}
break;
case PhbkSearchNormal :
{
// Search window
data->root_win = data->phbk->search_win;
}
break;
case PhbkFromSms :
{
if( IsPhbIN() )//current we have a phbk dynamic menu
{
data->phbk->current.status.book = bookActiveBook(READ);
data->phbk->EntryType = PhbkFromSms;
data->CallPhbk_win= bookCallPhbStart( data->phbk->win );
data->root_win=data->CallPhbk_win;
}
else
{
data->phbk->current.KindOfSearch = SEARCH_BY_NAME;
data->phbk->current.status.book = bookActiveBook(READ);
data->phbk->EntryType =PhbkFromSms;
data->phbk->search_win = bookSearchStart( data->phbk->win );
data->root_win = data->phbk->search_win;
}
}
break;
case PhbkFromVoiceMemo:
{
data->menu_main_win = bookMenuStart( data->win, bookPhonebookVoiceMemo(), *reason);
data->root_win = data->menu_main_win;
}
break;
case PhbkFromShortcutKey :
{
data->phbk->current.status.book = bookActiveBook(READ);
data->phbk->EntryType = PhbkFromShortcutKey;
data->phbk->search_win = bookSearchStart( data->phbk->win );
data->root_win = data->phbk->search_win;
}
break;
case PhbkFromDivert:
{
data->phbk->EntryType=PhbkFromDivert;
data->phbk->current.KindOfSearch = SEARCH_BY_NAME;
data->phbk->current.status.book = bookActiveBook(READ);
data->phbk->search_win = bookSearchStart( data->phbk->win );
data->root_win = data->phbk->search_win;
}
break;
default:
{
// No default action required
}
}
}
break;
case PHBK_SEND_NUMBER:
TRACE_EVENT ("PHBK_SEND_NUMBER");
/*2004/04/07,talcon delete
{
char temp[100];
sprintf(temp,"win %p parameter %s data->phbk %p",win,(char*)parameter,data->phbk);
TRACE_EVENT (temp);
}*/
strncpy((char *) data->phbk->edt_buf_foradd, (char*)parameter, PHB_number_len );
break;
default:
{
// No default action required
}
}
}
/*******************************************************************************
$Function: bookPhonebookWindowCB
$Description: Window call back for the phone book application
$Returns: MFW_EVENT_CONSUMED if event is MfwWinVisible, otherwise
MFW_EVENT_PASSED
$Arguments: e, event, w, window handle
*******************************************************************************/
static int bookPhonebookWindowCB ( MfwEvt e, MfwWin *w )
{
TRACE_FUNCTION ("bookPhonebookWindowCB()");
return( e == MfwWinVisible ) ? MFW_EVENT_CONSUMED : MFW_EVENT_PASSED;
}
/*******************************************************************************
$Function: bookPhonebookCreate
$Description: Create the phone book application
$Returns: Handle of the newly created window or NULL if error
$Arguments: parent, handle of parent window
*******************************************************************************/
static T_MFW_HND bookPhonebookCreate( MfwHnd parent )
{
T_MFW_WIN *win_data;
T_phbk *data;
TRACE_FUNCTION ("bookPhonebookCreate()");
if( ( data = (T_phbk *) ALLOC_MEMORY( sizeof( T_phbk ) ) ) == NULL )
return NULL;
if( ( data->win = win_create( parent, 0, E_WIN_VISIBLE, (T_MFW_CB) bookPhonebookWindowCB ) ) == NULL )
{
FREE_MEMORY( (void *) data, sizeof( T_phbk ) );
return NULL;
}
// Create window handler
data->mmi_control.dialog = (T_DIALOG_FUNC) bookPhonebookDialog;
data->mmi_control.data = data;
win_data = ((T_MFW_HDR *)data->win)->data;
win_data->user = (void *)data;
winShow(data->win);
// initialise the options structure
data->root_win = 0;
data->menu_main_win = 0;
data->calls_list_win = 0;
data->menu_options_win = 0;
data->menu_options_win_2 = 0;
data->menu_call_options_win = 0;
data->menu_call_options_win_2 = 0;
data->name_details_win = 0;
data->search_win = 0;
data->fromSMS = FALSE;
data->fromDivert = FALSE;
data->parent_win = parent;
data->phbk = data;
// return window handle
return data->win;
}
/*******************************************************************************
Public methods
*******************************************************************************/
/*******************************************************************************
$Function: bookPhonebookStart
$Description: Starts up the phone book application
$Returns: Handle of window or NULL if error
$Arguments: parent, window, reason, for invocation
*******************************************************************************/
T_MFW_HND bookPhonebookStart( MfwHnd parent, int reason )
{
T_MFW_HND win;
/*2004/04/07,talcon delete
char temp[100];
Sprintf(temp,"reason,%d,formcall,%d",reason,PhbkFromCall);
TRACE_EVENT(temp);*/
if( ( win = bookPhonebookCreate( parent ) ) != NULL )
SEND_EVENT( win, PHBK_INIT, 0, (int *) &reason );
return win;
}
/*******************************************************************************
$Function: bookPhonebookDestroy
$Description: Destroys the phone book application
$Returns: none
$Arguments: window, to be destroyed
*******************************************************************************/
void bookPhonebookDestroy( MfwHnd window )
{
T_MFW_WIN *win = ((T_MFW_HDR *)window)->data;
T_phbk *data = (T_phbk *) win->user;
TRACE_FUNCTION ("bookPhonebookDestroy()");
if( data )
{
/* need to clean up all of the subordinate windows which
may have been created during the phone book application
*/
data->root_win = 0;
if( data->search_win )
bookSearchDestroy( data->search_win );
if( data->menu_main_win )
bookMenuDestroy(data->menu_main_win);
if( data->calls_list_win )
bookCallListDestroy(data->calls_list_win);
if( data->menu_options_win )
bookMenuDestroy(data->menu_options_win);
if( data->menu_options_win_2 )
bookMenuDestroy(data->menu_options_win_2);
if( data->menu_call_options_win )
bookMenuDestroy(data->menu_call_options_win);
if( data->menu_call_options_win_2 )
bookMenuDestroy(data->menu_call_options_win_2);
if( data->name_details_win )
bookDetailsDestroy(data->name_details_win);
if( data->CallPhbk_win )
bookCallPhbDestroy(data->CallPhbk_win);
/*
if (data->input_name_win)
bookInputDestroy(data->input_name_win);
if (data->input_number_win)
bookInputDestroy(data->input_number_win);
*/
// delete the window and free any allocated memory
if( call_data.win_phb==window )
call_data.win_phb=NULL;
winDelete (data->win);
FREE_MEMORY( (void *) data, sizeof( T_phbk ) );
}
}
#if 0
static int ReadEntries(U8 p_type, U8 p_idx, U8 p_mode, U8 p_number)
{
memset(&l_phb_entry, 0, sizeof(l_phb_entry));
memset(&l_phb_list, 0, sizeof(l_phb_list));
l_phb_list.entry = l_phb_entry;
l_phb_list.num_entries = PE_SIZE;
if( phb_read_entries(p_type, p_idx, p_mode, p_number, &l_phb_list)!=MFW_PHB_OK )
return 1;
l_phb_status.book = (UBYTE)p_type;
if( phb_get_status(&l_phb_status) == MFW_PHB_OK )
l_found = l_phb_status.used_entries;
return 0;
}
static int ReadSIM_Init(U8 p_type,U8 p_mode)
{
T_MFW_PHB_STATUS status;
/* get actual status of specific phonebook */
memset(&status, 0, sizeof(T_MFW_PHB_STATUS));
status.book = p_type;
if( phb_get_status(&status) != MFW_PHB_OK )//读SIM卡是否可用
return 1;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -