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

📄 newsddt.c

📁 这一款新闻类业务的源码
💻 C
📖 第 1 页 / 共 5 页
字号:
        return FALSE;
    }
    return TRUE;
}

//设置Softkey
void Newsddt_SetSoftkey(Newsddt* pme)
{
    if (!pme->m_bWeb && pme->m_pSoftkey)
    {
        EnSoftkeyType enSoftkey = SOFTKEY_TYPE_NULL;
        switch(pme->m_eAppState)
        {
        case APP_STATE_MainMenu:          //主菜单
            break;
        case APP_STATE_BigNews:           //热点头条
        case APP_STATE_NewsCenter:        //新闻中心
        case APP_STATE_SearchNews:        //新闻搜索
        case APP_STATE_HotSearch:         //热点搜索
            enSoftkey = SOFTKEY_TYPE_RETURN_SEL;
            break;
        case APP_STATE_MyFav:             //我的收藏
            if (pme->m_enMenuType == MENU_Null)
            {
                enSoftkey = SOFTKEY_TYPE_MENU_RETURN;
            }
            else
            {
                enSoftkey = SOFTKEY_TYPE_RETURN_SEL;
            }
            break;
        case APP_STATE_Customise:         //用户定制
            switch(pme->m_enCustState)
            {
            case CUST_STATE_AddNewCust:      //添加新的定制内容
            case CUST_STATE_CustMenu:        //用户定制的菜单(包含查看,添加定制,删除定制,帮助等功能)
            case CUST_STATE_ViewCust:
                enSoftkey = SOFTKEY_TYPE_RETURN_SEL;
                break;
            case CUST_STATE_CustList:        //已经定制的内容列表
                enSoftkey = SOFTKEY_TYPE_MENU_RETURN;
                break;
            case CUST_STATE_AddChannel:      //定制栏目
                enSoftkey = SOFTKEY_TYPE_CUSTOMISE_RETURN;
                break;
            case CUST_STATE_AddNews:         //定制新闻
            case CUST_STATE_ViewHelp:        //查看帮助
            case CUST_STATE_Null:            //没有处于定制状态
            default:
                break;
            }
            break;
        case APP_STATE_Setting:           //功能设置
        case APP_STATE_Recomand:          //精彩推荐
        case APP_STATE_HelpAbout:         //帮助关于
            enSoftkey = SOFTKEY_TYPE_RETURN_SEL;
            break;
        case APP_STATE_ExitApp:           //退出应用:
            enSoftkey = SOFTKEY_TYPE_CONFIRM_CANCEL;
            break;
        default:
            break;
        }
        if (PROMPTBOX_IsActive(pme->m_ppbMsg))
        {
            if (pme->m_bExitApp)
            {
                enSoftkey = SOFTKEY_TYPE_CONFIRM_CANCEL;
            }
            else
            {
                enSoftkey = SOFTKEY_TYPE_NULL_CONFIRM;
            }
        }
        if (InputText_IsActive(pme))
        {
            enSoftkey = SOFTKEY_NULL;
        }
        if(CReadBox_IsActive(pme->m_pReadBox))
        {
            enSoftkey = SOFTKEY_TYPE_MENU_RETURN;
        }
        if (pme->m_bFullScr && pme->m_pReadBox && CReadBox_IsActive(pme->m_pReadBox))
        {
            enSoftkey = SOFTKEY_TYPE_NULL;
        }
        CSoftKey_SetSoftKeyType(pme->m_pSoftkey,enSoftkey);
        CSoftKey_Draw(pme->m_pSoftkey);
    }
}

//设置背景光
//void Newsddt_SetBkLight(Newsddt* pme)
//{
//    if (pme->m_bBackLit)
//    {
//        IDISPLAY_Backlight(pme->a.m_pIDisplay,TRUE);
//    }
//    ISHELL_SetTimer(pme->a.m_pIShell,BKLIGHT_SET_TIME,(PFNNOTIFY)Newsddt_SetBkLight,pme);
//}
         
//返回上一级列表
boolean Newsddt_ListBack(Newsddt* pme)         //返回上一级列表
{
    switch(pme->m_eAppState)
    {
    case APP_STATE_BigNews:          //热点头条
    case APP_STATE_Customise:        //用户定制
    case APP_STATE_NewsCenter:       //新闻中心
    case APP_STATE_SearchNews:       //新闻搜索
    case APP_STATE_HotSearch:        //热点搜索
    case APP_STATE_MyFav:            //我的收藏
    case APP_STATE_Setting:          //功能设置
    case APP_STATE_Recomand:         //精彩推荐
    case APP_STATE_HelpAbout:        //帮助关于
    case APP_STATE_ExitApp:          //退出应用:
        if(pme->m_nIdx > 1)
        {
            List_DeleteAll(pme, pme->m_nIdx);
            pme->m_nIdx --;
            List_Show(pme);
        }
        else
        {
            Newsddt_BackToMain(pme);
        }
    	return TRUE;
    case APP_STATE_MainMenu:         //主菜单
    default:
        break;
    }
    return FALSE;
}

//返回主菜单
void Newsddt_BackToMain(Newsddt* pme)
{
    int8 nCnt = 0;
    for(nCnt = 1;nCnt<=pme->m_nIdx;nCnt++)
    {
        List_DeleteAll(pme,nCnt);
    }
    pme->m_nIdx = 0;
    if (pme->m_pReadBox)
    {
        CReadBox_ClsReadFile(pme->m_pReadBox);
        DelTemp(pme);
    }
    MainMenu_Show(pme);
}

//快速跳行
void Newsddt_JumpLine(Newsddt* pme)
{
    AEERect rect;
    AECHAR  wszCurCntTm[11],wszAllCnt[11];

    pme->m_eInpType = INPUTTEXT_JUMPLINE;
    
    IDISPLAY_ClearScreen(pme->a.m_pIDisplay);
    //SETAEERECT(&rect,TEXTBOX_X,TEXTBOX_Y,TEXTBOX_DX,TEXTBOX_DY);
    //InputText_SetRect(pme,&rect);
    InputText_SetInpBox(pme,AEE_TM_NUMBERS,INPUTTEXT_MAXINPUT);
    SETAEERECT(&rect,0,10,pme->m_nDevWidth,BAR_BOTTOM);
    DrawText(pme->a.m_pIDisplay,pme->m_wszLineCnt,0,0,&rect,IDF_ALIGN_LEFT|IDF_TEXT_TRANSPARENT,MAKE_RGB(0 , 0 , 0));//请输入行数:

    WSPRINTF(wszCurCntTm,sizeof(wszCurCntTm),pme->m_wszCurCnt,pme->m_pReadBox->m_nIndex+1);
    SETAEERECT(&rect,0,5*BAR_BOTTOM,pme->m_nDevWidth,BAR_BOTTOM);
    DrawText(pme->a.m_pIDisplay,wszCurCntTm,0,0,&rect,IDF_ALIGN_CENTER|IDF_TEXT_TRANSPARENT,MAKE_RGB(0 , 0 , 0)); //当前行数:
    
    WSPRINTF(wszAllCnt,sizeof(wszAllCnt),pme->m_wszAllCnt,pme->m_pReadBox->m_nLtTa);
    SETAEERECT(&rect,0,6*BAR_BOTTOM,pme->m_nDevWidth,BAR_BOTTOM);
    DrawText(pme->a.m_pIDisplay,wszAllCnt,0,0,&rect,IDF_ALIGN_CENTER|IDF_TEXT_TRANSPARENT,MAKE_RGB(0 , 0 , 0)); //总行数:

    InputText_Redraw(pme);
    InputText_SetActive(pme,TRUE);
}

//列表跳转
void Newsddt_JumpPage(Newsddt* pme,uint16 nPageCur,uint16 nPageCnt)
{
    AEERect rect;
    AECHAR  wszAllCnt[11],wszCurpage[11];

    pme->m_eInpType = INPUTTEXT_JUMPPAGE;
    IDISPLAY_ClearScreen(pme->a.m_pIDisplay);
    //SETAEERECT(&rect,TEXTBOX_X,TEXTBOX_Y,TEXTBOX_DX,TEXTBOX_DY);
    //InputText_SetRect(pme,&rect);
    InputText_SetInpBox(pme,AEE_TM_NUMBERS,INPUTTEXT_MAXINPUT);
    SETAEERECT(&rect,0,10,pme->m_nDevWidth,BAR_BOTTOM);
    DrawText(pme->a.m_pIDisplay,pme->m_wszPageCnt,0,0,&rect,IDF_ALIGN_LEFT|IDF_TEXT_TRANSPARENT,MAKE_RGB(0 , 0 , 0));//请输入页数:

    WSPRINTF(wszCurpage,sizeof(wszCurpage),pme->m_wszCurPage,nPageCur+1);
    SETAEERECT(&rect,0,5*BAR_BOTTOM,pme->m_nDevWidth,BAR_BOTTOM);
    DrawText(pme->a.m_pIDisplay,wszCurpage,0,0,&rect,IDF_ALIGN_CENTER|IDF_TEXT_TRANSPARENT,MAKE_RGB(0 , 0 , 0)); //当前页数:
    
    WSPRINTF(wszAllCnt,sizeof(wszAllCnt),pme->m_wszALLPgCnt,nPageCnt);
    SETAEERECT(&rect,0,6*BAR_BOTTOM,pme->m_nDevWidth,BAR_BOTTOM);
    DrawText(pme->a.m_pIDisplay,wszAllCnt,0,0,&rect,IDF_ALIGN_CENTER|IDF_TEXT_TRANSPARENT,MAKE_RGB(0 , 0 , 0)); //总页数:

    InputText_Redraw(pme);
    InputText_SetActive(pme,TRUE);
}

//显示菜单
boolean Newsddt_ShowMenu(Newsddt* pme,enMenuType eMType)
{
    //设置菜单
    pme->m_nIdx++;
    if (pme->m_enMenuType != MENU_Null || !pme->m_pList[pme->m_nIdx])
    {
        pme->m_nIdx--;
        return FALSE;
    }

    pme->m_enMenuType = eMType;
    IMENUCTL_SetProperties(pme->m_pList[pme->m_nIdx], MP_UNDERLINE_TITLE);
    IMENUCTL_SetTitle(pme->m_pList[pme->m_nIdx], NEWSDDT_RES_FILE, IDS_SOFTKEY_MENU, NULL);

    switch(pme->m_enMenuType)
    {
    case MENU_Read:
        if (pme->m_bFullScr)
            List_AddItem(pme->m_pList[pme->m_nIdx],IDS_READMENU_CANCELFULL,IDB_NET_LIST);//取消全屏阅读
        else
            List_AddItem(pme->m_pList[pme->m_nIdx],IDS_READMENU_FULLSCR,IDB_NET_LIST);   //全屏阅读
        if (APP_STATE_BigNews == pme->m_eAppState||APP_STATE_NewsCenter == pme->m_eAppState)
        {
            List_AddItem(pme->m_pList[pme->m_nIdx],IDS_CUSTOMISE_NEWSTYPE,IDB_NET_LIST); //定制栏目
        }
        List_AddItem(pme->m_pList[pme->m_nIdx],IDS_MENU_VIEWCOMMENT,IDB_NET_LIST);       //查看评论
        List_AddItem(pme->m_pList[pme->m_nIdx],IDS_MENU_ADDCOMMENT,IDB_NET_LIST);        //我要发言
        if (!pme->m_bAutoRead)
            List_AddItem(pme->m_pList[pme->m_nIdx],IDS_READMENU_AUTOREAD,IDB_NET_LIST);  //自动阅读
        else
            List_AddItem(pme->m_pList[pme->m_nIdx],IDS_READMENU_STOPAUTO,IDB_NET_LIST);  //关闭自动阅读
        //List_AddItem(pme->m_pList[pme->m_nIdx],IDS_READMENU_JUMPLINE,IDB_NET_LIST);      //自动跳行
        if(APP_STATE_MyFav == pme->m_eAppState)
            List_AddItem(pme->m_pList[pme->m_nIdx],IDS_READMENU_DELFAV,IDB_NET_LIST);    //删除收藏
        else
            List_AddItem(pme->m_pList[pme->m_nIdx],IDS_READMENU_ADDFAV,IDB_NET_LIST);    //加入收藏
        break;
    case MENU_MyFav:
        List_AddItem(pme->m_pList[pme->m_nIdx],IDS_FAVMENU_READNEWS,IDB_NET_LIST);       //阅读新闻
        List_AddItem(pme->m_pList[pme->m_nIdx],IDS_READMENU_DELFAV,IDB_NET_LIST);        //删除收藏
        break;
    case MENU_List:                  //网络列表菜单
        {
            CtlAddItem  ai = {0};
            uint8       nIdx = pme->m_nIdx-1;

            List_AddItem(pme->m_pList[pme->m_nIdx],IDS_FAVMENU_READNEWS,IDB_NET_LIST);   //阅读新闻
            List_AddItem(pme->m_pList[pme->m_nIdx],IDS_CUSTOMISE_NEWSTYPE,IDB_NET_LIST); //定制栏目
            if (pme->m_pList[nIdx])
            {
                int nCnt = IMENUCTL_GetItemCount(pme->m_pList[nIdx]);
                for (nCnt = nCnt-1;nCnt>0;nCnt--)
                {
                    IMENUCTL_GetItem(pme->m_pList[nIdx],IMENUCTL_GetItemID(pme->m_pList[nIdx],nCnt),&ai);
                    switch(ai.wFont)
                    {
                    case 30:
                        List_AddItem(pme->m_pList[pme->m_nIdx],IDS_PREVIOUS,IDB_NET_LIST);//上一页
                        break;
                    case 31:
                        List_AddItem(pme->m_pList[pme->m_nIdx],IDS_NEXT,IDB_NET_LIST);    //下一页
                        break;
                    case 32:
                        List_AddItem(pme->m_pList[pme->m_nIdx],IDS_JUMPPAGE,IDB_NET_LIST);//跳转
                        break;
                    }
                }
            }
        }
        break;
    case MENU_Cust:                                                                      //定制新闻菜单
        List_AddItem(pme->m_pList[pme->m_nIdx],IDS_SOFTKEY_VIEW,IDB_NET_LIST);           //查看
        List_AddItem(pme->m_pList[pme->m_nIdx],IDS_MENU_ADDCUST,IDB_NET_LIST);           //新增定制
        List_AddItem(pme->m_pList[pme->m_nIdx],IDS_MENU_DELCUST,IDB_NET_LIST);           //删除定制
        //List_AddItem(pme->m_pList[pme->m_nIdx],IDS_MENU_HELP,IDB_TEXT);                  //帮助 //去掉输入功能
        break;
    case MENU_Null:
    default:
        List_AddItem(pme->m_pList[pme->m_nIdx],IDS_RETTOMAIN,IDB_RETTOMAIN);             //返回主菜单
        break;
    }
    List_AddItem(pme->m_pList[pme->m_nIdx],IDS_RETTOMAIN,IDB_RETTOMAIN);                 //返回主菜单
    List_Show(pme);

    //设置Softkey
    Newsddt_SetSoftkey(pme);

    return TRUE;
}

//////////////////////////////////////////////////////////////////////////
//显示主菜单
void MainMenu_Show(Newsddt* pme)
{
    pme->m_eAppState = APP_STATE_MainMenu;
    pme->m_bFlashSCreen = FALSE;
    pme->m_enMenuType = MENU_Null;
    if (pme->m_pMainMenu)
    {
        IIMAGE_Draw(pme->m_pMainMenu,0,0);//主菜单图片
    }
    if (pme->m_pMainTxt)
    {
        DrawFrame(pme,pme->m_pMainTxt,MAINMENU_TEXT_X,MAINMENU_TEXT_Y,MAINMENU_TXT_FRAMECNT,pme->m_enCurMainItem);//主菜单文字
    }
    IDISPLAY_Update(pme->a.m_pIDisplay);
}
boolean MainMenu_HandleEvent(Newsddt* pme,AEEEvent eCode,uint16 wParam,uint32 dwParam)
{
    if (pme->m_eAppState != APP_STATE_MainMenu)
        return FALSE;

    switch(eCode)
    {
    case EVT_KEY:
        switch(wParam)
        {
        case AVK_LEFT:
            if (pme->m_enCurMainItem <= 0)
                pme->m_enCurMainItem = MAINMENU_EXITAPP;
            else if (MAINMENU_HOTSEARCH == pme->m_enCurMainItem)//去掉输入功能
            {
                pme->m_enCurMainItem-=2;
            }
            else
                pme->m_enCurMainItem--;
            MainMenu_Show(pme);
        	break;
        case AVK_RIGHT:
            if (pme->m_enCurMainItem >= MAINMENU_EXITAPP)
                pme->m_enCurMainItem = 0;
            else if (MAINMENU_NEWSCENTER == pme->m_enCurMainItem)//去掉输入功能
            {
                pme->m_enCurMainItem+=2;
            }
            else
                pme->m_enCurMainItem++;
            MainMenu_Show(pme);
            break;
        case AVK_SELECT:
        case AVK_SOFT1:
            switch(pme->m_enCurMainItem)
            {
            case MAINMENU_BIGNEWS:           //热点头条
                pme->m_eAppState = APP_STATE_BigNews;
                BigNews_Init(pme);
                break;
            case MAINMENU_CUSTOMISE:         //用户定制
                pme->m_eAppState = APP_STATE_Customise;
                Customise_ShowList(pme);
                break;
            case MAINMENU_NEWSCENTER:        //新闻中心
                pme->m_eAppState = APP_STATE_NewsCenter;
                MakeURL(pme,"");

⌨️ 快捷键说明

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