diff -r 29ddb8a72f0e -r 9f1c3fea0f87 graphicstest/uibench/src/trenderorientation.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/graphicstest/uibench/src/trenderorientation.h Wed Aug 18 11:05:09 2010 +0300 @@ -0,0 +1,106 @@ +// Copyright (c) 2010 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 TRENDERORIENTATION_H +#define TRENDERORIENTATION_H + +#include +#include "te_graphicsperformanceSuiteStepBase.h" + +/** +CTWindowSet contains a window server session, a group window and a child window. + */ +class CTWindowSet : public CBase + { +public: + ~CTWindowSet(); + void ConstructL(); + void Destroy(); + + inline RWsSession& Session() + {return iWs;}; + inline RWindowGroup& WindowGroup() + {return iWindowGroup;}; + +private: + RWsSession iWs; + RWindowGroup iWindowGroup; + RWindow iChildWindow; + }; + +/** +Test case to test the performance of various use cases which affect the render orientation RProperty +*/ +class CTRenderOrientation : public CTe_graphicsperformanceSuiteStepBase + { +public: + CTRenderOrientation(); + ~CTRenderOrientation(); + + // From CTestStep + virtual TVerdict doTestStepPreambleL(); + virtual TVerdict doTestStepPostambleL(); + + virtual TVerdict doTestStepL(); + +private: + enum TWindowSet + { + // One per orientation + EFirstWindowSet, + ESecondWindowSet, + EThirdWindowSet, + EFourthWindowSet, + + ENumWindowSets + }; + + enum TTestPhase + { + EIndicatedOrientationChange, // window indicates a new render orientation + EWindowOrdinalChange, // window order changed, render orientation dictated by a different window with a different orientation + EThemeOrientationChange, // theme orientation changed, render orienation dictated by this due to relevant window being set to EDisplayOrientationAuto + EThemeOrientationChangeOnly, // theme orientation change only, to compare timings to above + + ENumTestPhases + }; + + void TestOrientationChangeL(const TDesC& aStepName, TTestPhase aTestPhase); + + TRenderOrientation GetRenderOrientationL(); + TRenderOrientation GetThemeOrientationL(); + TRenderOrientation GetOrientationL(RProperty& aProperty); + void ThemeServerProperty(const TDesC& aCmd); + +private: + CTWindowSet iWindowSet[ENumWindowSets]; + RProperty iWsRenderOrientationProperty; + RProperty iThemeOrientationProperty; + + RTimer iTimeoutTimer; + TRequestStatus iTimeoutStatus; + TRequestStatus iOrientationStatus; + TInt iTimingsTaken; + }; + +_LIT(KTRenderOrientation,"trenderorientation"); + +#endif /* TRENDERORIENTATION_H */