📄 list.c
字号:
#include "newsddt.h"
boolean List_Save(Newsddt * pme,enListType enLt)
{
int j = 0;
char * p1 = NULL;
ListData * pListData = NULL;
CtlAddItem ai = {0};
AECHAR wsz[128] = {0};
IMenuCtl *pm = NULL;
if (pme->m_nIdx == 0)
{
List_DeleteAll(pme,1);
}
pm = pme->m_pList[pme->m_nIdx];
IMENUCTL_GetItem(pm,IMENUCTL_GetSel(pm),&ai);
switch(ai.wFont)
{
case 30: //上一页
case 31: //下一页
case 32: //跳转
//if (MENU_Read != pme->m_enMenuType)
//{
List_DeleteAll(pme,pme->m_nIdx);
pme->m_nIdx--;
//}
break;
default:
break;
}
pme->m_nIdx++;
pm = pme->m_pList[pme->m_nIdx];
if (!pm)
{
return FALSE;
}
p1 = GetPartString((char *)pme->m_pWebBody, '@', 0);
//标题
if(NULL!=p1 && STRLEN(p1)>0)
{
GetWSTR((const byte *)p1, wsz);
IMENUCTL_SetTitle(pm, NULL, 0, wsz);
if (LIST_SearchRes == enLt &&
(APP_STATE_SearchNews == pme->m_eAppState|| //新闻搜索
APP_STATE_HotSearch == pme->m_eAppState)) //热点搜索
{
CtlAddItem ai;
AECHAR* pwTmText = NULL;
char* pTmText = NULL;
char* pTmCustTxt1 = AECHARTOCHAR(pme->m_wszCustTxt1);
InputText_SetText(pme,(AECHAR*)wsz);
AddString(&pTmText,pTmCustTxt1,p1);
pwTmText = GetWSTR((const byte*)pTmText,pwTmText);
ai.pText = pwTmText;
ai.pImage = NULL;
ai.pszResImage = NEWSDDT_RES_FILE;
ai.pszResText = NEWSDDT_RES_FILE;
ai.wText = 0;
ai.wImage = IDB_LABEL;
ai.wItemID = IDS_CUST_TEXT1;
ai.dwData = NULL;
IMENUCTL_AddItemEx(pm, &ai);
FREEIF(pTmCustTxt1);
FREEIF(pTmText);
FREEIF(pwTmText);
}
}
FREEIF(p1);
p1 = GetPartString((char *)pme->m_pWebBody, '@', 1);
//列表
if(NULL!=p1 && STRLEN(p1)>0)
{
uint16 nI = 0;
char *p12 = GetPartString(p1,'|',nI);
j++;
while (NULL!=p12 && STRLEN(p12)>0)
{
char *p121 = NULL;
pListData = (ListData*)MALLOC(sizeof(ListData));
if (!pListData)
{
return FALSE;
}
pListData->nCurPage = 0;
pListData->nPageCnt = 0;
pListData->nNewsID = 0;
ZEROAT(pListData->szUrl);
p121 = GetPartString(p12,'$',2);
if (NULL!=p121 && STRLEN(p121)>0)
{
if (STRCHR(p121,'#'))
{
char *p1211 = GetPartString(p121,'#',0);
char *p1212 = GetPartString(p121,'#',1);
if (p1211 && STRLEN(p1211)>0)
{
ai.wFont = ATOI(p1211);
}
if (p1212 && STRLEN(p1212)>0)
{
if (1 == ATOI(p1212))
{
ai.wImage = IDB_TEXT;
}
else if (34 == ATOI(p1212))
{
ai.wImage = IDB_SLEEPING;
}
else if (31 == ATOI(p1212))
{
ai.wImage = IDB_GOOD;
}
else if (32 == ATOI(p1212))
{
ai.wImage = IDB_BAD;
}
else if (33 == ATOI(p1212))
{
ai.wImage = IDB_FLOWER;
}
else if (35 == ATOI(p1212))
{
ai.wImage = IDB_BOMB;
}
else
{
ai.wImage = IDB_NET_LIST;
}
}
else
{
ai.wImage = IDB_NET_LIST;
}
FREEIF(p1211);
FREEIF(p1212);
}
else
{
ai.wFont = ATOI(p121);
ai.wImage = IDB_NET_LIST;
}
}
FREEIF(p121);
p121 = GetPartString(p12,'$',4);
if (NULL!=p121 && STRLEN(p121)>0)
{
pListData->nNewsID = ATOI(p121);
}
FREEIF(p121);
p121 = GetPartString(p12,'$',1);
if (NULL!=p121 && STRLEN(p121)>0)
{
char *p1211 = GetPartString(p121,'#',0);
if (NULL!=p1211 && STRLEN(p1211)>0)
{
STRCPY(pListData->szUrl,p1211);
ai.dwData = (uint32)pListData;
}
FREEIF(p1211);
p1211 = GetPartString(p121,'#',1);
if (NULL!=p1211 && STRLEN(p1211)>0)
{
char *pU8 = (char*)DecodeU8(pme->a.m_pIShell,p1211);
GetWSTR((const byte *)pU8, wsz);
FREEIF(pU8);
ai.pText = wsz;
}
FREEIF(p1211);
}
FREEIF(p121);
if (ai.pText)
{
ai.wItemID = j;
ai.pszResImage = NEWSDDT_RES_FILE;
ai.pImage = NULL;
ai.pszResText = NULL;
ai.wFont = 0;
if(FALSE == IMENUCTL_AddItemEx(pm, &ai))
FREEIF(pListData);
j++;
}
else
FREEIF(pListData);
FREEIF(p12);
pListData = NULL;
nI++;
p12 = GetPartString(p1,'|',nI);
}
FREEIF(p12);
}
FREEIF(p1);
p1 = GetPartString((char *)pme->m_pWebBody, '@', 2);
//上一页下一页
if(NULL!=p1 && STRLEN(p1)>0)
{
//上一页
char *p13 = GetPartString(p1,'#',0);
if(NULL!=p13 && STRLEN(p13)>0 && 0!=STRCMP("none",p13))
{
pListData = (ListData*)MALLOC(sizeof(ListData));
if (!pListData)
{
return FALSE;
}
pListData->nCurPage = 0;
pListData->nPageCnt = 0;
pListData->nNewsID = 0;
ZEROAT(pListData->szUrl);
STRCPY(pListData->szUrl,p13);
ai.dwData = (uint32)pListData;
ai.wFont = 30;
ai.wImage = IDB_PRIOR;
ai.wText = IDS_PREVIOUS;
ai.pszResImage = NEWSDDT_RES_FILE;
ai.pszResText = NEWSDDT_RES_FILE;
ai.pText = NULL;
ai.pImage = NULL;
ai.wItemID = j++;
IMENUCTL_AddItemEx(pm,&ai);
}
FREEIF(p13);
pListData = NULL;
//下一页
p13 = GetPartString(p1, '#', 1);
if(NULL!=p13 && STRLEN(p13)>0 && 0!=STRCMP("none",p13))
{
pListData = (ListData*)MALLOC(sizeof(ListData));
if (!pListData)
{
return FALSE;
}
pListData->nCurPage = 0;
pListData->nPageCnt = 0;
pListData->nNewsID = 0;
ZEROAT(pListData->szUrl);
STRCPY(pListData->szUrl,p13);
ai.dwData = (uint32)pListData;
ai.wFont = 31;
ai.wImage = IDB_NEXT;
ai.wText = IDS_NEXT;
ai.pszResImage = NEWSDDT_RES_FILE;
ai.pszResText = NEWSDDT_RES_FILE;
ai.pText = NULL;
ai.pImage = NULL;
ai.wItemID = j++;
IMENUCTL_AddItemEx(pm,&ai);
}
FREEIF(p13);
pListData = NULL;
}
FREEIF(p1);
//FixedBy(menglingfang)20071219bug No.24380
if (APP_STATE_HotSearch == pme->m_eAppState && LIST_HotSearch == enLt)
{
List_AddItem(pm,IDS_MENU_VANE,IDB_NET_LIST); //风向标
}
//跳转
p1 = GetPartString((char *)pme->m_pWebBody, '@', 3);
if(p1 && STRLEN(p1)>0)
{
char *p14 = NULL;
pListData = (ListData*)MALLOC(sizeof(ListData));
if (!pListData)
{
goto OUTME;
}
p14 = GetPartString(p1, '$', 0);
if (p14&&STRLEN(p14)>0)
{
pListData->nCurPage = ATOI(p14);
}
FREEIF(p14);
p14 = GetPartString(p1, '$', 1);
if (p14&&STRLEN(p14)>0)
{
pListData->nPageCnt = ATOI(p14);
if (pListData->nPageCnt<2)
{
pListData->nCurPage = 0;
FREEIF(p14);
FREEIF(pListData);
goto OUTME;
}
}
FREEIF(p14);
pListData->nNewsID = 0;
ZEROAT(pListData->szUrl);
p14 = GetPartString(p1, '$', 2);
if (p14&&STRLEN(p14)>0)
{
STRCPY(pListData->szUrl,(char*)p14);
}
FREEIF(p14);
ai.dwData = (uint32)pListData;
ai.wFont = 32;
ai.wImage = IDB_JUMP;
ai.wText = IDS_JUMPPAGE;
ai.pszResImage = NEWSDDT_RES_FILE;
ai.pszResText = NEWSDDT_RES_FILE;
ai.pText = NULL;
ai.pImage = NULL;
ai.wItemID = j++;
IMENUCTL_AddItemEx(pm,&ai);
}
OUTME:
pListData = NULL;
FREEIF(p1);
//新列表为空,释放
if(IMENUCTL_GetItemCount(pm) < 1)
{
ShowErrMsg(pme, IDS_ERR_RESPNULL,0);
List_DeleteAll(pme,pme->m_nIdx);
pme->m_nIdx--;
return FALSE;
}
if(pme->m_enCustState!=CUST_STATE_AddChannel)
{
List_AddItem(pme->m_pList[pme->m_nIdx],IDS_BACK,IDB_RETURN); //返回
List_AddItem(pme->m_pList[pme->m_nIdx],IDS_RETTOMAIN,IDB_RETTOMAIN); //返回主菜单
}
if (LIST_SearchRes == enLt &&
(APP_STATE_SearchNews == pme->m_eAppState|| //新闻搜索
APP_STATE_HotSearch == pme->m_eAppState)) //热点搜索
{
IMENUCTL_SetFocus(pm,IMENUCTL_GetItemID(pm,1));
}
return TRUE;
}
void List_Show(Newsddt *pme)
{
if (!pme)
return;
pme->m_bFlashSCreen = FALSE;
if(pme->m_bWeb)
Net_Stop(pme);
if(pme->m_nIdx>0 && pme->m_nIdx<MAX_LIST)
IMENUCTL_SetActive(pme->m_pList[pme->m_nIdx-1], FALSE);
IMENUCTL_SetActive(pme->m_pList[pme->m_nIdx], TRUE);
IMENUCTL_Redraw(pme->m_pList[pme->m_nIdx]);
//设置Softkey
Newsddt_SetSoftkey(pme);
}
void List_DeleteAll(Newsddt* pme, uint8 nIdx)
{
int nCnt,i;
ListData *pListData = NULL;
uint32 dwData = 0;
if(pme->m_pList[nIdx] == NULL)
return;
nCnt = IMENUCTL_GetItemCount(pme->m_pList[nIdx]);
for(i=0;i<nCnt;i++)
{
IMENUCTL_GetItemData(pme->m_pList[nIdx], IMENUCTL_GetItemID(pme->m_pList[nIdx], i), (uint32 *)&dwData);
pListData = (ListData*)dwData;
FREEIF(dwData);
}
IMENUCTL_Reset(pme->m_pList[nIdx]);
}
boolean List_AddItem(IMenuCtl * pMenu, uint16 wText, uint16 wImage)
{
CtlAddItem ai;
ai.pText = NULL;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -