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

📄 view.c

📁 brew中开发的个人小游戏
💻 C
📖 第 1 页 / 共 2 页
字号:
#include "vacation.h"

//////////////////////////////////////////////////////////////////////////
void CreateMainMenu(CTheApp* pApp)
{
	MenuItem *p;
	int id=0;
	AEERect rc;
	AEEMenuColors mc;
	AECHAR aecharCity[20]={24403,21069,22478,24066,65306,0};

	
	
	/*
非选种中: FC8906      边框:FFFFFF(T,B)   TEXT :565656
选    中: 7B849B      边框:FFFFFF(T,B)   TEXT :FEF500
下载色块:3B89FF   TEXT :FFFFFF
视听色块:27BFFF   TEXT :1C04FF
	
	  左右边距25 DPI
字未选:8B00F7   色块:FFDAFF
字未选:8B00F7   色块:FFDAFF
字未选:8B00F7   色块:FFDAFF
字选:FFB9F3     色块:C61CAA


  未选取的:FC8906   TEXT:565656    边框:FFFFFF
选取的:  7B849B   TEXT: FEF500

小的:选取:FFFFFF   TEXT:FFFFFF   
     未选取:8FFF29   TEXT:1C04FF
边框:000000
非选种中: FF21E5         TEXT :10225E
选    中: D21BBD         TEXT :FFFFFF
	#define ITEMBACKCOLOR MAKE_RGB(0xA2,0x28,0xE4)
#define ITEMTEXTCOLOR MAKE_RGB(0xfc,0xff,0x01)

#define ITEMSELTEXTCOLOR MAKE_RGB(0x00,0x00,0x00)
#define ITEMSELBAKCOLOR MAKE_RGB(0x0d,0xc3,0xcb)

#define TEXTCOLOR MAKE_RGB(0x00,0x00,0x00)
	*/
	mc.wMask=mc.wMask|MC_BACK|MC_TEXT|MC_SEL_TEXT|MC_SEL_BACK|MC_FRAME|MC_SCROLLBAR|MC_SCROLLBAR_FILL;	
	mc.cBack=ITEMBACKCOLOR
	mc.cSelBack=ITEMSELBAKCOLOR
	mc.cText=ITEMTEXTCOLOR
	mc.cSelText=ITEMSELTEXTCOLOR
	mc.cFrame=MAKE_RGB(0xff,0xff,0xff);
	mc.cScrollbar=MAKE_RGB(0xff,0xda,0xff);
	mc.cScrollbarFill=MAKE_RGB(0xff,0xb9,0xf3);
	
	DispBackground(pApp);//背景

	rc.x=0;
	rc.y=pApp->cyScreen-pApp->nNormalFontHeight;
	rc.dx=pApp->cxScreen;
	rc.dy=pApp->nNormalFontHeight;
	
	WSTRCAT(aecharCity,pApp->unicCityName);
	IDISPLAY_DrawText(pApp->a.m_pIDisplay,AEE_FONT_NORMAL,aecharCity,-1,
		20,pApp->cyScreen-pApp->nNormalFontHeight,&rc,IDF_ALIGN_CENTER|IDF_RECT_FRAME|IDF_RECT_FILL);
	
	rc.x=MENULEFTSPACE;
	rc.y=pApp->nHeaderHeight;
	rc.dx=pApp->cxScreen-MENURIGHTSPACE;
	rc.dy=pApp->cyScreen-pApp->nNormalFontHeight-pApp->nHeaderHeight-MENUADJUST;
	
	p=pApp->pMainMenuItem;
	
	if(ISHELL_CreateInstance(pApp->a.m_pIShell,AEECLSID_MENUCTL,
		(void **)&pApp->pIMenuCtl)==ENOMEMORY)
	{
		ISHELL_SendEvent(pApp->a.m_pIShell,AEECLSID_VACATION,EVT_USER,USEREVT_MEMORY_FAILED,0);
		return;
	}
	IMENUCTL_SetRect(pApp->pIMenuCtl,&rc);
	IMENUCTL_SetColors(pApp->pIMenuCtl, &mc);
	//IMENUCTL_SetProperties(pApp->pView->pIMenuCtl,MP_WRAPSCROLL);
	//IMENUCTL_SetTitle();
	
	while(p)
	{
		id=Str2Int(p->idMenuItem);
		IMENUCTL_AddItem(pApp->pIMenuCtl,NULL,NULL,(uint16)id,(AECHAR*)p->content,0);
		p=p->link;
	}
	IMENUCTL_SetActive(pApp->pIMenuCtl,TRUE);
	//IMENUCTL_SetSel(pApp->pIMenuCtl, curSel);
	IMENUCTL_SetSel(pApp->pIMenuCtl,pApp->uMainMenuItemSel);
	IMENUCTL_Redraw(pApp->pIMenuCtl);
	
	
	return;
}
//////////////////////////////////////////////////////////////////////////
void CreateSubMenu(CTheApp* pApp)
{
	MenuItem *p;
	int id=0;
	AEERect rc;
	AEEMenuColors mc;
	

	rc.x=MENULEFTSPACE;
	rc.y=pApp->nHeaderHeight;
	rc.dx=pApp->cxScreen-MENURIGHTSPACE;
	rc.dy=pApp->cyScreen-pApp->nNormalFontHeight-pApp->nHeaderHeight-MENUADJUST;
	/*
非选种中: FC8906      边框:FFFFFF(T,B)   TEXT :565656
选    中: 7B849B      边框:FFFFFF(T,B)   TEXT :FEF500
下载色块:3B89FF   TEXT :FFFFFF
视听色块:27BFFF   TEXT :1C04FF
	
	  左右边距25 DPI
字未选:8B00F7   色块:FFDAFF
字未选:8B00F7   色块:FFDAFF
字未选:8B00F7   色块:FFDAFF
字选:FFB9F3     色块:C61CAA


  未选取的:FC8906   TEXT:565656    边框:FFFFFF
选取的:  7B849B   TEXT: FEF500

小的:选取:FFFFFF   TEXT:FFFFFF   
     未选取:8FFF29   TEXT:1C04FF
边框:000000

	
	*/
	mc.wMask=mc.wMask|MC_BACK|MC_TEXT|MC_SEL_TEXT|MC_SEL_BACK|MC_FRAME|MC_SCROLLBAR|MC_SCROLLBAR_FILL;	
	mc.cBack=ITEMBACKCOLOR
	mc.cSelBack=ITEMSELBAKCOLOR
	mc.cText=ITEMTEXTCOLOR
	mc.cSelText=ITEMSELTEXTCOLOR
	mc.cFrame=MAKE_RGB(0xff,0xff,0xff);
	mc.cScrollbar=MAKE_RGB(0xff,0xda,0xff);
	mc.cScrollbarFill=MAKE_RGB(0xff,0xb9,0xf3);
	
	DispBackground(pApp);//背景
	p=pApp->pSubMenuItem;
	if(ISHELL_CreateInstance(pApp->a.m_pIShell,AEECLSID_MENUCTL,
		(void **)&pApp->pIMenuCtl1)==ENOMEMORY)
	{
		ISHELL_SendEvent(pApp->a.m_pIShell,AEECLSID_VACATION,EVT_USER,USEREVT_MEMORY_FAILED,0);
		return;
	}
	IMENUCTL_SetRect(pApp->pIMenuCtl1,&rc);
	IMENUCTL_SetColors(pApp->pIMenuCtl1, &mc);
	//IMENUCTL_SetProperties(pApp->pView->pIMenuCtl1,MP_WRAPSCROLL);
	//IMENUCTL_SetTitle();
	
	while(p)
	{
		id=Str2Int(p->idMenuItem);
		IMENUCTL_AddItem(pApp->pIMenuCtl1,NULL,NULL,(uint16)id,(AECHAR*)p->content,0);
		p=p->link;
	}
	IMENUCTL_SetActive(pApp->pIMenuCtl1,TRUE);
	IMENUCTL_SetSel(pApp->pIMenuCtl1,pApp->uSubMenuItemSel);
	IMENUCTL_Redraw(pApp->pIMenuCtl1);
	return;
}

//////////////////////////////////////////////////////////////////////////
//入口参数:pText要显示的unicode字符串
void DispContent(CTheApp* pApp,AECHAR* pText,int y)
{
	int nLineHeight,nFits;
	uint16 nCount,nCount1;
	uint16 percent;
	AECHAR *pStr;
	RGBVAL colour;
	//IDISPLAY_ClearScreen(pApp->a.m_pIDisplay);
	//DispBackground(pApp);
	/*
	 *	 左右边距25 DPI
字未选:8B00F7   色块:FFDAFF
字未选:8B00F7   色块:FFDAFF
字未选:8B00F7   色块:FFDAFF
字选:FFB9F3     色块:C61CAA

	 */
	nLineHeight=pApp->nNormalFontHeight+1;
	//IDISPLAY_SetColor(pApp->a.m_pIDisplay,CLR_USER_TEXT,0x8b00f7);
	//IDISPLAY_SetColor(pApp->a.m_pIDisplay,CLR_USER_BACKGROUND,0xffdaff);
	
	pStr=pText;
	nCount=WSTRLEN(pStr);
	//IDISPLAY_MeasureTextEx(pApp->a.m_pIDisplay,AEE_FONT_NORMAL,pStr,-1,pApp->cxScreen,&nFits);
	while(*pStr)
	{
		//nCount=WSTRLEN(pStr);
		IDISPLAY_MeasureTextEx(pApp->a.m_pIDisplay,AEE_FONT_NORMAL,pStr,-1,pApp->cxScreen-4,&nFits);
		if(y<0)
		{
			y+=nLineHeight;
			pStr+=nFits;
		}
		else
		{
			if(y>=0 && y<=pApp->cyScreen-pApp->nNormalFontHeight)
			{
				//IDISPLAY_MeasureTextEx(pApp->a.m_pIDisplay,AEE_FONT_NORMAL,pStr,-1,pApp->cxScreen,&nFits);
				IDISPLAY_DrawText(pApp->a.m_pIDisplay,AEE_FONT_NORMAL,pStr,nFits,0,y,NULL,IDF_ALIGN_LEFT|IDF_TEXT_TRANSPARENT);
				y+=nLineHeight;
				pStr+=nFits;
				nCount1=WSTRLEN(pStr);
			}
		    else
			{
				break;
			}
		}
	}
	
	pApp->nPageEnd=-1;//没有浏览到最后的标志是-1
	
	percent=(pApp->cyScreen)*(nCount-nCount1)/nCount-pApp->nNormalFontHeight-pApp->nNormalFontHeight;
	DispScollBar(pApp,percent);
	
	if(y<pApp->nNormalFontHeight*ENDSPACE)//浏览到了最后
	{
		
		pApp->nPageEnd=0;//到了最后标志是0
		pApp->pPos+=pApp->nNormalFontHeight;
		if(pApp->vtCurrent!=FAVCONTENT_VIEW)
		{
			pApp->nPageEnd++;
			ManipulatePageEnd(pApp,1);
		}
		
		DispScollBar(pApp,pApp->cyScreen-16);
	}

	//IDISPLAY_DrawVLine(pApp->a.m_pIDisplay,pApp->cxScreen-3,0,pApp->cyScreen);
	colour=IDISPLAY_SetColor(pApp->a.m_pIDisplay,CLR_USER_LINE,0xff0000);
	
	


	IDISPLAY_SetColor(pApp->a.m_pIDisplay,CLR_USER_LINE,colour);
	IDISPLAY_Update(pApp->a.m_pIDisplay);
}
//////////////////////////////////////////////////////////////////////////
void DispContent1(CTheApp* pApp,AECHAR* pText,int y)
{
	int nLineHeight,nFits;
	uint16 nCount,nCount1;
//	uint16 percent;
	AECHAR *pStr;
	RGBVAL colour;
	//IDISPLAY_ClearScreen(pApp->a.m_pIDisplay);
	//DispBackground(pApp);
	/*
	 *	 左右边距25 DPI
字未选:8B00F7   色块:FFDAFF
字未选:8B00F7   色块:FFDAFF
字未选:8B00F7   色块:FFDAFF
字选:FFB9F3     色块:C61CAA

	 */
	nLineHeight=pApp->nNormalFontHeight+1;
	//IDISPLAY_SetColor(pApp->a.m_pIDisplay,CLR_USER_TEXT,0x8b00f7);
	//IDISPLAY_SetColor(pApp->a.m_pIDisplay,CLR_USER_BACKGROUND,0xffdaff);
	
	pStr=pText;
	nCount=WSTRLEN(pStr);
	//IDISPLAY_MeasureTextEx(pApp->a.m_pIDisplay,AEE_FONT_NORMAL,pStr,-1,pApp->cxScreen,&nFits);
	while(*pStr)
	{
		//nCount=WSTRLEN(pStr);
		IDISPLAY_MeasureTextEx(pApp->a.m_pIDisplay,AEE_FONT_NORMAL,pStr,-1,pApp->cxScreen,&nFits);
		if(y<0)
		{
			y+=nLineHeight;
			pStr+=nFits;
		}
		else
		{
			if(y>=0 && y<=pApp->cyScreen)
			{
				//IDISPLAY_MeasureTextEx(pApp->a.m_pIDisplay,AEE_FONT_NORMAL,pStr,-1,pApp->cxScreen,&nFits);
				IDISPLAY_DrawText(pApp->a.m_pIDisplay,AEE_FONT_NORMAL,pStr,nFits,0,y,NULL,IDF_ALIGN_LEFT|IDF_TEXT_TRANSPARENT);
				y+=nLineHeight;
				pStr+=nFits;
				nCount1=WSTRLEN(pStr);
			}
		    else
			{
				break;
			}
		}
	}
	
	pApp->nPageEnd=-1;//没有浏览到最后的标志是-1
	if(y<pApp->nNormalFontHeight*5)//浏览到了最后
	{
		pApp->nPageEnd=0;//到了最后标志是0
		pApp->pPos+=pApp->nNormalFontHeight;
	//	DispScollBar(pApp,pApp->cyScreen-16);
	}

	colour=IDISPLAY_SetColor(pApp->a.m_pIDisplay,CLR_USER_LINE,0xff0000);
	
	
	IDISPLAY_SetColor(pApp->a.m_pIDisplay,CLR_USER_LINE,colour);
	IDISPLAY_Update(pApp->a.m_pIDisplay);
}
//////////////////////////////////////////////////////////////////////////
void DispBackground(CTheApp* pApp)
{
	IImage* pIIMage;
	AEEImageInfo ii;
	pIIMage=ISHELL_LoadResImage(pApp->a.m_pIShell,VACATION_RES_FILE,IDB_BACKGROUND);
	IIMAGE_GetInfo(pIIMage,&ii);
	//IDISPLAY_ClearScreen(pApp->a.m_pIDisplay);
	IIMAGE_Draw(pIIMage,pApp->cxScreen-ii.cx,pApp->cyScreen-ii.cy);
	//IDISPLAY_Update(pApp->a.m_pIDisplay);
	IIMAGE_Release(pIIMage);
	pIIMage=NULL;
	return;
}
//////////////////////////////////////////////////////////////////////////
void RequestImageData(CTheApp* pApp)
{
	char Request[200]={0};
	char chR[200]={0};
	char chId[7]={0};
	//MenuItem*	p;

	SPRINTF(chR,URL);
	STRCAT(chR,"&idView=");
	STRCAT(chR,"310");				//网页310是图片请求
	STRCAT(chR,"&idContext=");
	//STRCAT(chR,chId);//!!!c图片还没有却定好
	STRCAT(chR,pApp->pMenuItem->idMenuItem);
	SPRINTF(Request,"GET %s HTTP/1.0\r\n\r\n",chR);
	SPRINTF(pApp->pszSendData,Request);
	//log(pApp,pApp->pszSendData);
	if(pApp->pszReceiveData)
	{
		FREE(pApp->pszReceiveData);
		pApp->pszReceiveData=NULL;
	}
	DispLoadAnim(pApp);//下载动画
	StartSocket(pApp);
	return;
}
//////////////////////////////////////////////////////////////////////////
void RequestFavImageData(CTheApp* pApp)
{
	char Request[200]={0};
	char chR[200]={0};
	char chId[7]={0};
	char* pCh;
	SPRINTF(chR,URL);
	STRCAT(chR,"&idView=");
	STRCAT(chR,"310");				//网页310是图片请求
	STRCAT(chR,"&idContext=0");
	pCh=STRSTR(pApp->pszSendData,"&idContext=");
	pCh+=11;
	STRCAT(chR,pCh);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -