windowing/windowserver/tauto/TFADE.CPP
changeset 116 171fae344dd4
parent 103 2717213c588a
--- a/windowing/windowserver/tauto/TFADE.CPP	Tue Jun 22 15:21:29 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2126 +0,0 @@
-// Copyright (c) 1998-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:
-// Test Fading and UnFading of windows
-// 
-//
-
-#include "TFADE.H"
-#define __DISPLAY_MODE_64K_COLOR
-
-//CRedrawWin
-
-CRedrawWin::CRedrawWin(CTFade *aTest) : CTWin(), iTest(aTest)
-	{}
-
-CRedrawWin::~CRedrawWin()
-	{
-	}
-
-void CRedrawWin::ConstructL(TRect aArea)
-	{
-
-	ConstructExtLD(*TheClient->iGroup,aArea.iTl,aArea.Size());
-	AssignGC(*TheClient->iGc);
-	Activate();
-	iWin.BeginRedraw();
-	iWin.EndRedraw();
-	}
-
-void CRedrawWin::Draw()
-	{
-	iTest->Drawing(iTest->Content(),iGc);
-	}
-
-
-//CFadeTest
-
-CTFade::CTFade(CTestStep* aStep) : CTWsGraphicsBase(aStep)
-	{
-#if defined (__MARM_THUMB__)
-	CanFade = false;
-	CanFadeSet = false;
-#endif
-	}
-
-void CTFade::ConstructL()
-	{
-	iDeviceDisplayMode=TheClient->iScreen->DisplayMode();
-	iTestWinSize=StdTestWindowSize();
-	iFadeDrawMode = iDeviceDisplayMode;
-	iTestWinCopy = new (ELeave) CFbsBitmap();
-	iTestWinCopy->Create(iTestWinSize,TheClient->iScreen->DisplayMode());
-	iCheckWinCopy = new (ELeave) CFbsBitmap();
-	iCheckWinCopy->Create(iTestWinSize,TheClient->iScreen->DisplayMode());
-	}
-
-CTFade::~CTFade()
-	{
-	__ASSERT_ALWAYS(!iBlankWin,AutoPanic(EAutoFadeWindow));
-	delete iTestWinCopy;
-	delete iCheckWinCopy;
-	}
-
-TInt CTFade::Content()
-	{
-	return iContent;
-	}
-
-void CTFade::CreateBlankWindowL()
-	{
-	__ASSERT_ALWAYS(!iBlankWin,AutoPanic(EAutoFadeWindow));
-	TSize scrSize(TheClient->iScreen->SizeInPixels());
-	iTestWinSize.SetSize(2*scrSize.iWidth/3-6,scrSize.iHeight-6);
-	iBlankWin=new(ELeave) CTBlankWindow();
-	iWindowRect.SetRect(TPoint(3+scrSize.iWidth/3,3),iTestWinSize);
-	iBlankWin->SetUpL(iWindowRect.iTl,iTestWinSize,TheClient->iGroup,*TheClient->iGc);
-	iBlankWin->BaseWin()->SetRequiredDisplayMode(EGray16);
-	}
-
-void CTFade::DestroyBlankWindow()
-	{
-	__ASSERT_ALWAYS(iBlankWin,AutoPanic(EAutoFadeWindow));
-	delete iBlankWin;
-	iBlankWin=NULL;
-	}
-
-void CTFade::CreateBackupWindowL(TBool aMaintainBackup)
-	{
-	__ASSERT_ALWAYS(!iWin,AutoPanic(EAutoFadeWindow));
-	CTBackedUpWin* backUpWin=new(ELeave) CTBackedUpWin(MODE_LT_64K(iDeviceDisplayMode)?iFadeDrawMode:iDeviceDisplayMode);
-	iWin=backUpWin;
-	iOwnWindow=ETrue;
-	iWindowRect.SetRect(TPoint(2*iTestWinSize.iWidth+35,7),iTestWinSize);
-	backUpWin->ConstructExtLD(*TheClient->iGroup,iWindowRect.iTl,iTestWinSize);
-	if (aMaintainBackup)
-		backUpWin->BackedUpWin()->MaintainBackup();
-	backUpWin->Activate();
-	TheClient->WaitForRedrawsToFinish();		//Without this bitmaps won't draw into the window
-	}
-
-void CTFade::CreateRedrawWindowL()
-	{
-	__ASSERT_ALWAYS(!iWin,AutoPanic(EAutoFadeWindow));
-	iWindowRect.SetRect(TPoint(2*iTestWinSize.iWidth+35,7),iTestWinSize);
-	CRedrawWin* redrawWin=new(ELeave) CRedrawWin(this);
-	redrawWin->ConstructL(iWindowRect);
-	redrawWin->Win()->EnableRedrawStore(EFalse);
-	iWin=redrawWin;
-	iOwnWindow=ETrue;
-	iWin->BaseWin()->SetRequiredDisplayMode(iFadeDrawMode);
-	}
-
-void CTFade::DestroyDrawableWindow()
-	{
-	__ASSERT_ALWAYS(iWin,AutoPanic(EAutoFadeWindow));
-	if (iOwnWindow)
-		delete iWin;
-	iWin=NULL;
-	}
-
-void CTFade::CreateBitmapsL()
-	{
-	iTestWinSize=BaseWin->Size();
-	iBaseRect.SetRect(BaseWin->BaseWin()->InquireOffset(*TheClient->iGroup->WinTreeNode()),iTestWinSize);
-	iNormalBitmap.Create(iTestWinSize,MODE_LT_64K(iDeviceDisplayMode)?iFadeDrawMode:iDeviceDisplayMode);
-	iFadedBitmap.Create(iTestWinSize,MODE_LT_64K(iDeviceDisplayMode)?iFadeDrawMode:iDeviceDisplayMode);
-	iNormalBitmapDevice=CFbsBitmapDevice::NewL(&iNormalBitmap);
-	iFadedBitmapDevice=CFbsBitmapDevice::NewL(&iFadedBitmap);
-	User::LeaveIfError(iNormalBitmapDevice->CreateContext(iNormalBitGc));
-	User::LeaveIfError(iFadedBitmapDevice->CreateContext(iFadedBitGc));
-	iFadedBitGc->SetFadeMode(ETrue);
-	iBaseWinMode=BaseWin->BaseWin()->DisplayMode();
-	BaseWin->BaseWin()->SetRequiredDisplayMode(iFadeDrawMode);
-	}
-
-void CTFade::DestroyBitmaps()
-	{
-	delete iNormalBitGc;
-	delete iFadedBitGc;
-	delete iNormalBitmapDevice;
-	delete iFadedBitmapDevice;
-	BaseWin->BaseWin()->SetRequiredDisplayMode(iBaseWinMode);
-	}
-
-void CTFade::Drawing(TInt aDrawFunc, CBitmapContext *gc)
-	{
-	TRgb grey=TRgb::Gray4(2);
-	TInt ii;
-	gc->Reset();
-	switch (aDrawFunc)
-		{
-	case 1:
-	case 2:
-		Draw(0,&grey,gc);
-		gc->Reset();
-		Draw(1,NULL,gc);
-		if (aDrawFunc==1)
-			break;
-		gc->Reset();
-		Draw(3,NULL,gc);
-		break;
-	case 3:
-		Draw(0,&grey,gc);
-		gc->Reset();
-		Draw(3,NULL,gc);
-		break;
-	case 4:
-		grey=TRgb::Gray4(1);
-		gc->Reset();
-		Draw(0,&grey,gc);
-		gc->Reset();
-		for (ii=1;ii<37;ii+=7)
-			Draw(2,&ii,gc);
-		break;
-	case 5:
-		Draw(0,&grey,gc);
-		gc->Reset();
-		Draw(1,NULL,gc);
-		gc->Reset();
-		for (ii=2;ii<60;ii+=11)
-			Draw(2,&ii,gc);
-		break;
-	case 6:
-	case 7:
-		Draw(0,&grey,gc);
-		gc->Reset();
-		Draw(3,NULL,gc);
-		gc->Reset();
-		for (ii=3;ii<70;ii+=13)
-			Draw(2,&ii,gc);
-		if (aDrawFunc==6)
-			break;
-		gc->Reset();
-		Draw(1,NULL,gc);
-		break;
-	default:;
-		}
-	}
-
-void CTFade::Draw(TInt aDrawFunc, TAny *aParam, TBool aAlternativeFade/*=EFalse*/, TBool aFade/*=EFalse*/)
-	{
-	CWindowGc *gc=TheClient->iGc;
-	gc->Activate(*iWin->DrawableWin());
-	gc->Reset();
-	if (aFade)
-		gc->SetFaded(ETrue);
-	iNormalBitGc->Reset();
-	iFadedBitGc->Reset();
-	iFadedBitGc->SetFadeMode(ETrue);
-	if (aAlternativeFade)
-		iFadedBitGc->SetFadingParameters(BLACK_ALTERNATE,WHITE_ALTERNATE);
-	Draw(aDrawFunc,aParam,gc);
-	Draw(aDrawFunc,aParam,iNormalBitGc);
-	Draw(aDrawFunc,aParam,iFadedBitGc);
-	gc->Deactivate();
-	if (aAlternativeFade)
-		iFadedBitGc->SetFadingParameters(BLACK_NORMAL,WHITE_NORMAL);
-	}
-
-#ifdef TEST_GRAPHICS_WSERV_TAUTOSERVER_NONNGA // CWindowGc fading is deprecated in NGA
-void CTFade::GCDraw(TInt aDrawFunc, TAny *aParam, TBool aAlternativeFade)
-	{
-	CWindowGc *gc=TheClient->iGc;
-	gc->Activate(*iWin->DrawableWin());
-	gc->Reset();
-	Draw(aDrawFunc,aParam,gc);
-	gc->Deactivate();
-	gc->Activate(*BaseWin->DrawableWin());
-	gc->Reset();
-	gc->SetFaded(ETrue);
-	if (aAlternativeFade)
-		gc->SetFadingParameters(BLACK_ALTERNATE,WHITE_ALTERNATE);
-	Draw(aDrawFunc,aParam,gc);
-	gc->Deactivate();
-	}
-#endif // TEST_GRAPHICS_WSERV_TAUTOSERVER_NONNGA
-
-void CTFade::Draw(TInt aDrawFunc, TAny *aParam, CBitmapContext *aGc)
-	{
-	switch(aDrawFunc)
-		{
-		case 0:
-			aGc->SetBrushColor(*((TRgb *)aParam));
-			aGc->SetBrushStyle(CGraphicsContext::ESolidBrush);
-			aGc->SetPenStyle(CGraphicsContext::ENullPen);
-			aGc->DrawRect(TRect(iTestWinSize));
-			break;
-		case 1:
-			{
-			TSize half(iTestWinSize.iWidth/2,iTestWinSize.iHeight/2);
-			TRect rect(half);
-			aGc->DrawEllipse(rect);
-			aGc->DrawEllipse(TRect(TPoint(0,half.iHeight),half));
-			aGc->SetOrigin(TPoint(half.iWidth,0));
-			aGc->SetClippingRect(rect);
-			aGc->DrawEllipse(rect);
-			aGc->SetOrigin(TPoint(half.iWidth,half.iHeight));
-			aGc->SetClippingRect(rect);
-			aGc->DrawEllipse(rect);
-			aGc->SetOrigin(TPoint());
-			aGc->CancelClippingRect();
-			}
-			break;
-		case 2:
-			{
-			TInt param= *((TInt *)aParam);
-			if (param&0x1)
-				aGc->DrawLine(TPoint(param+(param*27)%iTestWinSize.iWidth,0),
-							 TPoint(iTestWinSize.iWidth-((param<<1)+(param*19)%iTestWinSize.iWidth),iTestWinSize.iHeight));
-			else
-				aGc->DrawLine(TPoint(0, (param<<1)+(param*7)%iTestWinSize.iHeight),
-							 TPoint(iTestWinSize.iWidth,param+(param*13)%iTestWinSize.iHeight));
-			}
-			break;
-		case 3:
-			{
-			TPoint pos;
-			for(;pos.iX<iTestWinSize.iWidth;pos.iX+=10)
-				aGc->DrawLine(pos,pos+TSize(0,iTestWinSize.iHeight));
-			for(pos.iX=0;pos.iY<iTestWinSize.iHeight;pos.iY+=10)
-				aGc->DrawLine(pos,pos+TSize(iTestWinSize.iWidth,0));
-			}
-			break;
-		}
-	}
-
-void CTFade::CompareWithBitmap(TBool aFade)
-	{
-	TBool match;
-	CWindowGc& gc=*TheClient->iGc;
-	CFbsBitmap* bitmap;
-	TheClient->iWs.Flush();
-	if (aFade)
-		bitmap=&iFadedBitmap;
-	else
-		bitmap=&iNormalBitmap;
-	gc.Activate(*BaseWin->DrawableWin());
-	gc.Reset();
-	gc.BitBlt(TPoint(),bitmap);
-	gc.Deactivate();
-	TheClient->iWs.Flush();
-#ifdef TEST_GRAPHICS_WSERV_TAUTOSERVER_NONNGA
-	match=TheClient->iScreen->RectCompare(iBaseRect,iWindowRect);
-#else // In NGA comparison has to be lossy because fading can be implemented on hardware
-	match=LossyCompareWindow(*TheClient->iScreen, *iTestWinCopy, *iCheckWinCopy, iWindowRect);
-#endif
-	TEST(match);
-	if (!match)
-			{
-			_LIT(KLog,"Windows content don't match when they should");
-			LOG_MESSAGE(KLog);
-			}
-	}
-
-void CTFade::CompareWindows(TBool aAlternativeFade/*=EFalse*/)
-	{
-	if (aAlternativeFade)
-		iWin->WinTreeNode()->SetFaded(ETrue,RWindowTreeNode::EFadeWindowOnly,BLACK_ALTERNATE,WHITE_ALTERNATE);
-	else
-		iWin->WinTreeNode()->SetFaded(ETrue,RWindowTreeNode::EFadeWindowOnly);
-	TheClient->iWs.Flush();
-	TBool retVal = TheClient->iScreen->RectCompare(iBaseRect,iWindowRect);
-	TEST(retVal);
-	if (!retVal)
-		INFO_PRINTF3(_L("TheClient->iScreen->RectCompare(iBaseRect,iWindowRect) return value - Expected: %d, Actual: %d"), ETrue, retVal);		
-
-	iWin->WinTreeNode()->SetFaded(EFalse,RWindowTreeNode::EFadeWindowOnly);
-	TheClient->iWs.Flush();
-	TheClient->WaitForRedrawsToFinish();
-	}
-
-#define FADE(n,col) n/2+col/2
-TInt CTFade::Fade4(TInt aGray4)
-	{
-#if defined(__WINS__)
-	return FADE(4,aGray4);
-#elif defined (__MARM_THUMB__)
-	return (CanFade ? FADE(4,aGray4):aGray4);
-#elif defined (__MARM__)
-	return FADE(4,aGray4);
-#else
-	return aGray4;
-#endif
-	}
-
-TInt CTFade::Fade16(TInt aGray16)
-	{
-#if defined(__WINS__)
-	return FADE(16,aGray16);
-#elif defined (__MARM_THUMB__)
-	return (CanFade ? FADE(16,aGray16):aGray16);
-#elif defined (__MARM__)
-	return FADE(16,aGray16);
-#else
-	return aGray16;
-#endif
-	}
-
-TRgb CTFade::FadeRgb(TRgb aColor)
-	{
-	switch (iFadeDrawMode)
-		{
-	case EColor16M:
-	case EColor16MU:		
-	case EColor16MA:
-	case EColor16MAP:
-		break; 
-	default:
-		aColor=TRgb::Color64K(aColor.Color64K());
-		break; 
-		}
-#ifdef TEST_GRAPHICS_WSERV_TAUTOSERVER_NONNGA // Color fading calculation differs in NGA
-	TInt fadeMapFactor=WHITE_NORMAL-BLACK_NORMAL+1;
-#else
-	TInt fadeMapFactor=WHITE_NORMAL-BLACK_NORMAL;
-#endif
-	TInt fadeMapOffset=BLACK_NORMAL;
-	TInt value = aColor.Internal();
-
-	TInt b = (((value & 0x000000ff) * fadeMapFactor) >> 8) + fadeMapOffset;
-	TInt g = (((value & 0x0000ff00) * fadeMapFactor) >> 16) + fadeMapOffset;
-	TInt r = (((value & 0x00ff0000) * fadeMapFactor) >> 24) + fadeMapOffset;
-	return TRgb(r,g,b);
-	}
-
-TRgb CTFade::FadeRgb(TRgb aColor, TInt aFadeMapFactor, TInt aFadeMapOffset)
-	{
-	switch (iFadeDrawMode)
-		{
-	case EColor16M:
-	case EColor16MU:
-	case EColor16MA:
-	case EColor16MAP:
-		break; 
-	default:
-		aColor=TRgb::Color64K(aColor.Color64K());
-		break; 
-		}
-	TInt value = aColor.Internal();
-
-	TInt b = (((value & 0x000000ff) * aFadeMapFactor) >> 8) + aFadeMapOffset;
-	TInt g = (((value & 0x0000ff00) * aFadeMapFactor) >> 16) + aFadeMapOffset;
-	TInt r = (((value & 0x00ff0000) * aFadeMapFactor) >> 24) + aFadeMapOffset;
-	return TRgb(r,g,b);
-	}
-
-inline void CTFade::ViewDelay()
-	//
-	//This routine can provide a delay which will allow the user to see the colors changing
-	//
-	{
-	TheClient->iWs.Finish();
-	/*TheClient->iWs.Flush();
-	User::After(1000000);*/		// 1 sec
-	}
-
-void CTFade::ColorTest()
-	{
-	__ASSERT_ALWAYS(iBlankWin,AutoPanic(EAutoFadeWindow));
-	TBool retVal;
-	TSize size(iTestWinSize);
-#if defined(SMALL_RECTS)
-	size.iWidth=Min(SIZE_X,size.iWidth);
-	size.iHeight=Min(SIZE_Y,size.iHeight);
-#endif
-	TRect windowRect(iBlankWin->BaseWin()->InquireOffset(*TheClient->iGroup->WinTreeNode()),size);
-	TInt ii;
-	iBlankWin->BaseWin()->SetRequiredDisplayMode(EGray4);
-	TheClient->WaitForRedrawsToFinish();		//Force the screen into 4 gray mode
-	TRgb fadedColor;
-	for (ii=1;ii<4;ii+=2)		//0 and 3 now give dithered colors when fading so causing this test to fail
-		{
-		iBlankWin->SetColor(TRgb::Gray4(ii));
-		ViewDelay();
-		INFO_PRINTF1(_L(" Testing Normal Color"));
-#ifdef TEST_GRAPHICS_WSERV_TAUTOSERVER_NONNGA
-		retVal = CheckBlankWindow(windowRect,TRgb::Gray4(ii),TheClient->iScreen);
-#else
-		TheClient->iScreen->CopyScreenToBitmap(iTestWinCopy, windowRect);
-		retVal = LossyCheckBlankWindow(*TheClient->iScreen, *iTestWinCopy, windowRect, TRgb::Gray4(ii));
-#endif
-		TEST(retVal);
-		if (!retVal)
-			INFO_PRINTF3(_L("CheckBlankWindow(windowRect,TRgb::Gray4(ii),TheClient->iScreen) return value - Expected: %d, Actual: %d"), ETrue, retVal);		
-		iBlankWin->BaseWin()->SetFaded(ETrue,RWindowTreeNode::EFadeWindowOnly);
-		ViewDelay();
-		fadedColor=MODE_LT_64K(iDeviceDisplayMode)?TRgb::Gray4(Fade4(ii)):FadeRgb(TRgb::Gray4(ii));
-#if defined (__MARM_THUMB__)
-		if (ii==1)
-			{
-			CanFade=!CheckBlankWindow(windowRect,fadedColor,TheClient->iScreen);
-			CanFadeSet=ETrue;
-			fadedColor=MODE_LT_64K(iDeviceDisplayMode)?TRgb::Gray4(Fade4(ii)):FadeRgb(TRgb::Gray4(ii));
-			}
-#endif
-#ifdef TEST_GRAPHICS_WSERV_TAUTOSERVER_NONNGA
-		retVal = CheckBlankWindow(windowRect,fadedColor,TheClient->iScreen);
-#else
-		retVal = LossyCheckBlankWindow(*TheClient->iScreen, *iTestWinCopy, windowRect, fadedColor);
-#endif
-		TEST(retVal);
-		if (!retVal)
-			INFO_PRINTF3(_L("CheckBlankWindow(windowRect,fadedColor,TheClient->iScreen) return value - Expected: %d, Actual: %d"), ETrue, retVal);		
-	
-		iBlankWin->BaseWin()->SetFaded(EFalse,RWindowTreeNode::EFadeWindowOnly);
-		ViewDelay();
-		INFO_PRINTF1(_L(" Testing Unfaded Color"));
-#ifdef TEST_GRAPHICS_WSERV_TAUTOSERVER_NONNGA
-		retVal = CheckBlankWindow(windowRect,TRgb::Gray4(ii),TheClient->iScreen);
-#else
-		retVal = LossyCheckBlankWindow(*TheClient->iScreen, *iTestWinCopy, windowRect, TRgb::Gray4(ii));
-#endif
-		TEST(retVal);
-		if (!retVal)
-			INFO_PRINTF3(_L("CheckBlankWindow(windowRect,TRgb::Gray4(ii),TheClient->iScreen) return value - Expected: %d, Actual: %d"), ETrue, retVal);		
-		}
-	iBlankWin->BaseWin()->SetRequiredDisplayMode(EGray16);
-
-	if (MaxGrays()==0 && MaxColors()<256)
-		return;
-
-	INFO_PRINTF1(_L(" Doing 16 Gray Colors"));
-	for (ii=0;ii<16;++ii)
-		{
-		iBlankWin->SetColor(TRgb::Gray16(ii));
-		ViewDelay();
-#ifdef TEST_GRAPHICS_WSERV_TAUTOSERVER_NONNGA
-		retVal = CheckBlankWindow(windowRect,TRgb::Gray16(ii),TheClient->iScreen);
-#else
-		retVal = LossyCheckBlankWindow(*TheClient->iScreen, *iTestWinCopy, windowRect, TRgb::Gray16(ii));
-#endif
-		TEST(retVal);
-		if (!retVal)
-			INFO_PRINTF3(_L("CheckBlankWindow(windowRect,TRgb::Gray16(ii),TheClient->iScreen) return value - Expected: %d, Actual: %d"), ETrue, retVal);		
-
-		iBlankWin->BaseWin()->SetFaded(ETrue,RWindowTreeNode::EFadeWindowOnly);
-		ViewDelay();
-		fadedColor=MODE_LT_64K(iDeviceDisplayMode)?TRgb::Gray16(Fade16(ii)):FadeRgb(TRgb::Gray16(ii));
-#ifdef TEST_GRAPHICS_WSERV_TAUTOSERVER_NONNGA
-		retVal = CheckBlankWindow(windowRect,fadedColor,TheClient->iScreen);
-#else
-		retVal = LossyCheckBlankWindow(*TheClient->iScreen, *iTestWinCopy, windowRect, fadedColor);
-#endif
-		TEST(retVal);
-		if (!retVal)
-			INFO_PRINTF3(_L("CheckBlankWindow(windowRect,fadedColor,TheClient->iScreen) return value - Expected: %d, Actual: %d"), ETrue, retVal);		
-
-		iBlankWin->BaseWin()->SetFaded(EFalse,RWindowTreeNode::EFadeWindowOnly);
-		ViewDelay();
-	
-#ifdef TEST_GRAPHICS_WSERV_TAUTOSERVER_NONNGA
-		retVal = CheckBlankWindow(windowRect,TRgb::Gray16(ii),TheClient->iScreen);
-#else
-		retVal = LossyCheckBlankWindow(*TheClient->iScreen, *iTestWinCopy, windowRect, TRgb::Gray16(ii));
-#endif
-		TEST(retVal);
-		if (!retVal)
-			INFO_PRINTF3(_L("CheckBlankWindow(windowRect,TRgb::Gray16(ii),TheClient->iScreen) return value - Expected: %d, Actual: %d"), ETrue, retVal);		
-		}
-	}
-
-void CTFade::BlankWindowL()
-	{
-	TBool retVal;
-	if (MaxGrays()==0 && MaxColors()<256)
-		return;
-
-	__ASSERT_ALWAYS(iBlankWin,AutoPanic(EAutoFadeWindow));
-	CTBlankWindow* blankWin=new(ELeave) CTBlankWindow();
-	TRect testArea(iWindowRect);
-	TRect windowRect(testArea);
-#if defined(SMALL_RECTS)
-	TSize size(testArea.Size());
-	size.iWidth=Min(2*SIZE_X,size.iWidth);
-	size.iHeight=Min(2*SIZE_Y,size.iHeight);
-	testArea.SetHeight(size.iHeight);
-	testArea.iTl.iX=testArea.iBr.iX-size.iWidth;
-	windowRect=testArea;
-	windowRect.Shrink(size.iWidth/4,size.iHeight/4);
-#else
-	windowRect.Shrink(30,30);
-#endif
-	blankWin->SetUpL(windowRect.iTl,windowRect.Size(),TheClient->iGroup,*TheClient->iGc);
-	for (TInt col=2;col<16;col+=6)
-		{
-		iBlankWin->SetColor(TRgb::Gray16(col));
-		TheClient->iScreen->CopyScreenToBitmap(iTestWinCopy, windowRect);
-		iBlankWin->BaseWin()->SetFaded(ETrue,RWindowTreeNode::EFadeWindowOnly);
-		blankWin->SetVisible(EFalse);
-		TheClient->iWs.Finish();
-		TRgb fadedColor=MODE_LT_64K(iDeviceDisplayMode)?TRgb::Gray16(Fade16(col)):FadeRgb(TRgb::Gray16(col));
-#ifdef TEST_GRAPHICS_WSERV_TAUTOSERVER_NONNGA
- 		retVal = CheckBlankWindow(testArea,fadedColor,TheClient->iScreen);
-#else
-		retVal = LossyCheckBlankWindow(*TheClient->iScreen, *iTestWinCopy, windowRect, fadedColor);
-#endif
-		TEST(retVal);
-		if (!retVal)
-			INFO_PRINTF3(_L("LossyCheckBlankWindow(*TheClient->iScreen, *iTestWinCopy, windowRect, fadedColor) return value - Expected: %d, Actual: %d"), ETrue, retVal);		
-
- 		blankWin->SetVisible(ETrue);
-		iBlankWin->BaseWin()->SetFaded(EFalse,RWindowTreeNode::EFadeWindowOnly);
-		blankWin->SetVisible(EFalse);
-		TheClient->iWs.Finish();
-		retVal = CheckBlankWindow(testArea,TRgb::Gray16(col),TheClient->iScreen);
-		TEST(retVal);
-		if (!retVal)
-			INFO_PRINTF3(_L("CheckBlankWindow(testArea,TRgb::Gray16(col),TheClient->iScreen) return value - Expected: %d, Actual: %d"), ETrue, retVal);		
-
- 		blankWin->SetVisible(ETrue);
-		iBlankWin->SetPos(iWindowRect.iTl+TPoint(15,-15));
-		iBlankWin->BaseWin()->SetFaded(ETrue,RWindowTreeNode::EFadeWindowOnly);
-		blankWin->SetVisible(EFalse);
-		iBlankWin->SetPos(iWindowRect.iTl);
-		fadedColor=MODE_LT_64K(iDeviceDisplayMode)?TRgb::Gray16(Fade16(col)):FadeRgb(TRgb::Gray16(col));
-		TheClient->iWs.Finish();
-#ifdef TEST_GRAPHICS_WSERV_TAUTOSERVER_NONNGA
-		retVal = CheckBlankWindow(testArea,fadedColor,TheClient->iScreen);
-#else
-		retVal = LossyCheckBlankWindow(*TheClient->iScreen, *iTestWinCopy, windowRect, fadedColor);
-#endif
-		TEST(retVal);
-		if (!retVal)
-			INFO_PRINTF3(_L("LossyCheckBlankWindow(*TheClient->iScreen, *iTestWinCopy, windowRect, fadedColor) return value - Expected: %d, Actual: %d"), ETrue, retVal);		
-
- 		blankWin->SetVisible(ETrue);
-		iBlankWin->SetPos(iWindowRect.iTl+TPoint(15,-15));
-		iBlankWin->BaseWin()->SetFaded(EFalse,RWindowTreeNode::EFadeWindowOnly);
-		blankWin->SetVisible(EFalse);
-		iBlankWin->SetPos(iWindowRect.iTl);
-		TheClient->iWs.Finish();
- 		retVal = CheckBlankWindow(testArea,TRgb::Gray16(col),TheClient->iScreen);
-		TEST(retVal);
-		if (!retVal)
-			INFO_PRINTF3(_L("CheckBlankWindow(testArea,TRgb::Gray16(col),TheClient->iScreen) return value - Expected: %d, Actual: %d"), ETrue, retVal);		
-
-		blankWin->SetVisible(ETrue);
-		}
-	delete blankWin;
-	}
-
-void CTFade::TestStrips(TRect aRect,TInt aHeight,TInt aNumNotFaded,TBool aInvert/*=EFalse*/)
-	{
-	TBool isFaded;
-	TInt ii;
-	TRgb col;
-	for (ii=0;ii<16;++ii)
-		{
-		isFaded=((!aInvert)==(!(ii<aNumNotFaded)));
-		if (isFaded)
-			col=MODE_LT_64K(iDeviceDisplayMode)?TRgb::Gray16(Fade16(ii)):FadeRgb(TRgb::Gray16(ii));
-		else
-			col=TRgb::Gray16(ii);
-#ifdef TEST_GRAPHICS_WSERV_TAUTOSERVER_NONNGA
-		TBool retVal = CheckBlankWindow(aRect,col,TheClient->iScreen);
-#else
-		TBool retVal = LossyCheckBlankWindow(*TheClient->iScreen, *iTestWinCopy, aRect, col);
-#endif
-		TEST(retVal);
-		if (!retVal)
-			INFO_PRINTF3(_L("CheckBlankWindow(aRect,col,TheClient->iScreen) return value - Expected: %d, Actual: %d"), ETrue, retVal);		
-
-		aRect.Move(0,aHeight);
-		}
-	}
-
-void CTFade::FadeChildrenL()
-	{
-	if (MaxGrays()==0 && MaxColors()<256)
-		return;
-	
-	TInt retVal;
-	TBool retBool;
-
-	__ASSERT_ALWAYS(iBlankWin,AutoPanic(EAutoFadeWindow));
-	iBlankWin->BaseWin()->SetRequiredDisplayMode(EGray16);
-	iBlankWin->SetColor(TRgb::Gray16(0));
-	CTBlankWindow* win[16];
-	win[0]=iBlankWin;
-	TRect rect(iTestWinSize);
-	TInt height=iTestWinSize.iHeight/16;
-	rect.iTl.iY=height;
-	TInt ii;
-	for (ii=1;ii<16;++ii)		//Causes memory leakage under OOM
-		{
-		win[ii]=new(ELeave) CTBlankWindow();
-		win[ii]->SetUpL(rect.iTl,rect.Size(),win[ii-1],*TheClient->iGc);
-		win[ii]->BaseWin()->SetRequiredDisplayMode(EGray16);
-		win[ii]->SetColor(TRgb::Gray16(ii));
-		rect.iBr.iY-=height;
-		}
-	rect=iWindowRect;
-	rect.SetHeight(height);
-#if defined(SMALL_RECTS)
-	TSize size(rect.Size());
-	size.iWidth=Min(SIZE_X,size.iWidth);
-	size.iHeight=Min(SIZE_Y,size.iHeight);
-	rect.SetSize(size);
-#endif
-	for (ii=0;ii<15;++ii)
-		{
-		win[ii]->WinTreeNode()->SetFaded(ETrue,RWindowTreeNode::EFadeIncludeChildren);
-		retVal = win[ii]->BaseWin()->IsFaded();
-		TEST(retVal==1);
-		if (retVal!=1)
-			INFO_PRINTF3(_L("win[ii]->BaseWin()->IsFaded() return value - Expected: %d, Actual: %d"), 1, retVal);		
-
-		TestStrips(rect,height,ii);
-		win[ii]->WinTreeNode()->SetFaded(EFalse,RWindowTreeNode::EFadeIncludeChildren);
-		retBool = !win[ii]->BaseWin()->IsFaded();
-		TEST(retBool);
-		if (!retBool)
-			INFO_PRINTF3(_L("!win[ii]->BaseWin()->IsFaded() return value - Expected: %d, Actual: %d"), ETrue, retBool);		
-
-		TestStrips(rect,height,16);
-		}
-	TheClient->iGroup->WinTreeNode()->SetFaded(ETrue,RWindowTreeNode::EFadeIncludeChildren);
-	TestStrips(rect,height,0);
-	TheClient->iGroup->WinTreeNode()->SetFaded(EFalse,RWindowTreeNode::EFadeIncludeChildren);
-	TestStrips(rect,height,16);
-	for (ii=0;ii<16;++ii)
-		{
-		win[ii]->BaseWin()->FadeBehind(ETrue);
-		retBool = !win[ii]->BaseWin()->IsFaded();
-		TEST(retBool);
-		if (!retBool)
-			INFO_PRINTF3(_L("!win[ii]->BaseWin()->IsFaded() return value - Expected: %d, Actual: %d"), ETrue, retBool);		
-
-		retVal = win[0]->BaseWin()->IsFaded();
-		TEST(retVal==(ii>0));
-		if (retVal!=(ii>0))
-			INFO_PRINTF3(_L("win[0]->BaseWin()->IsFaded() return value - Expected: %d, Actual: %d"), (ii>0), retVal);		
-
-		TestStrips(rect,height,ii,ETrue);
-		win[ii]->BaseWin()->FadeBehind(EFalse);
-		TestStrips(rect,height,16);
-		}
-	iBlankWin->WinTreeNode()->SetFaded(ETrue,RWindowTreeNode::EFadeIncludeChildren);
-	TestStrips(rect,height,0);
-	iBlankWin->WinTreeNode()->SetNonFading(ETrue);
-	TestStrips(rect,height,16);
-	win[8]->WinTreeNode()->SetNonFading(EFalse);
-	TestStrips(rect,height,8);
-	iBlankWin->WinTreeNode()->SetNonFading(EFalse);
-	TestStrips(rect,height,0);
-	iBlankWin->WinTreeNode()->SetFaded(EFalse,RWindowTreeNode::EFadeIncludeChildren);
-	TestStrips(rect,height,16);
-	win[8]->WinTreeNode()->SetNonFading(ETrue);
-	TestStrips(rect,height,16);
-	iBlankWin->WinTreeNode()->SetFaded(ETrue,RWindowTreeNode::EFadeIncludeChildren);
-	TestStrips(rect,height,8,ETrue);
-	win[8]->WinTreeNode()->SetNonFading(EFalse);
-	TestStrips(rect,height,0);
-	iBlankWin->WinTreeNode()->SetFaded(EFalse,RWindowTreeNode::EFadeIncludeChildren);
-	TestStrips(rect,height,16);
-	for (ii=15;ii>0;--ii)
-		delete win[ii];
-	}
-
-static void ResetAndDestroyWindows(TAny* aPtr)
-	{
-	RPointerArray<CTBlankWindow>& win = *(static_cast<RPointerArray<CTBlankWindow>*>(aPtr));
-	win.Remove(0);
-	win.ResetAndDestroy();
-	win.Close();
-	}
-
-void CTFade::FadeChildrenAfterNewChildIsCreatedL()
-	{
-	if (MaxGrays()==0 && MaxColors()<256)
-		return;
-	
-	TBool retBool;
-	TInt retVal;
-
-	__ASSERT_ALWAYS(iBlankWin,AutoPanic(EAutoFadeWindow));
-	iBlankWin->BaseWin()->SetRequiredDisplayMode(iFadeDrawMode);
-	iBlankWin->SetColor(TRgb::Gray16(0));
-	RPointerArray<CTBlankWindow> win;
-	CleanupStack::PushL(TCleanupItem(ResetAndDestroyWindows, &win));
-	TInt height=iTestWinSize.iHeight/NUMBER_OF_WINDOWS;
-	CTBlankWindow* window=NULL;
-	TInt ii;
-	for (TInt firstLoop=0;firstLoop<NUMBER_OF_WINDOWS-1;)
-		{
-		win.ResetAndDestroy();
-		TheClient->iGroup->WinTreeNode()->SetFaded(ETrue,RWindowTreeNode::EFadeIncludeChildren);
-		TRect rect(iTestWinSize);
-		rect.iTl.iY=height;
-		CTBlankWindow* parent=iBlankWin;
-		for (TInt secondLoop=0;secondLoop<=firstLoop;)
-			{
-			window=new(ELeave) CTBlankWindow();
-			CleanupStack::PushL(window);
-			User::LeaveIfError(win.Append(window));
-			CleanupStack::Pop(window);
-			window->SetUpL(rect.iTl,rect.Size(),parent,*TheClient->iGc);
-			window->BaseWin()->SetRequiredDisplayMode(iFadeDrawMode);
-			window->SetColor(TRgb::Gray16(++secondLoop));
-			rect.iBr.iY-=height;
-			parent=window;
-			retBool = window->BaseWin()->IsFaded();
-			TEST(retBool);
-			if (!retBool)
-				INFO_PRINTF3(_L("window->BaseWin()->IsFaded() return value - Expected: %d, Actual: %d"), ETrue, retBool);		
-
-			}
-		++firstLoop;
-		TheClient->iGroup->WinTreeNode()->SetFaded(EFalse,RWindowTreeNode::EFadeIncludeChildren);
-		const TInt count=win.Count();
-		for(TInt index=0;index<count;++index)
-			{
-			retBool = win[index]->BaseWin()->IsFaded();
-			TEST(!retBool);
-			if (retBool)
-				INFO_PRINTF3(_L("win[index]->BaseWin()->IsFaded return value - Expected: %d, Actual: %d"), EFalse, retBool);		
-
-			}
-		}
-	User::LeaveIfError(win.Insert(iBlankWin,0));
-	TRect testRect=iWindowRect;
-	testRect.SetHeight(height);
-#if defined(SMALL_RECTS)
-	TSize size(testRect.Size());
-	size.iWidth=Min(SIZE_X,size.iWidth);
-	size.iHeight=Min(SIZE_Y,size.iHeight);
-	testRect.SetSize(size);
-#endif
-	for (ii=0;ii<NUMBER_OF_WINDOWS;++ii)
-		{
-		win[ii]->WinTreeNode()->SetFaded(ETrue,RWindowTreeNode::EFadeIncludeChildren);
-		retVal = win[ii]->BaseWin()->IsFaded();
-		TEST(retVal==1);
-		if (retVal!=1)
-			INFO_PRINTF3(_L("win[index]->BaseWin()->IsFaded return value - Expected: %d, Actual: %d"), 1, retVal);		
-
-		TestStrips(testRect,height,ii);
-		win[ii]->WinTreeNode()->SetFaded(EFalse,RWindowTreeNode::EFadeIncludeChildren);
-		retBool = !win[ii]->BaseWin()->IsFaded();
-		TEST(retBool);
-		if (!retBool)
-			INFO_PRINTF3(_L("!win[ii]->BaseWin()->IsFaded() return value - Expected: %d, Actual: %d"), EFalse, retBool);		
-
-		TestStrips(testRect,height,NUMBER_OF_WINDOWS);
-		}
-	TheClient->iGroup->WinTreeNode()->SetFaded(ETrue,RWindowTreeNode::EFadeIncludeChildren);
-	TestStrips(testRect,height,0);
-	TheClient->iGroup->WinTreeNode()->SetFaded(EFalse,RWindowTreeNode::EFadeIncludeChildren);
-	TestStrips(testRect,height,16);
-	for (ii=0;ii<NUMBER_OF_WINDOWS;++ii)
-		{
-		win[ii]->BaseWin()->FadeBehind(ETrue);
-		retBool = !win[ii]->BaseWin()->IsFaded();
-		TEST(retBool);
-		if (!retBool)
-			INFO_PRINTF3(_L("!win[ii]->BaseWin()->IsFaded() return value - Expected: %d, Actual: %d"), EFalse, retBool);		
-		
-		retVal = win[0]->BaseWin()->IsFaded();
-		TEST(retVal==(ii>0));
-		if (retVal!=(ii>0))
-			INFO_PRINTF3(_L("win[index]->BaseWin()->IsFaded return value - Expected: %d, Actual: %d"), (ii>0), retVal);		
-
-		TestStrips(testRect,height,ii,ETrue);
-		win[ii]->BaseWin()->FadeBehind(EFalse);
-		TestStrips(testRect,height,NUMBER_OF_WINDOWS);
-		}
-	iBlankWin->WinTreeNode()->SetFaded(ETrue,RWindowTreeNode::EFadeIncludeChildren);
-	TestStrips(testRect,height,0);
-	iBlankWin->WinTreeNode()->SetNonFading(ETrue);
-	TestStrips(testRect,height,NUMBER_OF_WINDOWS);
-	win[8]->WinTreeNode()->SetNonFading(EFalse);
-	TestStrips(testRect,height,NUMBER_OF_WINDOWS/2);
-	iBlankWin->WinTreeNode()->SetNonFading(EFalse);
-	TestStrips(testRect,height,0);
-	iBlankWin->WinTreeNode()->SetFaded(EFalse,RWindowTreeNode::EFadeIncludeChildren);
-	TestStrips(testRect,height,NUMBER_OF_WINDOWS);
-	win[8]->WinTreeNode()->SetNonFading(ETrue);
-	TestStrips(testRect,height,NUMBER_OF_WINDOWS);
-	iBlankWin->WinTreeNode()->SetFaded(ETrue,RWindowTreeNode::EFadeIncludeChildren);
-	TestStrips(testRect,height,NUMBER_OF_WINDOWS/2,ETrue);
-	win[8]->WinTreeNode()->SetNonFading(EFalse);
-	TestStrips(testRect,height,0);
-	iBlankWin->WinTreeNode()->SetFaded(EFalse,RWindowTreeNode::EFadeIncludeChildren);
-	TestStrips(testRect,height,NUMBER_OF_WINDOWS);
-
-	CleanupStack::PopAndDestroy(&win);
-	}
-
-void CTFade::TestBlocks(TRect aRect,TSize aSize,TInt aNumNotFaded,TBool aInvert/*=EFalse*/)
-	{
-	TInt count=0;
-	TInt ii,jj;
-	TRgb col;
-	for (ii=0;ii<4;++ii)
-		{
-		for (jj=0;jj<4;++jj)
-			{
-			if ((!aInvert)!=(!(count<aNumNotFaded)))
-				col=TRgb::Gray16(count);
-			else
-				{
-				col = TRgb::Gray16(count);
-				col = MODE_LT_64K(iDeviceDisplayMode)?TRgb::Gray16(Fade16(count)):FadeRgb(col);
-				}
-#ifdef TEST_GRAPHICS_WSERV_TAUTOSERVER_NONNGA
-			TBool retBool = CheckBlankWindow(aRect,col,TheClient->iScreen);
-#else
-			TBool retBool = LossyCheckBlankWindow(*TheClient->iScreen, *iTestWinCopy, aRect, col);
-#endif
-			TEST(retBool);
-			if (!retBool)
-				INFO_PRINTF3(_L("CheckBlankWindow(aRect,col,TheClient->iScreen) return value - Expected: %d, Actual: %d"), EFalse, retBool);		
-	
-			aRect.Move(0,aSize.iHeight);
-			count++;
-			}
-		aRect.Move(aSize.iWidth,-jj*aSize.iHeight);
-		}
-	}
-
-void CTFade::FadeBehindL()
-	{
-	if (MaxGrays()==0 && MaxColors()<256)
-		return;
-	
-	TBool retBool;
-	TInt retVal;
-
-	__ASSERT_ALWAYS(iBlankWin,AutoPanic(EAutoFadeWindow));
-	iBlankWin->BaseWin()->SetRequiredDisplayMode(EGray16);
-	iBlankWin->SetColor(TRgb::Gray16(0));
-	CTBlankWindow* win[4][4];
-	win[0][0]=iBlankWin;
-	TSize size=iTestWinSize;
-	TInt height=iTestWinSize.iHeight/4;
-	TInt width=iTestWinSize.iWidth/4;
-	TRect rect(iWindowRect.iTl,TSize(width,height));
-	TSize rectSize(rect.Size());
-	TPoint offset(0,height);
-	TPoint topLeft;
-	TInt ii,jj;
-	CTWinBase* parent;
-#if defined(SMALL_RECTS)
-	TSize rSize(rectSize);
-	rSize.iWidth=Min(SIZE_X,rSize.iWidth);
-	rSize.iHeight=Min(SIZE_Y,rSize.iHeight);
-	rect.SetSize(rSize);
-#endif
-	for (ii=0;ii<4;++ii)		//Causes memory leakage under OOM
-		{
-		parent=TheClient->iGroup;
-		topLeft=iWindowRect.iTl+TPoint(ii*width,0);
-		size.iHeight=iTestWinSize.iHeight;
-		for (jj=0;jj<4;++jj)
-			{
-			if (ii+jj>0)
-				{
-				win[ii][jj]=new(ELeave) CTBlankWindow();
-				win[ii][jj]->SetUpL(topLeft,size,parent,*TheClient->iGc);
-				win[ii][jj]->BaseWin()->SetRequiredDisplayMode(EGray16);
-				win[ii][jj]->SetColor(TRgb::Gray16(4*ii+jj));
-				}
-			size.iHeight-=height;
-			topLeft=offset;
-			parent=win[ii][jj];
-			}
-		size.iWidth-=width;
-		}
-	for (ii=0;ii<4;++ii)
-		{
-		for (jj=0;jj<4;++jj)
-			{
-			win[ii][jj]->BaseWin()->FadeBehind(ETrue);
-			retVal = win[0][0]->BaseWin()->IsFaded();
-			TEST(retVal==(ii>0||jj>0));
-			if (retVal!=(ii>0||jj>0))
-				INFO_PRINTF3(_L("win[0][0]->BaseWin()->IsFaded() return value - Expected: %d, Actual: %d"), (ii>0||jj>0), retVal);		
-
-			retBool = !win[ii][jj]->BaseWin()->IsFaded();
-			TEST(retBool);
-			if (!retBool)
-				INFO_PRINTF3(_L("!win[ii][jj]->BaseWin()->IsFaded() return value - Expected: %d, Actual: %d"), ETrue, retBool);		
-
-			TestBlocks(rect,rectSize,4*ii+jj,ETrue);
-			win[ii][jj]->BaseWin()->FadeBehind(EFalse);
-			TestBlocks(rect,rectSize,16);
-			}
-		}
-   	for (ii=0;ii<4;++ii)
-		{
-		for (jj=0;jj<4;++jj)
-			{
-			win[ii][jj]->BaseWin()->FadeBehind(ETrue);
-			TestBlocks(rect,rectSize,4*ii+jj,ETrue);
-			}
-		retVal = win[ii][0]->BaseWin()->IsFaded();
-		TEST(retVal==3);
-		if (retVal!=3)
-			INFO_PRINTF3(_L("win[ii][0]->BaseWin()->IsFaded() return value - Expected: %d, Actual: %d"), 3, retVal);		
-		}
-   	for (ii=3;ii>=0;--ii)
-		{
-		retVal = win[ii][0]->BaseWin()->IsFaded();
-		TEST(retVal==3);
-		if (retVal!=3)
-			INFO_PRINTF3(_L("win[ii][0]->BaseWin()->IsFaded() return value - Expected: %d, Actual: %d"), 3, retVal);		
-
-		for (jj=3;jj>=0;--jj)
-			{
-			TestBlocks(rect,rectSize,4*ii+jj,ETrue);
-			win[ii][jj]->BaseWin()->FadeBehind(EFalse);
-			}
-		}
- 	TestBlocks(rect,rectSize,0,ETrue);
-   	for (ii=0;ii<4;++ii)
-		{
-		for (jj=0;jj<4;++jj)
-			{
-			win[ii][jj]->BaseWin()->FadeBehind(ETrue);
-			}
-		}
-	TInt fadeCount;
-   	for (ii=0;ii<4;++ii)
-		{
-		for (jj=0;jj<4;++jj)
-			{
-			fadeCount=15-(4*ii+jj);
-			retVal = win[0][0]->BaseWin()->IsFaded();
-			TEST(retVal==Min(15,fadeCount+1));
-			if (retVal!=Min(15,fadeCount+1))
-				INFO_PRINTF3(_L("win[0][0]->BaseWin()->IsFaded() return value - Expected: %d, Actual: %d"), Min(15,fadeCount+1), retVal);		
-
-			retVal = win[ii][jj]->BaseWin()->IsFaded();
-			TEST(retVal==Max(0,fadeCount));
-			if (retVal!=Max(0,fadeCount))
-				INFO_PRINTF3(_L("win[ii][jj]->BaseWin()->IsFaded() return value - Expected: %d, Actual: %d"), Max(0,fadeCount), retVal);		
-
-			TestBlocks(rect,rectSize,15,ETrue);
-			win[ii][jj]->BaseWin()->FadeBehind(EFalse);
-			retVal = win[ii][jj]->BaseWin()->IsFaded();
-			TEST(retVal==Max(0,fadeCount));
-			if (retVal!=Max(0,fadeCount))
-				INFO_PRINTF3(_L("win[ii][jj]->BaseWin()->IsFaded() return value - Expected: %d, Actual: %d"), Max(0,fadeCount), retVal);		
-
-			}
-		}
- 	TestBlocks(rect,rectSize,0,ETrue);
-	if (Fade16(15)==15)			
-		{
-		win[3][3]->BaseWin()->FadeBehind(ETrue);		//All faded as the only unfaded one is white
-		for (ii=3;ii>=0;--ii)
-			{
-			retVal = win[ii][0]->BaseWin()->IsFaded();
-			TEST(retVal==1);
-			if (retVal!=1)
-				INFO_PRINTF3(_L("win[ii][0]->BaseWin()->IsFaded() return value - Expected: %d, Actual: %d"), 1, retVal);		
-
-			retBool = !win[ii][1]->BaseWin()->IsNonFading();
-			TEST(retBool);
-			if (!retBool)
-				INFO_PRINTF3(_L("!win[ii][1]->BaseWin()->IsNonFading() return value - Expected: %d, Actual: %d"), ETrue, retBool);		
-
-			win[ii][0]->WinTreeNode()->SetNonFading(ETrue);
-			retBool = win[ii][1]->BaseWin()->IsNonFading();
-			TEST(retBool);
-			if (!retBool)
-				INFO_PRINTF3(_L("win[ii][1]->BaseWin()->IsNonFading() return value - Expected: %d, Actual: %d"), ETrue, retBool);		
-
-			TestBlocks(rect,rectSize,4*ii,ETrue);
-			}
-		for (ii=3;ii>=0;--ii)
-			{
-			retVal = win[ii][0]->BaseWin()->IsFaded();
-			TEST(retVal==1);
-			if (retVal!=1)
-				INFO_PRINTF3(_L("win[ii][0]->BaseWin()->IsFaded() return value - Expected: %d, Actual: %d"), 1, retVal);		
-			
-			retBool = win[ii][1]->BaseWin()->IsNonFading();
-			TEST(retBool);
-			if (!retBool)
-				INFO_PRINTF3(_L("win[ii][1]->BaseWin()->IsNonFading() return value - Expected: %d, Actual: %d"), ETrue, retBool);		
-
-			win[ii][0]->WinTreeNode()->SetNonFading(EFalse);
-			retBool = !win[ii][1]->BaseWin()->IsNonFading();
-			TEST(retBool);
-			if (!retBool)
-				INFO_PRINTF3(_L("win[ii][1]->BaseWin()->IsNonFading() return value - Expected: %d, Actual: %d"), ETrue, retBool);		
-
-			TestBlocks(rect,rectSize,4*ii);
-			}
-		win[3][3]->BaseWin()->FadeBehind(EFalse);
-		}
-	for (ii=3;ii>=0;--ii)
-		{
-		for (jj=3;jj>=0;--jj)
-			{
-			if (ii+jj>0)
-				delete win[ii][jj];
-			}
-		}
-	}
-
-void CTFade::ColorTest2()
-	{
-#if defined(__MARM__)
-	return;
-#else
-	__ASSERT_ALWAYS(iBlankWin,AutoPanic(EAutoFadeWindow));
-	TSize size=iTestWinSize;
-#if defined(SMALL_RECTS)
-	size.iWidth=Min(SIZE_X,size.iWidth);
-	size.iHeight=Min(SIZE_Y,size.iHeight);
-#endif
-	if (MaxGrays()==0 && MaxColors()<256)
-		return;
-	TRect windowRect(iBlankWin->BaseWin()->InquireOffset(*TheClient->iGroup->WinTreeNode()),size);
-	TUint8 bm;
-	TUint8 wm;
-	TInt test=0;
-	TInt ii;
-	FOREVER
-		{
-		TInt fadeMapFactor = 0;
-		TInt fadeMapOffset = 0;
-
-		switch (test)
-			{
-		case 0:			//Nothing
-			bm=0;
-			wm=15;
-			break;
-		case 1:			//Shadowing or Quartz fading
-			bm=0;
-			wm=7;
-#ifdef TEST_GRAPHICS_WSERV_TAUTOSERVER_NONNGA
-			TheClient->iWs.SetDefaultFadingParameters(0,127);
-			fadeMapFactor = 128;
-#else
-			TheClient->iWs.SetDefaultFadingParameters(STATIC_CAST(TUint8,bm*17),127);
-			fadeMapFactor = 127-STATIC_CAST(TUint8,bm*17);
-#endif
-			break;
-		default:
-			TheClient->iWs.SetDefaultFadingParameters(BLACK_NORMAL,WHITE_NORMAL);
-			return;
-			}
-		if (wm!=7)
-			{
-			fadeMapOffset = STATIC_CAST(TUint8,bm*17);
-			fadeMapFactor = STATIC_CAST(TUint8,wm*17) - fadeMapOffset;
-			TheClient->iWs.SetDefaultFadingParameters(STATIC_CAST(TUint8,bm*17),STATIC_CAST(TUint8,wm*17));
-			}
-
-		for (ii=0;ii<16;ii+=5)
-			{
-			iBlankWin->SetColor(TRgb::Gray16(ii));
-			ViewDelay();
-#ifdef TEST_GRAPHICS_WSERV_TAUTOSERVER_NONNGA
-			TBool retBool=CheckBlankWindow(windowRect,TRgb::Gray16(ii),TheClient->iScreen);
-#else
-			TBool retBool = LossyCheckBlankWindow(*TheClient->iScreen, *iTestWinCopy, windowRect, TRgb::Gray16(ii));
-#endif
-			TEST(retBool);
-			if (!retBool)
-				{
-				_LIT(KLog,"Setting color on blank window failed  mappings=%d  color=%d");
-				LOG_MESSAGE3(KLog,test,ii);
-				}
-			iBlankWin->BaseWin()->SetFaded(ETrue,RWindowTreeNode::EFadeWindowOnly);
-			ViewDelay();
-		
-			TRgb col1 = FadeRgb(TRgb::Gray16(ii), fadeMapFactor, fadeMapOffset);
-#ifdef TEST_GRAPHICS_WSERV_TAUTOSERVER_NONNGA
-			retBool=CheckBlankWindow(windowRect,col1,TheClient->iScreen);
-#else
-			retBool = LossyCheckBlankWindow(*TheClient->iScreen, *iTestWinCopy, windowRect, col1);
-#endif
-			TEST(retBool);
-			if (!retBool)
-				{
-				_LIT(KLog,"Fading the window gave wrong color  mappings=%d  color=%d");
-				LOG_MESSAGE3(KLog,test,ii);
-				}
-			iBlankWin->BaseWin()->SetFaded(EFalse,RWindowTreeNode::EFadeWindowOnly);
-			ViewDelay();
-#ifdef TEST_GRAPHICS_WSERV_TAUTOSERVER_NONNGA
-			retBool=CheckBlankWindow(windowRect,TRgb::Gray16(ii),TheClient->iScreen);
-#else
-			retBool = LossyCheckBlankWindow(*TheClient->iScreen, *iTestWinCopy, windowRect, TRgb::Gray16(ii));
-#endif
-			TEST(retBool);
-			if (!retBool)
-				{
-				_LIT(KLog,"Unfading the window gave wrong color  mappings=%d  color=%d");
-				LOG_MESSAGE3(KLog,test,ii);
-				}
-			}
-		++test;
-		}
-#endif	//__MARM__
-	}
-
-void CTFade::FadeTest()
-	{
-#if defined(__MARM__)
-	return;
-#else
-	__ASSERT_ALWAYS(iBlankWin,AutoPanic(EAutoFadeWindow));
-	TSize size=iTestWinSize;
-#if defined(SMALL_RECTS)
-	size.iWidth=Min(SIZE_X,size.iWidth);
-	size.iHeight=Min(SIZE_Y,size.iHeight);
-#endif
-	if (MaxGrays()==0 && MaxColors()<256)
-		return;
-	TRect windowRect(iBlankWin->BaseWin()->InquireOffset(*TheClient->iGroup->WinTreeNode()),size);
-	TUint8 bm;
-	TUint8 wm;
-	TUint8 fb;
-	TUint8 fw;
-	TInt test=0;
-	TInt ii;
-	FOREVER
-		{
-		TInt fadeMapFactor = 0;
-		TInt fadeMapOffset = 0;
-		fw=0;
-		switch (test)
-			{
-			case 0:			//Nothing
-				bm=0;
-				wm=15;
-				break;
-			case 1:			//Shadowing or Quartz fading
-
-			bm=0;
-			wm=7;
-			fw=127;
-			break;
-		default:
-			return;
-			}
-		fb=STATIC_CAST(TUint8,17*bm);
-		if (!fw)
-			fw=STATIC_CAST(TUint8,17*wm);
-		fadeMapFactor = fw - fb;
-		fadeMapOffset = fb;
-		for (ii=0;ii<16;ii+=5)
-			{
-			iBlankWin->SetColor(TRgb::Gray16(ii));
-			ViewDelay();
-#ifdef TEST_GRAPHICS_WSERV_TAUTOSERVER_NONNGA
-			TBool retBool = CheckBlankWindow(windowRect,TRgb::Gray16(ii),TheClient->iScreen);
-#else
-			TBool retBool = LossyCheckBlankWindow(*TheClient->iScreen, *iTestWinCopy, windowRect, TRgb::Gray16(ii));
-#endif
-			TEST(retBool);
-			if (!retBool)
-				INFO_PRINTF3(_L("CheckBlankWindow(windowRect,TRgb::Gray16(ii),TheClient->iScreen) return value - Expected: %d, Actual: %d"), ETrue, retBool);
-	
-			TRgb col3 = TRgb::Gray16(ii).Internal();
-			TRgb col1 = FadeRgb(col3, fadeMapFactor, fadeMapOffset);
-			iBlankWin->BaseWin()->SetFaded(ETrue,RWindowTreeNode::EFadeWindowOnly,fb,fw);
-			ViewDelay();
-#ifdef TEST_GRAPHICS_WSERV_TAUTOSERVER_NONNGA
-			retBool = CheckBlankWindow(windowRect,col1,TheClient->iScreen);
-#else
-			retBool = LossyCheckBlankWindow(*TheClient->iScreen, *iTestWinCopy, windowRect, col1);
-#endif
-			TEST(retBool);
-			if (!retBool)
-				INFO_PRINTF3(_L("CheckBlankWindow(windowRect,TRgb::Gray16((ii*wb+add)/15),TheClient->iScreen) return value - Expected: %d, Actual: %d"), ETrue, retBool);
-	
-			iBlankWin->BaseWin()->SetFaded(EFalse,RWindowTreeNode::EFadeWindowOnly);
-			ViewDelay();
-#ifdef TEST_GRAPHICS_WSERV_TAUTOSERVER_NONNGA			
-			retBool = CheckBlankWindow(windowRect,TRgb::Gray16(ii),TheClient->iScreen);
-#else
-			retBool = LossyCheckBlankWindow(*TheClient->iScreen, *iTestWinCopy, windowRect, TRgb::Gray16(ii));
-#endif
-			TEST(retBool);
-			if (!retBool)
-				INFO_PRINTF3(_L("CheckBlankWindow(windowRect,TRgb::Gray16(ii),TheClient->iScreen) return value - Expected: %d, Actual: %d"), ETrue, retBool);
-
-			}
-		++test;
-		}
-#endif	//__MARM__
-	}
-
-void CTFade::Draw(TBool aAlternativeFade/*=EFalse*/)
-	{
-	__ASSERT_ALWAYS(iWin,AutoPanic(EAutoFadeWindow));
-	TRgb grey=TRgb::Gray4(2);
-	Draw(0,&grey,aAlternativeFade);
-	Draw(1,NULL,aAlternativeFade);
-	iContent=1;
-	CompareWithBitmap(EFalse);
-	if (aAlternativeFade)
-		iWin->WinTreeNode()->SetFaded(ETrue,RWindowTreeNode::EFadeWindowOnly,BLACK_ALTERNATE,WHITE_ALTERNATE);
-	else
-		iWin->WinTreeNode()->SetFaded(ETrue,RWindowTreeNode::EFadeWindowOnly);
-	CompareWithBitmap(ETrue);
-	Draw(3,NULL,aAlternativeFade);
-	iContent=2;
-	CompareWithBitmap(ETrue);
-	iWin->WinTreeNode()->SetFaded(EFalse,RWindowTreeNode::EFadeWindowOnly);
-	CompareWithBitmap(EFalse);
-	}
-
-#ifdef TEST_GRAPHICS_WSERV_TAUTOSERVER_NONNGA
-void CTFade::GCDraw()
-	{
-	__ASSERT_ALWAYS(iWin,AutoPanic(EAutoFadeWindow));
-	TRgb grey=TRgb::Gray4(2);
-	TInt ii;
-	GCDraw(0,&grey);
-	GCDraw(3,NULL);
-	for (ii=3;ii<70;ii+=13)
-		GCDraw(2,&ii);
-	iContent=6;
-	CompareWindows();
-	GCDraw(0,&grey,ETrue);
-	GCDraw(3,NULL,ETrue);
-	for (ii=3;ii<70;ii+=13)
-		GCDraw(2,&ii,ETrue);
-	GCDraw(1,NULL,ETrue);
-	iContent=7;
-	CompareWindows(ETrue);
-	}
-#endif // TEST_GRAPHICS_WSERV_TAUTOSERVER_NONNGA
-
-void CTFade::ObscuredL()
-	{
-	CTBlankWindow* blankWin=new(ELeave) CTBlankWindow();
-	TRect windowRect(iWindowRect);
-	windowRect.Shrink(30,30);
-	blankWin->SetUpL(windowRect.iTl,windowRect.Size(),TheClient->iGroup,*TheClient->iGc);
-
-	__ASSERT_ALWAYS(iWin,AutoPanic(EAutoFadeWindow));
-	TRgb grey=TRgb::Gray4(2);
-	Draw(0,&grey);
-	Draw(3,NULL);
-	iContent=3;
- 	iWin->WinTreeNode()->SetFaded(ETrue,RWindowTreeNode::EFadeWindowOnly);
-	blankWin->SetVisible(EFalse);
-	CompareWithBitmap(ETrue);
-	blankWin->SetVisible(ETrue);
-	grey=TRgb::Gray4(1);
-	Draw(0,&grey);
-	for (TInt ii=1;ii<37;ii+=7)
-		Draw(2,&ii);
-	iContent=4;
-	blankWin->SetVisible(EFalse);
-	CompareWithBitmap(ETrue);
-	blankWin->SetVisible(ETrue);
- 	iWin->WinTreeNode()->SetFaded(EFalse,RWindowTreeNode::EFadeWindowOnly);
- 	blankWin->SetVisible(EFalse);
-	CompareWithBitmap(EFalse);
-
-	delete blankWin;
-	}
-
-void CTFade::MovingL()
-	{
-	CTBlankWindow* blankWin=new(ELeave) CTBlankWindow();
-	TRect windowRect(iWindowRect);
-	windowRect.Shrink(40,40);
-	blankWin->SetUpL(windowRect.iTl,windowRect.Size(),TheClient->iGroup,*TheClient->iGc);
-
-	__ASSERT_ALWAYS(iWin,AutoPanic(EAutoFadeWindow));
-	TRgb grey=TRgb::Gray4(2);
-	Draw(0,&grey);
-	Draw(1,NULL);
-	for (TInt ii=2;ii<60;ii+=11)
-		Draw(2,&ii);
-	iContent=5;
-	blankWin->SetPos(windowRect.iTl+TPoint(25,-25));
- 	iWin->WinTreeNode()->SetFaded(ETrue,RWindowTreeNode::EFadeWindowOnly);
- 	blankWin->SetPos(windowRect.iTl+TPoint(10,25));
-	blankWin->SetVisible(EFalse);
-	CompareWithBitmap(ETrue);
-	blankWin->SetVisible(ETrue);
-	blankWin->SetPos(windowRect.iTl+TPoint(25,-25));
- 	iWin->WinTreeNode()->SetFaded(EFalse,RWindowTreeNode::EFadeWindowOnly);
-	blankWin->SetPos(windowRect.iTl+TPoint(-5,10));
- 	blankWin->SetVisible(EFalse);
-	CompareWithBitmap(EFalse);
-
-	delete blankWin;
-	}
-
-void CTFade::SystemFadeL()
-	{
-	if (MaxGrays()==0 && MaxColors()<256)
-		return;
-
-	CTBlankWindow* win[16];
-	TInt height=iTestWinSize.iHeight/16;
-	TRect rect(iWindowRect);
-	rect.SetHeight(height);
-	TInt ii;
-	for (ii=0;ii<16;++ii)		//Causes memory leakage under OOM
-		{
-		win[ii]=new(ELeave) CTBlankWindow();
-		win[ii]->SetUpL(rect.iTl,rect.Size(),TheClient->iGroup,*TheClient->iGc);
-		win[ii]->BaseWin()->SetRequiredDisplayMode(EGray16);
-		win[ii]->SetColor(TRgb::Gray16(ii));
-		rect.Move(0,height);
-		}
-	rect=iWindowRect;
-	rect.SetHeight(height);
-#if defined(SMALL_RECTS)
-	TSize size(rect.Size());
-	size.iWidth=Min(SIZE_X,size.iWidth);
-	size.iHeight=Min(SIZE_Y,size.iHeight);
-	rect.SetSize(size);
-#endif
-
-	TBool retBool;
-
-	// system fade on
-	TheClient->iWs.SetSystemFaded(ETrue);
-	for (ii=0;ii<16;++ii)
-		{
-		retBool = win[ii]->BaseWin()->IsFaded();
-		TEST(retBool);
-		if (!retBool)
-			INFO_PRINTF3(_L("win[ii]->BaseWin()->IsFaded() return value - Expected: %d, Actual: %d"), ETrue, retBool);
-		}
-	TestStrips(rect,height,0);
-
-	// system fade off
-	TheClient->iWs.SetSystemFaded(EFalse);
-	for (ii=0;ii<16;++ii)
-		{
-		retBool = !win[ii]->BaseWin()->IsFaded();
-		TEST(retBool);
-		if (!retBool)
-			INFO_PRINTF3(_L("!win[ii]->BaseWin()->IsFaded() return value - Expected: %d, Actual: %d"), ETrue, retBool);
-		}
-	TestStrips(rect,height,16);
-
-	// Now with half non fading
-	for (ii=8;ii<16;++ii)
-		win[ii]->WinTreeNode()->SetNonFading(ETrue);
-
-	// system fade on
-	TheClient->iWs.SetSystemFaded(ETrue);
-	TestStrips(rect,height,8,ETrue);
-
-	// system fade off
-	TheClient->iWs.SetSystemFaded(EFalse);
-	TestStrips(rect,height,16);
-
-	for (ii=0;ii<16;++ii)
-		delete win[ii];
-	}
-
-void CTFade::SystemAlternateFadeL()
-	{
-#if defined(__MARM__)
-	return;
-#else
-	__ASSERT_ALWAYS(iBlankWin,AutoPanic(EAutoFadeWindow));
-	TSize size=iTestWinSize;
-#if defined(SMALL_RECTS)
-	size.iWidth=Min(SIZE_X,size.iWidth);
-	size.iHeight=Min(SIZE_Y,size.iHeight);
-#endif
-	if (MaxGrays()==0 && MaxColors()<256)
-		return;
-	TRect windowRect(iBlankWin->BaseWin()->InquireOffset(*TheClient->iGroup->WinTreeNode()),size);
-	TUint8 bm;
-	TUint8 wm;
-	TUint8 fb;
-	TUint8 fw;
-	TInt wb;
-	TInt add;
-	TInt test=0;
-	TInt ii;
-	TBool retBool;
-	FOREVER
-		{
-		TInt fadeMapFactor = 0;
-		TInt fadeMapOffset = 0;
-		fw=0;
-		switch (test)
-			{
-			case 0:			//Nothing
-				bm=0;
-				wm=15;
-				break;
-			case 1:			//Shadowing or Quartz fading
-			bm=0;
-			wm=7;
-			fw=127;
-			break;
-		default:
-			return;
-			}
-		wb=wm-bm;
-		add=15*bm+7;
-		fb=STATIC_CAST(TUint8,17*bm);
-		if (!fw)
-			fw=STATIC_CAST(TUint8,17*wm);
-		fadeMapFactor = fw - fb;
-		fadeMapOffset = fb;
-		for (ii=0;ii<16;ii+=5)
-			{
-			iBlankWin->SetColor(TRgb::Gray16(ii));
-			ViewDelay();
-			TheClient->iWs.Finish();
-#ifdef TEST_GRAPHICS_WSERV_TAUTOSERVER_NONNGA
-			retBool = CheckBlankWindow(windowRect,TRgb::Gray16(ii),TheClient->iScreen);
-#else
-			retBool = LossyCheckBlankWindow(*TheClient->iScreen, *iTestWinCopy, windowRect, TRgb::Gray16(ii));
-#endif
-			TEST(retBool);
-			if (!retBool)
-				INFO_PRINTF3(_L("CheckBlankWindow(windowRect,TRgb::Gray16(ii),TheClient->iScreen) return value - Expected: %d, Actual: %d"), ETrue, retBool);
-
-			TheClient->iWs.SetSystemFaded(ETrue,fb,fw);
-			ViewDelay();
-
-			TRgb col3 = TRgb::Gray16(ii).Internal();
-			TRgb col1 = FadeRgb(col3, fadeMapFactor, fadeMapOffset);
-#ifdef TEST_GRAPHICS_WSERV_TAUTOSERVER_NONNGA
-			retBool = CheckBlankWindow(windowRect,col1,TheClient->iScreen);
-#else
-			retBool = LossyCheckBlankWindow(*TheClient->iScreen, *iTestWinCopy, windowRect, col1);
-#endif
-			TEST(retBool);
-			if (!retBool)
-				INFO_PRINTF3(_L("CheckBlankWindow(windowRect,TRgb::Gray16((ii*wb+add)/15),TheClient->iScreen) return value - Expected: %d, Actual: %d"), ETrue, retBool);
-
-			TheClient->iWs.SetSystemFaded(EFalse);
-			ViewDelay();
-#ifdef TEST_GRAPHICS_WSERV_TAUTOSERVER_NONNGA
-			retBool = CheckBlankWindow(windowRect,TRgb::Gray16(ii),TheClient->iScreen);
-#else
-			retBool = LossyCheckBlankWindow(*TheClient->iScreen, *iTestWinCopy, windowRect, TRgb::Gray16(ii));
-#endif
-			TEST(retBool);
-			if (!retBool)
-				INFO_PRINTF3(_L("CheckBlankWindow(windowRect,TRgb::Gray16(ii),TheClient->iScreen) return value - Expected: %d, Actual: %d"), ETrue, retBool);
-			}
-		++test;
-		}
-#endif	//__MARM__
-	}
-
-void CTFade::FadeBehindWhenMovedL()
-	{
-	__ASSERT_ALWAYS(iBlankWin,AutoPanic(EAutoFadeWindow));
-	TDisplayMode displayMode=iBlankWin->BaseWin()->DisplayMode();
-	iBlankWin->BaseWin()->SetRequiredDisplayMode(EGray16);
-	iBlankWin->SetColor(TRgb::Gray16(1));
-	TSize size(iTestWinSize.iHeight/4,iTestWinSize.iWidth/4);
-	CTBlankWindow* blankWinTemp=new(ELeave) CTBlankWindow();
-	CleanupStack::PushL(blankWinTemp);
-	blankWinTemp->SetUpL(TPoint(5,5),size,iBlankWin,*TheClient->iGc);
-	blankWinTemp->BaseWin()->SetRequiredDisplayMode(EGray16);
-	blankWinTemp->SetColor(TRgb::Gray16(15));
-	blankWinTemp->BaseWin()->FadeBehind(ETrue);
-	TheClient->Flush();
-	blankWinTemp->SetPos(TPoint(5,120));
-	//Check whether the back window is faded or not
-	TBool retBool = iBlankWin->BaseWin()->IsFaded();
-	TEST(retBool);
-	if (!retBool)
-		INFO_PRINTF3(_L("iBlankWin->BaseWin()->IsFaded() return value - Expected: %d, Actual: %d"), ETrue, retBool);
-
-#ifdef TEST_GRAPHICS_WSERV_TAUTOSERVER_NONNGA
-	CheckRect(iWindowRect.iTl+TPoint(5,5),iWindowRect.iTl+TPoint(75,5),size,_L("CTFade::FadeBehindWhenMovedL()"));
-#else
-	TInt res = LossyCompareWindow(*TheClient->iScreen, *iTestWinCopy, *iCheckWinCopy, TRect(iWindowRect.iTl+TPoint(75,5),size));
-	TEST(res);
-#endif
-	
-	//Check whether the area behind the moved window and any other area on same window are identical
-	blankWinTemp->BaseWin()->FadeBehind(EFalse);
-	iBlankWin->BaseWin()->SetRequiredDisplayMode(displayMode);
-	CleanupStack::PopAndDestroy(blankWinTemp);
-	}
-
-void CTFade::FadeBehindTransparentWindowL()
-	{
-	const TInt KNumberOfWindows = 3;
-	CRedrawWin* win[KNumberOfWindows];
-	TRect rect(iWindowRect);
-	rect.Resize(-iWindowRect.Width()/3,-iWindowRect.Height()/3);
-	rect.Move(iWindowRect.Width()/10,iWindowRect.Height()/5);
-	TRect rectWin[KNumberOfWindows];
-	
-	for (TInt ii=0; ii<KNumberOfWindows; ++ii)		//Causes memory leakage under OOM
-		{
-		rectWin[ii] = rect;
-		win[ii]=new(ELeave) CRedrawWin(this);
-		win[ii]->ConstructExtLD(*TheClient->iGroup,rectWin[ii].iTl,rectWin[ii].Size());
-		win[ii]->AssignGC(*TheClient->iGc);
-		win[ii]->Win()->EnableRedrawStore(EFalse);
-		win[ii]->BaseWin()->SetRequiredDisplayMode(EColor16MA);
-		if (ii==0)
-			{
-			win[ii]->Win()->SetBackgroundColor(TRgb(200,0,0,255));
-			}
-		else
-			{
-			TEST(KErrNone == win[ii]->Win()->SetTransparencyAlphaChannel());
-			if (iStep->TestStepResult() != EPass)
-				{
-				INFO_PRINTF1(_L("Transparency Alpha channel failed to be enabled"));
-				}
-			win[ii]->Win()->SetBackgroundColor(TRgb(40,100,0,0)); //RGB colour is of minor importance, as the window is fully transparent (Alpha=0)
-			}
-		win[ii]->Activate();
-
-		//Make sure each window is drawn to the screen now when the new background 
-		//colour have been set but before the call to SetFaded
-		win[ii]->Win()->BeginRedraw();
-		win[ii]->Win()->EndRedraw();
-		
-		rect.Resize(0,-iWindowRect.Height()/10);
-		rect.Move(iWindowRect.Width()/10,iWindowRect.Height()/20);
-		}
-	TheClient->iWs.Flush();
-	TheClient->iWs.Finish();
-	
-	win[0]->Win()->SetFaded(ETrue,RWindowTreeNode::EFadeWindowOnly);
-	win[1]->Win()->SetFaded(ETrue,RWindowTreeNode::EFadeWindowOnly);
-	win[2]->Win()->SetFaded(ETrue,RWindowTreeNode::EFadeWindowOnly);
-	
-	TheClient->iWs.Flush();
-	TheClient->iWs.Finish();
-	
-	// As the windows ovelap on their left side, compare the top left corners of the faded windows in order to verify that 
-	// for the opaque window the directly on top faded area and the faded area under the transparent window (the area that 
-	// overlaps with the transparent windows) have the same colour.
-	TRgb rgbWin[KNumberOfWindows];
-	TheClient->iScreen->GetPixel(rgbWin[0], rectWin[0].iTl);
-	TheClient->iScreen->GetPixel(rgbWin[1], rectWin[1].iTl);
-	TheClient->iScreen->GetPixel(rgbWin[2], rectWin[2].iTl);
-	
-	TEST( ETrue == (rgbWin[0].Red()==rgbWin[1].Red())&&(rgbWin[0].Green()==rgbWin[1].Green())&&(rgbWin[0].Blue()==rgbWin[1].Blue()) );
-	TEST( ETrue == (rgbWin[0].Red()==rgbWin[2].Red())&&(rgbWin[0].Green()==rgbWin[2].Green())&&(rgbWin[0].Blue()==rgbWin[2].Blue()) );
-	
-	for (TInt ii=0; ii<KNumberOfWindows; ++ii)
-		{
-		delete win[ii];
-		}
-	}
-
-#define BACKUPWIN 11
-#define REDRAWWIN 20
-void CTFade::RunTestCaseL(TInt /*aCurTestCase*/)
-	{
-	((CTFadeStep*)iStep)->SetTestStepID(KUnknownSYMTestCaseIDName);
-	switch(++iTest->iState)
-		{
-/**
-@SYMTestCaseID		GRAPHICS-WSERV-0218
-
-@SYMDEF             DEF081259
-
-@SYMTestCaseDesc    Test fading colours in windows
-
-@SYMTestPriority    High
-
-@SYMTestStatus      Implemented
-
-@SYMTestActions     Fade the colours in windows and check they fade correctly
-
-@SYMTestExpectedResults Colour fade correctly
-*/
-	case 1:
-		((CTFadeStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0218"));
-		iTest->LogSubTest(_L("Color Check"));
-		CreateBlankWindowL();
-		ColorTest();
-		//iTest->iState=5;
-		break;
-/**
-@SYMTestCaseID		GRAPHICS-WSERV-0219
-
-@SYMDEF             DEF081259
-
-@SYMTestCaseDesc    Test fading in a blank window
-
-@SYMTestPriority    High
-
-@SYMTestStatus      Implemented
-
-@SYMTestActions     Fade in a blank window and check the fading occurs correctly
-
-@SYMTestExpectedResults Fading in a blank window occurs correctly
-*/
-	case 2:
-		((CTFadeStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0219"));
-		iTest->LogSubTest(_L("Blank Window"));
-		BlankWindowL();
-		break;
-/**
-@SYMTestCaseID		GRAPHICS-WSERV-0220
-
-@SYMDEF             DEF081259
-
-@SYMTestCaseDesc    Test fading in child windows
-
-@SYMTestPriority    High
-
-@SYMTestStatus      Implemented
-
-@SYMTestActions     Fade in child windows and check the fading occurs correctly
-
-@SYMTestExpectedResults Fading in the child windows occurs correctly
-*/
-	case 3:
-		((CTFadeStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0220"));
-		iTest->LogSubTest(_L("Fade Children"));
-		FadeChildrenL();
-		break;
-/**
-@SYMTestCaseID		GRAPHICS-WSERV-0221
-
-@SYMDEF             DEF081259
-
-@SYMTestCaseDesc    Test fading in newly created child windows
-
-@SYMTestPriority    High
-
-@SYMTestStatus      Implemented
-
-@SYMTestActions     Fade in newly created child windows and check the fading occurs correctly
-
-@SYMTestExpectedResults Fading in the newly created child windows occurs correctly
-*/
-	case 4:
-		((CTFadeStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0221"));
-		iTest->LogSubTest(_L("Fade Children newly created"));
-		FadeChildrenAfterNewChildIsCreatedL();
-		break;
-/**
-@SYMTestCaseID		GRAPHICS-WSERV-0222
-
-@SYMDEF             DEF081259
-
-@SYMTestCaseDesc    Test fading in window behind another window
-
-@SYMTestPriority    High
-
-@SYMTestStatus      Implemented
-
-@SYMTestActions     Fade in window behind another window and check the fading occurs correctly
-
-@SYMTestExpectedResults Fading in window occurs correctly
-*/
-	case 5:
-		((CTFadeStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0222"));
-		iTest->LogSubTest(_L("Fade Behind"));
-		FadeBehindL();
-		break;
-/**
-@SYMTestCaseID		GRAPHICS-WSERV-0223
-
-@SYMDEF             DEF081259
-
-@SYMTestCaseDesc    Test differnt fading techniques in a window
-
-@SYMTestPriority    High
-
-@SYMTestStatus      Implemented
-
-@SYMTestActions     Fade using different fading techniques in a window
-					and check the fading occurs correctly
-
-@SYMTestExpectedResults Fading in window occurs correctly
-*/
-	case 6:
-		((CTFadeStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0223"));
-#if(defined(__DISPLAY_MODE_64K_COLOR))  //The test case Alternative Fadings1&2 & System Fade are not executed for EColor64k
-		iTest->LogSubTest(_L("Alternative Fadings1"));
-		ColorTest2();
-#else
-		LOG_MESSAGE(_L("Alternative Fadings1 test not run"));
-#endif
-		break;
-/**
-@SYMTestCaseID		GRAPHICS-WSERV-0224
-
-@SYMDEF             DEF081259
-
-@SYMTestCaseDesc    Test differnt fading techniques in a window
-
-@SYMTestPriority    High
-
-@SYMTestStatus      Implemented
-
-@SYMTestActions     Fade using different fading techniques in a window
-					and check the fading occurs correctly
-
-@SYMTestExpectedResults Fading in window occurs correctly
-*/
-	case 7:
-		((CTFadeStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0224"));
-#if(defined(__DISPLAY_MODE_64K_COLOR))  //The test case Alternative Fadings1&2 & System Fade are not executed for EColor64k
-		iTest->LogSubTest(_L("Alternative Fadings2"));
-		FadeTest();
-#else
-		LOG_MESSAGE(_L("Alternative Fadings2 test not run"));
-#endif
-		break;
-/**
-@SYMTestCaseID		GRAPHICS-WSERV-0225
-
-@SYMDEF             DEF081259
-
-@SYMTestCaseDesc    Test differnt system wide fading techniques in a window
-
-@SYMTestPriority    High
-
-@SYMTestStatus      Implemented
-
-@SYMTestActions     Fade using different system wide fading techniques in a window
-					and check the fading occurs correctly
-
-@SYMTestExpectedResults Fading in system occurs correctly
-*/
-	case 8:
-		((CTFadeStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0225"));
-		iTest->LogSubTest(_L("System Fade"));
-		SystemFadeL();
-		SystemAlternateFadeL();
-		break;
-/**
-@SYMTestCaseID		GRAPHICS-WSERV-0226
-
-@SYMDEF             DEF081259
-
-@SYMTestCaseDesc    Test fading in window behind another window when the window has been moved
-
-@SYMTestPriority    High
-
-@SYMTestStatus      Implemented
-
-@SYMTestActions     Fade in window behind another window and check the fading occurs correctly
-
-@SYMTestExpectedResults Fading in window occurs correctly
-*/
-	case 9:
-		((CTFadeStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0226"));
-		iTest->LogSubTest(_L("Fade behind moved"));
-		FadeBehindWhenMovedL();
-		break;
-/**
-@SYMTestCaseID		GRAPHICS-WSERV-0227
-
-@SYMDEF             DEF081259
-
-@SYMTestCaseDesc    Destroy the blnk window used for fading
-
-@SYMTestPriority    High
-
-@SYMTestStatus      Implemented
-
-@SYMTestActions     Destroy the blnk window used for fading and check it was deleted correctly
-
-@SYMTestExpectedResults The window is destroyed
-*/
-	case 10:
-		((CTFadeStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0227"));
-		DestroyBlankWindow();
-		break;
-/**
-@SYMTestCaseID		GRAPHICS-WSERV-0228
-
-@SYMDEF             DEF081259
-
-@SYMTestCaseDesc    Test backup window creation and drawing
-
-@SYMTestPriority    High
-
-@SYMTestStatus      Implemented
-
-@SYMTestActions     Create a backup window and draw in it
-
-@SYMTestExpectedResults The drawing is correct in the window
-*/
-	case BACKUPWIN:
-		((CTFadeStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0228"));
-		iTest->LogSubTest(_L("BackupWin Draw"));
-		CreateBitmapsL();
-		CreateBackupWindowL(EFalse);
-		Draw();
-		break;
-/**
-@SYMTestCaseID		GRAPHICS-WSERV-0229
-
-@SYMDEF             DEF081259
-
-@SYMTestCaseDesc    Test fading with backup window obscured
-
-@SYMTestPriority    High
-
-@SYMTestStatus      Implemented
-
-@SYMTestActions     Test fading with the backup window obscured
-
-@SYMTestExpectedResults Fading occurs correctly with window obscured
-*/
-	case BACKUPWIN+1:
-	((CTFadeStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0229"));
-		iTest->LogSubTest(_L("BackupWin Obscured"));
-		ObscuredL();
-		break;
-/**
-@SYMTestCaseID		GRAPHICS-WSERV-0230
-
-@SYMDEF             DEF081259
-
-@SYMTestCaseDesc    Test fading with backup window being moved
-
-@SYMTestPriority    High
-
-@SYMTestStatus      Implemented
-
-@SYMTestActions     Test fading with the backup window being moved
-
-@SYMTestExpectedResults Fading occurs correctly with window moved
-*/
-	case BACKUPWIN+2:
-	((CTFadeStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0230"));
-		iTest->LogSubTest(_L("BackupWin Moving"));
-		MovingL();
-		DestroyDrawableWindow();
-		break;
-/**
-@SYMTestCaseID		GRAPHICS-WSERV-0231
-
-@SYMDEF             DEF081259
-
-@SYMTestCaseDesc    Test backup window creation and drawing
-
-@SYMTestPriority    High
-
-@SYMTestStatus      Implemented
-
-@SYMTestActions     Create a backup window and draw in it
-
-@SYMTestExpectedResults The drawing is correct in the window
-*/
-	case BACKUPWIN+3:
-	((CTFadeStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0231"));
-		iTest->LogSubTest(_L("BackupWin Draw"));
-		CreateBackupWindowL(ETrue);
-		Draw();
-		break;
-/**
-@SYMTestCaseID		GRAPHICS-WSERV-0232
-
-@SYMDEF             DEF081259
-
-@SYMTestCaseDesc    Test fading with backup window obscured
-
-@SYMTestPriority    High
-
-@SYMTestStatus      Implemented
-
-@SYMTestActions     Test fading with the backup window obscured
-
-@SYMTestExpectedResults Fading occurs correctly with window obscured
-*/
-	case BACKUPWIN+4:
-	((CTFadeStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0232"));
-		iTest->LogSubTest(_L("BackupWin Obscured"));
-		ObscuredL();
-		break;
-/**
-@SYMTestCaseID		GRAPHICS-WSERV-0233
-
-@SYMDEF             DEF081259
-
-@SYMTestCaseDesc    Test fading with backup window being moved
-
-@SYMTestPriority    High
-
-@SYMTestStatus      Implemented
-
-@SYMTestActions     Test fading with the backup window being moved
-
-@SYMTestExpectedResults Fading occurs correctly with window moved
-*/
-	case BACKUPWIN+5:
-	((CTFadeStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0233"));
-		iTest->LogSubTest(_L("BackupWin Moving"));
-		MovingL();
-		DestroyDrawableWindow();
-		break;
-/**
-@SYMTestCaseID		GRAPHICS-WSERV-0234
-
-@SYMDEF             DEF081259
-
-@SYMTestCaseDesc    Test redraw window creation and drawing
-
-@SYMTestPriority    High
-
-@SYMTestStatus      Implemented
-
-@SYMTestActions     Create a redraw window and draw in it
-
-@SYMTestExpectedResults The drawing is correct in the window
-*/
-	case REDRAWWIN:
-		((CTFadeStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0234"));
-		iTest->LogSubTest(_L("RedrawWin Draw"));
-		CreateRedrawWindowL();
-		Draw();
-		break;
-/**
-@SYMTestCaseID		GRAPHICS-WSERV-0235
-
-@SYMDEF             DEF081259
-
-@SYMTestCaseDesc    Test fading with redraw window obscured
-
-@SYMTestPriority    High
-
-@SYMTestStatus      Implemented
-
-@SYMTestActions     Test fading with the redraw window obscured
-
-@SYMTestExpectedResults Fading occurs correctly with window obscured
-*/
-	case REDRAWWIN+1:
-	((CTFadeStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0235"));
-		iTest->LogSubTest(_L("RedrawWin Obscured"));
-		ObscuredL();
-		break;
-/**
-@SYMTestCaseID		GRAPHICS-WSERV-0236
-
-@SYMDEF             DEF081259
-
-@SYMTestCaseDesc    Test fading with redraw window being moved
-
-@SYMTestPriority    High
-
-@SYMTestStatus      Implemented
-
-@SYMTestActions     Test fading with the redraw window being moved
-
-@SYMTestExpectedResults Fading occurs correctly with window moved
-*/
-	case REDRAWWIN+2:
-	((CTFadeStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0236"));
-		iTest->LogSubTest(_L("RedrawWin Moving"));
-		MovingL();
-		break;
-/**
-@SYMTestCaseID		GRAPHICS-WSERV-0237
-
-@SYMDEF             DEF081259
-
-@SYMTestCaseDesc    Test different fading techniques within a redraw window
-
-@SYMTestPriority    High
-
-@SYMTestStatus      Implemented
-
-@SYMTestActions     Test different fading techniques within a redraw window
-
-@SYMTestExpectedResults Fading occurs correctly for the different techniques
-*/
-	case REDRAWWIN+3:
-	((CTFadeStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0237"));
-		iTest->LogSubTest(_L("AlternativeFadeDraw"));
-		Draw(ETrue);
-		break;
-
-/**
-@SYMTestCaseID		GRAPHICS-WSERV-0238
-
-@SYMDEF             DEF081259
-
-@SYMTestCaseDesc    Test fading within a redraw window using the graphic context
-
-@SYMTestPriority    High
-
-@SYMTestStatus      Implemented
-
-@SYMTestActions     Test fading within a redraw window using the graphic context
-
-@SYMTestExpectedResults Fading occurs correctly in the window
-*/
-	case REDRAWWIN+4:
-		((CTFadeStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0238"));
-#ifdef TEST_GRAPHICS_WSERV_TAUTOSERVER_NONNGA
-		iTest->LogSubTest(_L("GC Test"));
-		GCDraw();
-		DestroyDrawableWindow();
-		DestroyBitmaps();
-#endif
-		break;
-
-/**
-@SYMTestCaseID		GRAPHICS-WSERV-0538
-
-@SYMDEF             DEF120965
-
-@SYMTestCaseDesc    Test fading under transparent window
-
-@SYMTestPriority    High
-
-@SYMTestStatus      Implemented
-
-@SYMTestActions     Construct opaque window lying under two transparent windows. Fade the opaque and the transparent windows.
-
-@SYMTestExpectedResults Each of the overlapping areas should be faded only once.
-*/
-	case REDRAWWIN+5:
-		{
-		((CTFadeStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0538"));
-		iTest->LogSubTest(_L("Fade behind transparent window"));
-		CRedrawWin* win = new(ELeave) CRedrawWin(this);
-		win->ConstructL(TRect(0,0,0,0));
-		TInt transparency = win->Win()->SetTransparencyAlphaChannel(); 
-		if (transparency!=KErrNotSupported)
-			{
-			FadeBehindTransparentWindowL();
-			}
-		else
-			{
-			WARN_PRINTF1(_L("Transparency not supported. Skipping test."));
-			}
-		delete win;
-		break;
-		}
-	case REDRAWWIN+6:
-		((CTFadeStep*)iStep)->SetTestStepID(KNotATestSYMTestCaseIDName);
-		iTest->LogSubTest(_L("Test complete\n"));
-#ifdef TEST_GRAPHICS_WSERV_TAUTOSERVER_NGA
-		DestroyDrawableWindow();
-		DestroyBitmaps();
-#endif
-		((CTFadeStep*)iStep)->CloseTMSGraphicsStep();
-		TestComplete();
-		break;
-	default:
-		((CTFadeStep*)iStep)->SetTestStepID(KNotATestSYMTestCaseIDName);
-		break;
-		}
-	((CTFadeStep*)iStep)->RecordTestResultL();
-	}
-
-__WS_CONSTRUCT_STEP__(Fade)