windowing/windowserver/tauto/TSCROLL.H
changeset 0 5d03bc08d59c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/windowing/windowserver/tauto/TSCROLL.H	Tue Feb 02 01:47:50 2010 +0200
@@ -0,0 +1,203 @@
+
+// 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:
+//
+
+/**
+ @file
+ @test
+ @internalComponent - Internal Symbian test code
+*/
+
+#ifndef __TSCROLL_H__
+#define __TSCROLL_H__
+
+#include <e32std.h>
+#include <w32std.h>
+#include "../tlib/testbase.h"
+#include <bitstd.h>
+#include "AUTO.H"
+#include "TGraphicsHarness.h"
+
+class CTScroll;
+class CScrollTestBase;
+
+class CScrollWindowNorm : public CTWin
+	{
+public:
+	CScrollWindowNorm();
+	void Draw();
+	void SetScrollTest(CScrollTestBase *aScrollTest);
+private:
+	CScrollTestBase *iScrollTest;
+	};
+
+class CScrollWindowBackedUp : public CTBackedUpWin
+	{
+public:
+	CScrollWindowBackedUp(TDisplayMode aDisplayMode);
+	void Draw();
+	void SetScrollTest(CScrollTestBase *aScrollTest);
+private:
+	CScrollTestBase *iScrollTest;
+	};
+
+class CScrollTestBase : public CBase
+	{
+public:
+	~CScrollTestBase();
+	virtual void ConstructL(const TPoint &aPos, const TSize &aSize)=0;
+	virtual void DoTestScroll(const TPoint &aOffset)=0;
+	virtual void DoTestScroll(const TRect &aClipRect, const TPoint &aOffset)=0;
+	virtual void DoTestScroll(const TPoint &aOffset, const TRect &aRect)=0;
+	virtual void DoTestScroll(const TRect &aClipRect, const TPoint &aOffset, const TRect &aRect)=0;
+	virtual void Reset();
+	TPoint Offset() const;
+	virtual CTDrawableWin *ScrollWin() const=0;
+	virtual void DoInvalidate();
+	virtual void Redraw()=0;
+protected:
+	TSize iSize;
+	TPoint iOffset;
+	friend class CTScroll;
+	RRegion iInvalid;
+	CTBlankWindow *iBlankWin;
+	};
+
+class CScrollTestBaseNorm : public CScrollTestBase
+	{
+public:
+	void ConstructL(const TPoint &aPos, const TSize &aSize);
+	~CScrollTestBaseNorm();
+	virtual CTDrawableWin *ScrollWin() const;
+	virtual void Reset();
+	void VisibleRegion(RRegion &aRegion);
+	void AdjustTestScrollRegion(const TRect &aClipRect, const TPoint &aOffset, const TRect &aRect);
+	void DrawScrollWin(const TPoint &aOffset, const TSize &aSize);
+	void Redraw();
+protected:
+	CScrollWindowNorm *iScrollWin;
+	};
+
+class CScrollWindow1 : public CScrollTestBaseNorm
+//
+// Used as control window for a normal redraw window
+//
+	{
+public:
+	void DoTestScroll(const TPoint &aOffset);
+	void DoTestScroll(const TRect &aClipRect, const TPoint &aOffset);
+	void DoTestScroll(const TPoint &aOffset, const TRect &aRect);
+	void DoTestScroll(const TRect &aClipRect, const TPoint &aOffset, const TRect &aRect);
+	void DoInvalidate();
+	};
+
+class CScrollWindow2 : public CScrollTestBaseNorm
+//
+// Used to test a normal redraw window
+//
+	{
+public:
+	CScrollWindow2(CTScroll *aTest);
+	virtual void Draw();
+	virtual void Reset();
+	void DoTestScroll(const TPoint &aOffset);
+	void DoTestScroll(const TRect &aClipRect, const TPoint &aOffset);
+	void DoTestScroll(const TPoint &aOffset, const TRect &aRect);
+	void DoTestScroll(const TRect &aClipRect, const TPoint &aOffset, const TRect &aRect);
+private:
+	TBool iClipped;
+	CTScroll *iTest;
+	};
+
+class CScrollWindow3 : public CScrollTestBaseNorm
+//
+// Used as control window for testing backed up windows
+//
+	{
+public:
+	void ConstructL(const TPoint &aPos, const TSize &aSize);
+	~CScrollWindow3();
+	virtual void Reset();
+	void Draw();
+	void DoTestScroll(const TPoint &aOffset);
+	void DoTestScroll(const TRect &aClipRect, const TPoint &aOffset);
+	void DoTestScroll(const TPoint &aOffset, const TRect &aRect);
+	void DoTestScroll(const TRect &aClipRect, const TPoint &aOffset, const TRect &aRect);
+	void DoInvalidate();
+	void DrawScrollBit();
+private:
+	CFbsBitmap *iBitmap;
+	CFbsDevice *iBitmapDevice;
+	CFbsBitGc *iBitmapGc;
+	};
+
+class CScrollWindow4 : public CScrollTestBase
+//
+// Tests a backed up window
+//
+	{
+public:
+	~CScrollWindow4();
+	void ConstructL(const TPoint &aPos, const TSize &aSize);
+	void DoTestScroll(const TPoint &aOffset);
+	void DoTestScroll(const TRect &aClipRect, const TPoint &aOffset);
+	void DoTestScroll(const TPoint &aOffset, const TRect &aRect);
+	void DoTestScroll(const TRect &aClipRect, const TPoint &aOffset, const TRect &aRect);
+	virtual CTDrawableWin *ScrollWin() const;
+	virtual void Reset();
+	void Redraw();
+protected:
+	CScrollWindowBackedUp *iScrollWin;
+	};
+
+class CTScroll : public CTWsGraphicsBase
+	{
+public:
+	CTScroll(CTestStep* aStep);
+	~CTScroll();
+	void ConstructL();
+	void CheckScrollWindows();
+	void DoTestScroll(const TPoint &aOffset);
+	void DoTestScroll(const TRect &aClipRect, const TPoint &aOffset);
+	void DoTestScroll(const TPoint &aOffset, const TRect &aRect);
+	void DoTestScroll(const TRect &aClipRect, const TPoint &aOffset, const TRect &aRect);
+	void FinishedRectScrolls();
+	void CheckOomScroll();
+	void OomScrolling();
+	void DemoWindowScrollL();
+protected:
+//from 	CTGraphicsStep
+	virtual void RunTestCaseL(TInt aCurTestCase);
+private:
+	TSize iWinSize;
+	TInt iMode;
+	TBool iDoCheck;
+	CScrollTestBase *iBaseScrollWin;
+	CScrollTestBase *iTestScrollWin;
+	};
+
+class CTScrollStep : public CTGraphicsStep
+	{
+public:
+	CTScrollStep();
+protected:	
+	//from CTGraphicsStep
+	virtual CTGraphicsBase* CreateTestL();
+	};
+
+_LIT(KTScrollStep,"TScroll");
+
+
+#endif