--- /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<CT_DataFont*>(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);
+ }
+ }
+ }
+ }