⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mmihost.c

📁 是一个手机功能的模拟程序
💻 C
📖 第 1 页 / 共 5 页
字号:
        //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 + -