Applied patch 1, to provide a syborg specific minigui oby file.
Need to compare this with the "stripped" version currently in the tree.
This supplied version applies for Nokia builds, but need to repeat the
test for SF builds to see if pruning is needed, or if the file needs to
be device-specific.
// Copyright (c) 2006-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:
// The fix enables the fading effect with alpha-blending, which was not applied bofore.
// The test will load a bitmap and two different masks: on/off and alpha-blend.
// The bitmap will be masked with these masks and displayed before and after
// setting the fading effect.
// All different colour modes are being tested for both mask types.
// The test will check the colour of a specific pixel in the scene before and after the
// fading. The higher values in the After circle means that it has been highlighted.
// The result will be printed in wstest log file.
//
//
/**
@file
@test
@internalComponent - Internal Symbian test code
*/
#include "TFADINGBITMAP.H"
//===================================================
// CBaseWin Declaration
//===================================================
CBaseWin::CBaseWin(): CTWin()
{
}
CBaseWin::~CBaseWin()
{
delete iTempBitmap;
delete iMaskGray256;
delete iMaskGray2;
delete iTempMask;
delete iBitmap;
}
void CBaseWin::ConstructWinL(TPoint aPos, TSize aSize, TBool aVisible)
{
/*** Setting up the window ***/
iSize = aSize;
SetUpL(aPos, aSize, TheClient->iGroup, *TheClient->iGc, aVisible);
Win()->SetBackgroundColor(TRgb(20, 80, 20)); // dark green background
BaseWin()->SetRequiredDisplayMode(EColor64K);
/*** 24 bit bitmap ***/
// the original 24b bitmap to mask
iTempBitmap = new (ELeave) CFbsBitmap();
User::LeaveIfError(iTempBitmap->Load(_L("Z:\\WSTEST\\WSAUTOTEST.MBM"), EMbmWsautotestCircles24b));
iBitmap = new (ELeave) CFbsBitmap();
/*** on/off mask ***/
iMaskGray2 = new (ELeave) CFbsBitmap();
User::LeaveIfError(iMaskGray2->Load(_L("Z:\\WSTEST\\WSAUTOTEST.MBM"), EMbmWsautotestCircles_mask2b));
/*** alpha-blend mask ***/
// holds the 24bit copy of the alpha blend mask which will be
// copied into the proper Gray256 mask, iMaskGray256.
iTempMask = new (ELeave) CFbsBitmap();
User::LeaveIfError(iTempMask->Load(_L("Z:\\WSTEST\\WSAUTOTEST.MBM"), EMbmWsautotestCircles_mask256));
// alpha blend mask; copying its data from iTempMask
iMaskGray256 = new (ELeave) CFbsBitmap();
User::LeaveIfError(iMaskGray256->Create(iTempBitmap->SizeInPixels(),EGray256));
CFbsBitmapDevice *dev = CFbsBitmapDevice::NewL(iMaskGray256);
CleanupStack::PushL(dev);
CFbsBitGc *gc;
User::LeaveIfError(dev->CreateContext(gc));
// performing the copying here
gc->BitBlt(TPoint(0,0), iTempMask);
// cleaning up
CleanupStack::Pop();
delete gc;
gc = NULL;
delete dev;
dev = NULL;
}
void CBaseWin::Draw()
{
iGc->Clear();
// Font intialization
CFont* myFont;
_LIT(KMyFontName,"Swiss");
TFontSpec myFontSpec = TFontSpec(KMyFontName,16); // to get smallest Swiss font
TFontStyle style = TFontStyle (EPostureUpright, EStrokeWeightBold, EPrintPosNormal);
myFontSpec.iFontStyle = style;
User::LeaveIfError(TheClient->iScreen->GetNearestFontInPixels(myFont, myFontSpec));
iGc->UseFont(myFont);
iGc->SetPenStyle(CGraphicsContext::ESolidPen);
iGc->SetPenColor(TRgb(255, 255, 255));
// drawing text
iGc->DrawText(_L("Fading = OFF"), TPoint(130,15));
iGc->DrawText(_L("Fading = ON"), TPoint(275,15));
iGc->DrawText(_L("Alpha blend"), TPoint(15,90));
iGc->DrawText(_L("on/off mask"), TPoint(15,190));
TBuf <30> displayMode(_L("Display Mode = "));
displayMode.Append(iMode);
iGc->DrawText(displayMode, TPoint(385,100));
/*** drawing bitmap with its on/off mask and alpha-blending
before and after fading ***/
iGc->BitBltMasked(TPoint(140,25), iBitmap,
TRect(0,0,100,100), iMaskGray256, EFalse);
// Save the pixel colour of a pixel on the outer ring of the circle
// before fading enabled.
TheClient->iScreen->GetPixel(iNonFadedPixel, TPoint(190,30));
iGc->SetFaded(ETrue);
iGc->BitBltMasked(TPoint(270,25), iBitmap,
TRect(0,0,100,100), iMaskGray256, EFalse);
// Save the pixel colour of a pixel on the outer ring of the circle
// after fading enabled.
TheClient->iScreen->GetPixel(iFadedPixel, TPoint(320,30));
iGc->SetFaded(EFalse);
iGc->BitBltMasked(TPoint(140,125), iBitmap,
TRect(0,0,100,100), iMaskGray2, EFalse);
iGc->SetFaded(ETrue);
iGc->BitBltMasked(TPoint(270,125), iBitmap,
TRect(0,0,100,100), iMaskGray2, EFalse);
iGc->SetFaded(EFalse);
iGc->DiscardFont();
TheClient->iScreen->ReleaseFont(myFont);
}
//===================================================
// CTFadingBitmap Definition
//===================================================
CTFadingBitmap::CTFadingBitmap(CTestStep* aStep):
CTWsGraphicsBase(aStep), iTestResult(ETrue)
{
}
CTFadingBitmap::~CTFadingBitmap()
{
delete iBgWin;
}
void CTFadingBitmap::TestFadingL()
{
// Modes to test
TDisplayMode modes[] =
{
EGray2, EGray4, EGray16, EGray256,
EColor16, EColor256, EColor4K, EColor64K,
EColor16M, EColor16MU, EColor16MA, EColor16MAP
};
TBuf <12> modesTxt []=
{
_L("EGray2"), _L("EGray4"), _L("EGray16"), _L("EGray256"),
_L("EColor16"), _L("EColor256"), _L("EColor4K"), _L("EColor64K"),
_L("EColor16M"), _L("EColor16MU"), _L("EColor16MA"), _L("EColor16MAP")
};
TBuf <100> testTxt;
for( int i = 0; i < 12; i++)
{
testTxt.Format(modesTxt[i]);
INFO_PRINTF1(testTxt);
// Here we copy the content of the temp bitmap, which holds the test bitmap,
// into the bitmap created with alternating color depths.
User::LeaveIfError(iBgWin->iBitmap->Create(iBgWin->iTempBitmap->SizeInPixels(), modes[i]));
CFbsBitmapDevice *dev = CFbsBitmapDevice::NewL(iBgWin->iBitmap);
CleanupStack::PushL(dev);
CFbsBitGc *gc;
User::LeaveIfError(dev->CreateContext(gc));
// performing the copying here
gc->BitBlt(TPoint(0,0), iBgWin->iTempBitmap);
// setting the mode text to display it
iBgWin->iMode = modesTxt[i];
// draws the bitmap on screen
iBgWin->DrawNow();
TheClient->Flush();
User::After(5000);
// cleaning up
CleanupStack::Pop();
delete gc;
gc = NULL;
delete dev;
dev = NULL;
// Here the colours of pixels before and after fading are printed in wstest log
testTxt.Format(_L("Nonfaded circle - color of the outside ring: R=%d G=%d B=%d"), iBgWin->iNonFadedPixel.Red(), iBgWin->iNonFadedPixel.Green(), iBgWin->iNonFadedPixel.Blue());
INFO_PRINTF1(testTxt);
testTxt.Format(_L("Faded circle - color of the outside ring: R=%d G=%d B=%d"), iBgWin->iFadedPixel.Red(), iBgWin->iFadedPixel.Green(), iBgWin->iFadedPixel.Blue());
INFO_PRINTF1(testTxt);
// Checks if the colors are the same before and after the fading.
// The color will be the same only in EGray2 and EGray4 as there are no enough
// color variations to represent the fading and nonfading effects.
if(iTestResult &&
iBgWin->iNonFadedPixel.Red() == iBgWin->iFadedPixel.Red() &&
iBgWin->iNonFadedPixel.Green() == iBgWin->iFadedPixel.Green() &&
iBgWin->iNonFadedPixel.Blue() == iBgWin->iFadedPixel.Blue() &&
modes[i] != EGray2 && modes[i] != EGray4)
iTestResult = EFalse;
}
}
void CTFadingBitmap::ConstructL()
{
// construct the base window of the test in the background
TSize scrSize = TSize(TheClient->iScreen->SizeInPixels());
iBgWin = new (ELeave) CBaseWin();
iBgWin->ConstructWinL(TPoint(0,0), scrSize, ETrue);
}
void CTFadingBitmap::RunTestCaseL(TInt aCurTestCase)
{
((CTFadingBitmapStep*)iStep)->SetTestStepID(KUnknownSYMTestCaseIDName);
switch(aCurTestCase)
{
case 1:
/**
@SYMTestCaseID GRAPHICS-WSERV-0566
*/
((CTFadingBitmapStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0566"));
TestFadingL();
// Fails or passes the test
if(!iTestResult)
TEST(EFalse);
break;
default:
((CTFadingBitmapStep*)iStep)->SetTestStepID(KNotATestSYMTestCaseIDName);
((CTFadingBitmapStep*)iStep)->CloseTMSGraphicsStep();
TestComplete();
}
((CTFadingBitmapStep*)iStep)->RecordTestResultL();
}
__WS_CONSTRUCT_STEP__(FadingBitmap)