📄 view.c
字号:
#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 + -