diff -r 000000000000 -r bde4ae8d615e os/graphics/windowing/windowserver/test/tauto/TTEXTCURS.H --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/os/graphics/windowing/windowserver/test/tauto/TTEXTCURS.H Fri Jun 15 03:10:57 2012 +0200 @@ -0,0 +1,146 @@ + +// 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 __TTEXTCURS_H__ +#define __TTEXTCURS_H__ + +#include <e32std.h> +#include <w32std.h> +#include "../tlib/testbase.h" +#include "AUTO.H" +#include "TGraphicsHarness.h" + +/* + * Wrapper class for a custom text cursor. + */ +class CCustomTextCursor : public CBase + { +public: + static CCustomTextCursor* CreateCustomTextCursorL(TInt aScreenNumber,TInt aBmpIndex,CTestBase* aTest); + ~CCustomTextCursor(); + +private: + CCustomTextCursor(CTestBase* aTest); + void ConstructL(TInt aScreenNumber,TInt aBmpIndex); + +public: + TInt iIdentifier; + RArray<TSpriteMember> iSpriteMemberArray; + TUint iSpriteFlags; + RWsSession::TCustomTextCursorAlignment iAlignment; + CTestBase* iTest; + }; + +class CTCursorTest : public CTWsGraphicsBase + { +public: + CTCursorTest(CTestStep* aStep); + ~CTCursorTest(); +protected: +//from CTGraphicsStep + virtual void RunTestCaseL(TInt aCurTestCase); +private: + void SetCursor(const TPoint &aPos,const TSize &aSize,TRgb aColor, TUint aFlags=0); + void SetCursor(const TPoint &aPos,const TSize &aSize,TRgb aColor, const TRect &aRect, TUint aFlags=0); + void SetCursorPlusBox(const TPoint &aPos,const TSize &aSize,TRgb aColor, const TRect *aRect, TUint aFlags=0); + void CancelTextCursor(); + void ConstructL(); + void doMoveWindowTestL(); + TBool MoveWindow(); + void TestPanicsL(); + void ScrollTest(); + void GeneralTestsL(); + void MoveWindowTest1L(); + void MoveWindowTest2L(); + void INC041278L(); + void INC040489L(); + void CursorUpdatedBeforeWindowRenderedL(); + void INC097774(); + void INC117232(); +#ifdef TEST_GRAPHICS_WSERV_TAUTOSERVER_NGA + void TextCursorNoFlashTestL(); + void TextCursorFlashTestL(); + void CheckCursorDoesNotFlash(const TSize& aSize); + void UpdateCountersOnCursorTransition( + const TBool aTransitionedToOn, + TTime& aNow, + TInt64& aDeltaTime, + TTime& aLastDeltaTime, + TInt& aWarmUpIterations, + const TInt& aFlashChangeTime, + const TInt& aToleranceMargin, + TInt& aSampleNumber, + TInt& aToleranceViolations + ); + void CheckCursorDoesFlash(const TPoint& aPos, const TTextCursor& aTextCursor, TRgb aBackgroundColor); + void DrawTextCursorSimilarToRenderStage(CWindowGc& aGc, RWindow& aWin, const TPoint& aPos, const TTextCursor& aTextCursor); +#endif + TBool IncrementCursorType(); + CTSprite* CreateTestSpriteLC(RWindowTreeNode &aWindow, const TPoint &aPos, TInt aCount); + void TestForArtifacts(CBlankWindow* aWin1, TTextCursor& aCursor); + void CheckNoDoubleCursorTest1L(CBlankWindow* aWin1, CBlankWindow* win2, TTextCursor& aTextCursor,TTextCursor& aCustomCursor, CWindowGc* winGc); + void CheckNoDoubleCursorTest2L(CBlankWindow* aWin1, CBlankWindow* win2, TTextCursor& aTextCursor,TTextCursor& aCustomCursor, CWindowGc* winGc); + void CheckNoDoubleCursorTest3L(CBlankWindow* aWin1, CBlankWindow* win2, TTextCursor& aTextCursor,TTextCursor& aCustomCursor, CWindowGc* winGc); + void MakeCursors(TTextCursor& aTextCursor, TTextCursor& aCustomCursor); + void StartDoubleCursorTestL(TInt aTestNumber); + void doCheckNoDoubleCursor(CBlankWindow* aWin1, + CBlankWindow* aWin2, + const TPoint& aWin1Tl, + const TPoint& aWin1T2, + const TTextCursor& aCursor, + const TSize& aCursorSize, + CWsScreenDevice::TSpriteInCompare aFlags); + + void ResetWindows(CWindowGc* aWinGc,CBlankWindow* aWin1,CBlankWindow* aWin2); + void ValidateWin(TestWindow *aWin, TRgb aColor); + void RedrawWin(RWindow &aWin, TRgb aColor); + void DeleteMoveWindows(); + void ResetMoveWindowsL(); + static TInt DoPanicTest(TInt aInt, TAny *aScreenNumber); + void TextCursorSetLCoverageTests(); + +private: + TSize iWinSize; + TPoint iWinPos; + TInt iWinState; + CBlankWindow *iMoveWin; + CBlankWindow *iCheckWin; + CBlankWindow *iWorkInProgress; + CBlankWindow *iComparisonWindow; + TTextCursor::EType iCursorType; + static CTestBase* iStaticTest; // static because it is used by DoPanicTest + }; + + +class CTCursorTestStep : public CTGraphicsStep + { +public: + CTCursorTestStep(); +protected: + //from CTGraphicsStep + virtual CTGraphicsBase* CreateTestL(); + }; + +_LIT(KTCursorTestStep,"TCursorTest"); + + +#endif