📄 view.c
字号:
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;
}
if(pCh)
pCh=NULL;
DispLoadAnim(pApp);//下载动画
StartSocket(pApp);
return;
}
/*
void DispContent(CTheApp* pApp,AECHAR* pText,uint16 nStartPos)
{
int nLineHeight,y,nFits;
AECHAR *pStr;
RGBVAL textclr;
y=1;//DispImage(pApp)+1;
nLineHeight=pApp->nNormalFontHeight+1;
textclr=IDISPLAY_SetColor(pApp->a.m_pIDisplay,CLR_USER_TEXT,0xFF000000);
IDISPLAY_MeasureTextEx(pApp->a.m_pIDisplay,AEE_FONT_NORMAL,pText,-1,pApp->cxScreen,&nFits);
pStr=pText+nStartPos;//+nStartPos*nFits;
while(*pStr)
{
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);
y+=nLineHeight;
pStr+=nFits;
}
IDISPLAY_SetColor(pApp->a.m_pIDisplay,CLR_USER_TEXT,textclr);
IDISPLAY_Update(pApp->a.m_pIDisplay);
}
*/
//////////////////////////////////////////////////////////////////////////
int DispImage(CTheApp* pApp,char* pRec,int yPos)
{
IImage* pIImage;
AEEImageInfo ii;
AEECLSID cls;
IMemAStream *pMemStream=NULL;
long l;
char* pCh;
byte* pBuf;
IDISPLAY_ClearScreen(pApp->a.m_pIDisplay);
if(yPos>pApp->nNormalFontHeight)
yPos=pApp->nNormalFontHeight;
if(pRec==NULL)
return yPos;
pCh=MEMSTR(pRec,"\x89\x50\x4e\x47",pApp->nGrowMem);
if(pCh==0)
return yPos;
l=pApp->nGrowMem-(pCh-pRec);
if((pBuf=(byte*)MALLOC(l+1))==NULL)
return yPos;
MEMCPY(pBuf,pCh,l);
cls=ISHELL_GetHandler(pApp->a.m_pIShell, HTYPE_VIEWER, "image/png");
if(cls==0)
return 0;
ISHELL_CreateInstance(pApp->a.m_pIShell, cls,(void **)(&pIImage));
if(pIImage==NULL)
return 0;
ISHELL_CreateInstance(pApp->a.m_pIShell, AEECLSID_MEMASTREAM, (void **)(&pMemStream));
if (pMemStream==NULL)
{
IIMAGE_Release(pIImage);
pIImage=NULL;
return 0;
}
IMEMASTREAM_Set(pMemStream,pBuf,l,0,0);
IIMAGE_SetStream(pIImage, (IAStream*)pMemStream);
//DispBackground(pApp);
IIMAGE_GetInfo(pIImage,&ii);
if((yPos>=-ii.cy+pApp->nNormalFontHeight)&&(yPos<=pApp->nNormalFontHeight))
{
IIMAGE_Draw(pIImage,(pApp->cxScreen-ii.cx)/2,yPos);
IDISPLAY_Update(pApp->a.m_pIDisplay);
}
IDISPLAY_Update(pApp->a.m_pIDisplay);
IIMAGE_Release(pIImage);
pIImage = NULL;
IMEMASTREAM_Release(pMemStream);
return ii.cy+yPos;
}
//////////////////////////////////////////////////////////////////////////
void GetContent(CTheApp* pApp)
{
char* p;
char* q;
uint16 l;
p=MEMSTR(pApp->pszReceiveData,"<u>",STRLEN(pApp->pszReceiveData));
p+=3;
q=MEMSTR(p,"</u>",STRLEN(p));
l=q-p;
pApp->nTxtLength=l;//保持文本长度
if((pApp->pContent=(AECHAR*)MALLOC(l/2+2))==NULL)//分配出错
{
if(pApp->pszReceiveData)
{
FREE(pApp->pszReceiveData);
pApp->pszReceiveData=NULL;
}
if(pApp->pMainMenuItem)
{
CleanMainMenuItemList(pApp);
pApp->pMainMenuItem=NULL;
}
if(pApp->pIMenuCtl)
{
IMENUCTL_Release(pApp->pIMenuCtl);
pApp->pIMenuCtl=NULL;
}
if(pApp->pSubMenuItem)
{
CleanSubMenuItemList(pApp);
pApp->pSubMenuItem=NULL;
}
if(pApp->pIMenuCtl1)
{
IMENUCTL_Release(pApp->pIMenuCtl1);
pApp->pIMenuCtl1=NULL;
}
}
MEMSET(pApp->pContent,'\0',l/2+2);
ConvertAECHAR(p,l,pApp->pContent);
if(pApp->pszReceiveData) //接收到的数据已经转换为unicode文本在pApp->Content中
{
FREE(pApp->pszReceiveData);
pApp->pszReceiveData=NULL;
}
return;
}
//////////////////////////////////////////////////////////////////////////
/*
void DispHeadline(CTheApp* pApp,AECHAR* punicoStr)
{
IStatic* pIStatic;
AEERect rc;
AECHAR* pText;
rc.x=0;
rc.y=0;
rc.dx=pApp->cxScreen;
rc.dy=pApp->nNormalFontHeight;
pText=punicoStr;
if(ISHELL_CreateInstance(pApp->a.m_pIShell,AEECLSID_STATIC,(void**)&pIStatic)==ENOMEMORY)
{
ISHELL_SendEvent(pApp->a.m_pIShell,AEECLSID_VACATION,EVT_USER,USEREVT_MEMORY_FAILED,0);
return;
}
ISTATIC_SetRect(pIStatic,&rc);
ISTATIC_SetText(pIStatic,NULL,pText,AEE_FONT_BOLD,AEE_FONT_NORMAL);
ISTATIC_Redraw(pIStatic);
if(pIStatic)
ISTATIC_Release(pIStatic);
return;
}
*/
void DispHeadline(CTheApp* pApp,AECHAR* punicoStr)
{
int nFits;
IDISPLAY_MeasureTextEx(pApp->a.m_pIDisplay,AEE_FONT_BOLD,punicoStr,-1,pApp->cxScreen-4,&nFits);
//IDISPLAY_DrawText(pApp->a.m_pIDisplay,AEE_FONT_NORMAL,pStr,nFits,0,y,NULL,IDF_ALIGN_LEFT|IDF_TEXT_TRANSPARENT);
IDISPLAY_DrawText(pApp->a.m_pIDisplay,AEE_FONT_BOLD,punicoStr,nFits,0,0,NULL,IDF_ALIGN_LEFT|IDF_TEXT_TRANSPARENT);
return;
}
//////////////////////////////////////////////////////////////////////////
void ManipulatePageEnd(CTheApp* pApp,uint16 nDelt)
{
IGraphics* pIGraphics;
AECHAR aText[10];
int x,y;
AEERect rc;
// RGBVAL textclr;
x=0;
y=pApp->cyScreen-4*pApp->nNormalFontHeight;
//textclr=IDISPLAY_SetColor(pApp->a.m_pIDisplay,CLR_USER_TEXT,0x0000ff00);
IDISPLAY_EraseRgn(pApp->a.m_pIDisplay,0,pApp->cyScreen-pApp->nNormalFontHeight*5,
pApp->cxScreen, pApp->nNormalFontHeight*5);
DispScollBar(pApp,pApp->cyScreen-16);
ISHELL_LoadResString(
pApp->a.m_pIShell,VACATION_RES_FILE,IDS_FAVORITE,aText,10);
IDISPLAY_DrawText(pApp->a.m_pIDisplay,AEE_FONT_NORMAL,aText,-1,
x,y,NULL,IDF_ALIGN_LEFT|IDF_RECT_FRAME );
y+=pApp->nNormalFontHeight;
ISHELL_LoadResString(
pApp->a.m_pIShell,VACATION_RES_FILE,IDS_NEXT,aText,10);
IDISPLAY_DrawText(pApp->a.m_pIDisplay,AEE_FONT_NORMAL,aText,-1,
x,y,NULL,IDF_ALIGN_LEFT|IDF_RECT_FRAME);
y+=pApp->nNormalFontHeight;
ISHELL_LoadResString(
pApp->a.m_pIShell,VACATION_RES_FILE,IDS_RETURN,aText,10);
IDISPLAY_DrawText(pApp->a.m_pIDisplay,AEE_FONT_NORMAL,aText,-1,
x,y,NULL,IDF_ALIGN_LEFT|IDF_RECT_FRAME);
rc.x=0;
rc.dx=3*pApp->nNormalFontHeight;
rc.y=pApp->cyScreen-pApp->nNormalFontHeight*(5-pApp->nPageEnd);
rc.dy=pApp->nNormalFontHeight;
ISHELL_CreateInstance(pApp->a.m_pIShell, AEECLSID_GRAPHICS, (void **)(&pIGraphics));
IGRAPHICS_SetColor(pIGraphics,255,0, 0, 0);//red
IGRAPHICS_SetFillMode(pIGraphics,FALSE);
//IGRAPHICS_SetPaintMode(AEE_PAINT_XOR);
//IGRAPHICS_SetFillColor(pIGraphics,255, 0,0,0);
IGRAPHICS_DrawRect(pIGraphics, &rc);
IGRAPHICS_Release(pIGraphics);
IDISPLAY_Update(pApp->a.m_pIDisplay);
/*
if(nDelt==AVK_DOWN)
pApp->nPageEnd++;
if(nDelt==AVK_UP)
pApp->nPageEnd--;
if(pApp->nPageEnd>=4)
pApp->nPageEnd=3;
if(pApp->nPageEnd==1)
pApp->nPageEnd=0;
*/
return;
}
//////////////////////////////////////////////////////////////////////////
/*
void DispFavContent(CTheApp* pApp,WPARAM wParam)
{
IDBRecord* pIDBRec=NULL;
IFileMgr* pIFileMgr;
IFile* pIFile;
FileInfo fi;
uint16 RecordCount=0;
uint16 i,fieldLen,idItem;
AEEDBFieldType fieldType; // stores field type
AEEDBFieldName fieldName; // stores field name
AECHAR* data=NULL;
char data1[200]={'\0'};
CtlAddItem pai;
AECHAR pBuf[1024]={'\0'};
}
idItem=IMENUCTL_GetItemID(pApp->pIMenuCtl1,wParam);
IMENUCTL_GetItem(pApp->pIMenuCtl1,idItem, &pai);
RecordCount = IDATABASE_GetRecordCount(pApp->pIDatabase);
IDATABASE_Reset(pApp->pIDatabase);
for(i=1;i<=RecordCount;i++)
{
pIDBRec=IDATABASE_GetNextRecord(pApp->pIDatabase);
fieldType = IDBRECORD_NextField (pIDBRec, &fieldName, &fieldLen);
fieldType = IDBRECORD_NextField (pIDBRec, &fieldName, &fieldLen);
data = (AECHAR*)IDBRECORD_GetField (pIDBRec, &fieldName, &fieldType, &fieldLen);
if(WSTRCMP((AECHAR*)data,(AECHAR*)pai.pText)==0)
{
IDBRECORD_Reset( pIDBRec);
fieldType = IDBRECORD_NextField (pIDBRec, &fieldName, &fieldLen);
data = (AECHAR*)IDBRECORD_GetField (pIDBRec, &fieldName, &fieldType, &fieldLen);
if (ISHELL_CreateInstance(pApp->a.m_pIShell,AEECLSID_FILEMGR,(void **)&pIFileMgr)==ENOMEMORY)
{
ISHELL_SendEvent(pApp->a.m_pIShell,AEECLSID_VACATION,EVT_USER,USEREVT_MEMORY_FAILED,0);
return;
}
pIFile=IFILEMGR_OpenFile(pIFileMgr,data,_OFM_READ);
IFILE_GetInfo(pIFile, &fi);
IFILE_Read(pIFile, (void *)pBuf, fi.dwSize);
}
}
return;
}
*/
//////////////////////////////////////////////////////////////////////////
/*
void DispTriangle(CTheApp* pApp,int n)
{
IGraphics* pIGraphics;
AEETriangle trgl;
ISHELL_CreateInstance(pApp->a.m_pIShell, AEECLSID_GRAPHICS, (void **)(&pIGraphics));
trgl.x0=10;
trgl.x1=13;
trgl.x2=10;
trgl.y0=pApp->nHeaderHeight+n*pApp->nNormalFontHeight/2;
trgl.y1=trgl.y0+3;
trgl.y2=trgl.y0+6;
IGRAPHICS_SetColor(pIGraphics,255,0, 0, 0);//red
IGRAPHICS_SetFillMode(pIGraphics,TRUE);
IGRAPHICS_SetFillColor(pIGraphics,255, 0,0,0);
IGRAPHICS_DrawTriangle(pIGraphics, &trgl);
IGRAPHICS_Release(pIGraphics);
IDISPLAY_Update(pApp->a.m_pIDisplay);
}
*/
//////////////////////////////////////////////////////////////////////////
void DispScollBar(CTheApp* pApp,int y)
{
IGraphics* pIGraphics;
AEERect rc;
if(ISHELL_CreateInstance(pApp->a.m_pIShell, AEECLSID_GRAPHICS, (void **)(&pIGraphics))==ENOMEMORY)
{
ISHELL_SendEvent(pApp->a.m_pIShell,AEECLSID_VACATION,EVT_USER,USEREVT_MEMORY_FAILED,0);
return;
}
IGRAPHICS_SetFillMode(pIGraphics,TRUE);
IGRAPHICS_SetColor(pIGraphics,0,255,0, 0);//green
IGRAPHICS_SetFillColor(pIGraphics,0, 0,255,0);
//IGRAPHICS_SetPaintMode(AEE_PAINT_XOR);
rc.x=pApp->cxScreen-4;
rc.dx=3;
rc.y=0;//pApp->nNormalFontHeight;
rc.dy=pApp->cyScreen;//-pApp->nNormalFontHeight;
IGRAPHICS_DrawRect(pIGraphics, &rc);//画轨道
IGRAPHICS_SetColor(pIGraphics,255,0,0, 0);
IGRAPHICS_SetFillColor(pIGraphics,0, 0,255,0);
rc.x=pApp->cxScreen-4;
rc.dx=3;
rc.y=y;
rc.dy=16;
IGRAPHICS_DrawRect(pIGraphics, &rc);//画滑块
IGRAPHICS_Release(pIGraphics);
IDISPLAY_Update(pApp->a.m_pIDisplay);
return;
}
//////////////////////////////////////////////////////////////////////////
//----------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -