sl@0: sl@0: // Copyright (c) 1996-2009 Nokia Corporation and/or its subsidiary(-ies). sl@0: // All rights reserved. sl@0: // This component and the accompanying materials are made available sl@0: // under the terms of "Eclipse Public License v1.0" sl@0: // which accompanies this distribution, and is available sl@0: // at the URL "http://www.eclipse.org/legal/epl-v10.html". sl@0: // sl@0: // Initial Contributors: sl@0: // Nokia Corporation - initial contribution. sl@0: // sl@0: // Contributors: sl@0: // sl@0: // Description: sl@0: // sl@0: sl@0: /** sl@0: @file sl@0: @test sl@0: @internalComponent - Internal Symbian test code sl@0: */ sl@0: sl@0: #ifndef __TMODCHG_H__ sl@0: #define __TMODCHG_H__ sl@0: sl@0: #include sl@0: #include sl@0: #include sl@0: #include "../tlib/testbase.h" sl@0: #include "AUTO.H" sl@0: #include "TGraphicsHarness.h" sl@0: sl@0: sl@0: class CTModifiersChanged; sl@0: sl@0: class CMCWindow : public CTWin sl@0: { sl@0: public: sl@0: CMCWindow(CTModifiersChanged *aTest); sl@0: void SetUpL(TPoint pos,TSize size,CTWinBase *parent, CWindowGc &aGc); sl@0: void Draw(); sl@0: void DrawModSetLine(const TDesC &aDes,TInt aModifier,TInt iSettableModifiers); sl@0: protected: sl@0: CTModifiersChanged *iTest; sl@0: TRgb iBack; sl@0: TInt iLineHeight; sl@0: TInt iFontAscent; sl@0: TInt iYpos; sl@0: TInt iXpos1; sl@0: TInt iXpos2; sl@0: }; sl@0: sl@0: class CTEventWindowGroup : public CTWindowGroup sl@0: { sl@0: public: sl@0: CTEventWindowGroup(CTClient *aClient, CTModifiersChanged *iTest); sl@0: void ConstructL(); sl@0: void ModifiersChanged(const TModifiersChangedEvent &aModifiersChanged ,const TTime &aTime); sl@0: void KeyL(const TKeyEvent &aKey,const TTime &aTime); sl@0: private: sl@0: CTModifiersChanged *iTest; sl@0: }; sl@0: sl@0: class CTModifiersChanged : public CTWsGraphicsBase sl@0: { sl@0: public: sl@0: CTModifiersChanged(CTestStep* aStep); sl@0: ~CTModifiersChanged(); sl@0: TestState DoTestL(); sl@0: void ConstructL(); sl@0: void EndTest(); sl@0: TInt SubState() const; sl@0: void IncSubState(); sl@0: void BadParams(); sl@0: void ModifierChangedEventsL(); sl@0: void SetModifiers(); sl@0: void CheckModifier(TEventModifier aModifier); sl@0: void TestModifiersState(const TModifiersChangedEvent &aModifiersChanged); sl@0: protected: sl@0: //from CTGraphicsStep sl@0: virtual void RunTestCaseL(TInt aCurTestCase); sl@0: private: sl@0: inline TestClient* Client() {return TheClient;} sl@0: void SendEvents(); sl@0: void ResetModifiers(); sl@0: static TInt TimeOut(TAny* aTest); sl@0: void TimeOut(); sl@0: public: sl@0: TBool iModSetTest; sl@0: TInt iSettable; sl@0: private: sl@0: enum {KTimeOutAfter=30000000}; // 30 seconds (test takes 8 sec on h4) sl@0: private: sl@0: TSize iWinSize; sl@0: TInt iSubState; sl@0: CTEventWindowGroup *iEventGroup; sl@0: CMCWindow *iWin; sl@0: TBool iSkipFirstModifierEvents; sl@0: TInt iSkipCounter; sl@0: CTimeOut* iTimeOut; sl@0: TBool iSubSchedulerRunning; sl@0: }; sl@0: sl@0: class CTModifiersChangedStep : public CTGraphicsStep sl@0: { sl@0: public: sl@0: CTModifiersChangedStep(); sl@0: protected: sl@0: //from CTGraphicsStep sl@0: virtual CTGraphicsBase* CreateTestL(); sl@0: }; sl@0: sl@0: _LIT(KTModifiersChangedStep,"TModifiersChanged"); sl@0: sl@0: sl@0: #endif