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

📄 common.c

📁 brew中开发的个人小游戏
💻 C
📖 第 1 页 / 共 3 页
字号:
#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 + -