windowing/windowserver/tauto/TScreenModeScaling.h
changeset 0 5d03bc08d59c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/windowing/windowserver/tauto/TScreenModeScaling.h	Tue Feb 02 01:47:50 2010 +0200
@@ -0,0 +1,164 @@
+// 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:
+// Definitions common for both scren mode positioning and scaling
+// 
+//
+
+/**
+ @file
+ @test
+ @internalComponent - Internal Symbian test code
+*/
+
+#ifndef __TSCREENMODESCALING_H__
+#define __TSCREENMODESCALING_H__
+
+
+#include <e32std.h>
+#include <w32std.h>
+#include "../tlib/testbase.h"
+#include "AUTO.H"
+#include "TGraphicsHarness.h"
+
+_LIT(ScalingTestName,"Screen Mode Scaling");
+
+GLREF_C void ClearBitmap(CFbsBitmap* aBitMap);
+
+class CBasicWin : public CTWin
+	{
+public:
+	//Virtual Function from CTBaseWin
+	void Draw();
+	TInt iDrawn;
+	};
+
+class CBmpWin : public CTWin
+	{
+public:
+	inline CBmpWin(CFbsBitmap& aScreenBmp) :iScreenBmp(aScreenBmp) {}
+	//Virtual Function from CTBaseWin
+	void Draw();
+private:
+	CFbsBitmap& iScreenBmp;
+	};
+
+class CSpriteWin : public CTWin
+	{
+public:
+	inline CSpriteWin(CFbsBitmap& aSpriteBitmap) :iSpriteBitmap(aSpriteBitmap) {}
+	~CSpriteWin();
+	inline void SetState(TInt aState) {iState=aState;}
+	void UpdateState(TInt aState);
+	//Virtual Function from CTBaseWin
+	void Draw();
+private:
+	CFbsBitmap& iSpriteBitmap;
+	TInt iState;
+	};
+
+class CTestSpriteWin : public CTWin
+	{
+public:
+	inline CTestSpriteWin(CFbsBitmap& aSpriteBitmap) :iSpriteBitmap(aSpriteBitmap) {}
+	~CTestSpriteWin();
+	inline void SetOrigin(TPoint aOrigin) {iOrigin=aOrigin;}
+	void UpdateWin(TPoint aOrigin);
+	//Virtual Function from CTBaseWin
+	void Draw();
+private:
+	CFbsBitmap& iSpriteBitmap;
+	TPoint iOrigin;
+	};
+
+class CBitMapWin : public CTWin
+	{
+public:
+	inline CBitMapWin(CBitmap* aBackupBitmap) :iBackup(aBackupBitmap) {}
+	//Virtual Function from CTBaseWin
+	void Draw();
+private:
+	CBitmap* iBackup;
+	};
+
+
+
+class CTScreenModeScaling : public CTWsGraphicsBase
+	{
+public:
+	CTScreenModeScaling(CTestStep* aStep);
+	~CTScreenModeScaling();
+	void ConstructL();
+	void WindowTestsL();
+	void SpriteTestL();
+	void RotationTestsL();
+	void TransparentTestsL();
+	void AppScreenModeTestL();
+	
+protected:
+	virtual void RunTestCaseL(TInt aCurTestCase);
+
+private:
+	void DoWindowTestsL();
+	void TestTopClientWindowPositionAPIs(TPoint aPos,RWindowBase* aWin);
+	void TestChildWindowPositionAPIs(TPoint aPos,TPoint aParentPos,RWindowBase* aWin,RWindowBase* aParentWin);
+	void TestRect();
+	void CompareRegionsL(const TRegion &aRegion1,const TRegion &aRegion2);
+	void TestGetInvalidRegionL(TRect& aRect);
+	void CopyAndCompareL();
+	void PositionTestL(TPoint aPostion);
+	void BackedUpChildWindowTestL(TPoint aPostion);
+	void NextScreenModeTestL(TPoint aPos);
+	void GetInvalidRegionTestL(TPoint aPos);
+	void TestDifferentScales(TInt aLastMode);
+	void TestDifferentOrigin(TSizeMode &aMode,TPoint aOrigin);
+	void DoSpriteTestsL();
+	void TestDifferentOriginAndScaleForSpritesL(TSizeMode &aMode,TPoint aOrigin);
+	void SetUpSpriteLC(RWsSprite &aSprite,RWsSession &aSession,RWindowTreeNode &aWindow,TInt aFlags=ESpriteNoShadows);
+	void DrawTransparentWindows();
+	void TestDifferentOriginAndScaleForTranspWin(TSizeMode &aMode,TPoint aOrigin);
+private:
+	CFbsBitmap iSpriteBitmap;
+	CBmpWin* iBitmapWin;
+	CFbsBitmap* iScreenBitmap;
+	CBasicWin *iTestWin;
+	CTBackedUpWin* iBackedUpWin;
+	CTBlankWindow* iBlankWin;
+	CTBlankWindow* iTestChildWin;
+	TInt iCurrentMode;
+	TSize iTestWinSize;
+	TPoint iCurrentScreenModeOrigin;
+	TSize iCurrentScreenModeScale;
+	CTBackedUpWin* iCheckWin;
+	CBitmap* iCheckBitmap;
+	CBitmap* iTransparencyBitmap;
+	CBitmap* iBackgroundBitmap;
+	CBitmap* iForegroundBitmap;
+	CBitMapWin* iTransWin;
+	CBitMapWin* iBackgroundWin;
+	TSize iWinSize;
+	TDisplayMode iDisplayMode;
+	};
+
+class CTScreenModeScalingStep : public CTGraphicsStep
+	{
+public:
+	CTScreenModeScalingStep();
+protected:	
+	//from CTGraphicsStep
+	virtual CTGraphicsBase* CreateTestL();
+	};
+
+_LIT(KTScreenModeScalingStep,"TScreenModeScaling");
+
+#endif