📄 mmihost.c
字号:
//xsf add 2002.08.22 2 lines
case HOSTKEY_ONOFF_OK:
case HOSTKEY_ONOFF_FAIL:
switch( event )
{
case HOSTKEY_MENU_FAIL:
hostkey_data->hostkey_case = SETT_HOSTKEY_ABORT;
//display_info.TextId = 0;
display_info.TextId2 = TxtHostKeyFail;
//display_info.TextId2 = TxtCodeInc;
//display_info.TextString2 = 0;
display_info.iconindex = REMIND_FAILURE; //xsf add 01.17 fail
break;
case HOSTKEY_MENU_OK:
hostkey_data->hostkey_case = HOSTKEY_MENU_END;
//display_info.TextId = 0;
display_info.TextId2 = TxtHostKeyOk;
//display_info.TextString2 = 0;
display_info.iconindex =REMIND_SUCCEED; //xsf add 01.17 ok
break;
//xsf add for on/off hostkey 2002.08.22
case HOSTKEY_ONOFF_FAIL:
hostkey_data->hostkey_case = SETT_HOSTKEY_ABORT;
//display_info.TextId = 0;
display_info.TextId2 = TxtHostKeyFail;
//display_info.TextString2 = 0;
display_info.iconindex = REMIND_FAILURE; //xsf add 01.17 fail
break;
case HOSTKEY_ONOFF_OK:
hostkey_data->hostkey_case = HOSTKEY_ONOFF_END;
//display_info.TextId = 0;
if( FlashHostkeyData.HostLock_flag )
display_info.TextId2 = TxtHostKeyClose;
else
display_info.TextId2 = TxtHostKeyOpen;
//display_info.TextString2 = 0;
display_info.iconindex =REMIND_SUCCEED; //xsf add 01.17 ok
if( FlashHostkeyData.HostLock_flag )
FlashHostkeyData.HostLock_flag = 0;
else
FlashHostkeyData.HostLock_flag = 1;
flash_hostwrite();
break;
//xsf add for on/off hostkey 2002.08.22
case HOSTKEY_FAIL:
hostkey_data->hostkey_case = INPUT_OLD_HOSTKEY;
//display_info.TextId = 0;
display_info.TextId2 = TxtHostKeyFail;
//display_info.TextString2 = 0;
display_info.iconindex = REMIND_FAILURE; //xsf add 01.17 fail
break;
case HOSTKEY_ASK_FAIL:
hostkey_data->hostkey_case = HOSTKEY_ASK;
//display_info.TextId = 0;
display_info.TextId2 = TxtHostKeyFail;
//display_info.TextString2 = 0;
display_info.iconindex = REMIND_FAILURE; //xsf add 01.17 fail
break;
case HOSTKEY_ASK_OK:
hostkey_data->hostkey_case = HOSTKEY_OK_END;
display_info.TextId2 = TxtHostKeyOk;
//display_info.TextId = 0;
//display_info.TextString2 = 0;
display_info.iconindex =REMIND_SUCCEED; //xsf add 01.17 ok
break;
case HOSTKEY_OK:
hostkey_data->hostkey_case = INPUT_NEW_HOSTKEY;
display_info.TextId2 = TxtHostKeyOk;
//display_info.TextId = 0;
//display_info.TextString2 = 0;
display_info.iconindex =REMIND_SUCCEED; //xsf add 01.17 ok
break;
case HOSTKEY_CHANGE_FAIL:
hostkey_data->hostkey_case = INPUT_NEW_HOSTKEY;
display_info.TextId2 = TxtChangeFail;
//display_info.TextId = TxtHostKeyChange;
//display_info.TextString2 = 0;
display_info.iconindex = REMIND_FAILURE; //xsf add 01.17 fail
break;
case HOSTKEY_CHANGE_OK:
hostkey_data->hostkey_case = HOSTKEY_CHANGE_END;
display_info.TextId2 = TxtEditSucceed; //changed ok
//display_info.TextId = TxtHostKeyChange;
//display_info.TextString2 = 0;
display_info.iconindex =REMIND_SUCCEED; //xsf add 01.17 ok
break;
}
//display_info.TextString = 0;
//display_info.LeftSoftKey = 0;
display_info.RightSoftKey = 0;
display_info.Time = THREE_SECS;
display_info.KeyEvents = KEY_LEFT | KEY_RIGHT; //xsf changed KEY_ALL to KEY_LEFT | KEY_RIGHT 2002.11.08;
display_info.Identifier = hostkey_data->hostkey_case;
display_info.Callback = (T_VOID_FUNC)hostkey_info_cb;
if( (hostkey_data->hostkey_case == HOSTKEY_OK_END) &&(hostkey_data->protect_opt != PRO_DELALLPHB) &&
(hostkey_data->protect_opt != PRO_RESETALL) && (hostkey_data->protect_opt != PRO_MSGBOX) )
{
PROMPT(6, 64,0, display_info.TextId);
SEND_EVENT(hostkey_data->hostkey_win,HOSTKEY_OK_END,0,NULL);//PIN was needed
}
else
info_dialog(hostkey_data->hostkey_win,&display_info); //information screen
hostkey_mess_destroy(mess_data->hostkey_mess_win);
break;
case HOSTKEY_ASK:
hostkey_data->display_id1 = TxtNewHostKey;
hostkey_mess_destroy(mess_data->hostkey_mess_win);
SEND_EVENT(hostkey_data->hostkey_win,HOSTKEY_ASK,0,hostkey_data);
break;
default:
break;
}
}
/*******************************************************************************
$Function: setting_hostkey_init
$Description: This is the start-up time initialisation routine.
Start in the Menu
$Returns: None
$Arguments: parent window
*******************************************************************************/
void setting_hostkey_init (T_MFW_HND parent_window)
{
setting_hostkey_create (parent_window);
}
/*******************************************************************************
$Function: setting_hostkey_create
$Description: Creation of an instance for the Settings HOSTKEY main dialog.
Type of dialog : SINGLE_DYNAMIC
Top Window must be available at any time, only one instance.
$Returns: window
$Arguments: parent window
*******************************************************************************/
T_MFW_HND setting_hostkey_create (T_MFW_HND parent_window)
{
T_hostkey * data = (T_hostkey *)ALLOC_MEMORY (sizeof (T_hostkey));
T_MFW_WIN * win;
data->hostkey_win = win_create (parent_window, 0, MfwWinVisible, (T_MFW_CB)setting_hostkey_win_cb);
TRACE_EVENT("Mmihost.c:setting_hostkey_create");
set_hostkey_windows = data->hostkey_win;
if( data->hostkey_win EQ 0 )
return 0;
/*
* Create window handler
*/
data->mmi_control.dialog = (T_DIALOG_FUNC)setting_hostkey_main;
data->mmi_control.data = data;
data->parent_win = parent_window;
win = ((T_MFW_HDR *)data->hostkey_win)->data;
win->user = (void *) data;
winShow(data->hostkey_win);//focus on settings:hostkey Change/act/Deac
/*
* return window handle
*/
return data->hostkey_win;
}
/*******************************************************************************
$Function: setting_hostkey_destroy
$Description: Destroy the settings hostkey main dialog.
$Returns: none
$Arguments: window
*******************************************************************************/
void setting_hostkey_destroy (T_MFW_HND own_window)
{
T_hostkey * data;
T_MFW_WIN * win;
if( own_window )
{
TRACE_EVENT("Mmihost.c:setting_hostkey_destroy");
win = ((T_MFW_HDR *)own_window)->data;
data = (T_hostkey *)win->user;
if( data )
{
/*
* Delete WIN Handler
*/
set_hostkey_windows = 0;
win_delete (data->hostkey_win);
FREE_MEMORY((void *)data,(sizeof(T_hostkey)));
}
}
}
/*******************************************************************************
$Function: setting_hostkey_win_cb
$Description: Callback function for main windows in settings
$Returns: Status int
$Arguments: event, window
*******************************************************************************/
static int setting_hostkey_win_cb (T_MFW_EVENT event, T_MFW_WIN * win)
{
T_hostkey * hostkey_data = (T_hostkey *)win->user;
TRACE_EVENT("setting_hostkey_win_cb");
if( event EQ MfwWinVisible )
{
/*
* Top Window has no output
*/
dspl_ClearAll();
return 1;
}
return 0;
}
/*******************************************************************************
$Function: setting_pin_main
$Description: PIN Settings Dialog Handling function
$Returns: none
$Arguments: win, event, value, parameters
*******************************************************************************/
void setting_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_WIN * par_window;
//T_MFW_WIN * pin_win_data = ((T_MFW_HDR *)pin_data->pin_win)->data;
//T_pin * pin_pin_data = (T_pin *)pin_win_data->user;//pin main data
switch( event )
{
case HOSTKEY_FAIL:
case HOSTKEY_OK:
case HOSTKEY_CHANGE_FAIL:
case HOSTKEY_CHANGE_OK:
hostkey_call_mess(win,event);
break;
case HOSTKEY_ASK:
hostkey_data->display_id1 = TxtOldHostKey;
hostkey_data->hostkey_case = HOSTKEY_ASK;
sett_hostkey_edit(win,HOSTKEY_ASK);
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 INPUT_OLD_HOSTKEY:
hostkey_data->display_id1 = TxtOldHostKey;
hostkey_data->hostkey_case = INPUT_OLD_HOSTKEY;
sett_hostkey_edit(win,INPUT_OLD_HOSTKEY);
break;
case INPUT_NEW_HOSTKEY:
hostkey_data->display_id1 = TxtNewHostKey;
hostkey_data->hostkey_case = INPUT_NEW_HOSTKEY;
sett_hostkey_edit(win,INPUT_NEW_HOSTKEY);
break;
case INPUT_NEW_HOSTKEY_AGAIN:
hostkey_data->display_id1 = TxtHostKeyConfirm;
hostkey_data->hostkey_case = INPUT_NEW_HOSTKEY_AGAIN;
sett_hostkey_edit(win,INPUT_NEW_HOSTKEY_AGAIN);
break;
case HOSTKEY_CHANGE_END:
setting_hostkey_destroy(hostkey_data->hostkey_win);// finish main pin dialog
//TRACE_EVENT("hostkey_destroy 2");
break;
case SETT_HOSTKEY_ABORT:
//TRACE_EVENT("clear softkey 10");
dspl_ClearAll();
setting_hostkey_destroy(hostkey_data->hostkey_win);// destroy hostkey settings dialog
break;
default:
break;
}
}
/*******************************************************************************
$Function: clearEditArray
$Description: clear EditArray
$Returns: none
$Arguments: pin editor attributes
*******************************************************************************/
static void clear_edit_array (void * parameter)
{
U8 i;
T_hostkey_edt * edt_data = (T_hostkey_edt *)parameter;
TRACE_EVENT("Mmihost.c:clearEditArray");
memset(edt_data->edtbuf,'\0',sizeof(edt_data->edtbuf));
edtReset(edt_data->editor_handle);
edtUnhide(edt_data->editor_handle);
}
/*******************************************************************************
$Function: sett_hostkey_edit
$Description: help function for editor dialog
$Returns: none
$Arguments: window, event
*******************************************************************************/
static void sett_hostkey_edit(T_MFW_HND win, USHORT event)
{
//open the editor for entering the hostkey
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_edt_win;
hostkey_edt_win = set_hostkey_edt_create(hostkey_data->hostkey_win);
if( hostkey_edt_win )
{
SEND_EVENT(hostkey_edt_win,event,0,hostkey_data);
}
}
/*******************************************************************************
$Function: set_hostkey_edt_create
$Description: Creation of an instance for the HOSTKEY Editor dialog settings
Type of dialog : SINGLE_DYNAMIC
$Returns: window
$Arguments: parent window
*******************************************************************************/
T_MFW_HND set_hostkey_edt_create (T_MFW_HND parent_window)
{
T_hostkey_edt * data = (T_hostkey_edt *)ALLOC_MEMORY (sizeof (T_hostkey_edt));
T_MFW_WIN * win;
data->hostkey_edt_win = win_create (parent_window, 0, MfwWinVisible, (T_MFW_CB)set_hostkey_edt_win_cb);
TRACE_EVENT("Mmihost.c:set_hostkey_edt_create");
if( data->hostkey_edt_win EQ 0 )
return 0;
/*
* Create window handler
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -