📄 mmihost.c
字号:
*/
//xsf removed this code to set_hostkey_editor() 2002.09.12
//hostkey_edit_windows = data->hostkey_edt_win;
data->mmi_control.dialog = (T_DIALOG_FUNC)set_hostkey_editor;
data->mmi_control.data = data;
data->parent_win = parent_window;
win = ((T_MFW_HDR *)data->hostkey_edt_win)->data;
win->user = (void *) data;
/*
* Create any other handler
*/
data->editor_handle = edt_create(data->hostkey_edt_win,&data->edithostkeyAttr,0,0);
data->kbd_handle = kbd_create(data->hostkey_edt_win,KEY_ALL,(T_MFW_CB)set_hostkey_kbd_cb);
data->kbd_long_handle = kbd_create(data->hostkey_edt_win,KEY_ALL | KEY_LONG,(T_MFW_CB)set_hostkey_edt_kbd_long_cb);
/*
* return window handle
*/
return data->hostkey_edt_win;
}
/*******************************************************************************
$Function: set_hostkey_edt_destroy
$Description: Destroy the hostkey editor dialog
$Returns: none
$Arguments: window
*******************************************************************************/
void set_hostkey_edt_destroy (T_MFW_HND own_window)
{
T_hostkey_edt * data ;
T_MFW_WIN * win;
if( own_window )
{
TRACE_EVENT("MmiPins:set_hostkey_edt_destroy");
win = ((T_MFW_HDR *)own_window)->data;
data = (T_hostkey_edt *)win->user;
if( data )
{
/*
* Delete WIN Handler
*/
hostkey_edit_windows = 0;
win_delete (data->hostkey_edt_win);
FREE_MEMORY((void *)data,(sizeof(T_hostkey_edt)));
}
}
}
/*******************************************************************************
$Function: set_hostkey_edt_win_cb
$Description: Callback function for editor windows
$Returns: status int
$Arguments: event, window
*******************************************************************************/
static int set_hostkey_edt_win_cb (T_MFW_EVENT event,T_MFW_WIN * win)
{
T_hostkey_edt * edt_data = (T_hostkey_edt *)win->user;//hostkey edt data
T_MFW_WIN * win_hostkey =((T_MFW_HDR *)edt_data->parent_win)->data;
T_hostkey * hostkey_data = (T_hostkey *)win_hostkey->user; // hostkey main data
game_Line line;
TRACE_EVENT("set_hostkey_edt_win_cb");
if( event EQ MfwWinVisible )
{
//pin_icons();
//dspl_Clear(6,30,120,120); //xsf changed 2003.01.13
dspl_ClearAll();
/* 2004/05/21 sunsj modify */
drawSolidRectangle(10,36,118,DIALOG_THIRD_LINE, 1,0x5ac7ff,0x4E9C87);//请输机主密码巨星框
//PROMPT(INFO_TEXT_X,INFO_TEXT_Y,0,hostkey_data->display_id1);
/* 2004/03/25 sunsj modify */
if( (hostkey_data->protect_opt == PRO_SIMLOCK) && (hostkey_data->display_id2 NEQ NULL) ) //xsf add 2003.04.10
{
ALIGNED_PROMPT(CENTER,0, DSPL_TXTATTR_TRANSPARENT, hostkey_data->display_id2);//jhxu720
ALIGNED_PROMPT(CENTER,INFO_TEXT_Y, DSPL_TXTATTR_TRANSPARENT, hostkey_data->display_id1);//jhxu720
}
else
ALIGNED_PROMPT(CENTER,INFO_TEXT_Y, DSPL_TXTATTR_TRANSPARENT, hostkey_data->display_id1);//jhxu720
if( edt_data->editor_index NEQ 0 )
{
memset(edt_data->hostkey_dspl, '\0', MAX_PIN+1);
memset(edt_data->hostkey_dspl, '*', edt_data->editor_index);
/* 2004/03/25 sunsj modify */
#if(MAIN_LCD_SIZE==4)
dspl_colorTextOut(16, SECOND_LINE, DSPL_TXTATTR_TRANSPARENT, edt_data->hostkey_dspl,0); //16, 54
#elif(MAIN_LCD_SIZE==3)
dspl_colorTextOut(16, 40, DSPL_TXTATTR_TRANSPARENT, edt_data->hostkey_dspl,0); //16, 54
#endif
check_set_hostkey(win,edt_data);
}
else
displaySoftKeys('\0',TxtSoftBack); /* Delete/Back button in menu */
//dspl_Clear(16,75,85,87);
/*
line.x1=14;
line.y1=50;
line.x2=14;
line.y2=64;
line.color=0x5ac7ff;
DrawLine(line);
*/
/* 2004/05/21 sunsj modify */
#if(MAIN_LCD_SIZE==4)//请输入机主密码
line.x1=16+8*edt_data->editor_index;
line.y1=50;
line.x2=24+8*edt_data->editor_index;
line.y2=50;
line.color=0x00008b ; // 深蓝色 darkblue 00008b
#elif(MAIN_LCD_SIZE==3)
line.x1=16+8*edt_data->editor_index;
line.y1=50;
line.x2=24+8*edt_data->editor_index;
line.y2=50;
line.color=0x00008b ; // 深蓝色 darkblue 00008b
#endif
DrawLine(line); //draw cursor line
return 1;
}
return 0;
}
/*******************************************************************************
$Function: set_hostkey_editor
$Description: Hostkey editor Dialog Signal Handling function
$Returns: void
$Arguments: window, event, value, parameters
*******************************************************************************/
static void set_hostkey_editor(T_MFW_HND win, USHORT event, SHORT value, void * parameter)
{
T_MFW_WIN * win_data = ((T_MFW_HDR *)win)->data;
T_hostkey_edt * edt_data = (T_hostkey_edt *)win_data->user;
T_hostkey * hostkey_data = (T_hostkey *)parameter;//hostkey main data
edt_data->hostkey_case_edit = hostkey_data->hostkey_case;
if( (hostkey_data->hostkey_case == HOSTKEY_ASK) &&
(hostkey_data->protect_opt != PRO_DELALLPHB) &&
(hostkey_data->protect_opt != PRO_RESETALL) &&
(hostkey_data->protect_opt != PRO_MSGBOX) )
{
TRACE_EVENT("Mmihost.c:set_hostkey_editor():HUPKeyOrigin = 1");
//HUPKeyOrigin = 1;
animation_complete=1;
hostkey_edit_windows = edt_data->hostkey_edt_win;
}
//end of xsf add 2002.09.12
TRACE_EVENT("Mmihost.c:set_hostkey_editor");
/*
* depending on event
*/
switch( event )
{
case HOSTKEY_ASK:
case HOSTKEY_ASK_MENU:
case HOSTKEY_ASK_ONOFF: //XSF ADD FOR ON/OFF HOSTKEY 2002.08.22
case INPUT_OLD_HOSTKEY:
case INPUT_NEW_HOSTKEY:
case INPUT_NEW_HOSTKEY_AGAIN:
case HOSTKEY_SWITCHON: //xsf add 2002.08.29
memset(edt_data->hostkey, '\0', sizeof(edt_data->hostkey));/* initial string */
memset(edt_data->new_hostkey, '\0', sizeof(edt_data->new_hostkey));
memset(edt_data->old_hostkey, '\0', sizeof(edt_data->old_hostkey));
memset(edt_data->edtbuf, '\0', sizeof(edt_data->edtbuf));
// the coordinate of the editor (to enter the hostkey)
clear_edit_array(edt_data); /* clear editor buffer */
edt_data->editor_index = 0;
//reset_edt_attr(16,71,72,16,0,0,edtCurBar1,0,(char*)edt_data->edtbuf,MAX_DIG,&edt_data->edithostkeyAttr);
winShow(edt_data->hostkey_edt_win);
break;
default:
break;
}
}
/*******************************************************************************
$Function: set_hostkey_kbd_cb
$Description: Callback function for keyboard settings hostkey
$Returns: status int
$Arguments: event, keyboard control block
*******************************************************************************/
static int set_hostkey_kbd_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
T_MFW_WIN * win_hostkey =((T_MFW_HDR *)edt_data->parent_win)->data;
T_hostkey * hostkey_data = (T_hostkey *)win_hostkey->user; // hostkey main data
char timer = TRUE;
char * softhostkey="0000";
TRACE_EVENT("Mmihost.c:set_hostkey_kbd_cb");
//timStop(edt_data->tim_out_handle);/* stop entering timer */
switch( kc->code )
{
case KCD_0:
case KCD_1:
case KCD_2:
case KCD_3:
case KCD_4:
case KCD_5:
case KCD_6:
case KCD_7:
case KCD_8:
case KCD_9:
case KCD_STAR:
case KCD_HASH:
if( edt_data->editor_index < MAX_DIG )
{
if( kc->code EQ KCD_STAR )
edt_data->hostkey[edt_data->editor_index] = STAR;
else
if( kc->code EQ KCD_HASH )
edt_data->hostkey[edt_data->editor_index] = HASH;
else
edt_data->hostkey[edt_data->editor_index] = '0' + kc->code;
//xsf 2003.02.20 edtChar(edt_data->editor_handle,'*');/* hide security code */
edt_data->editor_index++;
check_set_hostkey(win,edt_data); /* digits check depends on status hostkey_case */
}
winShow(edt_data->hostkey_edt_win);
break;
case KCD_LEFT:
case KCD_OK: //xsf add KCD_OK=KCD_LEFT 2003.02.19
switch( edt_data->hostkey_case_edit )
{
case HOSTKEY_ASK:
//case INPUT_NEW_HOSTKEY:/* finish of HOSTKEY entering */
//case INPUT_NEW_HOSTKEY_AGAIN:
if( strlen((char*)edt_data->hostkey) >= MIN_PIN )
{
clear_edit_array(edt_data); /* clear editor array */
//timer = FALSE;
if( JudgeHostKey((char*)edt_data->hostkey) )
//|| (strncmp((char*)edt_data->hostkey, (char*)FlashHostkeyData.HostLock_Key, 8) EQ 0)) /* compare HOSTKEY successfull*/
{
set_hostkey_edt_destroy(edt_data->hostkey_edt_win);
SEND_EVENT(hostkey_data->hostkey_win,HOSTKEY_ASK_OK,0,hostkey_data);
}
else
{
set_hostkey_edt_destroy(edt_data->hostkey_edt_win);
SEND_EVENT(hostkey_data->hostkey_win,HOSTKEY_ASK_FAIL,0,hostkey_data);
}
}
break;
case HOSTKEY_ASK_ONOFF: //XSF ADD FOR ON/OFF HOSTKEY 2002.08.22
case HOSTKEY_ASK_MENU:
if( strlen((char*)edt_data->hostkey) >= MIN_PIN )
{
clear_edit_array(edt_data); /* clear editor array */
//timer = FALSE;
if( JudgeHostKey((char*)edt_data->hostkey) )
//if((strcmp((char*)edt_data->hostkey, softhostkey) EQ 0)||(JudgeHostKey((char*)edt_data->hostkey))) /* compare HOSTKEY successfull*/
{
if( edt_data->hostkey_case_edit EQ HOSTKEY_ASK_MENU )
{
set_hostkey_edt_destroy(edt_data->hostkey_edt_win);
SEND_EVENT(hostkey_data->hostkey_win,HOSTKEY_MENU_OK,0,hostkey_data);
}
else
{
set_hostkey_edt_destroy(edt_data->hostkey_edt_win);
SEND_EVENT(hostkey_data->hostkey_win,HOSTKEY_ONOFF_OK,0,hostkey_data);
}
}
else
{
if( edt_data->hostkey_case_edit EQ HOSTKEY_ASK_MENU )
{
set_hostkey_edt_destroy(edt_data->hostkey_edt_win);
SEND_EVENT(hostkey_data->hostkey_win,HOSTKEY_MENU_FAIL,0,hostkey_data);
}
else
{
set_hostkey_edt_destroy(edt_data->hostkey_edt_win);
SEND_EVENT(hostkey_data->hostkey_win,HOSTKEY_ONOFF_FAIL,0,hostkey_data);
}
}
}
break;
case INPUT_OLD_HOSTKEY:
/* finish of old HOSTKEY entering */
// if (((strlen((char*)edt_data->pin) >= MIN_PIN) && (strlen((char*)edt_data->pin) < (MAX_PIN + 1))) && !(edt_data->gsm_state))
if( strlen((char*)edt_data->hostkey) >= MIN_PIN )
{
clear_edit_array (edt_data); /* clear editor array */
//timer = FALSE;
if( JudgeHostKey((char*)edt_data->hostkey) ) /* compare HOSTKEY successfull*/
{
strncpy((char*)edt_data->old_hostkey, (char*)edt_data->hostkey,MAX_PIN); /* store new hostkey */
strncpy((char*)hostkey_data->old_hostkey, (char*)edt_data->old_hostkey,MAX_PIN);
set_hostkey_edt_destroy(edt_data->hostkey_edt_win); /* entering new hostkey again*/
SEND_EVENT(hostkey_data->hostkey_win,HOSTKEY_OK,0,hostkey_data);
}
else
{
set_hostkey_edt_destroy(edt_data->hostkey_edt_win); /* entering new hostkey again*/
SEND_EVENT(hostkey_data->hostkey_win,HOSTKEY_FAIL,0,hostkey_data);
}
}
break;
case HOSTKEY_SWITCHON: //xsf add 2002.08.29
case INPUT_NEW_HOSTKEY:
/* finish of new HOSTKEY entering */
// if (((strlen((char*)edt_data->pin) >= MIN_PIN) && (strlen((char*)edt_data->pin) < (MAX_PIN + 1))) && !(edt_data->gsm_state))
if( strlen((char*)edt_data->hostkey) >= MIN_PIN )
{
clear_edit_array (edt_data); /* clear editor array */
//timer = FALSE;
strncpy((char*)edt_data->new_hostkey, (char*)edt_data->hostkey,MAX_PIN); /* store new hostkey */
strncpy((char*)hostkey_data->new_hostkey, (char*)edt_data->new_hostkey,MAX_PIN);
set_hostkey_edt_destroy(edt_data->hostkey_edt_win); /* entering new hostkey again*/
SEND_EVENT(hostkey_data->hostkey_win,INPUT_NEW_HOSTKEY_AGAIN,0,hostkey_data);
}
break;
case INPUT_NEW_HOSTKEY_AGAIN:
/* finish of new HOSTKEY confirm */
// if (((strlen((char*)edt_data->pin) >= MIN_PIN) && (strlen((char*)edt_data->pin) < (MAX_PIN + 1))) && !(edt_data->gsm_state))
if( strlen((char*)edt_data->hostkey) >= MIN_PIN )
{
clear_edit_array (edt_data); /* clear editor array */
//timer = FALSE;
if( strcmp((char*)edt_data->hostkey, (char*)hostkey_data->new_hostkey) EQ 0 ) /* compare HOSTKEY successfull*/
{
strncpy((char*)hostkey_data->new_hostkey, (char*)edt_data->hostkey,MAX_PIN);
strncpy((char*)FlashHostkeyData.HostLock_Key, (char*)edt_data->hostkey,MAX_PIN);
FlashHostkeyData.HostLock_flag = 1; //xsf add 2002.08.29
flash_hostwrite();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -