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

📄 newsddt.c

📁 这一款新闻类业务的源码
💻 C
📖 第 1 页 / 共 5 页
字号:
/*===========================================================================
北京捷通华声语音技术有限公司公司 版权所有

项目名称:E书无线超低端
应用类型:在线下载类
支持机型:所有
文件名称:Newsddt.c
创建人:孟令芳
创建日期:2007年08月20日
===========================================================================*/
//版本沿革按如下格式记录
//----------------------
//修改日期:
//修改人:
//当前版本:
//----------------------

#include "newsddt.h"

/*===============================================================================
函数定义
=============================================================================== */
int AEEClsCreateInstance(AEECLSID ClsId, IShell *pIShell, IModule *po, void **ppObj)
{
	*ppObj = NULL;

	if(ClsId == AEECLSID_NEWSDDT)
	{
		if(AEEApplet_New(sizeof(Newsddt),
                          ClsId,
                          pIShell,
                          po,
                          (IApplet**)ppObj,
                          (AEEHANDLER)Newsddt_HandleEvent,
                          (PFNFREEAPPDATA)Newsddt_FreeAppData) )
		{
			if(Newsddt_InitAppData((Newsddt*)*ppObj))
			{
				return(AEE_SUCCESS);
			}
			else
			{
				IAPPLET_Release((IApplet*)*ppObj);
				return EFAILED;
			}
        }
    }
	return(EFAILED);
}

/*-------------------------------------------------------------------
消息处理函数
-------------------------------------------------------------------*/
static boolean Newsddt_HandleEvent(Newsddt* pme, AEEEvent eCode, uint16 wParam, uint32 dwParam)
{
    if (EVT_KEY == eCode && AVK_SOFT1 == wParam)
    {
        wParam = AVK_SELECT;
    }
    if (EVT_KEY == eCode && AVK_SOFT2 == wParam)
    {
        wParam = AVK_CLR;
    }
	//DBGPRINTF("==Msg:%d,%d,%d", eCode, wParam, dwParam);
	switch (eCode) 
	{
	case EVT_APP_START:
        MainMenu_Show(pme);
        //ShowSplashScreen(pme);//FixedBy(menglingfang)bug no.24584
        //if(ShowSplashScreen(pme))
        //	ISHELL_SetTimer(pme->a.m_pIShell, TIME_SPLASH, (PFNNOTIFY)MainMenu_Show, pme);
        //else
        //	ISHELL_SetTimer(pme->a.m_pIShell, 0, (PFNNOTIFY)MainMenu_Show, pme);
		return TRUE;
	case EVT_APP_STOP:
		return TRUE;
	case EVT_APP_NO_CLOSE:
		return FALSE;
	case EVT_APP_NO_SLEEP:		//如果应用在逻辑上允许休眠则不处理该消息
		return TRUE;
	case EVT_APP_SUSPEND:
        {
            uint8 nCnt = 0;
            if (pme->m_bFlashSCreen)//FixedBy(menglingfang)bug no.24588
            {
                ISHELL_CancelTimer(pme->a.m_pIShell,(PFNNOTIFY)MainMenu_Show,pme);
                break;
            }
            for (nCnt = 1;nCnt<=pme->m_nIdx;nCnt++)
            {
                IMENUCTL_SetActive(pme->m_pList[nCnt], FALSE);
            }
            ISHELL_CancelTimer(pme->a.m_pIShell,NULL,pme);
            ISHELL_CancelTimer(pme->a.m_pIShell,NULL,pme->m_pReadBox);
            if(pme->m_bWeb)
            {
                Net_Stop(pme);
                if (pme->m_nIdx == 0)
                {
                    pme->m_eAppState = APP_STATE_MainMenu;
                }
            }
        }
		break;
    case EVT_APP_RESUME:
        if (pme->m_bFlashSCreen)//FixedBy(menglingfang)bug no.24588
        {
            ShowSplashScreen(pme);
            return TRUE;
        }

        if (pme->m_bExitApp)
        {
            ShowExitMsg(pme);
            return TRUE;
        }
        if (APP_STATE_MainMenu == pme->m_eAppState)
        {
            MainMenu_Show(pme);
            return TRUE;
        }
        if (!PROMPTBOX_IsActive(pme->m_ppbMsg))
        {
            if (INPUTTEXT_JUMPLINE == pme->m_eInpType)          //新闻跳行
            {
                Newsddt_JumpLine(pme);
                return TRUE;
            }
            else if (INPUTTEXT_JUMPPAGE == pme->m_eInpType)     //网络列表跳转
            {
                CtlAddItem  ai;
                IMENUCTL_GetItem(pme->m_pList[pme->m_nIdx], IMENUCTL_GetSel(pme->m_pList[pme->m_nIdx]), &ai);
                if((ListData*)ai.dwData)
                {
                    ListData *pListData = (ListData*)ai.dwData;
                    Newsddt_JumpPage(pme,pListData->nCurPage,pListData->nPageCnt);
                }
                return TRUE;
            }
            else if (INPUTTEXT_CUSTOMISE == pme->m_eInpType)    //定制新闻
            {
                AEERect rc;
                pme->m_enCustState = CUST_STATE_AddNews;
                IDISPLAY_ClearScreen(pme->a.m_pIDisplay);
                pme->m_eInpType = INPUTTEXT_CUSTOMISE;
                //SETAEERECT(&rc,0,3*BAR_BOTTOM,pme->m_nDevWidth,BAR_BOTTOM);
                //InputText_SetRect(pme,&rc);
                InputText_SetInpBox(pme,AEE_TM_LETTERS,INPUTTEXT_MAXINPUT);
                InputText_Redraw(pme);
                InputText_ShowInpMode(pme);
                InputText_SetActive(pme,TRUE);
                return TRUE;
            }
            else if (INPUTTEXT_SEARCHNEWS == pme->m_eInpType)   //搜索新闻
            {
                AEERect rc;

                IDISPLAY_ClearScreen(pme->a.m_pIDisplay);
                pme->m_eInpType = INPUTTEXT_SEARCHNEWS;
                //SETAEERECT(&rc,0,3*BAR_BOTTOM,pme->m_nDevWidth,BAR_BOTTOM);
                //InputText_SetRect(pme,&rc);
                InputText_SetInpBox(pme,AEE_TM_LETTERS,INPUTTEXT_MAXINPUT);
                InputText_Redraw(pme);
                InputText_ShowInpMode(pme);
                InputText_SetActive(pme,TRUE);
                return TRUE;
            }
            else if (INPUTTEXT_COMMENT == pme->m_eInpType)      //发表评论
            {
                AEERect rc;
                IDISPLAY_ClearScreen(pme->a.m_pIDisplay);
                pme->m_eInpType = INPUTTEXT_COMMENT;
                //SETAEERECT(&rc,0,3*BAR_BOTTOM,pme->m_nDevWidth,BAR_BOTTOM);
                //InputText_SetRect(pme,&rc);
                InputText_SetInpBox(pme,AEE_TM_LETTERS,INPUTTEXT_MAXINPUT);
                InputText_Redraw(pme);
                InputText_ShowInpMode(pme);
                InputText_SetActive(pme,TRUE);
                return TRUE;
            }
            else if (INPUTTEXT_COMMENT_NAME == pme->m_eInpType) //输入昵称
            {
                AEERect rc;
                IDISPLAY_ClearScreen(pme->a.m_pIDisplay);
                pme->m_nTitleID = IDS_COMMENT_NAME;
                //SETAEERECT(&rc,0,3*BAR_BOTTOM,pme->m_nDevWidth,BAR_BOTTOM);
                //InputText_SetRect(pme,&rc);
                InputText_SetInpBox(pme,AEE_TM_LETTERS,INPUTTEXT_MAXINPUT);
                InputText_Redraw(pme);
                InputText_ShowInpMode(pme);
                InputText_SetActive(pme,TRUE);
                return TRUE;
            }
        }

        if (pme->m_ppbMsg && PROMPTBOX_IsActive(pme->m_ppbMsg))
        {
            //PROMPTBOX_SetActive(pme->m_ppbMsg, FALSE);
            PROMPTBOX_Redraw(pme->m_ppbMsg);
            Newsddt_SetSoftkey(pme);
            return TRUE;
        }
        if (CReadBox_IsActive(pme->m_pReadBox))
        {
            if(pme->m_pReadBox)
            {
                CReadBox_SetAutoRead(pme->m_pReadBox ,(pme->m_bAutoRead)?TRUE:FALSE);
            }
            CReadBox_SetTextFB(pme->m_pReadBox,SPACE_BETWEEN_LINE);
            CReadBox_SetActive(pme->m_pReadBox,TRUE);
            CReadBox_Draw(pme->m_pReadBox);
            return TRUE;
        }
        if (pme->m_ppbMsg && !PROMPTBOX_IsActive(pme->m_ppbMsg))
            List_Show(pme);
        return TRUE;
	case EVT_KEY:
		if(pme->m_bFlashSCreen)
		{			
			ISHELL_CancelTimer(pme->a.m_pIShell, (PFNNOTIFY)MainMenu_Show, pme);
			MainMenu_Show(pme);
			return TRUE;
		}

        //正在连接时,C键退出网络连接状态
        if(pme->m_bWeb && (wParam == AVK_CLR/* || wParam == AVK_SELECT*/))
        {
            Net_Stop(pme);

            //必须先接收完后台信息才能改变输入框状态
            if (INPUTTEXT_JUMPPAGE == pme->m_eInpType)     //网络列表跳转
            {
                CtlAddItem  ai;
                IMENUCTL_GetItem(pme->m_pList[pme->m_nIdx], IMENUCTL_GetSel(pme->m_pList[pme->m_nIdx]), &ai);
                if((ListData*)ai.dwData)
                {
                    ListData *pListData = (ListData*)ai.dwData;
                    Newsddt_JumpPage(pme,pListData->nCurPage,pListData->nPageCnt);
                }
                return TRUE;
            }
            else if (INPUTTEXT_SEARCHNEWS == pme->m_eInpType)   //搜索新闻
            {
                AEERect rc;

                IDISPLAY_ClearScreen(pme->a.m_pIDisplay);
                pme->m_eInpType = INPUTTEXT_SEARCHNEWS;
                //SETAEERECT(&rc,0,3*BAR_BOTTOM,pme->m_nDevWidth,BAR_BOTTOM);
                //InputText_SetRect(pme,&rc);
                InputText_SetInpBox(pme,AEE_TM_PINYIN,INPUTTEXT_MAXINPUT);
                InputText_Redraw(pme);
                InputText_ShowInpMode(pme);
                InputText_SetActive(pme,TRUE);
                return TRUE;
            }
            else if (INPUTTEXT_COMMENT_NAME == pme->m_eInpType) //输入昵称
            {
                AEERect rc;
                IDISPLAY_ClearScreen(pme->a.m_pIDisplay);
                pme->m_nTitleID = IDS_COMMENT_NAME;
                //SETAEERECT(&rc,0,3*BAR_BOTTOM,pme->m_nDevWidth,BAR_BOTTOM);
                //InputText_SetRect(pme,&rc);
                InputText_SetInpBox(pme,AEE_TM_PINYIN,INPUTTEXT_MAXINPUT);
                InputText_Redraw(pme);
                InputText_ShowInpMode(pme);
                InputText_SetActive(pme,TRUE);
                return TRUE;
            }

            if (pme->m_nIdx > 0)
            {
                List_Show(pme);
            }
            else
            {
                MainMenu_Show(pme);
            }
            return TRUE;
        }

		if(wParam == AVK_SEND)
			return FALSE;
		break;
	case EVT_COMMAND:
		if(PROMPTBOX_IsActive(pme->m_ppbMsg))
		{
			PROMPTBOX_SetActive(pme->m_ppbMsg, FALSE);
			ISTATIC_Reset(pme->m_ppbMsg->pIStatic);
            if(pme->m_pReadBox && CReadBox_IsActive(pme->m_pReadBox))
            {
                CReadBox_SetActive(pme->m_pReadBox,FALSE);
                FREEIF(pme->m_pWebBody);
            }
			List_Show(pme);
			return TRUE;
		}
		break;
	default:
		break;
	}

    //消息框
	if(PROMPTBOX_IsActive(pme->m_ppbMsg))
	{
        boolean bRes = FALSE;
        if (wParam>AVK_0 && wParam<AVK_POUND)
        {
            return FALSE;
        }
        bRes = PROMPTBOX_HandleEvent(pme->m_ppbMsg, eCode, wParam, dwParam);
        if (AVK_UP <= wParam && AVK_DOWN >= wParam)
            return bRes;
        if (bRes && pme->m_bExitApp)
        {
            if (wParam == AVK_SELECT)
            {
                ISHELL_CloseApplet(pme->a.m_pIShell,FALSE);
                pme->m_bExitApp = FALSE;
                return TRUE;
            }
            else if (wParam == AVK_CLR)
            {
                MainMenu_Show(pme);
                pme->m_bExitApp = FALSE;
                return TRUE;
            }
        }
        if (bRes && pme->m_bDelFav)  //决定是否执行删除收藏动作
        {
            if(wParam == AVK_SELECT)
            {
                if (!Record_DelRd(pme,TRUE))
                {
                    List_DeleteAll(pme,pme->m_nIdx);
                    pme->m_nIdx--;
                    ShowErrMsg(pme,IDS_ERR_DELFILE,0);
                    pme->m_bDelFav = FALSE;
                    return TRUE;
                }
                MyFav_ShowList(pme);
            }
            else if (wParam == AVK_CLR)
            {
                if (MENU_Read == pme->m_enMenuType)
                {
                    ReadText_RetToRead(pme);
                }
                else
                {
                    MyFav_ShowList(pme);
                }
            }
            pme->m_bDelFav = FALSE;
            return TRUE;
        }
        if (bRes && pme->m_bDelCust)  //决定是否执行删除定制信息的动作
        {
            pme->m_enMenuType = MENU_Null;
            if(wParam == AVK_SELECT)

⌨️ 快捷键说明

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