diff -r 9b2bf01d4d36 -r 6ffc235847d0 common/tools/ats/smoketest/graphics/bitgdi/src/T_DataFbsBitGcFont.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/common/tools/ats/smoketest/graphics/bitgdi/src/T_DataFbsBitGcFont.cpp Fri Dec 18 14:46:04 2009 +0000 @@ -0,0 +1,225 @@ +// +// 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 the License "Symbian Foundation License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +#include "T_DataFbsBitGcFont.h" + +/*@{*/ +/// Parameters +_LIT(KFldHandle, "handle"); +_LIT(KFontDataObjectName, "font_data_object_name"); + +/// Commands +_LIT(KCmdNewL, "NewL"); +_LIT(KCmdDestructor, "~"); +_LIT(KCmdAddress, "Address"); +_LIT(KCmdDuplicate, "Duplicate"); +_LIT(KCmdReset, "Reset"); + + +/// Logs +_LIT(KLogMissingParameter, "Missing parameter '%S'"); +_LIT(KLogErrNum, "Execute failed with error = %d!"); +/*@}*/ + + +/** +* Constructor +*/ +CT_DataFbsBitGcFont* CT_DataFbsBitGcFont::NewL() + { + CT_DataFbsBitGcFont* ret = new (ELeave) CT_DataFbsBitGcFont(); + CleanupStack::PushL(ret); + ret->ConstructL(); + CleanupStack::Pop(ret); + return ret; + } + +/** +* Protected constructor. First phase construction +*/ +CT_DataFbsBitGcFont::CT_DataFbsBitGcFont() +: CT_DataFbsFont() +, iFbsBitGcFont(NULL) + { + } + +/** +* Protected second phase construction +*/ +void CT_DataFbsBitGcFont::ConstructL() + { + } + +/** +* Destructor. +*/ +CT_DataFbsBitGcFont::~CT_DataFbsBitGcFont() + { + DisownObjectL(); + } + + +CFont* CT_DataFbsBitGcFont::GetFont() const + { + return iFbsBitGcFont; + } + +CFbsFont* CT_DataFbsBitGcFont::GetFbsFont() const + { + return iFbsBitGcFont; + } + +/** +* Return a pointer to the object that the data wraps +* +* @return pointer to the object that the data wraps +*/ +TAny* CT_DataFbsBitGcFont::GetObject() + { + return iFbsBitGcFont; + } + +void CT_DataFbsBitGcFont::SetObjectL(TAny* aObject) + { + iFbsBitGcFont = static_cast (aObject); + } + +void CT_DataFbsBitGcFont::DisownObjectL() + { + iFbsBitGcFont = NULL; + } + + +/** +* Process a command read from the ini file +* +* @param aDataWrapper test step requiring command to be processed +* @param aCommand the command to process +* @param aSection the entry in the ini file requiring the command to be processed +* +* @return ETrue if the command is processed +*/ +TBool CT_DataFbsBitGcFont::DoCommandL(const TTEFFunction& aCommand, const TTEFSectionName& aSection, const TInt aAsyncErrorIndex) + { + /* Another work package will complete the implement of this */ + TBool retVal = ETrue; + + if ( aCommand == KCmdNewL ) + { + DoCmdNewL(); + } + else if (aCommand == KCmdDestructor) + { + DoCmdDestructor(); + } + else if (aCommand == KCmdAddress) + { + DoCmdAddress(); + } + else if (aCommand == KCmdDuplicate) + { + DoCmdDuplicate(aSection); + } + else if (aCommand == KCmdReset) + { + DoCmdReset(); + } + else + { + retVal = CT_DataFbsFont::DoCommandL(aCommand, aSection, aAsyncErrorIndex); + } + return retVal; + } + + +void CT_DataFbsBitGcFont::DoCmdNewL() + { + TInt err = KErrNone; + INFO_PRINTF1(_L("Create CFbsBitGcFont Object by CFbsBitGcFont() constructor function.")); + TRAP(err, iFbsBitGcFont = new (ELeave) CFbsBitGcFont()); + if ( err!=KErrNone ) + { + ERR_PRINTF2(KLogErrNum, err); + SetError(err); + } + } + +void CT_DataFbsBitGcFont::DoCmdDestructor() + { + DisownObjectL(); + } + +void CT_DataFbsBitGcFont::DoCmdAddress() + { + CBitmapFont* BitmapFontPtr = NULL; + INFO_PRINTF1(_L("Execute CFbsBitGcFont::Address() function.")); + + BitmapFontPtr = iFbsBitGcFont->Address(); + if (NULL == BitmapFontPtr) + { + INFO_PRINTF1(_L("The CBitmapFont* returned is NULL.")); + } + } + +void CT_DataFbsBitGcFont::DoCmdDuplicate(const TDesC& aSection) + { + TInt handle = 0; + INFO_PRINTF1(_L("Execute CFbsBitGcFont::Duplicate(TInt aHandle) function.")); + + if(GetIntFromConfig(aSection,KFldHandle,handle)) + { + INFO_PRINTF2(_L("Execute Duplicate(TInt aHandle) using the specified handle = %d"), handle); + } + else + { + TPtrC fontDataObjectName; + if (!GetStringFromConfig(aSection, KFontDataObjectName(), fontDataObjectName)) + { + ERR_PRINTF2(KLogMissingParameter, &KFontDataObjectName); + SetBlockResult(EFail); + return; + } + else + { + CT_DataFbsBitGcFont* fontDataObject = NULL; + fontDataObject = static_cast(GetDataWrapperL(fontDataObjectName)); + if (NULL == fontDataObject) + { + ERR_PRINTF1(_L("Bad Object!")); + SetBlockResult(EFail); + return; + } + else + { + handle = ((CFbsBitGcFont*)fontDataObject->GetObject())->Handle(); + INFO_PRINTF2(_L("Execute Duplicate(TInt aHandle) using CFbsBitGcFont Object's handle = %d"), handle); + } + } + } + + TInt err = iFbsBitGcFont->Duplicate(handle); + if (KErrNone != err) + { + ERR_PRINTF2(KLogErrNum, err); + SetError(err); + } + } + +void CT_DataFbsBitGcFont::DoCmdReset() + { + INFO_PRINTF1(_L("Execute CFbsBitGcFont::Reset() function.")); + iFbsBitGcFont->Reset(); + }