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

📄 newsddt.c

📁 这一款新闻类业务的源码
💻 C
📖 第 1 页 / 共 5 页
字号:
            {
                if (!Record_DelRd(pme,FALSE))
                {
                    List_DeleteAll(pme,pme->m_nIdx);
                    pme->m_nIdx--;
                    ShowErrMsg(pme,IDS_ERR_DELFILE,0);
                    pme->m_bDelCust = FALSE;
                    return TRUE;
                }
                Customise_ShowList(pme);
            }
            else if (wParam == AVK_CLR)
            {
                Customise_ShowList(pme);
            }
            pme->m_bDelCust = FALSE;
            return TRUE;
        }
        if (bRes && pme->m_bNewsComment)
        {
            pme->m_bNewsComment = FALSE;
            List_Show(pme);
            return TRUE;
        }
        if (bRes && pme->m_enMenuType == MENU_Read)
        {
            if (pme->m_eInpType == INPUTTEXT_JUMPPAGE)
            {
                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;
                    InputText_Init(pme);
                    Newsddt_JumpPage(pme,pListData->nCurPage,pListData->nPageCnt);
                }
                return TRUE;
            }
            else
            {
                ReadText_RetToRead(pme);
            }
            return TRUE;
        }
        if (bRes && AVK_UP != wParam && AVK_DOWN != wParam)
        {
            if (pme->m_eInpType == INPUTTEXT_SEARCHNEWS)        //新闻搜索
            {
                NewsSearch_Init(pme);
                return TRUE;
            }
            else if (pme->m_eInpType == INPUTTEXT_CUSTOMISE)    //定制新闻
            {
                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 (pme->m_eInpType == INPUTTEXT_JUMPPAGE)
            {
                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;
                    InputText_Init(pme);
                    Newsddt_JumpPage(pme,pListData->nCurPage,pListData->nPageCnt);
                }
                return TRUE;
            }

            if (pme->m_eAppState == APP_STATE_Customise)
            {
                Customise_ShowList(pme);
                return TRUE;
            }
            if (pme->m_nIdx == 0)
                MainMenu_Show(pme);
            else
                List_Show(pme);
        }
        if (EVT_APP_SUSPEND == eCode)
        {
            return TRUE;
        }
		return bRes;
	}

    //显示文本
    if (ReadText_HandleEvent(pme, eCode, wParam, dwParam))
        return TRUE;

    //主菜单
    if (MainMenu_HandleEvent(pme, eCode, wParam, dwParam))
        return TRUE;

    //用户定制
    if (Customise_HandleEvent(pme, eCode, wParam, dwParam))
        return TRUE;

    //我的收藏
    if (MyFav_HandleEvent(pme, eCode, wParam, dwParam))
        return TRUE;

    //用户设定
    if (UserSetting_HandleEvent(pme, eCode, wParam, dwParam))
        return TRUE;

    //帮助关于
    if (HelpAbout_HandleEvent(pme, eCode, wParam, dwParam))
        return TRUE;

    //输入框
    if (InputText_HandleEvent(pme, eCode, wParam, dwParam))
        return TRUE;

    //列表
	if (List_HandleEvent(pme, eCode, wParam, dwParam))
        return TRUE;

	if(eCode == EVT_APP_SUSPEND)
		return TRUE;

	if(eCode == EVT_APP_RESUME)
		return TRUE;

	if(eCode == EVT_KEY && wParam == AVK_CLR)
    {
        pme->m_eAppState = APP_STATE_ExitApp;

        //FixedBy(menglingfang)20071219bug No.24385 start
        //ShowExitMsg(pme);
        ISHELL_CloseApplet(pme->a.m_pIShell,FALSE);
        //FixedBy(menglingfang)20071219bug No.24385 end

        return TRUE;
	}
	//DBGPRINTF("==Msg:%d,%d,%d", eCode, wParam, dwParam);
	return FALSE;
}

boolean Newsddt_InitAppData(Newsddt* pme)
{
	AEEDeviceInfo   di;
    AEERect         rc;
    IDBMgr*			pDBMgr = NULL;
	ITAPI * pITAPI;
	TAPIStatus ts;
	ILicense * pl;

	di.wStructSize = sizeof(AEEDeviceInfo);
	ISHELL_GetDeviceInfo(pme->a.m_pIShell, &di);
	pme->m_nDevWidth = di.cxScreen;
	pme->m_nDevHeight = di.cyScreen;
	pme->m_dwPlatformID = di.dwPlatformID;

	//取手机标识号
	ISHELL_CreateInstance(pme->a.m_pIShell, AEECLSID_TAPI, (void**)(&pITAPI));
	ITAPI_GetStatus(pITAPI, &ts);
#ifdef AEE_SIMULATOR
	STRCPY(pme->m_szMobileID, "460030900000000");
#else
	STRCPY(pme->m_szMobileID, ts.szMobileID);
#endif
	ITAPI_Release(pITAPI);

	//购买类型及点数
	ISHELL_CreateInstance(pme->a.m_pIShell, AEECLSID_LICENSE, (void **)(&pl));
// 	pme->m_pt = ILICENSE_GetPurchaseInfo(pl, &(pme->m_lt), &(pme->m_dwCredit), NULL);
// 	ILICENSE_Release(pl);
// 	if(pme->m_dwCredit == 0xFFFFFFFF)
// 	pme->m_dwCredit = 0;

	//列表菜单
    if(!Newsddt_InitList(pme,di))
        return FALSE;
	
    //初始化Softkey提示框
    if(!Newsddt_InitSoftkey(pme))
        return FALSE;

	//文件管理器
	ISHELL_CreateInstance(pme->a.m_pIShell, AEECLSID_FILEMGR, (void **)&pme->m_pFileMgr);

    //数据库初始化
    if(SUCCESS != ISHELL_CreateInstance(pme->a.m_pIShell , AEECLSID_DBMGR , (void**)&pDBMgr))
        return FALSE;
    pme->m_pMyfavDBFile = IDBMGR_OpenDatabase(pDBMgr , MYFAV_DBNAME , TRUE);              //我的收藏数据库
    pme->m_pCustomiseDBFile = IDBMGR_OpenDatabase(pDBMgr , CUSTMISE_DBNAME , TRUE);       //用户定制数据库
    if(!pme->m_pMyfavDBFile || !pme->m_pCustomiseDBFile)
        return FALSE;
    BREW_FREE(pDBMgr);

	//初始化主菜单
    pme->m_enCurMainItem = MAINMENU_BIGNEWS;
    pme->m_pMainMenu = ISHELL_LoadResImage(pme->a.m_pIShell, NEWSDDT_RES_FILE,IDB_MAINMENU);
    pme->m_pMainTxt = ISHELL_LoadResImage(pme->a.m_pIShell,NEWSDDT_RES_FILE,IDB_MAINTXT);
    if (!pme->m_pMainTxt)
    {
        return FALSE;
    }

	//初始化消息框
    pme->m_ppbMsg = PROMPTBOX_New(NEWSDDT_RES_FILE);
    PROMPTBOX_SetProps(pme->m_ppbMsg, ST_NOSCROLL | ST_UNDERLINE);
    rc.x = 0;
    rc.y = 0;
    rc.dx = pme->m_nDevWidth;
    rc.dy = pme->m_nDevHeight;
    PROMPTBOX_SetRect(pme->m_ppbMsg, &rc);
    PROMPTBOX_SetActive(pme->m_ppbMsg, FALSE);

	//初始化网络
	Net_Init(pme);

    //初始化图书相关信息
    if(!Newsddt_InitReadBox(pme))
        return FALSE;

    //初始化配置信息
    if(FALSE == LoadInfo(pme))
    {
        //载入配置信息失败,设置初始值
        pme->m_bBackLit              = pme->m_tagRDInf.m_bBackLitTm = FALSE;   //背景光的状态
        pme->m_pReadBox->m_nLooktype = pme->m_tagRDInf.m_nLooktypeTm = AUTOREAD_LINE;	//自动阅读
        pme->m_pReadBox->m_nTime[0]  = pme->m_tagRDInf.m_nTimeTm[0] = 900;    //自动阅读的时间间隔
        pme->m_pReadBox->m_nTime[1]  = pme->m_tagRDInf.m_nTimeTm[1] = 1200;   //自动阅读的时间间隔
        pme->m_pReadBox->m_nTime[2]  = pme->m_tagRDInf.m_nTimeTm[2] = 2000;   //自动阅读的时间间隔
        SaveInf(pme);
    }
    else
    {
        pme->m_bBackLit              = pme->m_tagRDInf.m_bBackLitTm;    //背景光的状态
        pme->m_pReadBox->m_nLooktype = pme->m_tagRDInf.m_nLooktypeTm;	//自动阅读
        pme->m_pReadBox->m_nTime[0]  = pme->m_tagRDInf.m_nTimeTm[0];    //自动阅读的时间间隔
        pme->m_pReadBox->m_nTime[1]  = pme->m_tagRDInf.m_nTimeTm[1];	//自动阅读的时间间隔
        pme->m_pReadBox->m_nTime[2]  = pme->m_tagRDInf.m_nTimeTm[2];    //自动阅读的时间间隔
    }

	//载入字符串
    ISHELL_LoadResString(pme->a.m_pIShell, NEWSDDT_RES_FILE, IDS_CONNECT, pme->m_wszCon, sizeof(pme->m_wszCon));
    ISHELL_LoadResString(pme->a.m_pIShell, NEWSDDT_RES_FILE, IDS_SEND, pme->m_wszSend, sizeof(pme->m_wszSend));
    ISHELL_LoadResString(pme->a.m_pIShell, NEWSDDT_RES_FILE, IDS_RECV, pme->m_wszRecv, sizeof(pme->m_wszRecv));
    ISHELL_LoadResString(pme->a.m_pIShell, NEWSDDT_RES_FILE, IDS_READBOX_SCROLL, pme->m_szReadOpen , sizeof(pme->m_szReadOpen));
    ISHELL_LoadResString(pme->a.m_pIShell, NEWSDDT_RES_FILE, IDS_INPUT_LINECNT, pme->m_wszLineCnt, sizeof(pme->m_wszLineCnt));      //请输入行数:
    ISHELL_LoadResString(pme->a.m_pIShell, NEWSDDT_RES_FILE, IDS_INPUT_CURLINECNT, pme->m_wszCurCnt, sizeof(pme->m_wszCurCnt));     //当前行数:
    ISHELL_LoadResString(pme->a.m_pIShell, NEWSDDT_RES_FILE, IDS_INPUT_ALLCNT, pme->m_wszAllCnt, sizeof(pme->m_wszAllCnt));         //总行数:
    ISHELL_LoadResString(pme->a.m_pIShell, NEWSDDT_RES_FILE, IDS_INP_INPPAGE, pme->m_wszPageCnt, sizeof(pme->m_wszCurCnt));         //请输入页数:
    ISHELL_LoadResString(pme->a.m_pIShell, NEWSDDT_RES_FILE, IDS_INP_PAGECNT, pme->m_wszALLPgCnt, sizeof(pme->m_wszAllCnt));        //总页数:
    ISHELL_LoadResString(pme->a.m_pIShell, NEWSDDT_RES_FILE, IDS_INP_CURPAGE, pme->m_wszCurPage, sizeof(pme->m_wszCurPage));        //当前页数:
    ISHELL_LoadResString(pme->a.m_pIShell, NEWSDDT_RES_FILE, IDS_CUST_TEXT, pme->m_wszCustTxt, sizeof(pme->m_wszCustTxt));          //与...相关的新闻
    ISHELL_LoadResString(pme->a.m_pIShell, NEWSDDT_RES_FILE, IDS_CUST_TEXT1, pme->m_wszCustTxt1, sizeof(pme->m_wszCustTxt1));        //定制"%s"

    //设置背景灯
    //Newsddt_SetBkLight(pme);

    //初始化输入框信息
    if(!InputText_Init(pme))
        return FALSE;
    
    //清除临时文件名字和临时文件
    DelTemp(pme);

    //程序状态信息设定
    pme->m_bFlashSCreen = FALSE;
    pme->m_eAppState = APP_STATE_MainMenu;
    pme->m_enMenuType = MENU_Null;
    pme->m_eSettingType = SETTING_NULL;
    pme->m_bFullScr = FALSE;
    pme->m_eInpType = INPUTTEXT_NULL;
    pme->m_nDataType = 0;           //精彩推荐
    pme->m_bExitApp = FALSE;
    pme->m_nIdx = 0;
    pme->m_bNewsComment = FALSE;
    //pme->m_bAddCust = FALSE;
    pme->m_bDelFav = FALSE;             //是否要删除收藏文件?
    pme->m_bDelCust = FALSE;            //是否要删除该定制内容?
    pme->m_nArguments = 31;             //31:赞成
    pme->m_enCustState = CUST_STATE_Null;

    return TRUE;
}

void Newsddt_FreeAppData(Newsddt* pme)
{
	uint8	i;

	for(i=0;i<MAX_LIST;i++)                 //释放菜单
	{
		List_DeleteAll(pme, i);
        BREW_FREE(pme->m_pList[i]);
	}

    Net_Free(pme);                          //释放网络
    InputText_Release(pme);                 //释放输入框
    PROMPTBOX_Release(pme->m_ppbMsg);
    CReadBox_Release(&pme->m_pReadBox);
    CSoftkey_Release(pme->m_pSoftkey);
    DelTemp(pme);                           //清除临时文件名字和临时文件
    FREEIF(pme->m_pWebBody);
    
    BREW_FREE(pme->m_pFileMgr);
    BREW_FREE(pme->m_pMainMenu);            //释放主菜单图片
    BREW_FREE(pme->m_pMainTxt);             //释放主菜单文字图片
    BREW_FREE(pme->m_pMyfavDBFile);
    BREW_FREE(pme->m_pCustomiseDBFile);
}

//初始化列表菜单
boolean Newsddt_InitList(Newsddt* pme,AEEDeviceInfo di)
{
    uint8   i;
    AEERect rcList;

    SETAEERECT(&rcList,0,0,di.cxScreen,di.cyScreen-BAR_BOTTOM);
    for(i=0;i<MAX_LIST;i++)
    {
        ISHELL_CreateInstance(pme->a.m_pIShell, AEECLSID_MENUCTL, (void**)(&pme->m_pList[i]));
        if (pme->m_pList[i])
        {
            IMENUCTL_SetProperties(pme->m_pList[i], MP_UNDERLINE_TITLE);
            IMENUCTL_SetRect(pme->m_pList[i],&rcList);
        }
        else
        {
            return FALSE;
        }
    }    
    return TRUE;
}
boolean Newsddt_InitSoftkey(Newsddt* pme)      //初始化Softkey
{
    pme->m_pSoftkey = CSoftkey_New(pme->m_nDevWidth,pme->m_nDevHeight);
    if (!pme->m_pSoftkey)
    {
        return FALSE;
    }
    pme->m_enSoftkeyType = SOFTKEY_TYPE_SEL_EXIT;
    return TRUE;
}
boolean Newsddt_InitReadBox(Newsddt* pme)      //初始化图书相关信息
{
    pme->m_bAutoRead = FALSE;
    SETAEERECT(&pme->m_ReadRect,0,0,pme->m_nDevWidth,pme->m_nDevHeight-BAR_BOTTOM);
    pme->m_pReadBox = CReadBox_New(pme->m_pFileMgr,&pme->a,&pme->m_ReadRect,pme,(uint16)pme->m_nDevWidth,(uint16)pme->m_nDevHeight,(uint16)(pme->m_nDevHeight - 2*BAR_BOTTOM));
    if (pme->m_pReadBox)
    {
        CReadBox_SetNotify(pme->m_pReadBox , (PFNNOTYRead)ReadText_Notify);
        CReadBox_SetTextFB(pme->m_pReadBox , SPACE_BETWEEN_LINE);
    }
    else
    {

⌨️ 快捷键说明

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