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