资料介绍
进度条和游标的生成算法:
intGUI_BuildProgress(intx,inty,intdx,intdy,U8Style,U32Size,U32Value,structGUI_PROGRESS*Output)
{
switch(Style)
{
caseHor:
if(Size>=0x800000)//if>8M
{
Size>>=4;
Value>>=4;
}
/////////
if(Value!=0)
{
if(ValueSize)
{
Value=((dx-2)*Value)/Size;//16*2/4((-2)外框占两个像素。)
}
////
else
{
Value=dx-2;
}
}
////
Output->X0=x+1;
Output->Y0=y+1;
Output->Dx0=Value;
Output->Dy0=dy-2;
Output->X1=x+1+Value;
Output->Y1=y+1;
Output->Dx1=dx-Value-2;
Output->Dy1=dy-2;
Output->X=x;
Output->Y=y;
Output->Dx=dx;
Output->Dy=dy;
Output->Style=Style;
Output->Size=Size;
Output->Value=Value;
return1;
///////////////////////////////////////////////////
caseVer:
if(Size>=0x800000)//if>8M
{
Size>>=4;
Value>>=4;
}
/////////
if(Value!=0)
{
if(ValueSize)
{
Value=(dy*Value)/Size;//16*2/4
}
////
else
{
Value=dy;
}
}
////
Output->X0=x+1;
Output->Y0=y+dy-Value-2;
Output->Dx0=dx-2;
Output->Dy0=Value+1;
Output->X1=x+1;
Output->Y1=y+1;
Output->Dx1=dx-2;
Output->Dy1=dy-Value-2;
Output->X=x;
Output->Y=y;
Output->Dx=dx;
Output->Dy=dy;
Output->Style=Style;
Output->Size=Size;
Output->Value=Value;
/*
GUI_FillRectangle(x_addr,y_addr+dy-Val,dx,Val,Front_RGB);//显示前景.
GUI_FillRectangle(x_addr,y_addr,dx,dy-Val,Back_RGB);//显示背景.
GUI_Rectangle(x_addr,y_addr,dx,dy,Pane_RGB);//显示外框.
*/
return1;
///////////////////////////////////////////////////
default:return0;
///////////////////////////////////////////////////
}
}