📄 common.c
字号:
#include "vacation.h"
//------------------------------------------------------------------
boolean OnAppStart(CTheApp* pApp,AEEEvent eCode,uint16 wParam,uint32 dwParam)
{
char Request[200]={0};
char Req[200]={0};
if(CheckFreeSpace(pApp)<1024)
{
pApp->err=ERR_SPACE_NOT_ENOUGH;
ShowMSG(pApp,0,pApp->cyScreen-pApp->nNormalFontHeight,IDS_SPACENOTENOUGH);
return TRUE;
}
PlayMusic(pApp);
OpenDatabase(pApp);
GetPhoneNumber(pApp);//pApp->chPhoneNumber
IDISPLAY_ClearScreen(pApp->a.m_pIDisplay);
IDISPLAY_Update(pApp->a.m_pIDisplay);
DispHeader(pApp);
DispBackground(pApp);
IDISPLAY_ClearScreen(pApp->a.m_pIDisplay);
/*
* FF21E5 TEXT :10225E
*/
IDISPLAY_SetColor(pApp->a.m_pIDisplay,CLR_USER_TEXT,TEXTCOLOR);
IDISPLAY_SetColor(pApp->a.m_pIDisplay,CLR_USER_BACKGROUND,BACKCOLOR);
DispBootAnim(pApp);//boot animination
SPRINTF(Req,URL);
STRCAT(Req,"idView=100");//100主菜单view
STRCAT(Req,"&idCity=0000");//默认城市北京
STRCAT(Req,"&HandsetType=");
STRCAT(Req,HANDSETTYPE);// handset type
STRCAT(Req,"&PhoneNumber=");
STRCAT(Req,pApp->chPhoneNumber);//mobile number
SPRINTF(Request,"GET %s HTTP/1.0\r\n\r\n",Req);
SPRINTF(pApp->pszSendData,Request);
StartSocket(pApp);
return TRUE;
}
//--------------------------------------------------------------------
boolean OnAppStop(CTheApp* pApp,AEEEvent eCode,uint16 wParam,uint32 dwParam)
{
return TRUE;
}
//--------------------------------------------------------------------
boolean OnCtlTab(CTheApp* pApp,AEEEvent eCode,uint16 wParam,uint32 dwParam)
{
return TRUE;
}
///////////////////////////////////////////////////////////////////////
boolean OnAppSuspend(CTheApp* pApp,AEEEvent eCode,uint16 wParam,uint32 dwParam)
{
if(pApp->vtCurrent==INIT_VIEW)
{
CleanSocket(pApp);
if(pApp->pIImage)
{
IIMAGE_Stop(pApp->pIImage);
IIMAGE_Release(pApp->pIImage);
pApp->pIImage=NULL;
}
if(pApp->pszReceiveData)
{
FREE(pApp->pszReceiveData);
pApp->pszReceiveData=NULL;
}
return TRUE;
}
if(pApp->vtCurrent==MAINMENU_VIEW)
{
if(pApp->bIsConnecting)
{
//!!2004-02-17
pApp->bIsConnecting=FALSE;
//!!2004-02-17
CleanSocket(pApp);
if(pApp->pIImage)
{
IIMAGE_Stop(pApp->pIImage);
IIMAGE_Release(pApp->pIImage);
pApp->pIImage=NULL;
}
if(pApp->pszReceiveData)
{
FREE(pApp->pszReceiveData);
pApp->pszReceiveData=NULL;
}
}
return TRUE;
}
if(pApp->vtCurrent==SUBMENU_VIEW)
{
if(pApp->bIsConnecting)
{
//!!2004-02-17
pApp->bIsConnecting=FALSE;
//!!2004-02-17
CleanSocket(pApp);
if(pApp->pIImage)
{
IIMAGE_Stop(pApp->pIImage);
IIMAGE_Release(pApp->pIImage);
pApp->pIImage=NULL;
}
if(pApp->pszReceiveData)
{
FREE(pApp->pszReceiveData);
pApp->pszReceiveData=NULL;
}
}
return TRUE;
}
if(pApp->vtCurrent==CONTENT_VIEW)
{
//!!下一篇时会连接 2004-02-18
if(pApp->bIsConnecting)
{
//!!2004-02-17
//pApp->bIsConnecting=FALSE;
//!!2004-02-17
CleanSocket(pApp);
if(pApp->pIImage)
{
IIMAGE_Stop(pApp->pIImage);
IIMAGE_Release(pApp->pIImage);
pApp->pIImage=NULL;
}
if(pApp->pszReceiveData)
{
FREE(pApp->pszReceiveData);
pApp->pszReceiveData=NULL;
}
}
return TRUE;
}
if(pApp->vtCurrent==FAVSUBMENU_VIEW)
{
if(pApp->bIsConnecting)
{
//!!2004-02-17
pApp->bIsConnecting=FALSE;
//!!2004-02-17
CleanSocket(pApp);
if(pApp->pIImage)
{
IIMAGE_Stop(pApp->pIImage);
IIMAGE_Release(pApp->pIImage);
pApp->pIImage=NULL;
}
if(pApp->pszReceiveData)
{
FREE(pApp->pszReceiveData);
pApp->pszReceiveData=NULL;
}
}
return TRUE;
}
if(pApp->vtCurrent==FAVCONTENT_VIEW)
{
return TRUE;
}
return TRUE;
}
/////////////////////////////////////////////////////////////////////////////
boolean OnAppResume(CTheApp* pApp,AEEEvent eCode,uint16 wParam,uint32 dwParam)
{
AEERect rc;
rc.x=0;
rc.y=pApp->cyScreen-pApp->nNormalFontHeight;
rc.dx=pApp->cxScreen;
rc.dy=pApp->nNormalFontHeight;
if(pApp->vtCurrent==INIT_VIEW)
{
//ISHELL_SendEvent(pApp->a.m_pIShell,AEECLSID_GF,EVT_APP_START,0,0);
ReStart(pApp);
return TRUE;
}
if(pApp->vtCurrent==MAINMENU_VIEW)
{
DispBackground(pApp);
IMENUCTL_Redraw(pApp->pIMenuCtl);
//modify 2005-02-17{
//IMENUCTL_SetActive(pApp->pIMenuCtl,TRUE);
//modify 2005-02-17}
IDISPLAY_DrawText(pApp->a.m_pIDisplay,AEE_FONT_NORMAL,pApp->unicCityName,-1,
20,pApp->cyScreen-pApp->nNormalFontHeight,&rc,IDF_ALIGN_CENTER|IDF_RECT_FRAME|IDF_RECT_FILL);
return TRUE;
}
if(pApp->vtCurrent==SUBMENU_VIEW)
{
DispBackground(pApp);
IMENUCTL_Redraw(pApp->pIMenuCtl1);
return TRUE;
}
if(pApp->vtCurrent==INTRO_VIEW)
{
IDISPLAY_ClearScreen(pApp->a.m_pIDisplay);
DispContent(pApp,pApp->pContent,pApp->pPos);
//DispHeader(pApp);
return TRUE;
}
if(pApp->vtCurrent==CONTENT_VIEW)
{
//!!!modify by wishing
if(pApp->bIsConnecting==TRUE)//是从下一篇连接时短信中断来的
{
pApp->bIsConnecting=FALSE;
IDISPLAY_ClearScreen(pApp->a.m_pIDisplay);
//DispContent(pApp,pApp->pContent,pApp->pPos);
//if(pApp->pPos>=pApp->nNormalFontHeight)
//{
// DispHeadline(pApp,pApp->unicHeadline);//显示标题
// DispScollBar(pApp,0);
//}
return TRUE;
}
IDISPLAY_ClearScreen(pApp->a.m_pIDisplay);
DispContent(pApp,pApp->pContent,DispImage(pApp,pApp->pszReceiveData,pApp->pPos));
//DispContent(pApp,pApp->pContent,pApp->pPos);
if(pApp->pPos>=pApp->nNormalFontHeight)
{
DispHeadline(pApp,pApp->unicHeadline);//显示标题
DispScollBar(pApp,0);
}
return TRUE;
}
if(pApp->vtCurrent==FAVSUBMENU_VIEW)
{
DispBackground(pApp);
IMENUCTL_Redraw(pApp->pIMenuCtl1);
return TRUE;
}
if(pApp->vtCurrent==FAVCONTENT_VIEW)
{
IDISPLAY_ClearScreen(pApp->a.m_pIDisplay);
DispContent(pApp,pApp->pContent,DispImage(pApp,pApp->pszReceiveData,pApp->pPos));
if(pApp->pPos>=pApp->nNormalFontHeight)
{
//DispHeadline(pApp,pApp->unicHeadline);//显示标题
DispScollBar(pApp,0);
}
return TRUE;
}
return TRUE;
}
///////////////////////////////////////////////////////////////////////////
boolean OnCommand(CTheApp* pApp,AEEEvent eCode,uint16 wParam,uint32 dwParam)
{
char Request[200]={0};
//char Req[200]={0};
char chR[200]={0};//Req
char chId[7]={0};
char chCity[7]={0};
MenuItem* p;
Int2Str(chId,wParam);//将wParam中菜单id(uint16)=>string
switch(pApp->vtCurrent)
{
case MAINMENU_VIEW://while press key under mainmenu
pApp->uMainMenuItemSel=IMENUCTL_GetSel(pApp->pIMenuCtl);//keep the item selected
SPRINTF(chR,URL);
STRCAT(chR,"&idView=");
p=pApp->pMainMenuItem;
while(Str2Int(p->idMenuItem)!=wParam)
p=p->link;
STRCAT(chR,p->idView); //200 210 220 230 240
pApp->idKeep=Str2Int(p->idView);//pApp->idKeep 200 210 220 230 240 250
if(pApp->idKeep==250)//如果选择了收藏夹,读连接.
{
//pApp->bIsFavorite=TRUE;//
pApp->vtCurrent=FAVSUBMENU_VIEW;//标志到了收藏夹
if(pApp->pIMenuCtl)//释放主菜单(可能不需要)
{
IMENUCTL_Release(pApp->pIMenuCtl);
pApp->pIMenuCtl=NULL;
}
PopFavoriteMenu(pApp);
return TRUE;
}
STRCAT(chR,"&idMenuItem=");
STRCAT(chR,chId);//1000 or 1001 or...1006 or 2000(set)or 3000 or 3001 or 3002
STRCAT(chR,"&idCity=");
Int2Str(chCity,pApp->nCityId);//城市号(数字=>字符串)
STRCAT(chR,chCity);
SPRINTF(Request,"GET %s HTTP/1.0\r\n\r\n",chR);
break;
case SUBMENU_VIEW:
if(pApp->idKeep==210)//210时表示是在主菜单时是选择城市项
{
pApp->nCityId=IMENUCTL_GetSel(pApp->pIMenuCtl1);
//p=pApp->pSubMenuItem;
//while(Str2Int(p->idMenuItem)!=wParam)
// p=p->link;
//DispTriangle(pApp,pApp->nCityId+1);
//IDISPLAY_ClearScreen(pApp->a.m_pIDisplay);
//IDISPLAY_Update(pApp->a.m_pIDisplay);
pApp->uSubMenuItemSel=IMENUCTL_GetSel(pApp->pIMenuCtl1);//记住菜单项焦点
SPRINTF(chR,URL);
STRCAT(chR,"&idView=100");//为了回到主菜单
STRCAT(chR,"&idCity=");//
STRCAT(chR,chId);
STRCAT(chR,"&HandsetType=");
STRCAT(chR,HANDSETTYPE);// handset type
STRCAT(chR,"&PhoneNumber=");
STRCAT(chR,pApp->chPhoneNumber);//mobile number
SPRINTF(Request,"GET %s HTTP/1.0\r\n\r\n",chR);
//pApp->idKeep1=211;//按了选择城市子菜单,进入选择城市下一级.
// ||
// ||
p=pApp->pSubMenuItem;
while(Str2Int(p->idMenuItem)!=wParam)
p=p->link;
STRCAT(chR,p->idView); //200 210 220 230 240
pApp->idKeep1=Str2Int(p->idView);
SPRINTF(pApp->pszSendData,Request);
//StartSocket(pApp);
//return TRUE;
break;
}
if(pApp->idKeep==200)//200 表示在主菜单时是选择子菜单项
{
pApp->uSubMenuItemSel=IMENUCTL_GetSel(pApp->pIMenuCtl1);//记住菜单项焦点
SPRINTF(chR,URL);
STRCAT(chR,"&idView=");
p=pApp->pSubMenuItem;
while(Str2Int(p->idMenuItem)!=wParam)
p=p->link;
pApp->pMenuItem=p;//保持指针,下一篇在p->link中
pApp->bIsFromNextPage=FALSE;//此时不是从"下一篇"进来的
MEMSET((void*)pApp->unicHeadline,0,20);
WSTRCPY(pApp->unicHeadline,p->content);
STRCAT(chR,p->idView);
pApp->idKeep1=Str2Int(p->idView);//300 显示内容
//pApp->idKeep1=300;//按了子菜单项,进入内容显示
STRCAT(chR,"&idContext=");
STRCAT(chR,chId);
STRCAT(chR,"&idCity=");
Int2Str(chCity,pApp->nCityId);//城市号(数字=>字符串)
STRCAT(chR,chCity);
SPRINTF(Request,"GET %s HTTP/1.0\r\n\r\n",chR);
break;
}
case FAVSUBMENU_VIEW:
{
GetFavoriteLink(pApp,wParam);//此时http已送到pApp->pszSend中
DispLoadAnim(pApp);//下载动画
StartSocket(pApp);
return TRUE;
}
}
SPRINTF(pApp->pszSendData,Request);
SPRINTF(pApp->pszLinkAddr,Request);//keep the link address to favorite
//log(pApp,pApp->pszSendData);
DispLoadAnim(pApp);//下载动画
StartSocket(pApp);
return TRUE;
}
//---------------------------------------------------------
boolean OnUser(CTheApp* pApp,AEEEvent eCode,uint16 wParam,uint32 dwParam)
{
if(wParam==USEREVT_SOCKET_OK)
{
pApp->bIsConnecting=FALSE;
CleanSocket(pApp);
if(pApp->pIImage) //停止动画
{
IIMAGE_Stop(pApp->pIImage);
IIMAGE_Release(pApp->pIImage);
pApp->pIImage=NULL;
}
switch(pApp->vtCurrent)
{
case INIT_VIEW:
pApp->vtCurrent=MAINMENU_VIEW;
//StopMusic(pApp);
GetMainMenuItem(pApp); //
pApp->uMainMenuItemSel=Str2Int(pApp->pMainMenuItem->idMenuItem);//GetSel
CreateMainMenu(pApp); //第一次建立主菜单
ShowMSG(pApp,0,pApp->cyScreen-pApp->nNormalFontHeight,IDS_BEIJING);
break;
case MAINMENU_VIEW:
// p=pApp->pMainMenuItem;
// while(Str2Int(p->idMenuItem)!=wParam)
// p=p->link;
// STRCAT(chR,p->idView); //200 210 220 230 240
// pApp->idKeep=Str2Int(p->idView);
switch(pApp->idKeep)//判断是到子菜单,介绍屏还是选择城市
{
case 200://子菜单
case 210://选择城市
pApp->vtCurrent=SUBMENU_VIEW;
if(pApp->pIMenuCtl)//释放主菜单(可能不需要)
{
IMENUCTL_Release(pApp->pIMenuCtl);
pApp->pIMenuCtl=NULL;
}
GetSubMenuItem(pApp);
pApp->uSubMenuItemSel=Str2Int(pApp->pSubMenuItem->idMenuItem);//set the first sel
CreateSubMenu(pApp);
break;
/*
case 210:
pApp->vtCurrent=SUBMENU_VIEW;
if(pApp->pIMenuCtl)//释放主菜单(可能不需要)
{
IMENUCTL_Release(pApp->pIMenuCtl);
pApp->pIMenuCtl=NULL;
}
GetSubMenuItem(pApp);
pApp->uSubMenuItemSel=Str2Int(pApp->pSubMenuItem->idMenuItem);//set the first sel
CreateSubMenu(pApp);
break;
*/
case 220://intro
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -