📄 mmihost.c
字号:
*/
data->mmi_control.dialog = (T_DIALOG_FUNC)hostkey_main;/* dialog main function */
data->mmi_control.data = data;
data->parent_win = parent_window;
win = ((T_MFW_HDR *)data->hostkey_win)->data;
win->user = (void *) data;
/*
* return window handle
*/
mfwSetSignallingMethod(1);//mfw focus handling
winShow(data->hostkey_win);
return data->hostkey_win;
}
/*******************************************************************************
$Function: hostkey_destroy
$Description: Destroy the hostkey dialog.
$Returns: None
$Arguments: window
*******************************************************************************/
void hostkey_destroy (T_MFW_HND own_window)
{
T_hostkey * data;
T_MFW_WIN * win;
TRACE_EVENT("Mmihost.c:hostkey_destroy");
if( own_window )
{
win = ((T_MFW_HDR *)own_window)->data;
data = (T_hostkey *)win->user;
if( data )
{
/*
* Delete WIN Handler
*/
if( hostkey_edit_windows )
{
TRACE_EVENT("hostkey_destroy():hostkey_edit_windows");
set_hostkey_edt_destroy(hostkey_edit_windows);
}
else
{
win_delete (data->hostkey_win);
hostkey_windows = 0;
FREE_MEMORY((void *)data,(sizeof(T_hostkey)));
}
}
}
}
/*******************************************************************************
$Function: hostkey_win_cb
$Description: Callback function for windows
$Returns: Status int
$Arguments: window handler event, window
*******************************************************************************/
static int hostkey_win_cb (T_MFW_EVENT event, T_MFW_WIN * win)
{
//char debug[50];
//sprintf(debug, "hostkey_win_cb: %d", event);
//TRACE_EVENT(debug);
if( event EQ MfwWinVisible )
{
/*
* Top Window has no output
*/
// TRACE_EVENT("dsplClearAll 1");
dspl_ClearAll();
return 1;
}
return 0;
}
/*******************************************************************************
$Function: hostkey_main
$Description: HOSTKEY MAIN Dialog Handling function
$Returns: void
$Arguments: window, window handler event, value, parameters
*******************************************************************************/
static void hostkey_main(T_MFW_HND win, USHORT event, SHORT value, void * parameter)
{
T_MFW_WIN * win_data = ((T_MFW_HDR *)win)->data;
T_hostkey * hostkey_data = (T_hostkey *)win_data->user;//hostkey main data
T_hostkey_mess * mess_data = (T_hostkey_mess *) parameter;//hostkey message data
T_hostkey_edt * edt_data = (T_hostkey_edt *) parameter;//hostkey editor data
T_MFW_HND idle_win = idle_get_window(); //xsf add 2002.08.19
int sms_type;
char debug[20];
T_EDITOR_DATA editor_data;
//sprintf(debug,"Mmihost.c:hostkey_main: %d", event);
//TRACE_EVENT(debug);
switch( event )
{
case HOSTKEY_FAIL:
case HOSTKEY_OK:
case HOSTKEY_ASK_FAIL:
case HOSTKEY_ASK_OK:
case HOSTKEY_CHANGE_FAIL:
case HOSTKEY_CHANGE_OK:
case HOSTKEY_MENU_OK:
case HOSTKEY_MENU_FAIL:
//xsf add 2002.08.22 2 lines
case HOSTKEY_ONOFF_OK:
case HOSTKEY_ONOFF_FAIL:
hostkey_call_mess(win,event);
break;
case HOSTKEY_ASK:
if( hostkey_data->protect_opt == PRO_SIMLOCK )
hostkey_data->display_id2 = TxtSimReplaced;
hostkey_data->display_id1 = TxtEnterHostKey;
hostkey_data->hostkey_case = HOSTKEY_ASK;
sett_hostkey_edit(win,HOSTKEY_ASK);
break;
case HOSTKEY_ASK_MENU:
//TRACE_EVENT("hostkey_main():HOSTKEY_ASK_MENU");
hostkey_data->display_id1 = TxtEnterHostKey;
hostkey_data->hostkey_case = HOSTKEY_ASK_MENU;
sett_hostkey_edit(win,HOSTKEY_ASK_MENU);
break;
case HOSTKEY_ASK_ONOFF:
//TRACE_EVENT("hostkey_main():HOSTKEY_ASK_ONOFF");
hostkey_data->display_id1 = TxtEnterHostKey;
hostkey_data->hostkey_case = HOSTKEY_ASK_ONOFF;
sett_hostkey_edit(win,HOSTKEY_ASK_ONOFF);
break;
case HOSTKEY_SWITCHON: //xsf add 2002.08.29
//TRACE_EVENT("hostkey_main():HOSTKEY_SWITCHON");
hostkey_data->display_id1 = TxtEnterHostKey;
hostkey_data->hostkey_case = HOSTKEY_SWITCHON;
sett_hostkey_edit(win,HOSTKEY_SWITCHON);
break;
case HOSTKEY_OK_END:
//TRACE_EVENT("xsfxsf hostkey_main():HOSTKEY_OK_END");
if( hostkey_data->protect_opt == PRO_DELALLPHB )
{
/*hostconfirm_Init(idle_win);
hostconfirm.local_status = PRO_DELALLPHB;
SEND_EVENT (hostconfirm.confirm_win, PRO_DELALLPHB, 0, 0);*/
bookDeleteAllNVMRecord(pro_options_win); //xsf 11.08
}
else if( hostkey_data->protect_opt == PRO_RESETALL )
{
hostconfirm_Init(idle_win);
hostconfirm.local_status = PRO_RESETALL;
SEND_EVENT (hostconfirm.confirm_win, PRO_RESETALL, 0, 0);
}
else if( hostkey_data->protect_opt == PRO_MSGBOX )
{
sms_type = 1;
// Here we have to pass the type of sms to delete (SMS or SMS-CB)
M_DEL_ALL_start(pro_options_win, (void *)&sms_type);
}
else
{
TRACE_EVENT("xsfxsf hostkey_main():showwelcome()");
showwelcome(idle_get_window());
//Pin1OKOrNoPin1(); //xsf add 2002.10.09
//network_start_full_service ();
hostkey_data->protect_opt = PRO_ON; //xsf add 2003.04.10
ReadSimIMSI();
}
hostkey_destroy(hostkey_data->hostkey_win);// finish main hostkey dialog
break;
case HOSTKEY_CHANGE_END:
hostkey_destroy(hostkey_data->hostkey_win);// finish main hostkey dialog
//TRACE_EVENT("hostkey_destroy 2");
break;
case HOSTKEY_MENU_END:
hostkey_destroy(hostkey_data->hostkey_win);// finish main hostkey dialog
//TRACE_EVENT("HOSTKEY_MENU_END 2");
bookPhonebookStart(idle_win,PhbkHostkeyList);
//hostkey_menu_start((T_MFW_MNU_ATTR *)&menuHostKey,(T_VOID_FUNC)hostkey_menu_end_cb);
break;
//xsf add for on/off 2002.08.22
case HOSTKEY_ONOFF_END:
//TRACE_EVENT("HOSTKEY_ONOFF_END 2");
hostkey_destroy(hostkey_data->hostkey_win);// finish main hostkey dialog
//bookPhonebookStart(idle_win,PhbkHostkeyOnOffList); //xsf add for hostkey on/off menu 2002.08.23
break;
case SETT_HOSTKEY_ABORT:
//TRACE_EVENT("clear softkey 10");
dspl_ClearAll();
hostkey_destroy(hostkey_data->hostkey_win);// destroy hostkey settings dialog
break;
}
}
/*******************************************************************************
$Function: hostkey_call_mess
$Description: help function for message dialog
$Returns: void
$Arguments: window, window handler event
*******************************************************************************/
static void hostkey_call_mess(T_MFW_HND win, USHORT event)
{
T_MFW_WIN * win_data = ((T_MFW_HDR *)win)->data;
T_hostkey * hostkey_data = (T_hostkey *)win_data->user; // hostkey main data
T_MFW_HND hostkey_mess_win;
TRACE_EVENT("Mmihost.c: hostkey_call_mess");
hostkey_mess_win = hostkey_mess_create(hostkey_data->hostkey_win);
if( hostkey_mess_win )
{
SEND_EVENT(hostkey_mess_win,event,0,hostkey_data);
}
}
/*******************************************************************************
$Function: hostkey_mess_create
$Description: Creation of an instance for the HOSTKEY Message dialog.
Type of dialog : SINGLE_DYNAMIC
$Returns: window
$Arguments: parent win
*******************************************************************************/
T_MFW_HND hostkey_mess_create (T_MFW_HND parent_window)
{
T_hostkey_mess * data = (T_hostkey_mess *)ALLOC_MEMORY (sizeof (T_hostkey_mess));
T_MFW_WIN * win;
data->hostkey_mess_win = win_create (parent_window, 0, MfwWinVisible, (T_MFW_CB)hostkey_mess_win_cb);
TRACE_EVENT("Mmihost.c:hostkey_mess_create");
if( data->hostkey_mess_win EQ 0 )
return 0;
/*
* Create window handler
*/
hostkey_mess_windows = data->hostkey_mess_win;
data->mmi_control.dialog = (T_DIALOG_FUNC)hostkey_messages;
data->mmi_control.data = data;
data->parent_win = parent_window;
win = ((T_MFW_HDR *)data->hostkey_mess_win)->data;
win->user = (void *) data;
/*
* return window handle
*/
return data->hostkey_mess_win;
}
/*******************************************************************************
$Function: hosktey_mess_destroy
$Description: Destroy the hostkey message dialog.
$Returns: none
$Arguments: win
*******************************************************************************/
void hostkey_mess_destroy (T_MFW_HND own_window)
{
T_hostkey_mess * data;
T_MFW_WIN * win;
if( own_window )
{
TRACE_EVENT("Mmihost.c:hostkey_mess_destroy ");
win = ((T_MFW_HDR *)own_window)->data;
data = (T_hostkey_mess *)win->user;
if( data )
{
/*
* Delete WIN Handler
*/
hostkey_mess_windows = 0;
win_delete (data->hostkey_mess_win);
FREE_MEMORY((void *)data,(sizeof(T_hostkey_mess)));
}
}
}
/*******************************************************************************
$Function: hostkey_mess_win_cb
$Description: Callback function for message windows
$Returns: Status int
$Arguments: event, window
*******************************************************************************/
static int hostkey_mess_win_cb (T_MFW_EVENT event, T_MFW_WIN * win)
{
/*
* Top Window has no output
*/
return 1;
}
/*******************************************************************************
$Function: hostkey_messages
$Description: Host key message Dialog Handling function
$Returns: none
$Arguments: window, event, value, parameter
*******************************************************************************/
void hostkey_messages(T_MFW_HND win, USHORT event, SHORT value, void * parameter)
{
T_MFW_WIN * win_data = ((T_MFW_HDR *)win)->data;
T_hostkey_mess * mess_data = (T_hostkey_mess *)win_data->user;
T_DISPLAY_DATA display_info;
char debug[20];
T_hostkey * hostkey_data = (T_hostkey *)parameter;
//TRACE_EVENT("Mmihost.c:hostkey_messages");
//sprintf(debug, "Event: %d", event);
//TRACE_EVENT(debug);
dialog_info_init(&display_info);
/*
* depending on signal
*/
switch( event )
{
case HOSTKEY_FAIL:
case HOSTKEY_ASK_FAIL:
case HOSTKEY_OK:
case HOSTKEY_ASK_OK:
case HOSTKEY_CHANGE_FAIL:
case HOSTKEY_CHANGE_OK:
case HOSTKEY_MENU_OK:
case HOSTKEY_MENU_FAIL:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -