windowing/windowserver/test/tauto/TALPHAWIN.H
author hgs
Tue, 22 Jun 2010 15:21:29 +0300
changeset 103 2717213c588a
permissions -rw-r--r--
201024
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
103
hgs
parents:
diff changeset
     1
hgs
parents:
diff changeset
     2
// Copyright (c) 1996-2009 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
// All rights reserved.
hgs
parents:
diff changeset
     4
// This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
// under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
// which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
//
hgs
parents:
diff changeset
     9
// Initial Contributors:
hgs
parents:
diff changeset
    10
// Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
//
hgs
parents:
diff changeset
    12
// Contributors:
hgs
parents:
diff changeset
    13
//
hgs
parents:
diff changeset
    14
// Description:
hgs
parents:
diff changeset
    15
//
hgs
parents:
diff changeset
    16
hgs
parents:
diff changeset
    17
/**
hgs
parents:
diff changeset
    18
 @file
hgs
parents:
diff changeset
    19
 @test
hgs
parents:
diff changeset
    20
 @internalComponent - Internal Symbian test code
hgs
parents:
diff changeset
    21
*/
hgs
parents:
diff changeset
    22
hgs
parents:
diff changeset
    23
#ifndef __TALPHAWIN_H__
hgs
parents:
diff changeset
    24
#define __TALPHAWIN_H__
hgs
parents:
diff changeset
    25
hgs
parents:
diff changeset
    26
#include "AUTO.H"
hgs
parents:
diff changeset
    27
#include "TGraphicsHarness.h"
hgs
parents:
diff changeset
    28
hgs
parents:
diff changeset
    29
class CTDrawOpWin;
hgs
parents:
diff changeset
    30
class CTAlphaWindow;
hgs
parents:
diff changeset
    31
class CTAlphaRefWin;
hgs
parents:
diff changeset
    32
hgs
parents:
diff changeset
    33
class CTAlphaWin : public CTWsGraphicsBase
hgs
parents:
diff changeset
    34
	{
hgs
parents:
diff changeset
    35
public:
hgs
parents:
diff changeset
    36
	CTAlphaWin(CTestStep* aStep);
hgs
parents:
diff changeset
    37
	~CTAlphaWin();
hgs
parents:
diff changeset
    38
	void ConstructL();
hgs
parents:
diff changeset
    39
	void TestCondition();
hgs
parents:
diff changeset
    40
	void TestConditionL();
hgs
parents:
diff changeset
    41
protected:
hgs
parents:
diff changeset
    42
//from 	CTGraphicsStep
hgs
parents:
diff changeset
    43
	virtual void RunTestCaseL(TInt aCurTestCase);
hgs
parents:
diff changeset
    44
private:
hgs
parents:
diff changeset
    45
	void ConfigureDisplayModes(TDisplayMode aRequiredMode);
hgs
parents:
diff changeset
    46
	// The blending test works as follows:
hgs
parents:
diff changeset
    47
	// On the left, we have a window which draws using an opaque half-red colour
hgs
parents:
diff changeset
    48
	// On the right, we have a window which blends using a semi-transparent full-red colour
hgs
parents:
diff changeset
    49
	// The test compares left and right
hgs
parents:
diff changeset
    50
	void TestSemiTransparentDrawingL();
hgs
parents:
diff changeset
    51
	void TestTransparentDrawingL();
hgs
parents:
diff changeset
    52
hgs
parents:
diff changeset
    53
	// The transparent window tests work as follows:
hgs
parents:
diff changeset
    54
	// On the left, we have transparent windows, on which we perform various various operations
hgs
parents:
diff changeset
    55
	// On the right, we have a reference window, in which we draw what we think the windows on the left should look like
hgs
parents:
diff changeset
    56
	// The test compares the right and the left
hgs
parents:
diff changeset
    57
	void TestInitialConfiguration();
hgs
parents:
diff changeset
    58
	void TestMove();
hgs
parents:
diff changeset
    59
	void TestRedraw();
hgs
parents:
diff changeset
    60
	void TestInvisible();
hgs
parents:
diff changeset
    61
	void TestChildrenL();
hgs
parents:
diff changeset
    62
	void TestAntiAliasedTextTransparentL();
hgs
parents:
diff changeset
    63
	void CheckRectL(const TRect& rect1, const TRect& rect2, TSize aSize, TDisplayMode aRequiredMode, TInt aTolerance, const TDesC& aErrorMsg);
hgs
parents:
diff changeset
    64
hgs
parents:
diff changeset
    65
private:
hgs
parents:
diff changeset
    66
	TFixedArray<CTAlphaWindow*,5> iTestWin;
hgs
parents:
diff changeset
    67
	CTAlphaRefWin* iRefWin;
hgs
parents:
diff changeset
    68
	};
hgs
parents:
diff changeset
    69
hgs
parents:
diff changeset
    70
class CTDrawOpWin : public CTWin
hgs
parents:
diff changeset
    71
	{
hgs
parents:
diff changeset
    72
public:
hgs
parents:
diff changeset
    73
	static CTDrawOpWin* NewL(CTAlphaWin* aTest, CTWinBase* aParent, TPoint aPos, TSize aSize, TRgb aDrawColour);
hgs
parents:
diff changeset
    74
	CTDrawOpWin(CTAlphaWin* aTest, TRgb aDrawColour);
hgs
parents:
diff changeset
    75
hgs
parents:
diff changeset
    76
	//Virtual Function from CTBaseWin
hgs
parents:
diff changeset
    77
	void Draw();
hgs
parents:
diff changeset
    78
hgs
parents:
diff changeset
    79
	void SetDrawOp(TInt aDrawOp);
hgs
parents:
diff changeset
    80
private:
hgs
parents:
diff changeset
    81
	CTAlphaWin* iTest;
hgs
parents:
diff changeset
    82
	TRgb iDrawColour;
hgs
parents:
diff changeset
    83
	TInt iDrawOp;
hgs
parents:
diff changeset
    84
	};
hgs
parents:
diff changeset
    85
hgs
parents:
diff changeset
    86
hgs
parents:
diff changeset
    87
class CTAlphaWindow : public CTWin
hgs
parents:
diff changeset
    88
	{
hgs
parents:
diff changeset
    89
	friend class CTAlphaRefWin;
hgs
parents:
diff changeset
    90
public:
hgs
parents:
diff changeset
    91
	inline CTAlphaWindow(CTAlphaWin* aTest) : iTest(aTest) {}
hgs
parents:
diff changeset
    92
	~CTAlphaWindow();
hgs
parents:
diff changeset
    93
	static CTAlphaWindow* NewL(CTAlphaWin* aTest, CTWinBase* aParent, TPoint aPos, TSize aSize, TInt aDrawState);
hgs
parents:
diff changeset
    94
hgs
parents:
diff changeset
    95
	//Virtual Function from CTBaseWin
hgs
parents:
diff changeset
    96
	void Draw();
hgs
parents:
diff changeset
    97
hgs
parents:
diff changeset
    98
	void SetDrawState(TInt aDrawState);
hgs
parents:
diff changeset
    99
	TInt DrawState();
hgs
parents:
diff changeset
   100
hgs
parents:
diff changeset
   101
	void SetVisible(TBool aVisible);
hgs
parents:
diff changeset
   102
	void CreateChildrenL(TInt aDepth);
hgs
parents:
diff changeset
   103
	void DestroyChildren();
hgs
parents:
diff changeset
   104
private:
hgs
parents:
diff changeset
   105
	TInt iDrawState;
hgs
parents:
diff changeset
   106
	CTAlphaWin* iTest;
hgs
parents:
diff changeset
   107
	CTAlphaWindow* iChild1;
hgs
parents:
diff changeset
   108
	CTAlphaWindow* iChild2;
hgs
parents:
diff changeset
   109
	};
hgs
parents:
diff changeset
   110
hgs
parents:
diff changeset
   111
class CTAlphaRefWin : public CTWin
hgs
parents:
diff changeset
   112
	{
hgs
parents:
diff changeset
   113
	// This class is used to draw what we think things should look like, for comparison with what they actually look like
hgs
parents:
diff changeset
   114
public:
hgs
parents:
diff changeset
   115
	inline CTAlphaRefWin(TFixedArray<CTAlphaWindow*,5>& aAlphaWin);
hgs
parents:
diff changeset
   116
	static CTAlphaRefWin* NewL(CTWinBase* aParent, TPoint aPos, TSize aSize, TFixedArray<CTAlphaWindow*,5>& aAlphaWin);
hgs
parents:
diff changeset
   117
	void Draw();
hgs
parents:
diff changeset
   118
private:
hgs
parents:
diff changeset
   119
	void DrawWindow(CTAlphaWindow* aWindow, TPoint aOffset);
hgs
parents:
diff changeset
   120
private:
hgs
parents:
diff changeset
   121
	TFixedArray<CTAlphaWindow*,5>& iAlphaWin;
hgs
parents:
diff changeset
   122
	};
hgs
parents:
diff changeset
   123
hgs
parents:
diff changeset
   124
class CTAlphaWinStep : public CTGraphicsStep
hgs
parents:
diff changeset
   125
	{
hgs
parents:
diff changeset
   126
public:
hgs
parents:
diff changeset
   127
	CTAlphaWinStep();
hgs
parents:
diff changeset
   128
protected:
hgs
parents:
diff changeset
   129
	//from CTGraphicsStep
hgs
parents:
diff changeset
   130
	virtual CTGraphicsBase* CreateTestL();
hgs
parents:
diff changeset
   131
	};
hgs
parents:
diff changeset
   132
hgs
parents:
diff changeset
   133
_LIT(KTAlphaWinStep,"TAlphaWin");
hgs
parents:
diff changeset
   134
hgs
parents:
diff changeset
   135
hgs
parents:
diff changeset
   136
#endif