📄 mmihost.c
字号:
set_hostkey_edt_destroy(edt_data->hostkey_edt_win);
SEND_EVENT(hostkey_data->hostkey_win,HOSTKEY_CHANGE_OK,0,hostkey_data);/* changing HOSTKEY */
}
else
{ /* new HOSTKEY != new HOSTKEY again */
set_hostkey_edt_destroy(edt_data->hostkey_edt_win);
SEND_EVENT(hostkey_data->hostkey_win,HOSTKEY_CHANGE_FAIL,0,NULL);
}
}
break;
default:
break;
}
break;
case KCD_HUP:
switch( edt_data->hostkey_case_edit )
{
case HOSTKEY_ASK:
//case HOSTKEY_ASK_MENU: //xsf remarked to make it can return to hostkey menu 2002.08.22
if( (hostkey_data->protect_opt != PRO_DELALLPHB) &&
(hostkey_data->protect_opt != PRO_RESETALL) &&
(hostkey_data->protect_opt != PRO_MSGBOX) )
{
break;
}
default:
clear_edit_array(edt_data);
//timer = FALSE;
set_hostkey_edt_destroy(edt_data->hostkey_edt_win);
SEND_EVENT(hostkey_data->hostkey_win,SETT_HOSTKEY_ABORT,0,NULL); // abort settings menu
break;
}
case KCD_RIGHT:
if( ((strlen((char*)edt_data->hostkey) == 0) && (edt_data->hostkey_case_edit!=HOSTKEY_ASK)) ||
((strlen((char*)edt_data->hostkey) == 0) && (edt_data->hostkey_case_edit == HOSTKEY_ASK) &&
((hostkey_data->protect_opt == PRO_DELALLPHB) ||
(hostkey_data->protect_opt == PRO_RESETALL) ||
(hostkey_data->protect_opt == PRO_MSGBOX) )) )
//&& (edt_data->hostkey_case_edit!=HOSTKEY_ASK_MENU)) //xsf remarked 2002.08.22
{
clear_edit_array(edt_data);
//timer = FALSE;
set_hostkey_edt_destroy(edt_data->hostkey_edt_win);
SEND_EVENT(hostkey_data->hostkey_win,SETT_HOSTKEY_ABORT,0,NULL); // abort settings menu
return 1;
}
//nm
if( edt_data->editor_index EQ 0 )
;
else
edt_data->editor_index--;
edt_data->hostkey[edt_data->editor_index] = '\0';
//xsf 2003.02.20 edtChar(edt_data->editor_handle,ecBack);/* delete character */
if( strlen((char*)edt_data->hostkey)<MIN_PIN )
{
// TRACE_EVENT("clear softkey 14");
// CLEAR_PIN_EDIT_AREA /* clear button */
displaySoftKeys('\0',TxtDelete); //xsf change TxtSoftBack to TxtDelete 2002.10.08
}
else if( strlen((char*)edt_data->hostkey)==0 )
displaySoftKeys('\0',TxtSoftBack);
winShow(edt_data->hostkey_edt_win);
break;
default:
break;
}
//if (timer)
// tim_start(edt_data->tim_out_handle);/* start timer for entering */
return 1;
}
/*******************************************************************************
$Function: set_hostkey_edt_kbd_long_cb
$Description: Callback function for keyboard long
$Returns: status int
$Arguments: event, keyboard control block
*******************************************************************************/
static int set_hostkey_edt_kbd_long_cb (T_MFW_EVENT event,T_MFW_KBD * kc)
{
T_MFW_HND win = mfw_parent(mfw_header());
T_MFW_WIN * win_data = ((T_MFW_HDR *)win)->data;
T_hostkey_edt * edt_data = (T_hostkey_edt *)win_data->user;//hostkey edt data
TRACE_EVENT("Mmihost.c:set_hostkey_edt_kbd_long_cb");
if( (event & KEY_CLEAR) && (event & KEY_LONG) )
{
//timStop(edt_data->tim_out_handle); /* stop entering timer */
clear_edit_array(edt_data);
memset(edt_data->hostkey,'\0',sizeof(edt_data->hostkey));/* initial string */
edt_data->editor_index = 0;
winShow(edt_data->hostkey_edt_win);
}
return MFW_EVENT_CONSUMED;
}
/*******************************************************************************
$Function: check_set_hostkey
$Description: check input string for settings
$Returns: void
$Arguments: window hostkey editor attributes
*******************************************************************************/
static void check_set_hostkey (T_MFW_HND win,void * edt_hostkey)
{
T_hostkey_edt * edt_data = (T_hostkey_edt *)edt_hostkey;
TRACE_EVENT("Mmihost.c: check_set_hostkey");
if( strlen((char*)edt_data->hostkey)NEQ 0 )
{
if( (strlen((char*)edt_data->hostkey) >= MIN_PIN) && (strlen((char*)edt_data->hostkey) <= (MAX_PIN + 1)) )
{
//TRACE_EVENT("clear softkey 15");
// CLEAR_PIN_EDIT_AREA /* clear button */
if( (edt_data->hostkey_case_edit EQ HOSTKEY_ASK) ||(edt_data->hostkey_case_edit EQ HOSTKEY_ASK_MENU)
||(edt_data->hostkey_case_edit EQ HOSTKEY_ASK_ONOFF)
||(edt_data->hostkey_case_edit EQ INPUT_OLD_HOSTKEY)
||(edt_data->hostkey_case_edit EQ INPUT_NEW_HOSTKEY)
||(edt_data->hostkey_case_edit EQ INPUT_NEW_HOSTKEY_AGAIN)
||(edt_data->hostkey_case_edit EQ HOSTKEY_SWITCHON) )
{ /* PUK 1/2 (not by gsm string) max. 8 digits */
//if(strlen((char*)edt_data->hostkey) >= MIN_PIN)
displaySoftKeys(TxtSoftOK,TxtDelete);
}
}
else
{
TRACE_EVENT("Softkeys:nr 1a");
displaySoftKeys('\0',TxtDelete);
}
if( strlen((char*)edt_data->hostkey) > MAX_PIN ) /* >8 digits not allowed */
{
if( edt_data->editor_index EQ 0 )
;
else
edt_data->editor_index--;
edt_data->hostkey[edt_data->editor_index] = '\0';
//xsf 2003.02.20 edtChar(edt_data->editor_handle,ecBack);
}
}
else
displaySoftKeys('\0',TxtSoftBack);
}
/*******************************************************************************
$Function: hostkey_info_cb
$Description: hostkey information screen call back
$Returns: none
$Arguments: win, identifier, reason for callback (not used)
*******************************************************************************/
void hostkey_info_cb(T_MFW_HND win, USHORT identifier, UBYTE reasons)
{
T_MFW_WIN * win_data = ((T_MFW_HDR *)win)->data;
T_hostkey * hostkey_data = (T_hostkey *)win_data->user;
char debug[20];
//sprintf(debug, "hostkey_info_cb() %d", identifier);
//TRACE_EVENT (debug);
switch( identifier )
{
case HOSTKEY_CHANGE_END:
//TRACE_EVENT("hostkey_info_cb: HOSTKEY_CHANGE_END");
SEND_EVENT(hostkey_data->hostkey_win,HOSTKEY_CHANGE_END,0,NULL);
break;
case HOSTKEY_OK_END:
//TRACE_EVENT("hostkey_info_cb: HOSTKEY_OK_END");
SEND_EVENT(hostkey_data->hostkey_win,HOSTKEY_OK_END,0,NULL);
break;
case HOSTKEY_MENU_END:
//TRACE_EVENT("hostkey_info_cb: HOSTKEY_MENU_END");
SEND_EVENT(hostkey_data->hostkey_win,HOSTKEY_MENU_END,0,NULL);
break;
//xsf add 2002.08.22
case HOSTKEY_ONOFF_END:
//TRACE_EVENT("hostkey_info_cb: HOSTKEY_ONOFF_END");
SEND_EVENT(hostkey_data->hostkey_win,HOSTKEY_ONOFF_END,0,NULL);
break;
case HOSTKEY_ASK:
//TRACE_EVENT("hostkey_info_cb: HOSTKEY_ASK");
SEND_EVENT(hostkey_data->hostkey_win,HOSTKEY_ASK,0,NULL);
break;
case INPUT_NEW_HOSTKEY:
//TRACE_EVENT("hostkey_info_cb: INPUT_NEW_HOSTKEY");
SEND_EVENT(hostkey_data->hostkey_win,INPUT_NEW_HOSTKEY,0,NULL);
break;
case INPUT_OLD_HOSTKEY:
//TRACE_EVENT("hostkey_info_cb: INPUT_OLD_HOSTKEY");
SEND_EVENT(hostkey_data->hostkey_win,INPUT_OLD_HOSTKEY,0,NULL);
break;
case SETT_HOSTKEY_ABORT:
//TRACE_EVENT("hostkey_info_cb: SETT_HOSTKEY_ABORT");
SEND_EVENT(hostkey_data->hostkey_win,SETT_HOSTKEY_ABORT,0,NULL);
break;
default:
break;
}
}
/*******************************************************************************
$Function: hostkey_change
$Description: HOSTKEY change : call from menu Settings
$Returns: Status int
$Arguments: menu, item
*******************************************************************************/
int hostkey_change (struct MfwMnuTag * m, struct MfwMnuItemTag * i)
{
T_MFW_HND idle_win = idle_get_window();
T_MFW_HND win = setting_hostkey_create(idle_win);
T_MFW_WIN * win_data = ((T_MFW_HDR *)win)->data;
T_hostkey * hostkey_data = (T_hostkey *)win_data->user;
TRACE_EVENT("Mmihost.c:hostkey_change");
if( FlashHostkeyData.HostLock_flag )
SEND_EVENT(hostkey_data->hostkey_win,INPUT_OLD_HOSTKEY,0,hostkey_data);
else
{
setting_hostkey_destroy(hostkey_data->hostkey_win);// finish main pin dialog
hostconfirm_Init(idle_win);
hostconfirm.local_status = ACTIVATE_CONFIRM;
SEND_EVENT (hostconfirm.confirm_win, SHOW_CONFIRM, 0, 0);
}
return 1;
}
#if 0
/*******************************************************************************
$Function: hostkey_editor_cb
$Description:
$Returns:
$Arguments:
*******************************************************************************/
static void hostkey_editor_cb (T_MFW_HND win, USHORT Identifier, SHORT reason)
{
T_MFW_WIN * win_data = ((T_MFW_HDR *) win)->data;
T_hostkey * data = (T_hostkey *)win_data->user;
T_hostkey * hostkey_data = (T_hostkey *)win_data->user;//hostkey main data
char * softhostkey="0000";
TRACE_EVENT ("hostkey_editor_cb()");
switch( reason )
{
case INFO_KCD_LEFT:
switch( Identifier )
{
case HOSTKEY_ASK:
{
TRACE_EVENT ("HOSTKEY_ASK");
if( strcmp(softhostkey, (char*)data->edtbuf) EQ 0 ) //FFS_flashData.HostLock_Key
SEND_EVENT(hostkey_data->hostkey_win,HOSTKEY_ASK_OK,0,hostkey_data);
else
SEND_EVENT(hostkey_data->hostkey_win,HOSTKEY_ASK_FAIL,0,hostkey_data);
}
break;
case INPUT_OLD_HOSTKEY:
{
TRACE_EVENT ("INPUT_OLD_HOSTKEY");
strncpy((char*)hostkey_data->old_hostkey, data->edtbuf,MAX_HOST);
if( strcmp(softhostkey, (char*)data->edtbuf) EQ 0 ) //(char*)FFS_flashData.HostLock_Key
SEND_EVENT(hostkey_data->hostkey_win,INPUT_NEW_HOSTKEY,0,hostkey_data);
else
SEND_EVENT(hostkey_data->hostkey_win,HOSTKEY_FAIL,0,hostkey_data);
}
break;
case INPUT_NEW_HOSTKEY:
{
TRACE_EVENT ("INPUT_NEW_HOSTKEY");
strncpy((char*)hostkey_data->new_hostkey, data->edtbuf,MAX_HOST);
SEND_EVENT(hostkey_data->hostkey_win,INPUT_NEW_HOSTKEY_AGAIN,0,hostkey_data);
}
break;
case INPUT_NEW_HOSTKEY_AGAIN:
{ TRACE_EVENT ("INPUT_NEW_HOSTKEY_AGAIN");
if( strcmp(softhostkey, (char*)data->edtbuf) EQ 0 )
{
//strncpy((char*)FFS_flashData.HostLock_Key,(char*)hostkey_data->new_hostkey,MAX_HOST);
//flash_write();
SEND_EVENT(hostkey_data->hostkey_win,HOSTKEY_CHANGE_OK,0,NULL);
}
else //otherwise ask for new hostkey again
SEND_EVENT(hostkey_data->hostkey_win,HOSTKEY_CHANGE_FAIL,0,NULL);
}
break;
default:
break;
}
break;
case INFO_KCD_RIGHT:
case INFO_KCD_CLEAR:
TRACE_EVENT ("INFO_KCD_RIGHT pressed");
switch( Identifier )
{
default:
break;
}
default:
break;
}
}
/*******************************************************************************
$Function: hostkey_loadEditDefault
$Description: fill up editor-strbuf with default
$Returns:
$Arguments:
*******************************************************************************/
void hostkey_loadEditDefault (T_EDITOR_DATA * editor_data)
{
TRACE_FUNCTION ("hostkey_loadEditDefault()");
editor_data->editor_attr.win.px = 6;
editor_data->editor_attr.win.py = 12;
editor_data->editor_attr.win.sx = 80;
editor_data->editor_attr.win.sy = 20;
editor_data->editor_attr.fgColor = 0;
editor_data->editor_attr.font = 0;
editor_data->editor_attr.mode = edtCurBar1;
editor_data->editor_attr.controls = 0;
editor_data->editor_attr.text = '\0';
editor_data->editor_attr.size = 0;
e
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -