--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/graphicsapitest/graphicssvs/wserv/src/T_DataWindowGroup.cpp Tue Feb 02 01:47:50 2010 +0200
@@ -0,0 +1,1236 @@
+/*
+* Copyright (c) 2005-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:
+*
+*/
+
+#include "T_DataWindowGroup.h"
+#include "T_GraphicsUtil.h"
+
+/*@{*/
+_LIT(KDataClassname, "RWindowGroup");
+
+// Fields
+_LIT(KFldAdjust ,"adjust");
+_LIT(KFldCaptureKey ,"capturekey");
+_LIT(KFldClientHandle ,"clienthandle");
+_LIT(KFldClipRect ,"cliprect");
+_LIT(KFldCursor ,"cursor");
+_LIT(KFldDeviceNumber ,"devicenumber");
+_LIT(KFldFlags ,"flags");
+_LIT(KFldIdOfParentWindowGroup ,"idofparentwindowgroup");
+_LIT(KFldInputKeyCode ,"inputkeycode");
+_LIT(KFldIsFocusable ,"isfocusable");
+_LIT(KFldKeycode ,"keycode");
+_LIT(KFldModifier ,"modifier");
+_LIT(KFldModifierMask ,"modifiermask");
+_LIT(KFldOrdinalPriority ,"ordinalpriority");
+_LIT(KFldOutputKeyCode ,"outputkeycode");
+_LIT(KFldPos ,"pos");
+_LIT(KFldProcessSID ,"processsid");
+_LIT(KFldPriority ,"priority");
+_LIT(KFldRepeatTime ,"repeattime");
+_LIT(KFldScanCode ,"scancode");
+_LIT(KFldScreenDevice ,"screendevice");
+_LIT(KFldState ,"state");
+_LIT(KFldStdScanCode ,"stdscancode");
+_LIT(KFldTip ,"tip");
+_LIT(KFldType ,"type");
+_LIT(KFldWin ,"win");
+_LIT(KFldWs ,"ws");
+_LIT(KFldID ,"id");
+_LIT(KFldIDName ,"id_name");
+
+//Parameters
+_LIT(KinputWGN, "inputWGN");
+_LIT(KexpectedReturnWGN, "expectRtnWGN");
+_LIT(KOwningWGIdentifier, "OwningWGId");
+_LIT(KOwningWGIdName, "OwningWGId_name");
+
+//Commands
+_LIT(KCmdnew, "new");
+_LIT(KCmdDestructor, "~");
+_LIT(KCmdConstruct, "Construct");
+_LIT(KCmdConstructChildApp, "ConstructChildApp");
+_LIT(KCmdAllowProcessToCreateChildWindowGroups, "AllowProcessToCreateChildWindowGroups");
+_LIT(KCmdEnableReceiptOfFocus, "EnableReceiptOfFocus");
+_LIT(KCmdAutoForeground, "AutoForeground");
+_LIT(KCmdSetOrdinalPriorityAdjust, "SetOrdinalPriorityAdjust");
+_LIT(KCmdSetOrdinalPositionErr, "SetOrdinalPositionErr");
+_LIT(KCmdCaptureKey, "CaptureKey");
+_LIT(KCmdCancelCaptureKey, "CancelCaptureKey");
+_LIT(KCmdCaptureKeyUpAndDowns, "CaptureKeyUpAndDowns");
+_LIT(KCmdCancelCaptureKeyUpAndDowns, "CancelCaptureKeyUpAndDowns");
+_LIT(KCmdCaptureLongKey, "CaptureLongKey");
+_LIT(KCmdCancelCaptureLongKey, "CancelCaptureLongKey");
+_LIT(KCmdAddPriorityKey, "AddPriorityKey");
+_LIT(KCmdRemovePriorityKey, "RemovePriorityKey");
+_LIT(KCmdSetTextCursor, "SetTextCursor");
+_LIT(KCmdCancelTextCursor, "CancelTextCursor");
+_LIT(KCmdSetOwningWindowGroup, "SetOwningWindowGroup");
+_LIT(KCmdDefaultOwningWindow, "DefaultOwningWindow");
+_LIT(KCmdSetName, "SetName");
+_LIT(KCmdName, "Name");
+_LIT(KCmdIdentifier, "Identifier");
+_LIT(KCmdDisableKeyClick, "DisableKeyClick");
+_LIT(KCmdEnableScreenChangeEvents, "EnableScreenChangeEvents");
+_LIT(KCmdDisableScreenChangeEvents, "DisableScreenChangeEvents");
+_LIT(KCmdSimulatePointerEvent, "SimulatePointerEvent");
+_LIT(KCmdSetChildGroup, "SetChildGroup");
+_LIT(KCmdClearChildGroup, "ClearChildGroup");
+
+/// Logging
+_LIT(KLogError, "Error=%d");
+_LIT(KLogMissingParameter, "Missing parameter '%S'");
+_LIT(KLogMissingExpectedValue, "Missing expected value '%S'");
+_LIT(KLogNotExpectedValueString, "'%S' is not as expected='%S', actual='%S'");
+/*@}*/
+
+//////////////////////////////////////////////////////////////////////
+// Construction/Destruction
+//////////////////////////////////////////////////////////////////////
+
+CT_DataWindowGroup* CT_DataWindowGroup::NewL()
+ {
+ CT_DataWindowGroup* ret=new (ELeave) CT_DataWindowGroup();
+ CleanupStack::PushL(ret);
+ ret->ConstructL();
+ CleanupStack::Pop(ret);
+ return ret;
+ }
+
+CT_DataWindowGroup::CT_DataWindowGroup()
+: CT_DataWindowTreeNode()
+, iWindowGroup(NULL)
+, iCaptureKeyHandle(0)
+ {
+ }
+
+void CT_DataWindowGroup::ConstructL()
+ {
+ }
+
+CT_DataWindowGroup::~CT_DataWindowGroup()
+ {
+ DestroyData();
+ }
+
+void CT_DataWindowGroup::SetObjectL(TAny* aAny)
+ {
+ DestroyData();
+ iWindowGroup = static_cast<RWindowGroup*> (aAny);
+ }
+
+void CT_DataWindowGroup::DisownObjectL()
+ {
+ iWindowGroup = NULL;
+ }
+
+void CT_DataWindowGroup::DestroyData()
+ {
+ delete iWindowGroup;
+ iWindowGroup=NULL;
+ }
+
+RWindowTreeNode* CT_DataWindowGroup::GetWindowTreeNode() const
+ {
+ return iWindowGroup;
+ }
+
+/**
+* Process a command read from the ini file
+*
+* @param aCommand the command to process
+* @param aSection the entry in the ini file requiring the command to be processed
+* @param aAsyncErrorIndex index of command. used for async calls
+*
+* @return ETrue if the command is processed
+*/
+TBool CT_DataWindowGroup::DoCommandL(const TTEFFunction& aCommand, const TTEFSectionName& aSection, const TInt aAsyncErrorIndex)
+ {
+ TBool ret = ETrue;
+
+ if ( aCommand==KCmdDestructor )
+ {
+ DoCmdDestructor();
+ }
+ else if ( aCommand==KCmdnew || aCommand==KDataClassname )
+ {
+ DoCmdnewL(aSection);
+ }
+ else if ( aCommand==KCmdConstruct )
+ {
+ DoCmdConstructL(aSection);
+ }
+ else if ( aCommand==KCmdConstructChildApp )
+ {
+ DoCmdConstructChildAppL(aSection);
+ }
+ else if ( aCommand==KCmdAllowProcessToCreateChildWindowGroups )
+ {
+ DoCmdAllowProcessToCreateChildWindowGroups(aSection);
+ }
+ else if ( aCommand==KCmdEnableReceiptOfFocus )
+ {
+ DoCmdEnableReceiptOfFocus(aSection);
+ }
+ else if ( aCommand==KCmdAutoForeground )
+ {
+ DoCmdAutoForeground(aSection);
+ }
+ else if ( aCommand==KCmdSetOrdinalPriorityAdjust )
+ {
+ DoCmdSetOrdinalPriorityAdjust(aSection);
+ }
+ else if ( aCommand==KCmdSetOrdinalPositionErr )
+ {
+ DoCmdSetOrdinalPositionErr(aSection);
+ }
+ else if ( aCommand==KCmdCaptureKey )
+ {
+ DoCmdCaptureKey(aSection);
+ }
+ else if ( aCommand==KCmdCancelCaptureKey )
+ {
+ DoCmdCancelCaptureKey(aSection);
+ }
+ else if ( aCommand==KCmdCaptureKeyUpAndDowns )
+ {
+ DoCmdCaptureKeyUpAndDowns(aSection);
+ }
+ else if ( aCommand==KCmdCancelCaptureKeyUpAndDowns )
+ {
+ DoCmdCancelCaptureKeyUpAndDowns(aSection);
+ }
+ else if ( aCommand==KCmdCaptureLongKey )
+ {
+ DoCmdCaptureLongKey(aSection);
+ }
+ else if ( aCommand==KCmdCancelCaptureLongKey )
+ {
+ DoCmdCancelCaptureLongKey(aSection);
+ }
+ else if ( aCommand==KCmdAddPriorityKey )
+ {
+ DoCmdAddPriorityKey(aSection);
+ }
+ else if ( aCommand==KCmdRemovePriorityKey )
+ {
+ DoCmdRemovePriorityKey(aSection);
+ }
+ else if ( aCommand==KCmdSetTextCursor )
+ {
+ DoCmdSetTextCursorL(aSection);
+ }
+ else if ( aCommand==KCmdCancelTextCursor )
+ {
+ DoCmdCancelTextCursor();
+ }
+ else if ( aCommand==KCmdSetOwningWindowGroup )
+ {
+ DoCmdSetOwningWindowGroupL(aSection);
+ }
+ else if ( aCommand==KCmdDefaultOwningWindow )
+ {
+ DoCmdDefaultOwningWindow();
+ }
+ else if ( aCommand==KCmdSetName )
+ {
+ DoCmdSetName(aSection);
+ }
+ else if ( aCommand==KCmdName )
+ {
+ DoCmdName(aSection);
+ }
+ else if ( aCommand==KCmdIdentifier )
+ {
+ DoCmdIdentifier();
+ }
+ else if ( aCommand==KCmdDisableKeyClick )
+ {
+ DoCmdDisableKeyClick(aSection);
+ }
+ else if ( aCommand==KCmdEnableScreenChangeEvents )
+ {
+ DoCmdEnableScreenChangeEvents();
+ }
+ else if ( aCommand==KCmdDisableScreenChangeEvents )
+ {
+ DoCmdDisableScreenChangeEvents();
+ }
+ else if ( aCommand==KCmdSimulatePointerEvent )
+ {
+ DoCmdSimulatePointerEvent(aSection);
+ }
+ else if ( aCommand==KCmdSetChildGroup )
+ {
+ DoCmdSetChildGroupL(aSection);
+ }
+ else if ( aCommand==KCmdClearChildGroup )
+ {
+ DoCmdClearChildGroup();
+ }
+ else
+ {
+ ret=CT_DataWindowTreeNode::DoCommandL(aCommand, aSection, aAsyncErrorIndex);
+ }
+
+ return ret;
+ }
+
+
+void CT_DataWindowGroup::DoCmdnewL(const TDesC& aSection)
+ {
+ DestroyData();
+
+ // Get test data for command input parameter(s)
+ TPtrC wsName;
+ RWsSession* ws=NULL;
+ if ( GetStringFromConfig(aSection, KFldWs, wsName) )
+ {
+ ws = static_cast<RWsSession*>(GetDataObjectL(wsName));
+ }
+
+ TInt err=KErrNone;
+ if ( ws!=NULL )
+ {
+ // Execute command and log parameters
+ INFO_PRINTF1(_L("execute new RWindowGroup(RWsSession)"));
+ TRAP( err, iWindowGroup = new (ELeave) RWindowGroup(*ws));
+ }
+ else
+ {
+ // Execute command and log parameters
+ INFO_PRINTF1(_L("execute new RWindowGroup()"));
+ TRAP( err, iWindowGroup = new (ELeave) RWindowGroup());
+ }
+
+ if ( err!=KErrNone )
+ {
+ ERR_PRINTF2(KLogError, err);
+ SetError(err);
+ }
+ }
+
+
+void CT_DataWindowGroup::DoCmdDestructor()
+ {
+ DestroyData();
+ }
+
+
+void CT_DataWindowGroup::DoCmdConstructL(const TDesC& aSection)
+ {
+ TInt returnCode=KErrNone;
+
+ // Get test data for command input parameter(s)
+ TInt datClientHandle;
+ TBool hasClientHandle = GetIntFromConfig(aSection, KFldClientHandle, datClientHandle);
+ if ( !hasClientHandle )
+ {
+ ERR_PRINTF2(KLogMissingParameter, &KFldClientHandle);
+ SetBlockResult(EFail);
+ }
+ else
+ {
+ TBool datIsFocusable;
+ TBool hasIsFocusable = GetBoolFromConfig(aSection, KFldIsFocusable, datIsFocusable);
+
+#if defined(SYMBIAN_WSERV_AND_CONE_MULTIPLE_SCREENS)
+ CWsScreenDevice* screenDevice=NULL;
+ // Execute command and log parameters
+ if ( CT_GraphicsUtil::GetWsScreenDeviceL(*this, aSection, KFldScreenDevice, screenDevice) )
+ {
+ if ( hasIsFocusable )
+ {
+ INFO_PRINTF1(_L("execute Construct(TUint32, TBool, CWsScreenDevice)"));
+ returnCode = iWindowGroup->Construct(datClientHandle, datIsFocusable, screenDevice);
+ }
+ else
+ {
+ INFO_PRINTF1(_L("execute Construct(TUint32, CWsScreenDevice)"));
+ returnCode = iWindowGroup->Construct(datClientHandle, screenDevice);
+ }
+ }
+ else
+#endif
+ {
+ if ( hasIsFocusable )
+ {
+ INFO_PRINTF1(_L("execute Construct(TUint32, TBool)"));
+ returnCode = iWindowGroup->Construct(datClientHandle, datIsFocusable);
+ }
+ else
+ {
+ INFO_PRINTF1(_L("execute Construct(TUint32)"));
+ returnCode = iWindowGroup->Construct(datClientHandle);
+ }
+ }
+ }
+
+ // Check the command return code, if !=KErrNone then stop this command
+ if ( returnCode!=KErrNone )
+ {
+ ERR_PRINTF2(KLogError, returnCode);
+ SetError(returnCode);
+ }
+
+ // No command output parameter to display and check
+ }
+
+
+void CT_DataWindowGroup::DoCmdConstructChildAppL(const TDesC& aSection)
+ {
+ TBool dataOk=ETrue;
+ TInt returnCode=KErrNone;
+
+ // Get test data for command input parameter(s)
+ TInt datIdOfParentWindowGroup;
+ if ( !GetIntFromConfig(aSection, KFldIdOfParentWindowGroup, datIdOfParentWindowGroup) )
+ {
+ CDataWrapperBase* wrapper=NULL;
+ TPtrC objectName;
+ if ( GetStringFromConfig(aSection, KFldIdOfParentWindowGroup(), objectName) )
+ {
+ wrapper=static_cast<CDataWrapperBase*>(GetDataWrapperL(objectName));
+
+ }
+
+ if ( wrapper==NULL )
+ {
+ dataOk=EFalse;
+ ERR_PRINTF2(KLogMissingParameter, &KFldIdOfParentWindowGroup);
+ SetBlockResult(EFail);
+ }
+ else
+ {
+ datIdOfParentWindowGroup = wrapper->GetIdentifier();
+ }
+ }
+
+ TInt datClientHandle;
+ if ( !GetIntFromConfig(aSection, KFldClientHandle, datClientHandle) )
+ {
+ dataOk=EFalse;
+ ERR_PRINTF2(KLogMissingParameter, &KFldClientHandle);
+ SetBlockResult(EFail);
+ }
+
+ if ( dataOk )
+ {
+ TBool datIsFocusable;
+ if ( GetBoolFromConfig(aSection, KFldIsFocusable, datIsFocusable) )
+ {
+ // Execute command and log parameters
+ INFO_PRINTF1(_L("execute ConstructChildApp(TInt, TUint32, TBool)"));
+ returnCode = iWindowGroup->ConstructChildApp(datIdOfParentWindowGroup, datClientHandle, datIsFocusable);
+ }
+ else
+ {
+ // Execute command and log parameters
+ INFO_PRINTF1(_L("execute ConstructChildApp(TInt, TUint32)"));
+ returnCode = iWindowGroup->ConstructChildApp(datIdOfParentWindowGroup, datClientHandle);
+ }
+
+ // Check the command return code, if !=KErrNone then stop this command
+ if ( returnCode!=KErrNone )
+ {
+ ERR_PRINTF2(KLogError, returnCode);
+ SetError(returnCode);
+ }
+
+ // No command output parameter to display and check
+ }
+ }
+
+
+void CT_DataWindowGroup::DoCmdAllowProcessToCreateChildWindowGroups(const TDesC& aSection)
+ {
+ // Get test data for command input parameter(s)
+ TInt datProcess;
+ if ( !GetIntFromConfig(aSection, KFldProcessSID, datProcess) )
+ {
+ ERR_PRINTF2(KLogMissingParameter, &KFldProcessSID);
+ SetBlockResult(EFail);
+ }
+ else
+ {
+ // Execute command and log parameters
+ INFO_PRINTF1(_L("execute AllowProcessToCreateChildWindowGroups(TUid)"));
+ iWindowGroup->AllowProcessToCreateChildWindowGroups(TUid::Uid(datProcess));
+ }
+
+ // No command return value and output parameter to display and check
+ }
+
+
+void CT_DataWindowGroup::DoCmdEnableReceiptOfFocus(const TDesC& aSection)
+ {
+ // Get test data for command input parameter(s)
+ TBool datState;
+ if ( !GetBoolFromConfig(aSection, KFldState, datState) )
+ {
+ ERR_PRINTF2(KLogMissingParameter, &KFldState);
+ SetBlockResult(EFail);
+ }
+ else
+ {
+ // Execute command and log parameters
+ INFO_PRINTF1(_L("execute EnableReceiptOfFocus(TBool)"));
+ iWindowGroup->EnableReceiptOfFocus(datState);
+ }
+
+ // No command return value and output parameter to display and check
+ }
+
+
+void CT_DataWindowGroup::DoCmdAutoForeground(const TDesC& aSection)
+ {
+ // Get test data for command input parameter(s)
+ TBool datState;
+ if ( !GetBoolFromConfig(aSection, KFldState, datState) )
+ {
+ ERR_PRINTF2(KLogMissingParameter, &KFldState);
+ SetBlockResult(EFail);
+ }
+ else
+ {
+ // Execute command and log parameters
+ INFO_PRINTF1(_L("execute AutoForeground(TBool)"));
+ iWindowGroup->AutoForeground(datState);
+ }
+
+ // No command return value and output parameter to display and check
+ }
+
+
+void CT_DataWindowGroup::DoCmdSetOrdinalPriorityAdjust(const TDesC& aSection)
+ {
+ // Get test data for command input parameter(s)
+ TInt datAdjust;
+ if ( !GetIntFromConfig(aSection, KFldAdjust, datAdjust) )
+ {
+ ERR_PRINTF2(KLogMissingParameter, &KFldAdjust);
+ SetBlockResult(EFail);
+ }
+ else
+ {
+ // Execute command and log parameters
+ INFO_PRINTF1(_L("execute SetOrdinalPriorityAdjust(TInt)"));
+ iWindowGroup->SetOrdinalPriorityAdjust(datAdjust);
+ }
+
+ // No command return value and output parameter to display and check
+ }
+
+
+void CT_DataWindowGroup::DoCmdSetOrdinalPositionErr(const TDesC& aSection)
+ {
+ TBool dataOk=ETrue;
+
+ // Get test data for command input parameter(s)
+ TInt datPos;
+ if ( !GetIntFromConfig(aSection, KFldPos, datPos) )
+ {
+ dataOk=EFalse;
+ ERR_PRINTF2(KLogMissingParameter, &KFldPos);
+ SetBlockResult(EFail);
+ }
+
+ TInt datOrdinalPriority;
+ if ( !GetIntFromConfig(aSection, KFldOrdinalPriority, datOrdinalPriority) )
+ {
+ dataOk=EFalse;
+ ERR_PRINTF2(KLogMissingParameter, &KFldOrdinalPriority);
+ SetBlockResult(EFail);
+ }
+
+ if ( dataOk )
+ {
+ // Execute command and log parameters
+ INFO_PRINTF1(_L("execute SetOrdinalPositionErr(TInt, TInt)"));
+ TInt returnCode = iWindowGroup->SetOrdinalPositionErr(datPos, datOrdinalPriority);
+
+ // Check the command return code, if !=KErrNone then stop this command
+ if ( returnCode!=KErrNone )
+ {
+ ERR_PRINTF2(KLogError, returnCode);
+ SetError(returnCode);
+ }
+
+ // No command output parameter to display and check
+ }
+ }
+
+void CT_DataWindowGroup::DoCmdCaptureKey(const TDesC& aSection)
+ {
+ TBool dataOk=ETrue;
+
+ TKeyCode keyCode;
+ if ( !CT_GraphicsUtil::ReadKeyCode(*this, aSection, KFldKeycode, keyCode) )
+ {
+ dataOk=EFalse;
+ ERR_PRINTF2(KLogMissingParameter, &KFldKeycode);
+ SetBlockResult(EFail);
+ }
+
+ TUint modifierMask;
+ if ( !CT_GraphicsUtil::ReadEventModifier(*this, aSection, KFldModifierMask, modifierMask) )
+ {
+ dataOk=EFalse;
+ ERR_PRINTF2(KLogMissingParameter, &KFldModifierMask);
+ SetBlockResult(EFail);
+ }
+
+ TUint modifier;
+ if ( !CT_GraphicsUtil::ReadEventModifier(*this, aSection, KFldModifier, modifier) )
+ {
+ dataOk=EFalse;
+ ERR_PRINTF2(KLogMissingParameter, &KFldModifier);
+ SetBlockResult(EFail);
+ }
+
+ if ( dataOk )
+ {
+ TInt ret=KErrNone;
+ TInt priority;
+ if ( GetIntFromConfig(aSection, KFldPriority, priority) )
+ {
+ INFO_PRINTF1(_L("execute CaptureKey(keyCode, modifierMask, modifier, priority)"));
+ ret=iWindowGroup->CaptureKey(keyCode, modifierMask, modifier, priority);
+ }
+ else
+ {
+ INFO_PRINTF1(_L("execute CaptureKey(keyCode, modifierMask, modifier)"));
+ ret=iWindowGroup->CaptureKey(keyCode, modifierMask, modifier);
+ }
+ if ( ret<KErrNone )
+ {
+ ERR_PRINTF2(KLogError, ret);
+ SetError(ret);
+ }
+ iCaptureKeyHandle=ret;
+ }
+ }
+
+
+void CT_DataWindowGroup::DoCmdCancelCaptureKey(const TDesC& aSection)
+ {
+ // Get test data for command input parameter(s)
+ TInt captureKey;
+ if ( !GetIntFromConfig(aSection, KFldCaptureKey, captureKey) )
+ {
+ ERR_PRINTF2(KLogMissingParameter, &KFldCaptureKey);
+ SetBlockResult(EFail);
+ }
+ else
+ {
+ INFO_PRINTF1(_L("execute CancelCaptureKey(captureKey)"));
+ if ( captureKey == -1 )
+ {
+ iWindowGroup->CancelCaptureKey(iCaptureKeyHandle);
+ }
+ else
+ {
+ iWindowGroup->CancelCaptureKey(captureKey);
+ }
+ }
+ }
+
+
+void CT_DataWindowGroup::DoCmdCaptureKeyUpAndDowns(const TDesC& aSection)
+ {
+ TBool dataOk=ETrue;
+
+ TUint scanCode;
+ if ( !CT_GraphicsUtil::ReadStdScanCode(*this, aSection, KFldScanCode, (TStdScanCode&)scanCode) )
+ {
+ dataOk=EFalse;
+ ERR_PRINTF2(KLogMissingParameter, &KFldScanCode);
+ SetBlockResult(EFail);
+ }
+
+ TUint modifierMask;
+ if ( !CT_GraphicsUtil::ReadEventModifier(*this, aSection, KFldModifierMask, modifierMask) )
+ {
+ dataOk=EFalse;
+ ERR_PRINTF2(KLogMissingParameter, &KFldModifierMask);
+ SetBlockResult(EFail);
+ }
+
+ TUint modifier;
+ if ( !CT_GraphicsUtil::ReadEventModifier(*this, aSection, KFldModifier, modifier) )
+ {
+ dataOk=EFalse;
+ ERR_PRINTF2(KLogMissingParameter, &KFldModifier);
+ SetBlockResult(EFail);
+ }
+
+ if ( dataOk )
+ {
+ TInt ret=KErrNone;
+ TInt priority;
+ if ( !GetIntFromConfig(aSection, KFldPriority, priority) )
+ {
+ INFO_PRINTF1(_L("execute CaptureKeyUpAndDowns(TUint, TUint, TUint)"));
+ ret=iWindowGroup->CaptureKeyUpAndDowns(scanCode, modifierMask, modifier);
+ }
+ else
+ {
+ INFO_PRINTF1(_L("execute CaptureKeyUpAndDowns(TUint, TUint, TUint, TInt)"));
+ ret=iWindowGroup->CaptureKeyUpAndDowns(scanCode, modifierMask, modifier, priority);
+ }
+
+ if ( ret < KErrNone )
+ {
+ ERR_PRINTF2(KLogError, ret);
+ SetError(ret);
+ }
+ else
+ {
+ iCaptureKeyHandle=ret;
+ }
+ }
+ }
+
+
+void CT_DataWindowGroup::DoCmdCancelCaptureKeyUpAndDowns(const TDesC& aSection)
+ {
+ // Get test data for command input parameter(s)
+ TInt captureKey;
+ if ( !GetIntFromConfig(aSection, KFldCaptureKey, captureKey) )
+ {
+ ERR_PRINTF2(KLogMissingParameter, &KFldCaptureKey);
+ SetBlockResult(EFail);
+ }
+ else
+ {
+ INFO_PRINTF1(_L("execute CancelCaptureKeyUpAndDowns(captureKey)"));
+ if ( captureKey == -1 )
+ {
+ iWindowGroup->CancelCaptureKeyUpAndDowns(iCaptureKeyHandle);
+ }
+ else
+ {
+ iWindowGroup->CancelCaptureKeyUpAndDowns(captureKey);
+ }
+ }
+ }
+
+
+void CT_DataWindowGroup::DoCmdCaptureLongKey(const TDesC& aSection)
+ {
+ TBool dataOk=ETrue;
+
+ TKeyCode inputKeyCode;
+ if ( !CT_GraphicsUtil::ReadKeyCode(*this, aSection, KFldInputKeyCode, inputKeyCode) )
+ {
+ dataOk=EFalse;
+ ERR_PRINTF2(KLogMissingParameter, &KFldInputKeyCode);
+ SetBlockResult(EFail);
+ }
+
+ TKeyCode outputKeyCode;
+ if ( !CT_GraphicsUtil::ReadKeyCode(*this, aSection, KFldOutputKeyCode, outputKeyCode) )
+ {
+ dataOk=EFalse;
+ ERR_PRINTF2(KLogMissingParameter, &KFldOutputKeyCode);
+ SetBlockResult(EFail);
+ }
+
+ TUint modifierMask;
+ if ( !CT_GraphicsUtil::ReadEventModifier(*this, aSection, KFldModifierMask, modifierMask) )
+ {
+ dataOk=EFalse;
+ ERR_PRINTF2(KLogMissingParameter, &KFldModifierMask);
+ SetBlockResult(EFail);
+ }
+
+ TUint modifier;
+ if ( !CT_GraphicsUtil::ReadEventModifier(*this, aSection, KFldModifier, modifier) )
+ {
+ dataOk=EFalse;
+ ERR_PRINTF2(KLogMissingParameter, &KFldModifier);
+ SetBlockResult(EFail);
+ }
+
+ TInt priority;
+ if ( !GetIntFromConfig(aSection, KFldPriority, priority) )
+ {
+ dataOk=EFalse;
+ ERR_PRINTF2(KLogMissingParameter, &KFldPriority);
+ SetBlockResult(EFail);
+ }
+
+ TLongCaptureFlags flags;
+ if ( !CT_GraphicsUtil::ReadLongCaptureFlags(*this, aSection, KFldFlags, flags) )
+ {
+ dataOk=EFalse;
+ ERR_PRINTF2(KLogMissingParameter, &KFldFlags);
+ SetBlockResult(EFail);
+ }
+
+ if ( dataOk )
+ {
+ TInt ret=KErrNone;
+ TInt repeatTime;
+ if ( GetIntFromConfig(aSection, KFldRepeatTime, repeatTime) )
+ {
+ TTimeIntervalMicroSeconds32 theRepeatTime(repeatTime);
+
+ // Execute command and log parameters
+ INFO_PRINTF1(_L("execute CaptureLongKey(repeatTime, inputKeyCode, iutputKeyCode, modifierMask, modifier, priority, flags)"));
+ ret=iWindowGroup->CaptureLongKey(theRepeatTime, inputKeyCode, outputKeyCode, modifierMask, modifier, priority, flags);
+ }
+ else
+ {
+ // Execute command and log parameters
+ INFO_PRINTF1(_L("execute CaptureLongKey(inputKeyCode, outputKeyCode, modifierMask, modifier, priority, flags)"));
+ ret=iWindowGroup->CaptureLongKey(inputKeyCode, outputKeyCode, modifierMask, modifier, priority, flags);
+ }
+
+ // Check the command return code, if !=KErrNone then stop this command
+ if ( ret<KErrNone )
+ {
+ ERR_PRINTF2(KLogError, ret);
+ SetError(ret);
+ }
+ iCaptureKeyHandle=ret;
+ }
+ }
+
+
+void CT_DataWindowGroup::DoCmdCancelCaptureLongKey(const TDesC& aSection)
+ {
+ // Get test data for command input parameter(s)
+ TInt captureKey;
+ if ( !GetIntFromConfig(aSection, KFldCaptureKey, captureKey) )
+ {
+ ERR_PRINTF2(KLogMissingParameter, &KFldCaptureKey);
+ SetBlockResult(EFail);
+ }
+ else
+ {
+ INFO_PRINTF1(_L("execute CancelCaptureLongKey(captureKey)"));
+ if ( captureKey == -1 )
+ {
+ iWindowGroup->CancelCaptureLongKey(iCaptureKeyHandle);
+ }
+ else
+ {
+ iWindowGroup->CancelCaptureLongKey(captureKey);
+ }
+ }
+ }
+
+
+void CT_DataWindowGroup::DoCmdAddPriorityKey(const TDesC& aSection)
+ {
+ TBool dataOk=ETrue;
+
+ // Get test data for command input parameter(s)
+ TKeyCode keyCode;
+ if ( !CT_GraphicsUtil::ReadKeyCode(*this, aSection, KFldKeycode, keyCode) )
+ {
+ dataOk=EFalse;
+ ERR_PRINTF2(KLogMissingParameter, &KFldKeycode);
+ SetBlockResult(EFail);
+ }
+
+ TUint modifierMask;
+ if ( !CT_GraphicsUtil::ReadEventModifier(*this, aSection, KFldModifierMask, modifierMask) )
+ {
+ dataOk=EFalse;
+ ERR_PRINTF2(KLogMissingParameter, &KFldModifierMask);
+ SetBlockResult(EFail);
+ }
+
+ TUint modifier;
+ if ( !CT_GraphicsUtil::ReadEventModifier(*this, aSection, KFldModifier, modifier) )
+ {
+ dataOk=EFalse;
+ ERR_PRINTF2(KLogMissingParameter, &KFldModifier);
+ SetBlockResult(EFail);
+ }
+
+ if ( dataOk )
+ {
+ // Execute command and log parameters
+ INFO_PRINTF1(_L("execute AddPriorityKey(TUint, TUint, TUint)"));
+ TInt ret=iWindowGroup->AddPriorityKey(keyCode, modifierMask, modifier);
+
+ // Check the command return code, if <KErrNone then stop this command
+ if ( ret!=KErrNone )
+ {
+ ERR_PRINTF2(KLogError, ret);
+ SetError(ret);
+ }
+ }
+ }
+
+
+void CT_DataWindowGroup::DoCmdRemovePriorityKey(const TDesC& aSection)
+ {
+ TBool dataOk=ETrue;
+
+ // Get test data for command input parameter(s)
+ TKeyCode keyCode;
+ if ( !CT_GraphicsUtil::ReadKeyCode(*this, aSection, KFldKeycode, keyCode) )
+ {
+ dataOk=EFalse;
+ ERR_PRINTF2(KLogMissingParameter, &KFldKeycode);
+ SetBlockResult(EFail);
+ }
+
+ TUint modifierMask;
+ if ( !CT_GraphicsUtil::ReadEventModifier(*this, aSection, KFldModifierMask, modifierMask) )
+ {
+ dataOk=EFalse;
+ ERR_PRINTF2(KLogMissingParameter, &KFldModifierMask);
+ SetBlockResult(EFail);
+ }
+
+ TUint modifier;
+ if ( !CT_GraphicsUtil::ReadEventModifier(*this, aSection, KFldModifier, modifier) )
+ {
+ dataOk=EFalse;
+ ERR_PRINTF2(KLogMissingParameter, &KFldModifier);
+ SetBlockResult(EFail);
+ }
+
+ if ( dataOk )
+ {
+ // Execute command and log parameters
+ INFO_PRINTF1(_L("execute RemovePriorityKey(TUint, TUint, TUint)"));
+ iWindowGroup->RemovePriorityKey(keyCode, modifierMask, modifier);
+ }
+ }
+
+
+void CT_DataWindowGroup::DoCmdSetTextCursorL(const TDesC& aSection)
+ {
+ TBool dataOk=ETrue;
+
+ TPtrC datWinName;
+ RWindowBase* win = NULL;
+ if ( !GetStringFromConfig(aSection, KFldWin, datWinName) )
+ {
+ ERR_PRINTF2(KLogMissingParameter, &KFldWin);
+ SetBlockResult(EFail);
+ dataOk=EFalse;
+ }
+ else
+ {
+ win = static_cast<RWindowBase*>(GetDataObjectL(datWinName));
+ }
+
+ TPoint datPos;
+ if ( !GetPointFromConfig(aSection, KFldPos, datPos) )
+ {
+ ERR_PRINTF2(KLogMissingParameter, &KFldPos);
+ SetBlockResult(EFail);
+ dataOk=EFalse;
+ }
+
+ TTextCursor datCursor;
+ if ( !CT_GraphicsUtil::GetTextCursor(*this, aSection, KFldCursor, datCursor) )
+ {
+ ERR_PRINTF2(KLogMissingParameter, &KFldCursor);
+ SetBlockResult(EFail);
+ dataOk=EFalse;
+ }
+
+ if ( dataOk )
+ {
+ // get rectangle top left x-coordinate from parameters
+ TRect datClipRect;
+ if ( GetRectFromConfig(aSection, KFldClipRect, datClipRect) )
+ {
+ INFO_PRINTF1(_L("execute SetTextCursor(RWindowBase, const TPoint, const TTextCursor, const TRect)"));
+ iWindowGroup->SetTextCursor(*win, datPos, datCursor, datClipRect);
+ }
+ else
+ {
+ INFO_PRINTF1(_L("execute SetTextCursor(RWindowBase, const TPoint, const TTextCursor)"));
+ iWindowGroup->SetTextCursor(*win, datPos, datCursor);
+ }
+ }
+ }
+
+
+void CT_DataWindowGroup::DoCmdCancelTextCursor()
+ {
+ INFO_PRINTF1(_L("RWindowGroup::CancelTextCursor() call"));
+ iWindowGroup->CancelTextCursor();
+ }
+
+
+void CT_DataWindowGroup::DoCmdSetOwningWindowGroupL(const TDesC& aSection)
+ {
+ TInt winGroupId=0;
+ TBool hasWGIdentifier=ETrue;
+
+ if ( !GetIntFromConfig(aSection, KOwningWGIdentifier(), winGroupId) )
+ {
+
+ CDataWrapperBase* wrapper=NULL;
+ TPtrC objectName;
+ if ( GetStringFromConfig(aSection, KOwningWGIdName(), objectName) )
+ {
+ wrapper=static_cast<CDataWrapperBase*>(GetDataWrapperL(objectName));
+ }
+
+ if ( wrapper!=NULL )
+ {
+ winGroupId = wrapper->GetIdentifier();
+
+ INFO_PRINTF2(_L("get id:%d"), winGroupId);
+ }
+ else
+ {
+ ERR_PRINTF2(KLogMissingParameter, &KOwningWGIdentifier);
+ SetBlockResult(EFail);
+ hasWGIdentifier = EFalse;
+ }
+ }
+
+ if ( !hasWGIdentifier )
+ {
+ ERR_PRINTF2(KLogMissingParameter, &KOwningWGIdentifier);
+ SetBlockResult(EFail);
+ }
+ else
+ {
+ INFO_PRINTF1(_L("execute SetOwningWindowGroup(TInt)"));
+ iWindowGroup->SetOwningWindowGroup(winGroupId);
+ }
+ }
+
+
+void CT_DataWindowGroup::DoCmdDefaultOwningWindow()
+ {
+ INFO_PRINTF1(_L("execute DefaultOwningWindow()"));
+ iWindowGroup->DefaultOwningWindow();
+ }
+
+
+void CT_DataWindowGroup::DoCmdSetName(const TDesC& aSection)
+ {
+ TPtrC theNameString;
+
+ if ( !GetStringFromConfig(aSection, KinputWGN(), theNameString) )
+ {
+ ERR_PRINTF2(KLogMissingParameter, &KinputWGN);
+ SetBlockResult(EFail);
+ }
+ else
+ {
+ INFO_PRINTF1(_L("execute SetName(const TDesC)"));
+ TInt err = iWindowGroup->SetName(theNameString);
+
+ if ( err!=KErrNone )
+ {
+ ERR_PRINTF2(KLogError, err);
+ SetError(err);
+ }
+ }
+ }
+
+void CT_DataWindowGroup::DoCmdName(const TDesC& aSection)
+ {
+ TBuf<KMaxTestExecuteCommandLength> storeBuffer;
+
+ INFO_PRINTF1(_L("execute Name(TDes&)"));
+ TInt err = iWindowGroup->Name(storeBuffer);
+
+ if ( err!=KErrNone )
+ {
+ ERR_PRINTF2(KLogError, err);
+ SetError(err);
+ }
+ else
+ {
+ INFO_PRINTF2(_L("the length of name:%d"), storeBuffer.Length());
+ INFO_PRINTF1(_L("the name of window group:"));
+ INFO_PRINTF1(storeBuffer);
+
+ TPtrC returnWGName;
+ if ( !GetStringFromConfig(aSection, KexpectedReturnWGN(), returnWGName) )
+ {
+ ERR_PRINTF2(KLogMissingExpectedValue, &KexpectedReturnWGN());
+ SetBlockResult(EFail);
+ }
+ else
+ {
+ if (storeBuffer!=returnWGName)
+ {
+ ERR_PRINTF4(KLogNotExpectedValueString, &KexpectedReturnWGN, &returnWGName, &storeBuffer);
+ SetBlockResult(EFail);
+ }
+ }
+ }
+ }
+
+
+void CT_DataWindowGroup::DoCmdIdentifier()
+ {
+ INFO_PRINTF1(_L("execute Identifier()"));
+ TInt actualWGId=iWindowGroup->Identifier();
+ INFO_PRINTF2(_L("Identifier:%d"),actualWGId);
+ SetIdentifier(actualWGId);
+ }
+
+
+void CT_DataWindowGroup::DoCmdDisableKeyClick(const TDesC& aSection)
+ {
+ // Get test data for command input parameter(s)
+ TBool datState;
+ if ( !GetBoolFromConfig(aSection, KFldState, datState) )
+ {
+ ERR_PRINTF2(KLogMissingParameter, &KFldState);
+ SetBlockResult(EFail);
+ }
+ else
+ {
+ // Execute command and log parameters
+ INFO_PRINTF1(_L("execute DisableKeyClick(TBool)"));
+ iWindowGroup->DisableKeyClick(datState);
+ }
+
+ // No command return value and output parameter to display and check
+ }
+
+
+void CT_DataWindowGroup::DoCmdEnableScreenChangeEvents()
+ {
+ INFO_PRINTF1(_L("execute EnableScreenChangeEvents()"));
+ TInt err = iWindowGroup->EnableScreenChangeEvents();
+
+ if ( err!=KErrNone )
+ {
+ ERR_PRINTF2(KLogError, err);
+ SetError(err);
+ }
+ }
+
+
+void CT_DataWindowGroup::DoCmdDisableScreenChangeEvents()
+ {
+ INFO_PRINTF1(_L("execute DisableScreenChangeEvents()"));
+ iWindowGroup->DisableScreenChangeEvents();
+ }
+
+
+void CT_DataWindowGroup::DoCmdSimulatePointerEvent(const TDesC& aSection)
+ {
+ TBool dataOk=ETrue;
+ TRawEvent event;
+
+ TRawEvent::TType type=TRawEvent::ENone;
+ if ( !CT_GraphicsUtil::ReadType(*this, aSection, KFldType(), type) )
+ {
+ dataOk=EFalse;
+ ERR_PRINTF2(KLogMissingParameter, &KFldType());
+ SetBlockResult(EFail);
+ }
+ else
+ {
+ event.Set(type);
+ }
+
+ TStdScanCode stdScanCode;
+ if ( CT_GraphicsUtil::ReadStdScanCode(*this, aSection, KFldStdScanCode(), stdScanCode) )
+ {
+ event.Set(type, stdScanCode);
+ }
+
+ TInt deviceNumber;
+ if ( GetIntFromConfig(aSection, KFldDeviceNumber, deviceNumber) )
+ {
+ event.SetDeviceNumber(deviceNumber);
+ }
+
+ TPoint pointerPos(0,0);
+ if ( GetPointFromConfig(aSection, KFldPos, pointerPos) )
+ {
+ event.Set(type, pointerPos.iX, pointerPos.iY);
+ }
+
+ TBool tip;
+ if ( GetBoolFromConfig(aSection, KFldTip, tip) )
+ {
+ event.SetTip(tip);
+ }
+
+ if ( dataOk )
+ {
+ INFO_PRINTF1(_L("execute SimulatePointerEvent(TRawEvent)"));
+ iWindowGroup->SimulatePointerEvent(event);
+ }
+ }
+
+
+void CT_DataWindowGroup::DoCmdSetChildGroupL(const TDesC& aSection)
+ {
+ TBool dataOk = ETrue;
+
+ TInt id;
+ if ( !GetIntFromConfig(aSection, KFldID, id) )
+ {
+ CDataWrapperBase* wrapper=NULL;
+ TPtrC objectName;
+ if ( GetStringFromConfig(aSection, KFldIDName(), objectName) )
+ {
+ wrapper=static_cast<CDataWrapperBase*>(GetDataWrapperL(objectName));
+ //handle=wrapper->GetHandle();
+ }
+
+ if ( wrapper!=NULL )
+ {
+ id = wrapper->GetIdentifier();
+
+ INFO_PRINTF3(_L("get '%S_name' identifier = %d' to set child group"), &KFldID, id);
+ }
+ else
+ {
+ ERR_PRINTF2(KLogMissingParameter, &KFldID);
+ SetBlockResult(EFail);
+ dataOk = EFalse;
+ }
+ }
+
+ if ( dataOk )
+ {
+ INFO_PRINTF1(_L("execute SetChildGroup(TInt)"));
+ TInt returnCode = iWindowGroup->SetChildGroup(id);
+
+ if ( returnCode!=KErrNone )
+ {
+ ERR_PRINTF2(KLogError, returnCode);
+ SetError(returnCode);
+ }
+ }
+ }
+
+void CT_DataWindowGroup::DoCmdClearChildGroup()
+ {
+ INFO_PRINTF1(_L("execute ClearChildGroup()"));
+ TInt returnCode = iWindowGroup->ClearChildGroup();
+
+ if ( returnCode!=KErrNone )
+ {
+ ERR_PRINTF2(KLogError, returnCode);
+ SetError(returnCode);
+ }
+ }