windowing/windowserver/test/tauto/TTransptAnim.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) 2008-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
#ifndef __TTRANSPTANIM__
hgs
parents:
diff changeset
    23
#define __TTRANSPTANIM__
hgs
parents:
diff changeset
    24
hgs
parents:
diff changeset
    25
#include <e32std.h>
hgs
parents:
diff changeset
    26
#include <e32base.h>
hgs
parents:
diff changeset
    27
#include <w32std.h>
hgs
parents:
diff changeset
    28
#include "../tlib/testbase.h"
hgs
parents:
diff changeset
    29
#include "AUTO.H"
hgs
parents:
diff changeset
    30
#include "AUTODLL.H"
hgs
parents:
diff changeset
    31
hgs
parents:
diff changeset
    32
enum
hgs
parents:
diff changeset
    33
	{
hgs
parents:
diff changeset
    34
	GraphicsWServ0483 = 0
hgs
parents:
diff changeset
    35
	};
hgs
parents:
diff changeset
    36
hgs
parents:
diff changeset
    37
class CTTestCase;
hgs
parents:
diff changeset
    38
class CTransAnimTimer;
hgs
parents:
diff changeset
    39
class CTTransparentAnim;
hgs
parents:
diff changeset
    40
class CTTAnimation;
hgs
parents:
diff changeset
    41
class MAnimationObserver;
hgs
parents:
diff changeset
    42
hgs
parents:
diff changeset
    43
class CTTransparentAnim : public CTWsGraphicsBase
hgs
parents:
diff changeset
    44
	{
hgs
parents:
diff changeset
    45
public:
hgs
parents:
diff changeset
    46
	static CTTestCase* CreateTestCaseL(CTTransparentAnim*, TInt);
hgs
parents:
diff changeset
    47
public:
hgs
parents:
diff changeset
    48
	CTTransparentAnim(CTestStep*);
hgs
parents:
diff changeset
    49
	virtual ~CTTransparentAnim();
hgs
parents:
diff changeset
    50
	void ConstructL();
hgs
parents:
diff changeset
    51
hgs
parents:
diff changeset
    52
	void SetCurrent(CTTestCase*);
hgs
parents:
diff changeset
    53
	CTTestCase* GetCurrent();
hgs
parents:
diff changeset
    54
protected:
hgs
parents:
diff changeset
    55
	virtual void RunTestCaseL(TInt);
hgs
parents:
diff changeset
    56
	
hgs
parents:
diff changeset
    57
private:
hgs
parents:
diff changeset
    58
	CTTestCase* iCurrentTestCase;
hgs
parents:
diff changeset
    59
	};
hgs
parents:
diff changeset
    60
hgs
parents:
diff changeset
    61
class CTTransparentAnimStep : public CTGraphicsStep
hgs
parents:
diff changeset
    62
	{
hgs
parents:
diff changeset
    63
public:
hgs
parents:
diff changeset
    64
	CTTransparentAnimStep();
hgs
parents:
diff changeset
    65
hgs
parents:
diff changeset
    66
protected:
hgs
parents:
diff changeset
    67
	virtual CTGraphicsBase* CreateTestL();
hgs
parents:
diff changeset
    68
	};
hgs
parents:
diff changeset
    69
hgs
parents:
diff changeset
    70
class CTransAnimTimer : public CTimer
hgs
parents:
diff changeset
    71
	{
hgs
parents:
diff changeset
    72
public:
hgs
parents:
diff changeset
    73
	CTransAnimTimer();
hgs
parents:
diff changeset
    74
	~CTransAnimTimer();
hgs
parents:
diff changeset
    75
	void ConstructL();
hgs
parents:
diff changeset
    76
	void Start(TTimeIntervalMicroSeconds32 aInterval,TCallBack aCallBack);
hgs
parents:
diff changeset
    77
private:
hgs
parents:
diff changeset
    78
	void RunL();
hgs
parents:
diff changeset
    79
	TCallBack iCallBack;
hgs
parents:
diff changeset
    80
	};
hgs
parents:
diff changeset
    81
hgs
parents:
diff changeset
    82
class CTTAnimation
hgs
parents:
diff changeset
    83
	{
hgs
parents:
diff changeset
    84
public:
hgs
parents:
diff changeset
    85
	CTTAnimation(CTWin*, TInt);
hgs
parents:
diff changeset
    86
	~CTTAnimation();
hgs
parents:
diff changeset
    87
	
hgs
parents:
diff changeset
    88
	void StartL();
hgs
parents:
diff changeset
    89
	TBool IsComplete();
hgs
parents:
diff changeset
    90
	void SetCurrentFrameSet(TInt);
hgs
parents:
diff changeset
    91
	CTWin* GetWindow();
hgs
parents:
diff changeset
    92
	void Attach(MAnimationObserver*);
hgs
parents:
diff changeset
    93
private:
hgs
parents:
diff changeset
    94
	static TInt NextFrame(TAny*);
hgs
parents:
diff changeset
    95
	void NextFrame();
hgs
parents:
diff changeset
    96
hgs
parents:
diff changeset
    97
private:
hgs
parents:
diff changeset
    98
	CTWin* iWin;
hgs
parents:
diff changeset
    99
	MAnimationObserver* iObserver;
hgs
parents:
diff changeset
   100
	RAnimDll iAnimDll;
hgs
parents:
diff changeset
   101
	RTestAnim iDrawAnim;
hgs
parents:
diff changeset
   102
	CTransAnimTimer iAnimTimer;
hgs
parents:
diff changeset
   103
	TInt iFrameCount;
hgs
parents:
diff changeset
   104
	TInt iCurrentFrameSet;
hgs
parents:
diff changeset
   105
	TBool iIsComplete;
hgs
parents:
diff changeset
   106
	TInt iDrawArg;
hgs
parents:
diff changeset
   107
	};
hgs
parents:
diff changeset
   108
hgs
parents:
diff changeset
   109
template <TBool AlphaTransparency = EFalse>
hgs
parents:
diff changeset
   110
class CTAnimWin : public CTWin
hgs
parents:
diff changeset
   111
	{
hgs
parents:
diff changeset
   112
public:
hgs
parents:
diff changeset
   113
	static CTWin* NewL(TPoint aPosition, TSize aSize)
hgs
parents:
diff changeset
   114
		{
hgs
parents:
diff changeset
   115
		CTAnimWin* w = new(ELeave) CTAnimWin();
hgs
parents:
diff changeset
   116
	
hgs
parents:
diff changeset
   117
		CleanupStack::PushL(w);
hgs
parents:
diff changeset
   118
		w->ConstructL(aPosition, aSize);
hgs
parents:
diff changeset
   119
		CleanupStack::Pop();
hgs
parents:
diff changeset
   120
		
hgs
parents:
diff changeset
   121
		return w;	
hgs
parents:
diff changeset
   122
		}
hgs
parents:
diff changeset
   123
public:
hgs
parents:
diff changeset
   124
	virtual ~CTAnimWin(){}
hgs
parents:
diff changeset
   125
hgs
parents:
diff changeset
   126
	void Draw(){}
hgs
parents:
diff changeset
   127
private:
hgs
parents:
diff changeset
   128
	CTAnimWin(){}
hgs
parents:
diff changeset
   129
hgs
parents:
diff changeset
   130
	void ConstructL(TPoint aPoint, TSize aSize)
hgs
parents:
diff changeset
   131
		{
hgs
parents:
diff changeset
   132
		TRgb bgColor(150, 150, 150);
hgs
parents:
diff changeset
   133
		ConstructExtLD(*TheClient->iGroup, aPoint, aSize);
hgs
parents:
diff changeset
   134
		AssignGC(*TheClient->iGc);
hgs
parents:
diff changeset
   135
		Win()->SetRequiredDisplayMode(EColor16MA);
hgs
parents:
diff changeset
   136
		if (AlphaTransparency)
hgs
parents:
diff changeset
   137
			{
hgs
parents:
diff changeset
   138
			Win()->SetTransparencyAlphaChannel();
hgs
parents:
diff changeset
   139
			bgColor.SetAlpha(150);
hgs
parents:
diff changeset
   140
			}
hgs
parents:
diff changeset
   141
		Win()->SetBackgroundColor(bgColor);
hgs
parents:
diff changeset
   142
		Win()->Activate();
hgs
parents:
diff changeset
   143
		}
hgs
parents:
diff changeset
   144
	};
hgs
parents:
diff changeset
   145
hgs
parents:
diff changeset
   146
//*****************************************************************************
hgs
parents:
diff changeset
   147
class MAnimationObserver
hgs
parents:
diff changeset
   148
	{
hgs
parents:
diff changeset
   149
public:
hgs
parents:
diff changeset
   150
	virtual void Update(CTTAnimation*) = 0;
hgs
parents:
diff changeset
   151
	};
hgs
parents:
diff changeset
   152
hgs
parents:
diff changeset
   153
class CTTestCase : public MAnimationObserver
hgs
parents:
diff changeset
   154
	{
hgs
parents:
diff changeset
   155
public:
hgs
parents:
diff changeset
   156
	CTTestCase();
hgs
parents:
diff changeset
   157
	virtual ~CTTestCase() {}
hgs
parents:
diff changeset
   158
hgs
parents:
diff changeset
   159
	TBool IsAlreadyRunning();
hgs
parents:
diff changeset
   160
	TBool IsComplete();
hgs
parents:
diff changeset
   161
	void StartL();
hgs
parents:
diff changeset
   162
	TBool HasFailed();
hgs
parents:
diff changeset
   163
	void SetError(TInt);
hgs
parents:
diff changeset
   164
	
hgs
parents:
diff changeset
   165
	// Implemented for MAnimationObserver
hgs
parents:
diff changeset
   166
	virtual void Update(CTTAnimation*);
hgs
parents:
diff changeset
   167
	virtual void ConstructL() = 0;
hgs
parents:
diff changeset
   168
	virtual TPtrC TestCaseName() = 0;
hgs
parents:
diff changeset
   169
hgs
parents:
diff changeset
   170
protected:
hgs
parents:
diff changeset
   171
	virtual void RunTestCaseL() = 0;
hgs
parents:
diff changeset
   172
	void SetIsCompleted(TBool);
hgs
parents:
diff changeset
   173
	
hgs
parents:
diff changeset
   174
private:
hgs
parents:
diff changeset
   175
	TInt iError;
hgs
parents:
diff changeset
   176
	TBool iIsComplete;
hgs
parents:
diff changeset
   177
	TBool iIsRunning;
hgs
parents:
diff changeset
   178
	};
hgs
parents:
diff changeset
   179
hgs
parents:
diff changeset
   180
class CTGraphicsWServ0483 : public CTTestCase
hgs
parents:
diff changeset
   181
	{
hgs
parents:
diff changeset
   182
public:
hgs
parents:
diff changeset
   183
	static CTGraphicsWServ0483* NewL();
hgs
parents:
diff changeset
   184
	
hgs
parents:
diff changeset
   185
public:
hgs
parents:
diff changeset
   186
	virtual ~CTGraphicsWServ0483();
hgs
parents:
diff changeset
   187
	virtual void RunTestCaseL();
hgs
parents:
diff changeset
   188
	
hgs
parents:
diff changeset
   189
	void Update(CTTAnimation*);
hgs
parents:
diff changeset
   190
	
hgs
parents:
diff changeset
   191
protected:
hgs
parents:
diff changeset
   192
	CTGraphicsWServ0483(){}
hgs
parents:
diff changeset
   193
	virtual void ConstructL();
hgs
parents:
diff changeset
   194
	virtual TPtrC TestCaseName();	
hgs
parents:
diff changeset
   195
	
hgs
parents:
diff changeset
   196
private:
hgs
parents:
diff changeset
   197
	CTTAnimation* iAnim;
hgs
parents:
diff changeset
   198
	CTTAnimation* iCheckAnim;
hgs
parents:
diff changeset
   199
	};
hgs
parents:
diff changeset
   200
hgs
parents:
diff changeset
   201
_LIT(KTTransparentAnimStep,"TTransparentAnim");
hgs
parents:
diff changeset
   202
hgs
parents:
diff changeset
   203
#endif // __TTRANSPTANIM__