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

📄 mmiautopower.c

📁 是一个手机功能的模拟程序
💻 C
📖 第 1 页 / 共 4 页
字号:

/* 关机窗口显示回调函数 */
static int conAuto_win_cb(T_MFW_EVENT event,T_MFW_WIN * win)
{
    confirmdata *data = (confirmdata*)win->user;   
    char        string[6];

    TRACE_FUNCTION ("timer_edt_win_cb");

    if( event EQ MfwWinVisible )
    {
        dspl_ClearAll();

        /* background display */
        /* 2004/05/20 yhf modify */
        //TD_drawBkg(BG_rect, BG_attr);

        /* title display */
        /*dspl_BitBlt( menuup[FlashSettingData.theme].area.px,menuup[FlashSettingData.theme].area.py,
            menuup[FlashSettingData.theme].area.sx,menuup[FlashSettingData.theme].area.sy,
            menuup[FlashSettingData.theme].nIcons,menuup[FlashSettingData.theme].icons,0);
        
        if(Mmi_getCurrentLanguage()==CHINESE_LANGUAGE)
            dspl_colorTextOut(28+EX,0,DSPL_TXTATTR_TRANSPARENT,MmiRsrcGetText(TxtAutoPowerOff),0x0);
        else
            dspl_colorTextOut(20,0,DSPL_TXTATTR_TRANSPARENT,MmiRsrcGetText(TxtAutoPowerOff),0x0);
        
        if(Mmi_getCurrentLanguage()==CHINESE_LANGUAGE)
        {
            dspl_colorTextOut(12, 14, DSPL_TXTATTR_TRANSPARENT, MmiRsrcGetText(TxtAutoOff), 0xcd7f32);
            dspl_colorTextOut(28, 30, DSPL_TXTATTR_TRANSPARENT, MmiRsrcGetText(TxtAutoConfirm), 0xcd7f32);
        }
        else
        {
            dspl_colorTextOut(8, 14, DSPL_TXTATTR_TRANSPARENT, MmiRsrcGetText(TxtAutoOff), 0xcd7f32);
            dspl_colorTextOut(28, 38, DSPL_TXTATTR_TRANSPARENT, MmiRsrcGetText(TxtAutoConfirm), 0xcd7f32);
        }*/
        dspl_colorTextOut(12, 10, 0, MmiRsrcGetText(TxtAutoOff), 0xcd7f32);
        dspl_colorTextOut(28, 26, 0, MmiRsrcGetText(TxtAutoConfirm), 0xcd7f32);     

        if( data->tim_num==1||data->tim_num==0 )
            sprintf(string,"%d%s",data->tim_num,"second");
        else
            sprintf(string,"%d%s",data->tim_num,"seconds");
        dspl_colorTextOut(28, 50, 0, string, 0x0000ff);
        /***end yhf modify***/

        displaySoftKeys(TxtYes,TxtNo);//confirm	 		
        return 1;
    }
    return 0;
}
/* 关闭窗口事件处理函数 */
static void confirm_DialogCB(T_MFW_HND win, USHORT event, SHORT value, void * parameter)
{
    T_MFW_WIN * win_data = ((T_MFW_HDR *)win)->data;
    confirmdata* data = (confirmdata*)win_data->user;

    TRACE_EVENT("confirm_DialogCB");
    data->tim_num=10;
    tim_start(data->info_tim);
}
/* 关闭窗口按键处理函数 */
static int confirm_kbd_cb (MfwEvt e, MfwKbd *kc)
{
    T_MFW_HND win = mfw_parent(mfw_header());
    T_MFW_WIN * win_data = ((T_MFW_HDR *)win)->data;
    MfwHnd times_switchoff;
    confirmdata* data = (confirmdata*)win_data->user;

    TRACE_EVENT("auto_kbd_cb");
    switch( kc->code )
    {
    case KCD_LEFT:
    case KCD_OK:
        //FfsWriteAllEvent();
        //conAuto_destroy(win);
        //AutoPowerOn();
        //showGoodBye ( idle_get_window () ); 
        conAuto_destroy(win);
        AutoPowerOn();
        FfsWriteAllEvent();//hxl add for save file completely 20021125
        FieldTestExit();

                /* 2004/07/09 sunsj add for forbidden hall off */
		HallOffForbid = TRUE;
        showGoodBye ( idle_get_window () ); //gb		
#if 0 /* Robert.Chen removed, 2004-05-05 */
        times_switchoff = timCreate(0,THREE_SECS,(MfwCb)goodbye_cb);
        timStart(times_switchoff);
#endif 
        // nm_deregistration();        /* start deregistration procedure   */
        // BaseWinExit();
        break;

    case KCD_RIGHT:
        conAuto_destroy(win);
        break;

    default:
        break;
    }
    return MFW_EVENT_CONSUMED;
}
/* 关闭窗口销毁函数 */
void conAuto_destroy (T_MFW_HND own_window)
{
    T_MFW_WIN       *win  = ((T_MFW_HDR *)own_window)->data;
    confirmdata     *data = (confirmdata*)win->user;

    TRACE_EVENT ("conAuto_destroy()");

    if( own_window )
    {
        /*
         * Delete WIN Handler
         */

        win_delete (own_window);
        /*
         * Free Memory
        */
        FREE_MEMORY ((void *)data, sizeof (confirmdata));
    }
}

/* 关机前等10秒种 */
static T_MFW_CB confirm_tim_cb(T_MFW_EVENT event, T_MFW_TIM *tc)
{
    T_MFW_HND       win         = mfw_parent (mfw_header());
    T_MFW_WIN     * win_data    = ((T_MFW_HDR *)win)->data;
    T_MFW_HND       tim_win;
    MfwHnd          times_switchoff;
    confirmdata   * data        = (confirmdata *)win_data->user;

    if( !data->tim_num )
    {
        //FfsWriteAllEvent();
        //conAuto_destroy(win);
        //AutoPowerOn();
        //showGoodBye ( idle_get_window () ); 
        conAuto_destroy(win);
        AutoPowerOn();

	/* robert.chen add, 2004-08-10, for MMS integration */		
	#ifdef MMS_WAP_ENABLED
		{
			extern void mms_pushfile_exit();
			mms_pushfile_exit();
		}
	#endif

	#ifdef _MMS_ENABLE_
		MMS_Exit();
	#endif
        
        FfsWriteAllEvent();//hxl add for save file completely 20021125
        FieldTestExit();

                /* 2004/07/09 sunsj add for forbidden hall off */
		HallOffForbid = TRUE;
        showGoodBye ( idle_get_window () ); //gb

        //2004-04-26 Sunny remove
        //times_switchoff = timCreate(0,THREE_SECS,(MfwCb)goodbye_cb);
        //timStart(times_switchoff);
        //2004-04-26 Sunny remove end

        //nm_deregistration();        /* start deregistration procedure   */
        //BaseWinExit();
    }
    else
    {
        if( call_data.win_incoming||call_data.win_calling||call_win_flag||alarm_win )
        {
            conAuto_destroy(win);
            tim_win=timCreate(win, 1000, (T_MFW_CB)autopower_tim_cb);
            timStart(tim_win);
        }
        else
        {
            data->tim_num--;
            tim_start(data->info_tim);
            winShow(win);
        }
    }  
}

/**********************************************************************************
* Function Name         : checkAutoNumInput
* Function Description  : 改写自动关机时间设置的数字键处理函数,使之不接受错误输入
*
* Parameters		    : autodata *data        	     I/O
*						: U8 keynum					 I
*
* Return	            : void
*
* Author   Name         : Wu Yajun
* Date			        : 2002.10.16
* History:  Date        :
*           Author      :
*           Modify      : 
***********************************************************************************/
static void checkAutoNumInput(autodata *data, U8 keynum)
{

    /* 检查输入的数子,保证小时分钟秒钟没有越界 */
    switch( data->index )
    {
    case 0:                                 // 小时十位
        if( FFS_flashData.time_format == TWELVE_HOUR )
        {
            if( keynum > 1 )
                return;
        }
        else
        {
            if( keynum > 2 )
                return;
        }

        //data->time格式hh:mm
        data->time[data->index++] = '0' + keynum;
        break;

    case 1:                                 //小时个位
        if( FFS_flashData.time_format == TWELVE_HOUR )
        {
            if( (data->time[data->index-1]=='1') && (keynum>2) )
                return;
        }
        else
        {
            if( (data->time[data->index-1]=='2') && (keynum>3) )
                return;
        }
        data->time[data->index++] = '0' + keynum;
        data->index++;
        break;

    case 3:                                 //分钟十位
        if( keynum > 5 )
            return;
        data->time[data->index++] = '0' + keynum;
        break;

    case 4:                                 //分钟个位
        data->time[data->index++] = '0' + keynum;
        data->index = 0;
        break;                              

    default:
        break;
    }
}

/**********************************************************************************
* Function Name         : checkAutoLeftInput
* Function Description  : 改写自动关机时间设置的菜单左键处理函数,使之不接受错误输入
*
* Parameters		    : autodata *data        			I/O
*
* Return	            : void
*
* Author   Name         : Wu Yajun
* Date			        : 2002.10.16
* History:  Date        :
*           Author      :
*           Modify      : 
***********************************************************************************/
static void checkAutoLeftInput(autodata *data)
{
    char *p;
    int  value;

    //时间格式hh:mm
    switch( data->index )
    {
    case 1:                                 //不需要检查
    case 4:
        data->index--;
        break;

    case 0:                                 //检查小时
        p = &data->time[0];
        value = (p[0]-48)*10 + (p[1]-48);

        if( FFS_flashData.time_format == TWELVE_HOUR )
        {
            //十二小时制小时上限12
            if( value > 12 )
                return;
        }
        else
        {
            //二十四小时制小时上限23
            if( value > 23 )
                return;
        }
        data->index = 4;
        break;

    case 3:                                 //检查分钟
        if( data->time[3] > '5' )
            return;

        data->index = 1;
        break;

    default:
        break;
    }
}

/**********************************************************************************
* Function Name         : checkAutoRightInput
* Function Description  : 改写自动关机时间设置的菜单右键处理函数,使之不接受错误输入
*
* Parameters		    : TR_data *data        	     I/O
*
* Return	            : void
*
* Author   Name         : Wu Yajun
* Date			        : 2002.10.16
* History:  Date        :
*           Author      :
*           Modify      : 
***********************************************************************************/
static void checkAutoRightInput(autodata *data)
{
    char *p;
    int  value;

    //时间格式hh:mm
    switch( data->index )
    {
    case 0:                                 //不需要检查
    case 3:
        data->index++;
        break;

    case 1:                                 //检查小时
        p = &data->time[0];
        value = (p[0]-48)*10 + (p[1]-48);

        if( FFS_flashData.time_format == TWELVE_HOUR )
        {
            //十二小时制小时上限12
            if( value > 12 )
                return;
        }
        else
        {
            //二十四小时制小时上限23
            if( value > 23 )
                return;
        }
        data->index = 3;
        break;

    case 4:                                 //检查分钟
        if( data->time[3] > '5' )
            return;

        data->index = 0;
        break;

    default:
        break;
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -