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

📄 mmihost.c

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