sl@0: sl@0: // Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). sl@0: // All rights reserved. sl@0: // This component and the accompanying materials are made available sl@0: // under the terms of "Eclipse Public License v1.0" sl@0: // which accompanies this distribution, and is available sl@0: // at the URL "http://www.eclipse.org/legal/epl-v10.html". sl@0: // sl@0: // Initial Contributors: sl@0: // Nokia Corporation - initial contribution. sl@0: // sl@0: // Contributors: sl@0: // sl@0: // Description: sl@0: // sl@0: sl@0: /** sl@0: @file sl@0: @test sl@0: @internalComponent - Internal Symbian test code sl@0: */ sl@0: #ifndef __TTRANSPTANIM__ sl@0: #define __TTRANSPTANIM__ sl@0: sl@0: #include sl@0: #include sl@0: #include sl@0: #include "../tlib/testbase.h" sl@0: #include "AUTO.H" sl@0: #include "AUTODLL.H" sl@0: sl@0: enum sl@0: { sl@0: GraphicsWServ0483 = 0 sl@0: }; sl@0: sl@0: class CTTestCase; sl@0: class CTransAnimTimer; sl@0: class CTTransparentAnim; sl@0: class CTTAnimation; sl@0: class MAnimationObserver; sl@0: sl@0: class CTTransparentAnim : public CTWsGraphicsBase sl@0: { sl@0: public: sl@0: static CTTestCase* CreateTestCaseL(CTTransparentAnim*, TInt); sl@0: public: sl@0: CTTransparentAnim(CTestStep*); sl@0: virtual ~CTTransparentAnim(); sl@0: void ConstructL(); sl@0: sl@0: void SetCurrent(CTTestCase*); sl@0: CTTestCase* GetCurrent(); sl@0: protected: sl@0: virtual void RunTestCaseL(TInt); sl@0: sl@0: private: sl@0: CTTestCase* iCurrentTestCase; sl@0: }; sl@0: sl@0: class CTTransparentAnimStep : public CTGraphicsStep sl@0: { sl@0: public: sl@0: CTTransparentAnimStep(); sl@0: sl@0: protected: sl@0: virtual CTGraphicsBase* CreateTestL(); sl@0: }; sl@0: sl@0: class CTransAnimTimer : public CTimer sl@0: { sl@0: public: sl@0: CTransAnimTimer(); sl@0: ~CTransAnimTimer(); sl@0: void ConstructL(); sl@0: void Start(TTimeIntervalMicroSeconds32 aInterval,TCallBack aCallBack); sl@0: private: sl@0: void RunL(); sl@0: TCallBack iCallBack; sl@0: }; sl@0: sl@0: class CTTAnimation sl@0: { sl@0: public: sl@0: CTTAnimation(CTWin*, TInt); sl@0: ~CTTAnimation(); sl@0: sl@0: void StartL(); sl@0: TBool IsComplete(); sl@0: void SetCurrentFrameSet(TInt); sl@0: CTWin* GetWindow(); sl@0: void Attach(MAnimationObserver*); sl@0: private: sl@0: static TInt NextFrame(TAny*); sl@0: void NextFrame(); sl@0: sl@0: private: sl@0: CTWin* iWin; sl@0: MAnimationObserver* iObserver; sl@0: RAnimDll iAnimDll; sl@0: RTestAnim iDrawAnim; sl@0: CTransAnimTimer iAnimTimer; sl@0: TInt iFrameCount; sl@0: TInt iCurrentFrameSet; sl@0: TBool iIsComplete; sl@0: TInt iDrawArg; sl@0: }; sl@0: sl@0: template sl@0: class CTAnimWin : public CTWin sl@0: { sl@0: public: sl@0: static CTWin* NewL(TPoint aPosition, TSize aSize) sl@0: { sl@0: CTAnimWin* w = new(ELeave) CTAnimWin(); sl@0: sl@0: CleanupStack::PushL(w); sl@0: w->ConstructL(aPosition, aSize); sl@0: CleanupStack::Pop(); sl@0: sl@0: return w; sl@0: } sl@0: public: sl@0: virtual ~CTAnimWin(){} sl@0: sl@0: void Draw(){} sl@0: private: sl@0: CTAnimWin(){} sl@0: sl@0: void ConstructL(TPoint aPoint, TSize aSize) sl@0: { sl@0: TRgb bgColor(150, 150, 150); sl@0: ConstructExtLD(*TheClient->iGroup, aPoint, aSize); sl@0: AssignGC(*TheClient->iGc); sl@0: Win()->SetRequiredDisplayMode(EColor16MA); sl@0: if (AlphaTransparency) sl@0: { sl@0: Win()->SetTransparencyAlphaChannel(); sl@0: bgColor.SetAlpha(150); sl@0: } sl@0: Win()->SetBackgroundColor(bgColor); sl@0: Win()->Activate(); sl@0: } sl@0: }; sl@0: sl@0: //***************************************************************************** sl@0: class MAnimationObserver sl@0: { sl@0: public: sl@0: virtual void Update(CTTAnimation*) = 0; sl@0: }; sl@0: sl@0: class CTTestCase : public MAnimationObserver sl@0: { sl@0: public: sl@0: CTTestCase(); sl@0: virtual ~CTTestCase() {} sl@0: sl@0: TBool IsAlreadyRunning(); sl@0: TBool IsComplete(); sl@0: void StartL(); sl@0: TBool HasFailed(); sl@0: void SetError(TInt); sl@0: sl@0: // Implemented for MAnimationObserver sl@0: virtual void Update(CTTAnimation*); sl@0: virtual void ConstructL() = 0; sl@0: virtual TPtrC TestCaseName() = 0; sl@0: sl@0: protected: sl@0: virtual void RunTestCaseL() = 0; sl@0: void SetIsCompleted(TBool); sl@0: sl@0: private: sl@0: TInt iError; sl@0: TBool iIsComplete; sl@0: TBool iIsRunning; sl@0: }; sl@0: sl@0: class CTGraphicsWServ0483 : public CTTestCase sl@0: { sl@0: public: sl@0: static CTGraphicsWServ0483* NewL(); sl@0: sl@0: public: sl@0: virtual ~CTGraphicsWServ0483(); sl@0: virtual void RunTestCaseL(); sl@0: sl@0: void Update(CTTAnimation*); sl@0: sl@0: protected: sl@0: CTGraphicsWServ0483(){} sl@0: virtual void ConstructL(); sl@0: virtual TPtrC TestCaseName(); sl@0: sl@0: private: sl@0: CTTAnimation* iAnim; sl@0: CTTAnimation* iCheckAnim; sl@0: }; sl@0: sl@0: _LIT(KTTransparentAnimStep,"TTransparentAnim"); sl@0: sl@0: #endif // __TTRANSPTANIM__