📄 newsddt.c
字号:
return TRUE;
case IDS_MENU_HELP: //帮助
pme->m_enCustState = CUST_STATE_ViewHelp;
pme->m_enMenuType = MENU_Null;
List_DeleteAll(pme,pme->m_nIdx);
pme->m_nIdx--;
ShowErrMsg(pme,IDS_HELP_CONTENT,0);
return TRUE;
default:
break;
}
}
}
break;
default:
break;
}
return FALSE;
}
//function:检查定制内容是否存在
boolean Customise_IsExist(Newsddt *pme,AECHAR *pName)
{
uint32 dwRdCnt = 0;
AECHAR * pDbName = NULL;
uint16 nCustType = NULL;
IDatabase * pDb = pme->m_pCustomiseDBFile;
IDBRecord * pDbRd = NULL;
char * pUrl = NULL;
if (!pDb || !pName)
return FALSE;
dwRdCnt = IDATABASE_GetRecordCount(pDb);
if (dwRdCnt == 0)
{
return FALSE;
}
IDATABASE_Reset(pDb);
while(NULL != (pDbRd = IDATABASE_GetNextRecord(pDb)))
{
Record_GetField(pDbRd,&nCustType,&pDbName,&pUrl,FALSE);
if (pDbName && WSTRLEN(pDbName)>0 && !WSTRCMP(pName,pDbName))
{
BREW_FREE(pDbRd);
return TRUE;
}
BREW_FREE(pDbRd);
}
return FALSE;
}
uint8 Customise_AddRecord(Newsddt *pme,uint16 nCustType, AECHAR *pText, char* pUrl)
{
IDBRecord* pDBRecord = NULL;
if (!pText||(pText&&WSTRLEN(pText)==0))
return ADDDBRD_Failed;
//判断是否存在
if(Customise_IsExist(pme,pText/*,nCustType*/))
return ADDDBRD_Exist;
CustRecord_Init(pme); //初始化本地存储的定制记录信息
pme->m_nCustType = nCustType; //定制种类
WSTRCPY(pme->m_wszCustName,pText); //定制内容名字
if (nCustType == CUSTOMISE_CHANNEL)
{
if(!pUrl||(pUrl&&STRLEN(pUrl)==0))
return ADDDBRD_Failed;
STRCAT(pme->m_szUrl, pUrl);
}
else
{
STRCAT(pme->m_szUrl,"none");
}
{ //判断剩余空间是否足够
uint32 dwSize = IFILEMGR_GetFreeSpace(pme->m_pFileMgr,NULL);
if(pme->m_pFileMgr &&FREESPACE_MINISIZE > dwSize)
return ADDDBRD_NoSpace;
}
//在数据库中添加数据
IDATABASE_Reset(pme->m_pCustomiseDBFile);
pDBRecord = IDATABASE_CreateRecord(pme->m_pCustomiseDBFile , pme->m_tagCustRecord , 3);
if (!pDBRecord)
return ADDDBRD_Failed;
BREW_FREE(pDBRecord);
return ADDDBRD_Success;
}
//////////////////////////////////////////////////////////////////////////
//退出应用
void ShowExitMsg(Newsddt * pme)
{
pme->m_bExitApp = TRUE;
if(pme->m_nIdx>=0) IMENUCTL_SetActive(pme->m_pList[pme->m_nIdx], FALSE);
//设置Softkey
Newsddt_SetSoftkey(pme);
if(PROMPTBOX_SetResText(pme->m_ppbMsg, IDS_EXIT_TITLE,IDS_EXIT_TEXT))
PROMPTBOX_SetActive(pme->m_ppbMsg, TRUE);
}
//////////////////////////////////////////////////////////////////////////
//帮助关于
void HelpAbout_ShowList(Newsddt *pme)
{
IMENUCTL_SetProperties(pme->m_pList[1], MP_UNDERLINE_TITLE);
IMENUCTL_SetTitle(pme->m_pList[1], NEWSDDT_RES_FILE, IDS_HELPABOUT, NULL);
List_AddItem(pme->m_pList[1],IDS_HELP_TITLE,IDB_NET_LIST);
List_AddItem(pme->m_pList[1],IDS_ABOUT_TITLE,IDB_NET_LIST);
List_AddItem(pme->m_pList[1],IDS_RETTOMAIN,IDB_RETTOMAIN); //返回主菜单
pme->m_nIdx = 1;
}
boolean HelpAbout_HandleEvent(Newsddt *pme, AEEEvent eCode, uint16 wParam, uint32 dwParam)
{
if (APP_STATE_HelpAbout != pme->m_eAppState)
return FALSE;
switch(eCode)
{
case EVT_COMMAND:
switch(wParam)
{
case IDS_HELP_TITLE: //在线帮助
MakeURL(pme, (char*)"?cmd=50");
SendRequest(pme);
if (pme->m_pList[pme->m_nIdx])
{
IMENUCTL_SetActive(pme->m_pList[pme->m_nIdx],FALSE);
}
return TRUE;
case IDS_ABOUT_TITLE: //关于我们
HelpAbout_ShowAbout(pme);
return TRUE;
default:
break;
}
break;
default:
break;
}
return FALSE;
}
void HelpAbout_ShowAbout(Newsddt * pme)
{
AECHAR szTitle[8]; //标题
AECHAR szVer[16]; //版本及点数
AECHAR szTmp[128];
AECHAR szText[128]; //内容
//标题
ISHELL_LoadResString(pme->a.m_pIShell, NEWSDDT_RES_FILE, IDS_ABOUT_TITLE, szTitle, sizeof(szTitle));
//内容
ISHELL_LoadResString(pme->a.m_pIShell, NEWSDDT_RES_FILE, IDS_ABOUT_TEXT, szTmp, sizeof(szTmp));
ISHELL_GetAppVersion(pme->a.m_pIShell, szVer, sizeof(szVer));
WSPRINTF(szText, sizeof(szText), szTmp, szVer);
PROMPTBOX_SetText(pme->m_ppbMsg, szTitle, szText);
PROMPTBOX_SetActive(pme->m_ppbMsg, TRUE);
//设置Softkey
Newsddt_SetSoftkey(pme);
PROMPTBOX_Redraw(pme->m_ppbMsg);
}
void ShowText(Newsddt * pme,char *pText,uint16 nTitle)
{
AECHAR wszTitle[10];
AECHAR *pHelpTxt = NULL;
if(pme->m_nIdx>=0)
IMENUCTL_SetActive(pme->m_pList[pme->m_nIdx], FALSE);
pHelpTxt = GetWSTR((const byte *)pText,pHelpTxt);
ISHELL_LoadResString(pme->a.m_pIShell,NEWSDDT_RES_FILE,nTitle,wszTitle,sizeof(wszTitle));
if(pHelpTxt && PROMPTBOX_SetText(pme->m_ppbMsg, wszTitle,pHelpTxt))
PROMPTBOX_SetActive(pme->m_ppbMsg, TRUE);
//设置Softkey
Newsddt_SetSoftkey(pme);
FREEIF(pHelpTxt);
}
/*-------------------------------------------------------------------
//阅读界面,在线阅读和本地阅读
-------------------------------------------------------------------*/
boolean ReadText_Init(Newsddt* pme)
{
//设置Softkey
if(pme->m_pSoftkey)
{
//设置Softkey
Newsddt_SetSoftkey(pme);
}
if(pme->m_pReadBox)
{
CReadBox_SetAutoRead(pme->m_pReadBox ,(pme->m_bAutoRead)?TRUE:FALSE);
}
return TRUE;
}
boolean ReadText_RetToRead(Newsddt* pme)
{
//如果是阅读图书时的菜单,要返回图书显示界面
if (MENU_Read == pme->m_enMenuType)
{
List_DeleteAll(pme, pme->m_nIdx);
pme->m_nIdx--;
pme->m_enMenuType = MENU_Null;
if (pme->m_bFullScr)
{
pme->m_ReadRect.dy = pme->m_nDevHeight;
pme->m_pReadBox->m_ncyPageLn = (uint16)(pme->m_nDevHeight - BAR_BOTTOM);
}
else
{
pme->m_ReadRect.dy = pme->m_nDevHeight-BAR_BOTTOM;
pme->m_pReadBox->m_ncyPageLn = (uint16)(pme->m_nDevHeight - 2*BAR_BOTTOM);
}
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;
}
return FALSE;
}
boolean ReadText_SetReadFile(Newsddt* pme,char *pFilepath,uint16 nLabel)
{
if (!pme->m_pReadBox)
{
return FALSE;
}
//设置阅读文件前要先清除前面打开的文件
CReadBox_ClsReadFile(pme->m_pReadBox);
//设置阅读文件
if(FALSE == CReadBox_SetReadFile(pme->m_pReadBox , pFilepath , nLabel , NULL))
{
//显示错误信息
ShowErrMsg(pme,IDS_ERR_OPENBK,0);//show message
return FALSE;
}
return TRUE;
}
void ReadText_Notify(Newsddt* pMe , byte nFlag , uint32 nMaxLine , uint32 nIndexLine)
{
pMe->m_nMaxIndex = nMaxLine;
pMe->m_nNowIndex = nIndexLine;
switch(nFlag)
{
case READRC_ERRAL_AERR: //错误
{
ActionStop(pMe);
switch(nMaxLine)
{
case READRC_CREAT_IDER: //创建索引失败
case READRC_FIMAP_IERR:
case READRC_PAGEG_IERR:
CReadBox_SetActive(pMe->m_pReadBox,FALSE);
ShowErrMsg(pMe,IDS_ERR_CRIDX,0);
break;
}
}
break;
case READRC_STATE_OPEN:
{
CReadBox_SetActive(pMe->m_pReadBox , TRUE);
StartAction(pMe);
}
break;
case READRC_CREAT_INDX: //建立索引过程
{
pMe->m_nOpenIndex = (byte)nMaxLine;
}
break;
case READRC_CREAT_IDXB: //退出索引建立
{
ActionStop(pMe);
List_Show(pMe);
}
break;
case READRC_STATE_STOK: //正常回调
{
ActionStop(pMe);
CReadBox_SetActive(pMe->m_pReadBox,TRUE); //设置激活状态
ReadText_Init(pMe);
break;
}
break;
}
}
boolean ReadText_HandleEvent(Newsddt* pMe , AEEEvent eCode , uint16 wParam , uint32 dwParam)
{
if (!pMe->m_pReadBox ||(pMe->m_pReadBox && !CReadBox_IsActive(pMe->m_pReadBox)))
{
return FALSE;
}
if (wParam>AVK_0 && wParam<AVK_POUND)
{
return FALSE;
}
if(pMe->m_pReadBox && CReadBox_HandleEvent(pMe->m_pReadBox , eCode , wParam , dwParam))
return TRUE;
switch(eCode)
{
case EVT_KEY:
switch(wParam)
{
case AVK_SOFT2:
case AVK_CLR:
CReadBox_SetActive(pMe->m_pReadBox,FALSE);
CReadBox_ClsReadFile(pMe->m_pReadBox);
FREEIF(pMe->m_pWebBody);
List_Show(pMe);
return TRUE;
break;
case AVK_SOFT1:
case AVK_SELECT:
CReadBox_SetActive(pMe->m_pReadBox , FALSE);
if(Newsddt_ShowMenu(pMe,MENU_Read)) //显示阅读菜单
return TRUE;
else
break;
}
}
return FALSE;
}
//////////////////////////////////////////////////////////////////////////
//系统处理动画公用滚动条
void StartAction(Newsddt* pMe)
{
pMe->m_bIsPlay = TRUE;
pMe->m_nOpenIndex = 0;
ActionDraw(pMe);
}
void ActionDraw(Newsddt* pMe)
{
if(FALSE == pMe->m_bIsPlay)
return;
switch(pMe->m_pReadBox->m_eState)
{
case READBOX_STATE_CRIN:
{
AEERect tagRect;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -