windowing/windowserver/tdynamicres/inc/wsdynamicresbasic.h
changeset 0 5d03bc08d59c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/windowing/windowserver/tdynamicres/inc/wsdynamicresbasic.h	Tue Feb 02 01:47:50 2010 +0200
@@ -0,0 +1,187 @@
+// 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
+*/
+
+#ifndef __WSDYNAMICRESBASIC_H__
+#define __WSDYNAMICRESBASIC_H__
+
+#include "wsdynamicresbase.h"
+#include <graphics/displayconfiguration.h>
+#include <graphics/displaycontrol.h>
+#include <graphics/displaymapping.h>
+#include <e32math.h>
+/**
+ *
+ **/
+
+static TBool cSCLogged =EFalse;
+
+
+class CWsDynamicResBasic : public CWsDynamicResBase
+{
+	typedef CWsDynamicResBase MyBase;
+private:
+	struct TBitmapRegionPair
+		{
+		CFbsBitmap* bitmap;
+		RRegion* region;
+		TRect drawRect;
+		};
+
+public:
+	CWsDynamicResBasic();
+	virtual ~CWsDynamicResBasic();
+	virtual void SetupL();
+	virtual void TearDownL();
+	virtual void TearDownFromDeleteL();
+	
+	static CTestSuite* CreateSuiteL( const TDesC& aName );
+	
+	void ResetScreens();
+	
+protected:
+//tests
+	
+	//BASIC
+	void	GRAPHICS_WSERV_DYNAMICRES_0001L();
+	void	GRAPHICS_WSERV_DYNAMICRES_0002L();
+	void	GRAPHICS_WSERV_DYNAMICRES_0003L();
+	void	GRAPHICS_WSERV_DYNAMICRES_0004L();
+	void	GRAPHICS_WSERV_DYNAMICRES_0005L();
+	void	GRAPHICS_WSERV_DYNAMICRES_0006L();
+	void	GRAPHICS_WSERV_DYNAMICRES_0007L();
+	void	GRAPHICS_WSERV_DYNAMICRES_0008L();
+	void	GRAPHICS_WSERV_DYNAMICRES_0009L();
+	void	GRAPHICS_WSERV_DYNAMICRES_0010L();
+	void	GRAPHICS_WSERV_DYNAMICRES_0011L();
+	void	GRAPHICS_WSERV_DYNAMICRES_0012L();
+	void	GRAPHICS_WSERV_DYNAMICRES_0013L();
+	void	GRAPHICS_WSERV_DYNAMICRES_0014L();
+	void	GRAPHICS_WSERV_DYNAMICRES_0015L();
+	void	GRAPHICS_WSERV_DYNAMICRES_0016L();
+	void	GRAPHICS_WSERV_DYNAMICRES_0017L();
+	void	GRAPHICS_WSERV_DYNAMICRES_0018L();
+
+	//NEGATIVE
+	void	GRAPHICS_WSERV_DYNAMICRES_0021L(TBool aScaleMode);
+	
+	//OOM
+	void	GRAPHICS_WSERV_DYNAMICRES_0031L();
+	void	GRAPHICS_WSERV_DYNAMICRES_0032L();
+	void	GRAPHICS_WSERV_DYNAMICRES_0033L();
+	void	GRAPHICS_WSERV_DYNAMICRES_0034L();
+	
+	//SCREEN CAPTURE
+	void	GRAPHICS_WSERV_DYNAMICRES_0041L(TBool aIsSurface);
+	void	GRAPHICS_WSERV_DYNAMICRES_0042L(TBool aIsSurface);
+	
+	//DYNAMIC SCREEN MODE
+	void	GRAPHICS_WSERV_DYNAMICRES_0051L();
+	void	GRAPHICS_WSERV_DYNAMICRES_0052L();
+	void	GRAPHICS_WSERV_DYNAMICRES_0053L();
+
+	//DEFECT
+	void	GRAPHICS_WSERV_DYNAMICRES_0101L();
+	void	GRAPHICS_WSERV_DYNAMICRES_0102L();
+	
+	
+	void SetRotation (TDisplayConfiguration& aConfig, const MDisplayControl::TResolution& aResolution);
+	TBool Compare(const CFbsBitmap& aBitmap, const TRect& aRect1,
+			const TRect& aRect2, RArray<TBitmapRegionPair>& aRegionArray, TBool aIsSurface);
+	TRgb GreatestColor(TRgb& aColor) const;
+
+//data members:
+private:
+	CActiveScheduler	iScheduler;
+};
+
+class CWsDisplayEvent : public CActive
+	{
+	
+public:
+	CWsDisplayEvent(RWsSession *aWs);
+	~CWsDisplayEvent();
+	void Request();
+	TInt ConfigSpinner()	{return iConfigSpinner;}
+	TInt ResListSpinner()	{return iResListSpinner;}
+	TInt ReceivedEventCount()	{return iReceivedEventCount;}
+	TInt ReceivedDeviceEventCount()	{return iReceivedDeviceEventCount;}
+	TInt ReceivedPointerEventCount() {return iReceivedPointerEventCount;}
+	void SetExpectedPointPos(const TPoint& aPos) {iPointerPos = aPos;}
+	TBool PointerTestPassed() {return iPointerPosTestPass;}
+protected:
+	void DoCancel();
+	void RunL();
+	
+private:
+	RWsSession *iWs;
+	TInt iConfigSpinner;
+	TInt iResListSpinner;
+	TInt iReceivedEventCount;
+	TInt iReceivedDeviceEventCount;
+	TInt iReceivedPointerEventCount;	
+	TPoint iPointerPos;
+	TBool iPointerPosTestPass;
+	};
+
+class CEventTimer : public CActive
+	{
+public:
+	static CEventTimer* NewL();
+	~CEventTimer();
+	void Wait(TInt aDelay);
+	// From CActive:
+	void RunL();
+	void DoCancel();
+	
+protected:
+	CEventTimer();
+	void ConstructL();
+	protected:
+RTimer iTimer;
+};
+
+
+
+class CDSATestDrawing: public CTimer, public MDirectScreenAccess
+	{
+public:
+
+	void Draw();
+
+	
+	
+	static CDSATestDrawing* NewL();
+	void ConstructL();
+	//from MDirectScreenAccess
+	void Restart(RDirectScreenAccess::TTerminationReasons aReason);
+	void AbortNow(RDirectScreenAccess::TTerminationReasons aReason);
+	~CDSATestDrawing();
+	void SetDSA(CDirectScreenAccess *aDSA){iDSA = aDSA;}
+	void SetWindow(RWindow &aWindow){iWin = &aWindow;}
+	void StartDrawingL(CDirectScreenAccess *aDSA);
+	void RunL();
+	
+private:
+	CDSATestDrawing();
+	TRect iRect;
+	RWindow* iWin;
+	CDirectScreenAccess *iDSA;
+	};
+
+#endif	/*__WSDYNAMICRESBASIC_H__*/