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

📄 newsddt.h

📁 这一款新闻类业务的源码
💻 H
📖 第 1 页 / 共 2 页
字号:

    //////////////////////////////////////////////////////////////////////////
    //菜单相关
    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 + -