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

📄 mmihost.c

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