diff -r 2717213c588a -r 171fae344dd4 windowing/windowserver/TClick/multiptrclick.cpp --- a/windowing/windowserver/TClick/multiptrclick.cpp Tue Jun 22 15:21:29 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,246 +0,0 @@ -// Copyright (c) 2008-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: -// Test Multi Pointer Click Plug-In DLL -// -// - -#include -#include "W32CLICK.H" -#include "multiptrclick.h" - -class CMultiPtrClickMaker : public CClickMaker - { - enum {EEventBufferSize=32}; -public: - ~CMultiPtrClickMaker(); - void ConstructL(); - //Virtual function from CClickMaker - void KeyEvent(TEventCode aType, const TKeyEvent& aEvent); - void PointerEvent(const TPointerEvent& aEvent); - void OtherEvent(TInt aType, TAny* aParam); - TInt CommandReplyL(TInt aOpcode, TAny *aArgs); - -private: - TInt AddEvent(const TWsEvent* aEvent); - TInt AddEvent(const TPointerEventData* aEvent); - TBool ComparePointerEvents(const TPointerEvent* aExpectedEvent, const TPointerEvent* aActualEvent); - TBool CompareOtherEvents(const TPointerEventData* aExpectedEvent, const TPointerEventData* aActualEvent); -private: - CCirBuf iPtrEventBuffer; - CCirBuf iOtherEventBuffer; - TBuf<255> iErrorDes; - TInt iPtrEventCount; - TInt iOtherEventCount; - TInt iError; - }; - - -void CMultiPtrClickMaker::ConstructL() - { - iPtrEventBuffer.SetLengthL(EEventBufferSize); - iOtherEventBuffer.SetLengthL(EEventBufferSize); - } - -CMultiPtrClickMaker::~CMultiPtrClickMaker() - { - } - -void CMultiPtrClickMaker::KeyEvent(TEventCode /*aType*/,const TKeyEvent& /*aEvent*/) - { - } - -TBool CMultiPtrClickMaker::ComparePointerEvents(const TPointerEvent* aExpectedEvent, const TPointerEvent* aActualEvent) - { - // Check pointer type - if (aExpectedEvent->iType != aActualEvent->iType) - { - _LIT(KEventType, "Actual Wserv Event type = %d Expected Wserv Event Type = %d "); - iErrorDes.Format(KEventType, aActualEvent->iType, aExpectedEvent->iType); - return EFalse; - } - - if (aExpectedEvent->iPosition != aActualEvent->iPosition) - { - _LIT(KPointerPosition, "Actual PointerPosition = (%d, %d) Expected PointerPosition = (%d, %d) "); - iErrorDes.Format(KPointerPosition, aActualEvent->iPosition.iX, aActualEvent->iPosition.iY, aExpectedEvent->iPosition.iX, aExpectedEvent->iPosition.iY); - return EFalse; - } - - if (aExpectedEvent->iParentPosition != aActualEvent->iParentPosition) - { - _LIT(KPointerPosition, "Actual parent Position = (%d, %d) Expected parent Position = (%d, %d) "); - iErrorDes.Format(KPointerPosition, aActualEvent->iParentPosition.iX, aActualEvent->iParentPosition.iY, aExpectedEvent->iParentPosition.iX, aExpectedEvent->iParentPosition.iY); - return EFalse; - } - - if (aExpectedEvent->IsAdvancedPointerEvent() != aActualEvent->IsAdvancedPointerEvent()) - { - _LIT(KPointerPosition, "Actual event is TAdvancedPointerEvent = %d Expected event is TAdvancedPointerEvent = %d "); - iErrorDes.Format(KPointerPosition, aActualEvent->IsAdvancedPointerEvent(), aExpectedEvent->IsAdvancedPointerEvent()); - return EFalse; - } - - if (aExpectedEvent->IsAdvancedPointerEvent()) - { - const TAdvancedPointerEvent& expectedAdvancedEvent = *aExpectedEvent->AdvancedPointerEvent(); - const TAdvancedPointerEvent& actualAdvancedEvent = *aActualEvent->AdvancedPointerEvent(); - - if (expectedAdvancedEvent.PointerNumber() != actualAdvancedEvent.PointerNumber()) - { - _LIT(KPointerNumber, "Actual PointerNumber = %d Expected PointerNumber = %d "); - iErrorDes.Format(KPointerNumber, actualAdvancedEvent.PointerNumber(), expectedAdvancedEvent.PointerNumber()); - return EFalse; - } - - if (expectedAdvancedEvent.Pressure() != actualAdvancedEvent.Pressure()) - { - _LIT(KPointerPressure, "Actual Pressure = %d Expected Pressure = %d "); - iErrorDes.Format(KPointerPressure, actualAdvancedEvent.Pressure(), expectedAdvancedEvent.Pressure()); - return EFalse; - } - - if (expectedAdvancedEvent.Proximity() != actualAdvancedEvent.Proximity()) - { - _LIT(KPointerProximity, "Actual Proximity = %d Expected Proximity = %d "); - iErrorDes.Format(KPointerProximity, actualAdvancedEvent.Proximity(), expectedAdvancedEvent.Proximity()); - return EFalse; - } - } - - return ETrue; - } - -// -void CMultiPtrClickMaker::PointerEvent(const TPointerEvent& aEvent) - { - // If it has already failed then do not test other events - // becasue the error value and its descriptor will be over written - if (iError) - { - return; - } - - // Get pointer event from buffer - TWsEvent expectedEvent; - iPtrEventBuffer.Remove(&expectedEvent); - - // Increment event count - iPtrEventCount++; - - // increment this counter in OtherEvent() becasue first pointer event iscalled and then OtherEvent() is called - if (!ComparePointerEvents(expectedEvent.Pointer(), &aEvent)) - { - iError = iPtrEventCount; - } - } - -TBool CMultiPtrClickMaker::CompareOtherEvents(const TPointerEventData* aExpectedEvent, const TPointerEventData* aActualEvent) - { - if (aExpectedEvent->iCurrentPos != aActualEvent->iCurrentPos) - { - _LIT(KCurrentPosition, "Actual CurrentPosition w.r.t screen = (%d,%d) Expected CurrentPosition w.r.t screen = (%d,%d)"); - iErrorDes.Copy(KCurrentPosition); - iErrorDes.Format(KCurrentPosition, aActualEvent->iCurrentPos.iX, aActualEvent->iCurrentPos.iX, aExpectedEvent->iCurrentPos.iX, aExpectedEvent->iCurrentPos.iY); - return EFalse; - } - - if (aExpectedEvent->iClientHandle != aActualEvent->iClientHandle) - { - _LIT(KWindowHandle, "Actual Window Handle = %d Expected Window Handle = %d "); - iErrorDes.Copy(KWindowHandle); - iErrorDes.Format(KWindowHandle, aActualEvent->iClientHandle, aExpectedEvent->iClientHandle); - return EFalse; - } - - return ComparePointerEvents(&aExpectedEvent->iPointerEvent, &aActualEvent->iPointerEvent); - } - -void CMultiPtrClickMaker::OtherEvent(TInt aType, TAny* aParam) - { - if (aType != EEventPointer) - { - return; - } - - if (iError) - { - return; - } - - TPointerEventData expectedEvent; - iOtherEventBuffer.Remove(&expectedEvent); - - iOtherEventCount++; - - TPointerEventData* data=static_cast(aParam); - - if (!CompareOtherEvents(&expectedEvent, data)) - { - iError = iPtrEventCount; - } - } - -TInt CMultiPtrClickMaker::AddEvent(const TWsEvent* aEvent) - { - return iPtrEventBuffer.Add(aEvent); - } - -TInt CMultiPtrClickMaker::AddEvent(const TPointerEventData* aEvent) - { - return iOtherEventBuffer.Add(aEvent); - } - -TInt CMultiPtrClickMaker::CommandReplyL(TInt aOpcode, TAny *aArgs) - { - TMultiPtrClickArgUnion pData; - pData.any=aArgs; - switch (aOpcode) - { - case EMultiPtrClickEventAdd: - return AddEvent(pData.WsEvent); - case EMultiPtrOtherEventAdd: - return AddEvent(pData.OtherEvent); - case EMultiPtrClickEventError: - return iError; - case EMultiPtrClickEventErrorDesc: - if (iError != KErrNone) - { - RChunk chunk; - chunk.OpenGlobal(KMultiPtrClickChunk, ETrue); - TUint8* desPtr = chunk.Base() + *(static_cast(aArgs)); - TPtr8 ptrDes(desPtr, iErrorDes.Length(), iErrorDes.Length()); - ptrDes.Copy(iErrorDes); - chunk.Close(); - return iErrorDes.Length(); - // returns the error description which gets displayed in logs if test failed - } - break; - case EMultiPtrClickEventReset: - iPtrEventBuffer.Reset(); - iError = 0; - iPtrEventCount = 0; - break; - default:; - } - return(KErrNone); - } - -EXPORT_C CClickMaker* CreateMultiPtrClickMakerL() - { - CMultiPtrClickMaker* plugIn=new(ELeave) CMultiPtrClickMaker; - CleanupStack::PushL(plugIn); - plugIn->ConstructL(); - CleanupStack::Pop(plugIn); - return plugIn; - }