diff -r 000000000000 -r 5d03bc08d59c windowing/windowserver/tauto/TALPHAWIN.H --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/windowing/windowserver/tauto/TALPHAWIN.H Tue Feb 02 01:47:50 2010 +0200 @@ -0,0 +1,136 @@ + +// Copyright (c) 1996-2009 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +/** + @file + @test + @internalComponent - Internal Symbian test code +*/ + +#ifndef __TALPHAWIN_H__ +#define __TALPHAWIN_H__ + +#include "AUTO.H" +#include "TGraphicsHarness.h" + +class CTDrawOpWin; +class CTAlphaWindow; +class CTAlphaRefWin; + +class CTAlphaWin : public CTWsGraphicsBase + { +public: + CTAlphaWin(CTestStep* aStep); + ~CTAlphaWin(); + void ConstructL(); + void TestCondition(); + void TestConditionL(); +protected: +//from CTGraphicsStep + virtual void RunTestCaseL(TInt aCurTestCase); +private: + void ConfigureDisplayModes(TDisplayMode aRequiredMode); + // The blending test works as follows: + // On the left, we have a window which draws using an opaque half-red colour + // On the right, we have a window which blends using a semi-transparent full-red colour + // The test compares left and right + void TestSemiTransparentDrawingL(); + void TestTransparentDrawingL(); + + // The transparent window tests work as follows: + // On the left, we have transparent windows, on which we perform various various operations + // On the right, we have a reference window, in which we draw what we think the windows on the left should look like + // The test compares the right and the left + void TestInitialConfiguration(); + void TestMove(); + void TestRedraw(); + void TestInvisible(); + void TestChildrenL(); + void TestAntiAliasedTextTransparentL(); + void CheckRectL(const TRect& rect1, const TRect& rect2, TSize aSize, TDisplayMode aRequiredMode, TInt aTolerance, const TDesC& aErrorMsg); + +private: + TFixedArray iTestWin; + CTAlphaRefWin* iRefWin; + }; + +class CTDrawOpWin : public CTWin + { +public: + static CTDrawOpWin* NewL(CTAlphaWin* aTest, CTWinBase* aParent, TPoint aPos, TSize aSize, TRgb aDrawColour); + CTDrawOpWin(CTAlphaWin* aTest, TRgb aDrawColour); + + //Virtual Function from CTBaseWin + void Draw(); + + void SetDrawOp(TInt aDrawOp); +private: + CTAlphaWin* iTest; + TRgb iDrawColour; + TInt iDrawOp; + }; + + +class CTAlphaWindow : public CTWin + { + friend class CTAlphaRefWin; +public: + inline CTAlphaWindow(CTAlphaWin* aTest) : iTest(aTest) {} + ~CTAlphaWindow(); + static CTAlphaWindow* NewL(CTAlphaWin* aTest, CTWinBase* aParent, TPoint aPos, TSize aSize, TInt aDrawState); + + //Virtual Function from CTBaseWin + void Draw(); + + void SetDrawState(TInt aDrawState); + TInt DrawState(); + + void SetVisible(TBool aVisible); + void CreateChildrenL(TInt aDepth); + void DestroyChildren(); +private: + TInt iDrawState; + CTAlphaWin* iTest; + CTAlphaWindow* iChild1; + CTAlphaWindow* iChild2; + }; + +class CTAlphaRefWin : public CTWin + { + // This class is used to draw what we think things should look like, for comparison with what they actually look like +public: + inline CTAlphaRefWin(TFixedArray& aAlphaWin); + static CTAlphaRefWin* NewL(CTWinBase* aParent, TPoint aPos, TSize aSize, TFixedArray& aAlphaWin); + void Draw(); +private: + void DrawWindow(CTAlphaWindow* aWindow, TPoint aOffset); +private: + TFixedArray& iAlphaWin; + }; + +class CTAlphaWinStep : public CTGraphicsStep + { +public: + CTAlphaWinStep(); +protected: + //from CTGraphicsStep + virtual CTGraphicsBase* CreateTestL(); + }; + +_LIT(KTAlphaWinStep,"TAlphaWin"); + + +#endif