diff -r e8c1ea2c6496 -r 8758140453c0 graphics/gdi/src/T_DataGraphicsDeviceMap.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/graphics/gdi/src/T_DataGraphicsDeviceMap.cpp Thu Jan 21 12:53:44 2010 +0000 @@ -0,0 +1,493 @@ +/* +* 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: +* +*/ + +/** +@test +@internalComponent + +This contains CT_DataGraphicsDeviceMap +*/ + +#include "T_DataGraphicsDeviceMap.h" +#include "T_DataFont.h" + +/*@{*/ +/// Commands +_LIT(KCmdGetNearestFontInTwips, "GetNearestFontInTwips"); +_LIT(KCmdGetNearestFontToDesignHeightInTwips, "GetNearestFontToDesignHeightInTwips"); +_LIT(KCmdGetNearestFontToMaxHeightInTwips, "GetNearestFontToMaxHeightInTwips"); +_LIT(KCmdHorizontalPixelsToTwips, "HorizontalPixelsToTwips"); +_LIT(KCmdHorizontalTwipsToPixels, "HorizontalTwipsToPixels"); +_LIT(KCmdPixelsToTwips, "PixelsToTwips"); +_LIT(KCmdReleaseFont, "ReleaseFont"); +_LIT(KCmdTwipsToPixels, "TwipsToPixels"); +_LIT(KCmdVerticalPixelsToTwips, "VerticalPixelsToTwips"); +_LIT(KCmdVerticalTwipsToPixels, "VerticalTwipsToPixels"); + +/// Fields +_LIT(KFldExpected, "expected"); +_LIT(KFldFont, "font"); +_LIT(KFldMaxHeight, "maxheight"); +_LIT(KFldPixels, "pixels"); +_LIT(KFldPoint, "point"); +_LIT(KFldRect, "rect"); +_LIT(KFldTwips, "twips"); +_LIT(KFldDisown, "disown"); + +/// Logging +_LIT(KLogError, "Error=%d"); +_LIT(KLogMissingParameter, "Missing parameter '%S'"); +_LIT(KLogMissingWrapper, "Missing wrapper for '%S'"); +_LIT(KLogNotExpectedValue, "Not expected value"); +/*@}*/ + +/** +* Constructor. First phase construction +*/ +CT_DataGraphicsDeviceMap::CT_DataGraphicsDeviceMap() +: CDataWrapperBase() + { + } + +/** +* 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_DataGraphicsDeviceMap::DoCommandL(const TTEFFunction& aCommand, const TTEFSectionName& aSection, const TInt /*aAsyncErrorIndex*/) + { + TBool ret=ETrue; + if ( aCommand==KCmdGetNearestFontInTwips ) + { + DoCmdGetNearestFontInTwipsL(aSection); + } + else if ( aCommand==KCmdGetNearestFontToDesignHeightInTwips ) + { + DoCmdGetNearestFontToDesignHeightInTwipsL(aSection); + } + else if ( aCommand==KCmdGetNearestFontToMaxHeightInTwips ) + { + DoCmdGetNearestFontToMaxHeightInTwipsL(aSection); + } + else if ( aCommand==KCmdHorizontalPixelsToTwips ) + { + DoCmdHorizontalPixelsToTwips(aSection); + } + else if ( aCommand==KCmdHorizontalTwipsToPixels ) + { + DoCmdHorizontalTwipsToPixels(aSection); + } + else if ( aCommand==KCmdPixelsToTwips ) + { + DoCmdPixelsToTwips(aSection); + } + else if ( aCommand==KCmdReleaseFont ) + { + DoCmdReleaseFontL(aSection); + } + else if ( aCommand==KCmdTwipsToPixels ) + { + DoCmdTwipsToPixels(aSection); + } + else if ( aCommand==KCmdVerticalPixelsToTwips ) + { + DoCmdVerticalPixelsToTwips(aSection); + } + else if ( aCommand==KCmdVerticalTwipsToPixels ) + { + DoCmdVerticalTwipsToPixels(aSection); + } + else + { + ret=EFalse; + } + return ret; + } + +void CT_DataGraphicsDeviceMap::DoCmdGetNearestFontInTwipsL(const TDesC& aSection) + { + TBool dataOk=ETrue; + + TFontSpec fontSpec; + if ( !GetFontSpecFromConfig(aSection, KFldFont, fontSpec) ) + { + dataOk=EFalse; + ERR_PRINTF2(KLogMissingParameter, &KFldFont()); + SetBlockResult(EFail); + } + + TPtrC wrapperName; + // get BitmapUtilData object from parameters + if ( !GetStringFromConfig(aSection, KFldFont, wrapperName) ) + { + dataOk=EFalse; + ERR_PRINTF2(KLogMissingParameter, &KFldFont()); + SetBlockResult(EFail); + } + + if ( dataOk ) + { + CDataWrapper* wrapper=GetDataWrapperL(wrapperName); + if ( wrapper==NULL ) + { + ERR_PRINTF2(KLogMissingWrapper, &wrapperName); + SetBlockResult(EFail); + } + else + { + CFont* font=NULL; + INFO_PRINTF1(_L("execute GetNearestFontInTwips(CFont*&, TFontSpec)")); + TInt err=GetGraphicsDeviceMap()->GetNearestFontInTwips(font, fontSpec); + if ( err!=KErrNone ) + { + ERR_PRINTF2(KLogError, err); + SetError(err); + } + else + { + wrapper->SetObjectL(font); + } + } + } + } + +void CT_DataGraphicsDeviceMap::DoCmdGetNearestFontToDesignHeightInTwipsL(const TDesC& aSection) + { + TBool dataOk=ETrue; + + TFontSpec fontSpec; + if ( !GetFontSpecFromConfig(aSection, KFldFont, fontSpec) ) + { + dataOk=EFalse; + ERR_PRINTF2(KLogMissingParameter, &KFldFont()); + SetBlockResult(EFail); + } + + TPtrC wrapperName; + // get BitmapUtilData object from parameters + if ( !GetStringFromConfig(aSection, KFldFont, wrapperName) ) + { + dataOk=EFalse; + ERR_PRINTF2(KLogMissingParameter, &KFldFont()); + SetBlockResult(EFail); + } + + if ( dataOk ) + { + CDataWrapper* wrapper=GetDataWrapperL(wrapperName); + if ( wrapper==NULL ) + { + ERR_PRINTF2(KLogMissingWrapper, &wrapperName); + SetBlockResult(EFail); + } + else + { + CFont* font=NULL; + INFO_PRINTF1(_L("execute GetNearestFontToDesignHeightInTwips(CFont*&, TFontSpec)")); + TInt err=GetGraphicsDeviceMap()->GetNearestFontToDesignHeightInTwips(font, fontSpec); + if ( err!=KErrNone ) + { + ERR_PRINTF2(KLogError, err); + SetError(err); + } + else + { + wrapper->SetObjectL(font); + } + } + } + } + +void CT_DataGraphicsDeviceMap::DoCmdGetNearestFontToMaxHeightInTwipsL(const TDesC& aSection) + { + TBool dataOk=ETrue; + + TFontSpec fontSpec; + if ( !GetFontSpecFromConfig(aSection, KFldFont, fontSpec) ) + { + dataOk=EFalse; + ERR_PRINTF2(KLogMissingParameter, &KFldFont()); + SetBlockResult(EFail); + } + + TInt maxHeight; + if ( !GetIntFromConfig(aSection, KFldMaxHeight, maxHeight) ) + { + dataOk=EFalse; + ERR_PRINTF2(KLogMissingParameter, &KFldMaxHeight()); + SetBlockResult(EFail); + } + + TPtrC wrapperName; + // get BitmapUtilData object from parameters + if ( !GetStringFromConfig(aSection, KFldFont, wrapperName) ) + { + dataOk=EFalse; + ERR_PRINTF2(KLogMissingParameter, &KFldFont()); + SetBlockResult(EFail); + } + + if ( dataOk ) + { + CDataWrapper* wrapper=GetDataWrapperL(wrapperName); + if ( wrapper==NULL ) + { + ERR_PRINTF2(KLogMissingWrapper, &wrapperName); + SetBlockResult(EFail); + } + else + { + CFont* font=NULL; + INFO_PRINTF1(_L("execute GetNearestFontToMaxHeightInTwips(CFont*&, TFontSpec, TInt)")); + TInt err=GetGraphicsDeviceMap()->GetNearestFontToMaxHeightInTwips(font, fontSpec, maxHeight); + if ( err!=KErrNone ) + { + ERR_PRINTF2(KLogError, err); + SetError(err); + } + else + { + wrapper->SetObjectL(font); + } + } + } + } + +void CT_DataGraphicsDeviceMap::DoCmdHorizontalPixelsToTwips(const TDesC& aSection) + { + TInt value; + if ( !GetIntFromConfig(aSection, KFldPixels, value) ) + { + ERR_PRINTF2(KLogMissingParameter, &KFldPixels()); + SetBlockResult(EFail); + } + else + { + INFO_PRINTF1(_L("execute HorizontalPixelsToTwips(TInt)")); + TInt pixels=GetGraphicsDeviceMap()->HorizontalPixelsToTwips(value); + INFO_PRINTF2(_L("HorizontalPixelsToTwips=%d"), pixels); + + if ( GetIntFromConfig(aSection, KFldExpected, value) ) + { + if ( value!=pixels ) + { + ERR_PRINTF1(KLogNotExpectedValue); + SetBlockResult(EFail); + } + } + } + } + +void CT_DataGraphicsDeviceMap::DoCmdHorizontalTwipsToPixels(const TDesC& aSection) + { + TInt value; + if ( !GetIntFromConfig(aSection, KFldTwips, value) ) + { + ERR_PRINTF2(KLogMissingParameter, &KFldTwips()); + SetBlockResult(EFail); + } + else + { + INFO_PRINTF1(_L("execute HorizontalTwipsToPixels(TInt)")); + TInt pixels=GetGraphicsDeviceMap()->HorizontalTwipsToPixels(value); + INFO_PRINTF2(_L("HorizontalTwipsToPixels=%d"), pixels); + + if ( GetIntFromConfig(aSection, KFldExpected, value) ) + { + if ( value!=pixels ) + { + ERR_PRINTF1(KLogNotExpectedValue); + SetBlockResult(EFail); + } + } + } + } + +void CT_DataGraphicsDeviceMap::DoCmdPixelsToTwips(const TDesC& aSection) + { + TPoint point; + if ( GetPointFromConfig(aSection, KFldPoint, point) ) + { + INFO_PRINTF1(_L("execute PixelsToTwips(const TPoint&)")); + iPixelsToTwipsPoint=GetGraphicsDeviceMap()->PixelsToTwips(point); + INFO_PRINTF3(_L("PixelsToTwips x=%d y=%d"), iPixelsToTwipsPoint.iX, iPixelsToTwipsPoint.iY); + + if ( GetPointFromConfig(aSection, KFldExpected, point) ) + { + if ( point!=iPixelsToTwipsPoint ) + { + ERR_PRINTF1(KLogNotExpectedValue); + SetBlockResult(EFail); + } + } + } + else + { + TRect rect; + if ( GetRectFromConfig(aSection, KFldRect, rect) ) + { + INFO_PRINTF1(_L("execute PixelsToTwips(const TRect&)")); + iPixelsToTwipsRect=GetGraphicsDeviceMap()->PixelsToTwips(rect); + LogRect(_L("PixelsToTwips(TRect)"), iPixelsToTwipsRect); + if ( GetRectFromConfig(aSection, KFldExpected, rect) ) + { + if ( rect!=iPixelsToTwipsRect ) + { + ERR_PRINTF1(KLogNotExpectedValue); + SetBlockResult(EFail); + } + } + } + else + { + ERR_PRINTF2(KLogMissingParameter, &KFldPoint()); + ERR_PRINTF2(KLogMissingParameter, &KFldRect()); + SetBlockResult(EFail); + } + } + } + +void CT_DataGraphicsDeviceMap::DoCmdReleaseFontL(const TDesC& aSection) + { + TPtrC wrapperName; + // get BitmapUtilData object from parameters + if ( !GetStringFromConfig(aSection, KFldFont, wrapperName) ) + { + ERR_PRINTF2(KLogMissingParameter, &KFldFont()); + SetBlockResult(EFail); + } + else + { + CT_DataFont* wrapper=static_cast(GetDataWrapperL(wrapperName)); + if ( wrapper==NULL ) + { + ERR_PRINTF2(KLogMissingWrapper, &wrapperName); + SetBlockResult(EFail); + } + else + { + CFont* font=wrapper->GetFont(); + INFO_PRINTF1(_L("execute ReleaseFont(CFont*)")); + GetGraphicsDeviceMap()->ReleaseFont(font); + + // check if we need to disown object + TBool disOwn=ETrue, Own; + if ( GetBoolFromConfig(aSection, KFldDisown, Own)) + disOwn=Own; + if (disOwn) + wrapper->DisownObjectL(); + } + } + } + +void CT_DataGraphicsDeviceMap::DoCmdTwipsToPixels(const TDesC& aSection) + { + TPoint point; + if ( GetPointFromConfig(aSection, KFldPoint, point) ) + { + INFO_PRINTF1(_L("execute TwipsToPixels(const TPoint&)")); + iTwipsToPixelsPoint=GetGraphicsDeviceMap()->TwipsToPixels(point); + INFO_PRINTF3(_L("TwipsToPixels x=%d y=%d"), iTwipsToPixelsPoint.iX, iTwipsToPixelsPoint.iY); + + if ( GetPointFromConfig(aSection, KFldExpected, point) ) + { + if ( point!=iTwipsToPixelsPoint ) + { + ERR_PRINTF1(KLogNotExpectedValue); + SetBlockResult(EFail); + } + } + } + else + { + TRect rect; + if ( GetRectFromConfig(aSection, KFldRect, rect) ) + { + INFO_PRINTF1(_L("execute TwipsToPixels(const TRect&)")); + iTwipsToPixelsRect=GetGraphicsDeviceMap()->TwipsToPixels(rect); + LogRect(_L("TwipsToPixels(const TRect&)"), iTwipsToPixelsRect); + if ( GetRectFromConfig(aSection, KFldExpected, rect) ) + { + if ( rect!=iTwipsToPixelsRect ) + { + ERR_PRINTF1(KLogNotExpectedValue); + SetBlockResult(EFail); + } + } + } + else + { + ERR_PRINTF2(KLogMissingParameter, &KFldPoint()); + ERR_PRINTF2(KLogMissingParameter, &KFldRect()); + SetBlockResult(EFail); + } + } + } + +void CT_DataGraphicsDeviceMap::DoCmdVerticalPixelsToTwips(const TDesC& aSection) + { + TInt value; + if ( !GetIntFromConfig(aSection, KFldPixels, value) ) + { + ERR_PRINTF2(KLogMissingParameter, &KFldPixels()); + SetBlockResult(EFail); + } + else + { + INFO_PRINTF1(_L("execute VerticalPixelsToTwips(TInt)")); + TInt pixels=GetGraphicsDeviceMap()->VerticalPixelsToTwips(value); + INFO_PRINTF2(_L("VerticalPixelsToTwips=%d"), pixels); + + if ( GetIntFromConfig(aSection, KFldExpected, value) ) + { + if ( value!=pixels ) + { + ERR_PRINTF1(KLogNotExpectedValue); + SetBlockResult(EFail); + } + } + } + } + +void CT_DataGraphicsDeviceMap::DoCmdVerticalTwipsToPixels(const TDesC& aSection) + { + TInt value; + if ( !GetIntFromConfig(aSection, KFldTwips, value) ) + { + ERR_PRINTF2(KLogMissingParameter, &KFldTwips()); + SetBlockResult(EFail); + } + else + { + INFO_PRINTF1(_L("execute VerticalTwipsToPixels(TInt)")); + TInt pixels=GetGraphicsDeviceMap()->VerticalTwipsToPixels(value); + INFO_PRINTF2(_L("VerticalTwipsToPixels=%d"), pixels); + + if ( GetIntFromConfig(aSection, KFldExpected, value) ) + { + if ( value!=pixels ) + { + ERR_PRINTF1(KLogNotExpectedValue); + SetBlockResult(EFail); + } + } + } + }