00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 #include <AknBitmapAnimation.h>
00013 #include <barsread.h> 
00014 #include "ThreadAnimation.h"
00015 
00016 
00017 
00018 
00019 
00020 
00021 CThreadAnimation::CThreadAnimation(void): iAnimation(0), iRunning(EFalse)
00022         {
00023         }
00024 
00025 
00026 
00027 
00028 
00029 
00030 CThreadAnimation::~CThreadAnimation(void)
00031         {
00032         delete iAnimation;
00033         }
00034 
00035 CThreadAnimation* CThreadAnimation::NewL(TResourceReader& aReader, RWindow& aWindow)
00036         {
00037         CThreadAnimation* self = CThreadAnimation::NewLC(aReader,aWindow);
00038         CleanupStack::Pop(self);
00039         return self;
00040         }
00041 
00042 CThreadAnimation* CThreadAnimation::NewLC(TResourceReader& aReader, RWindow& aWindow)
00043         {
00044         CThreadAnimation* self = new (ELeave) CThreadAnimation;
00045         CleanupStack::PushL(self);
00046         self->ConstructL(aReader, aWindow);
00047         return self;
00048         }
00049 
00050 
00051 void CThreadAnimation::ConstructL(TResourceReader& aReader, RWindow& aWindow)
00052         {
00053         
00054         iAnimation = CAknBitmapAnimation::NewL(); 
00055         
00056         iAnimation->ConstructFromResourceL(aReader); 
00057         
00058         iAnimation->SetContainerWindowL(aWindow); 
00059         }
00060 
00061 
00062 
00063 
00064 
00065 
00066 void CThreadAnimation::StopAnimation()
00067         {
00068         if( iAnimation )
00069                 {
00070                 iRunning = EFalse;
00071                 iAnimation->CancelAnimation();
00072                 }
00073         }
00074 
00075 
00076 
00077 
00078 
00079 
00080 void CThreadAnimation::StartAnimationL()
00081         {       
00082         
00083         if ( iRunning )
00084                 {
00085                 return;
00086                 }
00087 
00088         
00089         iAnimation->StartAnimationL(); 
00090         iRunning = ETrue;
00091         }