windowing/windowserver/tauto/TTransptAnim.cpp
changeset 116 171fae344dd4
parent 103 2717213c588a
--- a/windowing/windowserver/tauto/TTransptAnim.cpp	Tue Jun 22 15:21:29 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,367 +0,0 @@
-// Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-//
-
-/**
- @file
- @test
- @internalComponent - Internal Symbian test code
-*/
-#include "TTransptAnim.h"
-
-struct FrameSet
-	{
-	TRgb* iFrames;
-	const TInt iFrameCount;
-	FrameSet(TRgb* aFrames, const TInt aFrameCount)
-	: iFrames(aFrames),
-	iFrameCount(aFrameCount)
-		{
-		}
-	};
-
-TRgb FrameSequenceAlpha[]= 
-{ TRgb(255, 0, 0, 50), TRgb(0, 255, 0, 70), TRgb(0, 0, 255, 100), TRgb(255, 255, 0, 150), TRgb(0, 255, 255, 200) };
-TRgb FrameSequenceNoAlpha[] =
-{ TRgb(255, 0, 0), TRgb(0, 255, 0), TRgb(0, 0, 255), TRgb(255, 255, 0), TRgb(0, 255, 255) };
-
-FrameSet frameSetAlpha(FrameSequenceAlpha, 	sizeof(FrameSequenceAlpha)/sizeof(TRgb));
-FrameSet frameSetNoAlpha(FrameSequenceNoAlpha, sizeof(FrameSequenceNoAlpha)/sizeof(TRgb));
-FrameSet TestFrameSets[] =
-	{
-	frameSetAlpha, frameSetNoAlpha
-	};
-
-static const TInt 	FRAME_DELAY 			= 2000000;
-static const TInt 	DRAW_LINE_ANIMATION 	= 36;
-static const TBool 	ALPHATRANSPARENCY_ON 	= ETrue;
-static const TInt	ALPHA_FRAMESET 			= 0;
-
-//*****************************************************************************
-CTTestCase* CTTransparentAnim::CreateTestCaseL(CTTransparentAnim* aTransAnim, TInt aTestCaseId)
-	{
-	CTTestCase* testCase = aTransAnim->GetCurrent();
-	
-	if (!testCase)
-		{
-		switch (aTestCaseId)
-			{
-		case GraphicsWServ0483 :
-			testCase =  CTGraphicsWServ0483::NewL();
-			break;
-			}
-		}
-	
-	return testCase;
-	}
-
-//*****************************************************************************
-CTTransparentAnim::CTTransparentAnim(CTestStep* aStep)
-: CTWsGraphicsBase(aStep), iCurrentTestCase(NULL)
-	{}
-
-CTTransparentAnim::~CTTransparentAnim()
-	{
-	TheClient->iWs.SetAutoFlush(EFalse);
-	}
-
-void CTTransparentAnim::ConstructL()
-	{
-	TheClient->iWs.SetAutoFlush(ETrue);
-	}
-
-void CTTransparentAnim::RunTestCaseL(TInt)
-	{
-	((CTTransparentAnimStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0483"));
-	CTTestCase* testCase = CTTransparentAnim::CreateTestCaseL(this, iTest->iState);
-	
-	if (!testCase)
-		{
-		TestComplete();
-		return ;
-		}
-
-	TInt err = KErrNone;
-	
-	if (!testCase->IsAlreadyRunning())
-		{
-		SetCurrent(testCase);
-		iTest->LogSubTest(testCase->TestCaseName());
-		TRAP(err, testCase->StartL());
-		testCase->SetError(err);
-		}
-	
-	if (testCase->IsComplete() || err != KErrNone)
-		{
-		((CTTransparentAnimStep*)iStep)->RecordTestResultL();
-		((CTTransparentAnimStep*)iStep)->CloseTMSGraphicsStep();
-		if (testCase->HasFailed())
-			{
-			INFO_PRINTF3(_L("ErrorStatus  - Expected: %d, Actual: %d"), ETrue, EFalse);
-			}
-		++iTest->iState;
-		SetCurrent(NULL);
-		delete testCase;
-		}
-	else
-		{
-		// Prevent test harness from repeatedly running the test case too quickly.
-		User::After(TTimeIntervalMicroSeconds32(FRAME_DELAY));
-		}
-	}
-
-void CTTransparentAnim::SetCurrent(CTTestCase* aTestCase)
-	{
-	iCurrentTestCase = aTestCase;
-	}
-
-CTTestCase* CTTransparentAnim::GetCurrent()
-	{
-	return iCurrentTestCase;
-	}
-
-//*****************************************************************************
-CTTAnimation::CTTAnimation(CTWin* aWin, TInt aDrawArg)
-: iWin(aWin), iFrameCount(0), iCurrentFrameSet(0), iIsComplete(EFalse), iDrawArg(aDrawArg)
-	{
-	iAnimDll = RAnimDll(TheClient->iWs);
-	iAnimDll.Load(KAnimDLLName);
-	iDrawAnim = RTestAnim(iAnimDll);
-	iDrawAnim.Construct(*iWin->BaseWin(), EAnimTypeTrans, TPckgBuf<TRect>(aWin->Size()));
-	}
-
-CTTAnimation::~CTTAnimation()
-	{
-	iDrawAnim.Close();
-	iAnimDll.Close();
-	delete iWin;
-	}
-
-void CTTAnimation::StartL()
-	{
-	iAnimTimer.ConstructL();
-	iAnimTimer.Start(FRAME_DELAY, TCallBack(CTTAnimation::NextFrame,this));
-	}
-
-TBool CTTAnimation::IsComplete()
-	{
-	return iIsComplete;
-	}
-
-void CTTAnimation::SetCurrentFrameSet(TInt aFrameSet)
-	{
-	iCurrentFrameSet = aFrameSet;
-	}
-
-CTWin* CTTAnimation::GetWindow()
-	{
-	return iWin;
-	}
-
-void CTTAnimation::Attach(MAnimationObserver* aObserver)
-	{
-	iObserver = aObserver;
-	}
-
-TInt CTTAnimation::NextFrame(TAny* aAnim)
-	{
-	STATIC_CAST(CTTAnimation*,aAnim)->NextFrame();
-
-	return KErrNone;
-	}
-
-void CTTAnimation::NextFrame()
-	{
-	TRgb Color;
-	TPckgBuf<TFrameData> paramsPckg;
-
-	if (iFrameCount == TestFrameSets[iCurrentFrameSet].iFrameCount)
-		{
-		iIsComplete = ETrue;
-		iObserver->Update(this);
-		return ;
-		}
-	
-	Color = TestFrameSets[iCurrentFrameSet].iFrames[iFrameCount++];
-	
-	paramsPckg().draw = iDrawArg;
-	paramsPckg().color = Color;
-	
-	iDrawAnim.Command(EADllNextFrame, paramsPckg);
-
-	iAnimTimer.Start(FRAME_DELAY, TCallBack(CTTAnimation::NextFrame,this));
-	}
-
-//*****************************************************************************
-CTransAnimTimer::CTransAnimTimer() 
-: CTimer(EPriorityStandard)
-	{}
-
-CTransAnimTimer::~CTransAnimTimer()
-	{}
-
-void CTransAnimTimer::ConstructL()
-	{
-	CTimer::ConstructL();
-	CActiveScheduler::Add(this);
-	}
-
-void CTransAnimTimer::RunL()
-	{
-	iCallBack.CallBack();
-	}
-
-void CTransAnimTimer::Start(TTimeIntervalMicroSeconds32 aInterval,TCallBack aCallBack)
-	{
-	iCallBack = aCallBack;
-	After(aInterval);
-	}
-
-//*****************************************************************************
-CTTestCase::CTTestCase()
-: iError(KErrNone), iIsComplete(EFalse), iIsRunning(EFalse)
-	{}
-
-TBool CTTestCase::IsAlreadyRunning()
-	{
-	return iIsRunning;
-	}
-
-void CTTestCase::Update(CTTAnimation* aAnim)
-	{
-	iIsComplete = aAnim->IsComplete();
-	}
-
-TBool CTTestCase::IsComplete()
-	{
-	return iIsComplete;
-	}
-
-void CTTestCase::StartL()
-	{
-	if (!iIsRunning)
-		{
-		RunTestCaseL();
-		iIsRunning = ETrue;
-		}
-	}
-
-TBool CTTestCase::HasFailed()
-	{
-	TBool ret = EFalse;
-	if (iError != KErrNone)
-		{
-		ret = ETrue;
-		}
-	return ret;
-	}
-
-void CTTestCase::SetIsCompleted(TBool aIsComplete)
-	{
-	iIsComplete = aIsComplete;
-	}
-
-void CTTestCase::SetError(TInt aError)
-	{
-	iError = aError;
-	}
-
-//*********************** New Test Case Classes go here************************
-
-/**
- * @SYMTestCaseID GRAPHICS-WSERV-0483
- *
- * @SYMTestCaseDesc There are two animations running, one attached to a transparent
- * window using SetTransparencyAlphaChannel and a second animation with a non-transparent
- * window. The animations draw a line and then change the color of the line in subsequent
- * frames. After the last frame the alpha channel for the first animation is set to
- * opaque and then compared with the second animation to make certain that no artifacts
- * are present.
- *
- * @SYMTestPriority High
- *
- * @SYMTestStatus Implemented
- *
- * @SYMTestActions An anim is attached with a Transparent window.
- * 	The anim draws several frames using WSERV's Anim animation functionality.
- *
- * @SYMTestExpectedResults Both animations draw a line and then change it's color, the first
- * animation doing it in a tranparent window and the second doing it in a non-transparent window.
- **/
-CTGraphicsWServ0483* CTGraphicsWServ0483::NewL()
-	{
-	CTGraphicsWServ0483* testCase = new(ELeave) CTGraphicsWServ0483();
-	
-	CleanupStack::PushL(testCase);
-	testCase->ConstructL();
-	CleanupStack::Pop();
-	
-	return testCase;
-	}
-
-CTGraphicsWServ0483::~CTGraphicsWServ0483()
-	{
-	delete iAnim;
-	delete iCheckAnim;
-	}
-
-void CTGraphicsWServ0483::ConstructL()
-	{
-	iAnim = new(ELeave) CTTAnimation(CTAnimWin<ALPHATRANSPARENCY_ON>::NewL(
-										BaseWin->GetBorderWin()->Position(),
-										BaseWin->GetBorderWin()->Size()), DRAW_LINE_ANIMATION);
-	
-	iCheckAnim = new(ELeave) CTTAnimation(CTAnimWin<>::NewL(
-										TestWin->GetBorderWin()->Position(),
-										TestWin->GetBorderWin()->Size()), DRAW_LINE_ANIMATION);
-	TheClient->WaitForRedrawsToFinish();
-	}
-
-void CTGraphicsWServ0483::RunTestCaseL()
-	{
-	iAnim->Attach(this);
-	iCheckAnim->Attach(this);
-	
-	iAnim->SetCurrentFrameSet(ALPHA_FRAMESET);
-	iAnim->StartL();
-	
-	iCheckAnim->SetCurrentFrameSet(ALPHA_FRAMESET);
-	iCheckAnim->StartL();	
-	}
-
-void CTGraphicsWServ0483::Update(CTTAnimation*)
-	{
-	if (iAnim->IsComplete() && iCheckAnim->IsComplete())
-		{
-		TRgb bgColor(150, 150, 150, 255); 
-		iAnim->GetWindow()->Win()->SetBackgroundColor(bgColor);
-		iAnim->GetWindow()->Win()->Invalidate();
-		TheClient->iWs.Finish();
-		TheClient->WaitForRedrawsToFinish();
-		if (!DoCheckRect(iAnim->GetWindow(), iCheckAnim->GetWindow()))
-			{
-			SetError(KErrGeneral);
-			}
-		SetIsCompleted(ETrue);
-		}
-	}
-
-TPtrC CTGraphicsWServ0483::TestCaseName()
-	{
-	_LIT(KTransparentAlphaChannelAnimationTest, "Transparent Anim Test");
-	
-	return TPtrC(KTransparentAlphaChannelAnimationTest);
-	}
-
-__WS_CONSTRUCT_STEP__(TransparentAnim)