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

📄 list.c

📁 这一款新闻类业务的源码
💻 C
📖 第 1 页 / 共 2 页
字号:
	ai.pImage = NULL;
	ai.pszResImage = NULL;
	if(wImage)
		ai.pszResImage = NEWSDDT_RES_FILE;
	ai.pszResText = NEWSDDT_RES_FILE;
    ai.wText = wText;
	ai.wImage = wImage;
	ai.wItemID = wText;
	ai.dwData = NULL;

	return(IMENUCTL_AddItemEx(pMenu, &ai));
}

boolean List_HandleEvent(Newsddt* pme, AEEEvent eCode, uint16 wParam, uint32 dwParam)
{
	IMenuCtl * pm = pme->m_pList[pme->m_nIdx];
	uint16 nMax = 0;

    if (!pm||(pm && !IMENUCTL_IsActive(pm)))
        return FALSE;

    if (wParam>AVK_0 && wParam<AVK_POUND)
    {
        return FALSE;
    }

	//if(eCode == EVT_APP_RESUME)
	//{
	//	List_Show(pme);
	//	return TRUE;
	//}
	nMax = IMENUCTL_GetItemID(pm, MAX(0, IMENUCTL_GetItemCount(pm) - 1));
	switch (eCode)
	{
	case EVT_KEY:
		switch(wParam)
		{
		case AVK_CLR:
            if(ReadText_RetToRead(pme))            //如果是阅读图书时的菜单,要返回图书显示界面
            {
                pme->m_enMenuType = MENU_Null;
                return TRUE;
            }
            pme->m_enMenuType = MENU_Null;
            if(Newsddt_ListBack(pme))            //返回上一级列表
            {
                return TRUE;
            }
			return FALSE;
		case AVK_UP:
			if(IMENUCTL_GetSel(pm) == IMENUCTL_GetItemID(pm, 0))
			{
				IMENUCTL_SetSel(pm, nMax);
				IMENUCTL_SetActive(pm, FALSE);
				IMENUCTL_SetActive(pm, TRUE);
                return TRUE;
			}
			break;
		case AVK_DOWN:
			if(IMENUCTL_GetSel(pm) == nMax)
			{
				IMENUCTL_SetSel(pm, IMENUCTL_GetItemID(pm, 0));
				IMENUCTL_SetActive(pm, FALSE);
				IMENUCTL_SetActive(pm, TRUE);
                return TRUE;
			}
			break;
		case AVK_LEFT:
			IMENUCTL_SetSel(pm, IMENUCTL_GetItemID(pm, 0));
			IMENUCTL_SetActive(pm, FALSE);
			IMENUCTL_SetActive(pm, TRUE);
			return TRUE;
		case AVK_RIGHT:
			IMENUCTL_SetSel(pm, nMax);
			IMENUCTL_SetActive(pm, FALSE);
			IMENUCTL_SetActive(pm, TRUE);
			return TRUE;
		}
		break;
	case EVT_COMMAND:
		switch(wParam)
		{
		case IDS_BACK:                  //返回
            if(ReadText_RetToRead(pme))            //如果是阅读图书时的菜单,要返回图书显示界面
            {
                pme->m_enMenuType = MENU_Null;
                return TRUE;
            }
            pme->m_enMenuType = MENU_Null;
            if(Newsddt_ListBack(pme))              //返回上一级列表
            {
                return TRUE;
            }
            return FALSE;
        case IDS_RETTOMAIN:
            Newsddt_BackToMain(pme);
            return TRUE;
        default:
            break;
		}
		IMENUCTL_SetActive(pm, FALSE);
		if(pme->m_nIdx >= 0)
		{
            CtlAddItem  ai;
			IMENUCTL_GetItem(pme->m_pList[pme->m_nIdx], IMENUCTL_GetSel(pme->m_pList[pme->m_nIdx]), &ai);
			if((char*)ai.dwData)
			{
                ListData *pListData = (ListData*)ai.dwData;
                if(STRBEGINS("cmshop",(char*)pListData->szUrl))
                {
                    if(SUCCESS != ISHELL_BrowseURL(pme->a.m_pIShell, (char*)pListData->szUrl))
                        ShowErrMsg(pme, IDS_ERR_404, 0);
                    return TRUE;
                }
                if (ai.wFont==32)//跳转
                {
                    InputText_Init(pme);
                    Newsddt_JumpPage(pme,pListData->nCurPage,pListData->nPageCnt);
                    return TRUE;
                }
                if (STRLEN(pListData->szUrl)>0)
                {
                    MakeURL(pme, (char*)pListData->szUrl);
                    SendRequest(pme);
                    return TRUE;
                }
			}
			else
			{
				switch(wParam)
				{
                case IDS_READMENU_JUMPLINE:                     //快速跳行
                    InputText_Init(pme);
                    Newsddt_JumpLine(pme);
                    break;
                case IDS_READMENU_FULLSCR:                      //全屏阅读
                case IDS_READMENU_CANCELFULL:                   //取消全屏阅读
                    pme->m_bFullScr = pme->m_bFullScr?FALSE:TRUE;
                    ReadText_RetToRead(pme);
                    break;
                case IDS_READMENU_AUTOREAD:                     //自动阅读
                case IDS_READMENU_STOPAUTO:                     //关闭自动阅读
                    pme->m_bAutoRead = pme->m_bAutoRead?FALSE:TRUE;
                    ReadText_RetToRead(pme);
                    break;
                case IDS_READMENU_ADDFAV:                       //加入收藏
                    {
                        char*       pUrl = NULL;
                        AECHAR*     pText = NULL;
                        ListData    *pListData = NULL;
                        CtlAddItem  ai;
                        uint16      nIdx = pme->m_nIdx-1;

                        if (pme->m_pList[nIdx])
                        {
                            enAddDBrdErr enFavErr = ADDDBRD_Success;
                            IMENUCTL_GetItem(pme->m_pList[nIdx],IMENUCTL_GetSel(pme->m_pList[nIdx]),&ai);
                            pListData = (ListData*)ai.dwData;
                            if (pListData)
                            {
                                pUrl = pListData->szUrl;
                            }
                            pText = (AECHAR*)ai.pText;
                            CReadBox_SetActive(pme->m_pReadBox,FALSE);
                            enFavErr = MyFav_SaveFav(pme,pUrl,pText);
                            switch(enFavErr)
                            {
                            case ADDDBRD_Success:             //成功
                                ShowErrMsg(pme,IDS_ERR_SAVEOK,0);
                                return TRUE;
                            case ADDDBRD_Exist:               //已经存在
                                ShowErrMsg(pme,IDS_ERR_FAVEXIST,0);
                                return TRUE;
                            case ADDDBRD_Failed:              //失败
                            case ADDDBRD_NoSpace:             //已经存在
                            default:
                                ShowErrMsg(pme,IDS_ERR_ADDFAV_FAILED,0);
                                return TRUE;
                            }
                        }
                        break;
                    }
                case IDS_MENU_VIEWCOMMENT:                   //查看评论
                    {
                        char *pUrl = NULL;
                        uint8 nIdx = 0;

                        if (pme->m_nIdx-1>0)
                        {
                            nIdx = pme->m_nIdx-1;
                        }
                        else
                        {
                            nIdx = 1;
                        }
                        if (pme->m_pList[nIdx])
                        {
                            uint32      dwData = 0;
                            ListData    *pLd = NULL;
                            IMENUCTL_GetItemData(pme->m_pList[nIdx],IMENUCTL_GetSel(pme->m_pList[nIdx]),(uint32*)&dwData);//获取新闻ID
                            if ((ListData*)dwData)
                            {
                                pLd = (ListData*)dwData;
                                AddString(&pUrl,"%s%d%s","?cmd=4&id=",pLd->nNewsID,"&pageIndex=0");//连接字符串,获取评论ID
                                MakeURL(pme,pUrl);
                                SendRequest(pme);
                                FREEIF(pUrl);
                            }
                        }
                    }
                    return TRUE;
                case IDS_MENU_ADDCOMMENT:                    //我要发言
                    List_DeleteAll(pme,pme->m_nIdx);
                    //pme->m_nIdx++;
                    if (pme->m_pList[pme->m_nIdx])
                    {
                        IMENUCTL_SetTitle(pme->m_pList[pme->m_nIdx], NEWSDDT_RES_FILE, IDS_SELECT_ARGUMENT, NULL);
                        List_AddItem(pme->m_pList[pme->m_nIdx],IDS_GOOD,IDB_GOOD);
                        List_AddItem(pme->m_pList[pme->m_nIdx],IDS_BAD,IDB_BAD);
                        List_AddItem(pme->m_pList[pme->m_nIdx],IDS_FLOWER,IDB_FLOWER);
                        List_AddItem(pme->m_pList[pme->m_nIdx],IDS_SLEEPING,IDB_SLEEPING);
                        List_AddItem(pme->m_pList[pme->m_nIdx],IDS_BOMB,IDB_BOMB);
                        List_Show(pme);
                    }
                    return TRUE;
                case IDS_READMENU_DELFAV:                    //删除收藏
                    pme->m_bDelFav = TRUE;
                    ShowErrMsg(pme,IDS_ERR_DELCONFIRM,0);
                    return TRUE;
                case IDS_CUST_TEXT1:                         //新闻搜索中的定制"%s"
                    {
                        AECHAR *pText = InputText_GetText(pme);
                        if (pText&&WSTRLEN(pText)>0)
                        {
                            enAddDBrdErr enFavErr = Customise_AddRecord(pme,CUSTOMISE_NEWS,pText,NULL);
                            switch(enFavErr)
                            {
                            case ADDDBRD_Success:             //成功
                                ShowErrMsg(pme,IDS_ERR_CUSTOK,0);
                                break;
                            case ADDDBRD_Exist:               //已经存在
                                ShowErrMsg(pme,IDS_ERR_CUSTEXIST,0);
                                break;
                            case ADDDBRD_Failed:              //失败
                            case ADDDBRD_NoSpace:             //空间不足
                            default:
                                ShowErrMsg(pme,IDS_ERR_CUSTFAILED,0);
                                break;
                            }
                        }
                    }
                    return TRUE;
                case IDS_CUSTOMISE_NEWSTYPE:                    //定制栏目
                    {
                        AECHAR wszBigNews[5];
                        AECHAR *pText = NULL;
                        char* pUrl = NULL;

                        if (pme->m_nIdx == 2)     //如果当前列表为第二级,则定制头条新闻
                        {
                            char *pBigNews = NULL;

                            ISHELL_LoadResString(pme->a.m_pIShell,NEWSDDT_RES_FILE,IDS_BIGNEWS,wszBigNews,sizeof(wszBigNews)); //头条新闻
                            if (WSTRLEN(wszBigNews) == 0)
                                return FALSE;
                            pBigNews = WStrEncode(pme->a.m_pIShell,wszBigNews);
                            AddString(&pUrl,"%s%s","?cmd=2&category=1&title=",pBigNews);
                            pText = wszBigNews;
                            FREEIF(pBigNews);
                        }
                        else
                        {                         //否则,取第二级列表,定制之,然后返回阅读界面
                            if (pme->m_pList[1])
                            {
                                CtlAddItem ai = {0};
                                ListData *pLd = NULL;
                                IMENUCTL_GetItem(pme->m_pList[1],IMENUCTL_GetSel(pme->m_pList[1]),&ai);
                                if ((ListData*)ai.dwData)
                                {
                                    pLd = (ListData*)ai.dwData;
                                    pUrl = pLd->szUrl;
                                    pText = (AECHAR*)ai.pText;
                                }
                            }
                        }
                        {
                            enAddDBrdErr enFavErr = Customise_AddRecord(pme,CUSTOMISE_CHANNEL,pText,pUrl);
                            switch(enFavErr)
                            {
                            case ADDDBRD_Success:             //成功
                                ShowErrMsg(pme,IDS_ERR_CUSTOK,0);
                                break;
                            case ADDDBRD_Exist:               //已经存在
                                ShowErrMsg(pme,IDS_ERR_CUSTEXIST,0);
                                break;
                            case ADDDBRD_Failed:              //失败
                            case ADDDBRD_NoSpace:             //空间不足
                            default:
                                ShowErrMsg(pme,IDS_ERR_CUSTFAILED,0);
                                break;
                            }
                            if (pme->m_nIdx == 2)
                            {
                                FREEIF(pUrl);
                            }
                        }
                    }
                    return TRUE;
                case IDS_MENU_VANE:                             //风向标
                    MakeURL(pme,"?cmd=7");
                    SendRequest(pme);
                    return TRUE;
                case IDS_GOOD:
                case IDS_BAD:
                case IDS_FLOWER:
                case IDS_SLEEPING:
                case IDS_BOMB:
                    {
                        AEERect rc;
                        char *pUrl = NULL;
                        uint32 dwData = 0;
                        uint8 nIdx = 0;

                        switch(wParam)
                        {
                        case IDS_GOOD:
                            pme->m_nArguments = 31;
                            break;
                        case IDS_BAD:
                            pme->m_nArguments = 32;
                            break;
                        case IDS_FLOWER:
                            pme->m_nArguments = 33;
                            break;
                        case IDS_SLEEPING:
                            pme->m_nArguments = 34;
                            break;
                        case IDS_BOMB:
                            pme->m_nArguments = 35;
                            break;
                        }

                        pme->m_eInpType = INPUTTEXT_NULL;//去掉输入功能
                        if (pme->m_nIdx-2 > 0)
                        {
                            nIdx = pme->m_nIdx-1;
                        }
                        else
                        {
                            nIdx = 1;
                        }
                        if (pme->m_pList[nIdx])
                        {
                            IMENUCTL_GetItemData(pme->m_pList[nIdx],IMENUCTL_GetSel(pme->m_pList[nIdx]),(uint32*)&dwData);
                            if ((ListData*)dwData)
                            {
                                ListData *pLd = (ListData*)dwData;
                                AddString(&pUrl,"%s%d%s%d","?cmd=3&id=",pLd->nNewsID,"&NiceName=&Content=&Argument=",pme->m_nArguments);
                                MakeURL(pme,pUrl);
                                SendRequest(pme);
                                FREEIF(pUrl);
                            }
                        }
                        //IDISPLAY_ClearScreen(pme->a.m_pIDisplay);//去掉输入功能
                        //pme->m_eInpType = INPUTTEXT_COMMENT;
                        //InputText_Init(pme);
                        //pme->m_nTitleID = IDS_COMMENT_CONTENT;
                        ////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;
                default:
                    break;
				}
                return TRUE;
			}
		}
		return TRUE;
	default:
		break;
	}
    return IMENUCTL_HandleEvent(pm, eCode, wParam, dwParam);
}

⌨️ 快捷键说明

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