windowing/windowserver/test/t_stress/inc/animatedwin.h
changeset 0 5d03bc08d59c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/windowing/windowserver/test/t_stress/inc/animatedwin.h	Tue Feb 02 01:47:50 2010 +0200
@@ -0,0 +1,123 @@
+// Copyright (c) 2008-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
+*/
+
+#ifndef ANIMATED_H
+#define ANIMATED_H
+
+#include <w32std.h>
+#include "compwin.h"
+#include "test_step_conf.h"
+
+_LIT8(KAnimatedWindowType, "Animated");
+
+class CAnimatedWin : public CCompWin
+	{
+public:
+	static CAnimatedWin* NewLC(RWsSession& aWs, RWindowGroup* aGroup, CCompWin* aParent, CWindowGc& aGc);
+	static void LoadConfiguration(const MTestStepConfigurationContext* aContext);
+	static TBool IsEnabled() { return iEnabled; }
+
+	~CAnimatedWin();
+	
+	// from CCompWin
+	void Redraw(const TRect& aRect);
+	void DrawBitmap(CFbsBitGc* aGc, TRect& aClip, TPoint& aOrigin);
+	void SetSize(const TSize & aSize);
+	void SetPos(const TPoint & aPos);
+	virtual const TDesC8& TypeName() { return KAnimatedWindowType; }
+	void DumpDetails(RFile & aFile, TInt aDepth);
+	
+protected:
+	CAnimatedWin(RWsSession& aWs, RWindowGroup* aGroup, CCompWin* aParent, CWindowGc& aGc);
+	void ConstructL();
+	
+	// from CCompWin
+	TBool QueryReadyForVerification();
+
+private:
+	void SetAnimPos(const TPoint& aPos);
+	void AppendTime(TDes& aTimeText,const TTime& aTime) const;
+	
+	static TBool iEnabled;
+	static TBool iTransparent;
+	static TBool iTransparentForegroundWindow;
+	
+private:
+	class RStressAnim : public RAnim
+	{ 
+	public:
+		RStressAnim (RAnimDll& aAnimDll);
+		TInt Construct(const RWindowBase &aDevice, const TDesC8 &aParams);
+		
+		TInt RequestAnimThis(TInt aOpcode);
+		TInt RequestAnimThis(TInt aOpcode, const TDesC8 &aParams);
+			
+		friend class CAnimatedWin;
+	};
+	
+	enum TValues
+	{
+	ENofFrames = 2,
+	EFrame1	   = 0,
+	EFrame2	   = 1,
+	EFrameSzX  = 64,
+	EFrameSzY  = 64,
+	EFrameSzXHalf = (EFrameSzX / 2),
+	EFrameSzYHalf = (EFrameSzY / 2),
+	EFrameSzXQtr = (EFrameSzX / 4),
+	EFrameSzYQtr = (EFrameSzY / 4),
+	EFrameSzXEgt = (EFrameSzX / 8),
+	EFrameSzYEgt = (EFrameSzY / 8),
+	EFrameDurMult = 100000,
+	EFrameDurMaxTenthSec = 15,
+	EWatchUrgentSync	= 100000,   	// 	1/10 sec
+	EWatchLazySync		= 800000,	    // 	8/10 sec
+	EWatchSafeGap		= 100000,
+	EWatchMatchGap		= 900000
+	};
+
+	RAnimDll				iAnimDll;
+	RStressAnim*			iAnim;
+
+	CFbsBitmap* 			iAnimContent [ENofFrames];
+	CFbsBitmap* 			iAnimMask;
+
+	CFbsFont*				iAnimFont; 				
+	
+	CFbsBitmapDevice*		iAnimCntDevice [ENofFrames];
+	CFbsBitmapDevice*		iAnimMskDevice;
+	
+	TBool					iConstructed;
+	
+	TRgb					iBgColor;
+
+	TTimeIntervalMicroSeconds32
+							iFrameDuration;
+	
+	TUint32 				iAnimStartup,
+							iAnimLastKnownAction;
+	TInt 					iKernelTicksPeriod;
+	
+	RBlankWindow*  			iForeWin; //transparent foreground window
+	};
+
+
+#endif // ANIMATED_H