📄 animationcontrol.cpp
字号:
#include "Animationcontrol.h"
COggAnimation::COggAnimation()
: iBitmaps(10), iPause(100), iFrequency(2), iFirstBitmap(0), iStyle(0)
{
}
COggAnimation::~COggAnimation()
{
ClearBitmaps();
}
void COggAnimation::ClearBitmaps()
{
iBitmaps.ResetAndDestroy();
}
void COggAnimation::SetBitmaps(TInt aFirstBitmap, TInt aNumBitmaps)
{
ClearBitmaps();
iFirstBitmap = aFirstBitmap;
for (TInt i = 0 ; i<aNumBitmaps ; i++)
{
CFbsBitmap* ibitmap= new(ELeave) CFbsBitmap;
ibitmap->Load(iBitmapFile,aFirstBitmap+i);
iBitmaps.AppendL(ibitmap);
}
iRedraw = ETrue;
}
void COggAnimation::Start()
{
iCycle = 0;
iRedraw = ETrue;
}
void COggAnimation::Stop()
{
if (iCycle!=-1)
{
iCycle = -1;
iRedraw = ETrue;
}
}
void COggAnimation::SetPause(TInt aPause)
{
if (iPause!=aPause)
{
iPause= aPause;
iCycle= 0;
iRedraw= ETrue;
}
}
void COggAnimation::SetFrequency(TInt aFrequency)
{
if (aFrequency!=iFrequency)
{
iFrequency= aFrequency;
iCycle= 0;
iRedraw= ETrue;
}
}
void COggAnimation::SetStyle(TInt aStyle)
{
if (iStyle != aStyle)
{
iStyle = aStyle;
iRedraw = ETrue;
iCycle = 0;
}
}
void COggAnimation::Cycle()
{
if ((iCycle<0) || !iVisible)
return;
#if defined(SERIES60)
if (iBitmaps.Count() <= 1)
return;
#endif
iCycle++;
if (iCycle<iPause)
return;
TInt style = 1;
if (iStyle == 1)
style = 2;
if ((iCycle-iPause)>=(iBitmaps.Count()*iFrequency*style))
iCycle= 0;
if (iCycle%iFrequency == 0)
iRedraw = ETrue;
}
void COggAnimation::Draw(CBitmapContext& aBitmapContext)
{
if ((iBitmaps.Count() == 0) || (iFrequency<1))
return;
TInt idx= 0;
if (iCycle>=0 && iCycle-iPause>=0)
{
idx= ((iCycle-iPause)/iFrequency)%iBitmaps.Count();
if (iStyle==1 && (iCycle-iPause)/iFrequency>=iBitmaps.Count())
idx= iBitmaps.Count()- idx -1;
}
CFbsBitmap* b= iBitmaps[idx];
aBitmapContext.BitBlt(TPoint(ix,iy),b,TRect(TPoint(0,0),b->SizeInPixels()));
}
/*
TBool COggAnimation::ReadArguments(TOggParser& p)
{
TBool success= COggControl::ReadArguments(p);
if (success && p.iToken==_L("Frequency")) {
p.Debug(_L("Setting frequency."));
TInt frequency;
success= p.ReadToken(frequency);
if (success) SetFrequency(frequency);
}
if (success && p.iToken==_L("Pause")) {
p.Debug(_L("Setting pause."));
TInt pause(100);
success= p.ReadToken(pause);
if (success) SetPause(pause);
}
if (success && p.iToken==_L("Bitmaps")) {
p.Debug(_L("Settings bitmaps."));
TInt first, num;
success= p.ReadToken(first);
if (success)
{
success= p.ReadToken(num);
if (success)
SetBitmaps(first,num);
}
}
if (success && p.iToken==_L("Style")) {
p.Debug(_L("Setting style."));
TInt s;
success= p.ReadToken(s);
if (success) SetStyle(s);
}
return success;
}*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -