📄 newsddt.h
字号:
//////////////////////////////////////////////////////////////////////////
//菜单相关
enMenuType m_enMenuType;
//////////////////////////////////////////////////////////////////////////
//主菜单
IImage * m_pMainMenu; //主菜单图片
IImage * m_pMainTxt; //主菜单文字
enMainMenuItem m_enCurMainItem; //主菜单当前焦点所在
//////////////////////////////////////////////////////////////////////////
//网络
IWeb * m_pIWeb;
IWebUtil * m_pIWebUtil;
IWebResp * m_pIWebResp;
AEECallback m_cbWebResp;
void * m_pWebBody;
AEECallback m_cbWebBody;
uint32 m_dwRecvSize;
char * m_pszParam; //上一次请求的url参数
char m_pszURL[WEB_URL_MAXLENGTH]; //连接时请求的URL
char * m_pszLocation; //当前的
char * m_pszContentType; //当前的Notify
uint32 m_dwContentSize; //header中表明的内容长度
WebStatus m_ws; //网络链接状态
//////////////////////////////////////////////////////////////////////////
//文字
AECHAR m_wszCon[8];
AECHAR m_wszSend[8];
AECHAR m_wszRecv[8];
AECHAR m_szReadOpen[15]; //正在建立行索引
AECHAR m_wszLineCnt[7]; //请输入行数:
AECHAR m_wszCurCnt[8]; //当前行数:
AECHAR m_wszAllCnt[7]; //总行数:
AECHAR m_wszPageCnt[7]; //请输入页数:
AECHAR m_wszALLPgCnt[7]; //总页数:
AECHAR m_wszCurPage[8]; //当前页数:
AECHAR m_wszCustTxt[12]; //与...相关的新闻
AECHAR m_wszCustTxt1[7]; //定制“”
//////////////////////////////////////////////////////////////////////////
//消息框
PromptBox * m_ppbMsg; //在线强制消息及文本
//////////////////////////////////////////////////////////////////////////
//其它
IFileMgr * m_pFileMgr;
//////////////////////////////////////////////////////////////////////////
//阅读相关信息
CReadBox* m_pReadBox; //阅读文本
char* m_pszTmName; //临时文件名称
AEERect m_ReadRect; //文本阅读范围
byte m_nOpenIndex; //0---100
uint32 m_nMaxIndex; //图书最大行数
uint32 m_nNowIndex; //当前行
enAutoRead m_enAutoType; //自动阅读种类
enReadType m_enReadType; //阅读种别
Info m_tagRDInf; //属性结构体
//////////////////////////////////////////////////////////////////////////
//Softkey提示框
CSOFTKEY* m_pSoftkey; //Softkey结构体
EnSoftkeyType m_enSoftkeyType; //Softkey种别
//////////////////////////////////////////////////////////////////////////
//输入框和快速跳行功能相关
ITextCtl* m_pInputText; //输入框接口
AEETextInputMode m_nCurInpMode; //当前输入法
uint16 m_nTitleID; //输入框标题
char m_szCommentTxt[11]; //评论内容
//////////////////////////////////////////////////////////////////////////
//数据库相关
//我的收藏
IDatabase* m_pMyfavDBFile;
AECHAR m_wszNewsName[TITLE_MAX]; //新闻标题
char m_szUrl[WEB_URL_MAXLENGTH]; //新闻链接URL
AEEDBField m_tagFavRecord[2]; //数据库记录
//用户定制
IDatabase* m_pCustomiseDBFile;
uint16 m_nCustType; //定制种类
AECHAR m_wszCustName[CUSTMISE_NAME_MAX]; //定制内容名字
AEEDBField m_tagCustRecord[3]; //数据库记录
//////////////////////////////////////////////////////////////////////////
//精彩推荐相关
int m_nDataType; //精彩推荐后台传来的数据类型
//////////////////////////////////////////////////////////////////////////
//各种标记
boolean m_bBackLit; //背景灯限制
boolean m_bFullScr; //是否为全屏阅读
boolean m_bDelFav; //是否要删除收藏文件?
boolean m_bDelCust; //是否要删除定制信息?
boolean m_bAutoRead; //是否为自动阅读
boolean m_bIsPlay; //连接动画
boolean m_bWeb; //当前是否正在网络连接
boolean m_bFlashSCreen; //是否处于闪屏
boolean m_bExitApp; //是否退出应用
boolean m_bNewsComment; //新闻评论内容
//boolean m_bAddCust; //添加定制信息
//////////////////////////////////////////////////////////////////////////
//用户定制相关
uint16 m_nArguments; //观点
enCustState m_enCustState; //用户定制子状态
}Newsddt;
/*===============================================================================
函数声明
=============================================================================== */
static boolean Newsddt_HandleEvent(Newsddt* pme, AEEEvent eCode, uint16 wParam, uint32 dwParam);
boolean Newsddt_InitAppData(Newsddt* pme);
void Newsddt_FreeAppData(Newsddt* pme);
boolean Newsddt_InitList(Newsddt* pme,AEEDeviceInfo di); //初始化列表菜单
boolean Newsddt_InitReadBox(Newsddt* pme); //初始化图书相关信息
boolean Newsddt_InitSoftkey(Newsddt* pme); //初始化Softkey
void Newsddt_SetSoftkey(Newsddt* pme); //设置Softkey
//void Newsddt_SetBkLight(Newsddt* pme); //设置背景光
boolean Newsddt_ListBack(Newsddt* pme); //返回上一级列表
void Newsddt_BackToMain(Newsddt* pme); //返回主菜单
void Newsddt_JumpLine(Newsddt* pme); //快速跳行
void Newsddt_JumpPage(Newsddt* pme,uint16 nPageCur,uint16 nPageCnt); //列表跳转
boolean Newsddt_ShowMenu(Newsddt* pme,enMenuType eMType);
//////////////////////////////////////////////////////////////////////////
//主菜单相关
void MainMenu_Show(Newsddt* pme); //显示主菜单
boolean MainMenu_HandleEvent(Newsddt* pme,AEEEvent eCode,uint16 wParam,uint32 dwParam);
//////////////////////////////////////////////////////////////////////////
//热点头条
void BigNews_Init(Newsddt* pme);
//////////////////////////////////////////////////////////////////////////
//用户定制
void Customise_ShowList(Newsddt *pme);
uint8 Customise_AddRecord(Newsddt *pme,uint16 nCustType, AECHAR *pText, char* pUrl);
boolean Customise_IsExist(Newsddt *pme,AECHAR *pName);
boolean Customise_HandleEvent(Newsddt* pme,AEEEvent eCode,uint16 wParam,uint32 dwParam);
//////////////////////////////////////////////////////////////////////////
//我的收藏
boolean MyFav_InitList(Newsddt* pme);
uint8 MyFav_SaveFav(Newsddt* pme,char* pUrl, AECHAR* pText); //加入收藏
boolean MyFav_AddList(Newsddt* pme);
void MyFav_ShowList(Newsddt* pme);
boolean MyFav_HandleEvent(Newsddt* pme, AEEEvent eCode, uint16 wParam, uint32 dwParam);
boolean MyFav_IsExist(Newsddt* pme,char* pUrl);
//////////////////////////////////////////////////////////////////////////
//新闻搜索
void NewsSearch_Init(Newsddt* pme);
//////////////////////////////////////////////////////////////////////////
//用户设置
boolean UserSetting_ShowList(Newsddt * pme); //显示用户设置列表
void UserSetting_AutoReadSetting(Newsddt* pme); //显示自动阅读设置菜单
void UserSetting_ReadSpeedSetting(Newsddt* pme); //自动阅读速度设置菜单
void UserSetting_BackLight(Newsddt *pme); //背景光设置菜单
boolean UserSetting_SetInfo(Newsddt* pMe); //保存配置信息
boolean UserSetting_HandleEvent(Newsddt* pme,AEEEvent eCode,uint16 wParam,uint32 dwParam);
//////////////////////////////////////////////////////////////////////////
//帮助关于
void HelpAbout_ShowList(Newsddt *pme);
boolean HelpAbout_HandleEvent(Newsddt *pme, AEEEvent eCode, uint16 wParam, uint32 dwParam);
void HelpAbout_ShowAbout(Newsddt * pme);
//////////////////////////////////////////////////////////////////////////
//退出应用
void ShowExitMsg(Newsddt * pme);
//////////////////////////////////////////////////////////////////////////
//列表控制
boolean List_Save(Newsddt * pme,enListType enLt);
boolean List_AddItem(IMenuCtl * pMenu, uint16 wText, uint16 wImage);
boolean List_HandleEvent(Newsddt* pme, AEEEvent eCode, uint16 wParam, uint32 dwParam);
void List_Show(Newsddt *pme);
void List_DeleteAll(Newsddt *pme, uint8 nIdx);
//////////////////////////////////////////////////////////////////////////
//消息框
void ShowErrMsg(Newsddt * pme, uint16 wTextID, int nErrCode);
void ShowText(Newsddt * pme,char *pText,uint16 nTitle);
//////////////////////////////////////////////////////////////////////////
//网络
boolean Net_Init(Newsddt * pme);
void Net_Free(Newsddt * pme);
void Net_Stop(Newsddt * pme);
void Net_Login(Newsddt * pme);
boolean MakeURL(Newsddt * pme, const char * cpszParam);
boolean SendRequest(Newsddt * pme); //发送请求URL
void GotHeader(void *p, const char *cpszName, GetLine *pglVal); //Header的回调函数
void GotStatus(void *p, WebStatus ws, void *pVal); //Status的回调函数
void DrawStatus(Newsddt * pme);
void GotResponse(void *p); //Body的回调函数
void RecvWebBody(void *p);
void AnalyzeResponse(Newsddt * pme);
void ReadyDownload(Newsddt * pme);
void Net_Timeout(Newsddt * pme);
boolean ShowSplashScreen(Newsddt * pme);
//////////////////////////////////////////////////////////////////////////
//阅读截面,在线阅读和本地阅读◎已经检查,但ReadBox最好从行检测
void ReadText_Notify(Newsddt* pMe , byte nFlag , uint32 nMaxLine , uint32 nIndexLine);//用来回调的函数
boolean ReadText_Init(Newsddt* pMe);
boolean ReadText_HandleEvent(Newsddt* pMe , AEEEvent eCode , uint16 wParam , uint32 dwParam);
boolean ReadText_RetToRead(Newsddt* pme); //返回到阅读界面
boolean ReadText_SetReadFile(Newsddt* pme,char *pFilepath,uint16 nLabel);
//////////////////////////////////////////////////////////////////////////
//系统处理动画公用滚动条
void StartAction(Newsddt* pMe);
void ActionDraw(Newsddt* pMe);
void ActionStop(Newsddt* pMe);
//////////////////////////////////////////////////////////////////////////
//输入框相关函数
boolean InputText_Init(Newsddt *pMe);
void InputText_SetInpBox(Newsddt *pMe,AEETextInputMode InpMode,uint16 nMaxInp);
void InputText_Redraw(Newsddt *pMe);
boolean InputText_HandleEvent(Newsddt *pMe,AEEEvent eCode,uint16 wParam,uint32 dwParam);
void InputText_Release(Newsddt *pMe);
void InputText_SetActive(Newsddt *pMe,boolean bActive);
boolean InputText_IsActive(Newsddt *pMe);
AECHAR* InputText_GetText(Newsddt *pme);
void InputText_SetRect(Newsddt *pme,AEERect *prc);
void InputText_SetText(Newsddt *pme,AECHAR *pText);
void InputText_ShowInpMode(Newsddt *pme);
//////////////////////////////////////////////////////////////////////////
//数据库相关函数
void FavRecord_Init(Newsddt* pMe);
void CustRecord_Init(Newsddt* pMe);
boolean Record_GetField(IDBRecord* pDBRecord , uint16* pnCustType , AECHAR** ppwszText , char** ppszText,boolean bMyFav);
boolean Record_GetData(Newsddt* pMe, uint16 nID,boolean bMyFav);
boolean Record_DelRd(Newsddt* pme,boolean bMyFav);
//////////////////////////////////////////////////////////////////////////
//辅助函数
char * GetPartString(const char * pszString, char c, int nSect);
boolean AddString(char ** ppszPage, const char *pszFmt, ...);
char* GetWStrInI(uint16 i);
AECHAR* GetWSTR(const byte * pSrc, AECHAR * pDest);
char * AECHARTOCHAR(AECHAR * pSrc);
void DrawText(IDisplay* pDisplay , AECHAR* pRes ,int x , int y , AEERect* pRect ,uint32 nFlag , RGBVAL rgbcolor);
char * DecodeU8(IShell *pIShell, char *szKeyWord);
char * WStrEncode(IShell * pIShell,AECHAR * pszText);
char * U8Encode(IShell * pIShell,void * szKeyWord);//IWebUtil * pIWebUtil
void DrawFrame(Newsddt *pme,IImage *pImage,int16 x, int16 y,uint16 nFrameCnt ,uint16 nFrame); //nFrame从0开始//画图
void HP_FreeIF(IBase ** ppif);
IBitmap* GetBmpFromImage(IDisplay* pIDisplay,IImage* pImage);
//文件操作相关函数
int SaveBufToFile(IFileMgr * pFileMgr, char * pszFile, AECHAR * pBuffer, uint32 dwSize, AECHAR* szDescription,AECHAR* szBkDesc);
boolean DelFile(IFileMgr * fileMgr,const char *pszFileName);
void DelTemp(Newsddt* pMe); //清除临时文件名字和临时文件
void SavTemp(Newsddt* pMe); //到此处说明这个文件为一个临时文件
boolean SaveInf(Newsddt* pMe); //设置页面&保存配置文件
boolean LoadInfo(Newsddt* pMe); //读取配置信息
AECHAR* GetDesc(Newsddt* pme,char* pname);//获取描述信息
#endif //_Newsddt_H_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -