First public contribution.
2 // Copyright (c) 1996-2009 Nokia Corporation and/or its subsidiary(-ies).
3 // All rights reserved.
4 // This component and the accompanying materials are made available
5 // under the terms of "Eclipse Public License v1.0"
6 // which accompanies this distribution, and is available
7 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
9 // Initial Contributors:
10 // Nokia Corporation - initial contribution.
20 @internalComponent - Internal Symbian test code
28 #include "../tlib/testbase.h"
31 #include "TGraphicsHarness.h"
34 class CScrollTestBase;
36 class CScrollWindowNorm : public CTWin
41 void SetScrollTest(CScrollTestBase *aScrollTest);
43 CScrollTestBase *iScrollTest;
46 class CScrollWindowBackedUp : public CTBackedUpWin
49 CScrollWindowBackedUp(TDisplayMode aDisplayMode);
51 void SetScrollTest(CScrollTestBase *aScrollTest);
53 CScrollTestBase *iScrollTest;
56 class CScrollTestBase : public CBase
60 virtual void ConstructL(const TPoint &aPos, const TSize &aSize)=0;
61 virtual void DoTestScroll(const TPoint &aOffset)=0;
62 virtual void DoTestScroll(const TRect &aClipRect, const TPoint &aOffset)=0;
63 virtual void DoTestScroll(const TPoint &aOffset, const TRect &aRect)=0;
64 virtual void DoTestScroll(const TRect &aClipRect, const TPoint &aOffset, const TRect &aRect)=0;
66 TPoint Offset() const;
67 virtual CTDrawableWin *ScrollWin() const=0;
68 virtual void DoInvalidate();
69 virtual void Redraw()=0;
73 friend class CTScroll;
75 CTBlankWindow *iBlankWin;
78 class CScrollTestBaseNorm : public CScrollTestBase
81 void ConstructL(const TPoint &aPos, const TSize &aSize);
82 ~CScrollTestBaseNorm();
83 virtual CTDrawableWin *ScrollWin() const;
85 void VisibleRegion(RRegion &aRegion);
86 void AdjustTestScrollRegion(const TRect &aClipRect, const TPoint &aOffset, const TRect &aRect);
87 void DrawScrollWin(const TPoint &aOffset, const TSize &aSize);
90 CScrollWindowNorm *iScrollWin;
93 class CScrollWindow1 : public CScrollTestBaseNorm
95 // Used as control window for a normal redraw window
99 void DoTestScroll(const TPoint &aOffset);
100 void DoTestScroll(const TRect &aClipRect, const TPoint &aOffset);
101 void DoTestScroll(const TPoint &aOffset, const TRect &aRect);
102 void DoTestScroll(const TRect &aClipRect, const TPoint &aOffset, const TRect &aRect);
106 class CScrollWindow2 : public CScrollTestBaseNorm
108 // Used to test a normal redraw window
112 CScrollWindow2(CTScroll *aTest);
114 virtual void Reset();
115 void DoTestScroll(const TPoint &aOffset);
116 void DoTestScroll(const TRect &aClipRect, const TPoint &aOffset);
117 void DoTestScroll(const TPoint &aOffset, const TRect &aRect);
118 void DoTestScroll(const TRect &aClipRect, const TPoint &aOffset, const TRect &aRect);
124 class CScrollWindow3 : public CScrollTestBaseNorm
126 // Used as control window for testing backed up windows
130 void ConstructL(const TPoint &aPos, const TSize &aSize);
132 virtual void Reset();
134 void DoTestScroll(const TPoint &aOffset);
135 void DoTestScroll(const TRect &aClipRect, const TPoint &aOffset);
136 void DoTestScroll(const TPoint &aOffset, const TRect &aRect);
137 void DoTestScroll(const TRect &aClipRect, const TPoint &aOffset, const TRect &aRect);
139 void DrawScrollBit();
142 CFbsDevice *iBitmapDevice;
143 CFbsBitGc *iBitmapGc;
146 class CScrollWindow4 : public CScrollTestBase
148 // Tests a backed up window
153 void ConstructL(const TPoint &aPos, const TSize &aSize);
154 void DoTestScroll(const TPoint &aOffset);
155 void DoTestScroll(const TRect &aClipRect, const TPoint &aOffset);
156 void DoTestScroll(const TPoint &aOffset, const TRect &aRect);
157 void DoTestScroll(const TRect &aClipRect, const TPoint &aOffset, const TRect &aRect);
158 virtual CTDrawableWin *ScrollWin() const;
159 virtual void Reset();
162 CScrollWindowBackedUp *iScrollWin;
165 class CTScroll : public CTWsGraphicsBase
168 CTScroll(CTestStep* aStep);
171 void CheckScrollWindows();
172 void DoTestScroll(const TPoint &aOffset);
173 void DoTestScroll(const TRect &aClipRect, const TPoint &aOffset);
174 void DoTestScroll(const TPoint &aOffset, const TRect &aRect);
175 void DoTestScroll(const TRect &aClipRect, const TPoint &aOffset, const TRect &aRect);
176 void FinishedRectScrolls();
177 void CheckOomScroll();
179 void DemoWindowScrollL();
181 //from CTGraphicsStep
182 virtual void RunTestCaseL(TInt aCurTestCase);
187 CScrollTestBase *iBaseScrollWin;
188 CScrollTestBase *iTestScrollWin;
191 class CTScrollStep : public CTGraphicsStep
196 //from CTGraphicsStep
197 virtual CTGraphicsBase* CreateTestL();
200 _LIT(KTScrollStep,"TScroll");