textrendering/textformatting/test/src/TestPicture.cpp
changeset 0 1fb32624e06b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/textrendering/textformatting/test/src/TestPicture.cpp	Tue Feb 02 02:02:46 2010 +0200
@@ -0,0 +1,133 @@
+/*
+* Copyright (c) 2003-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: 
+* TestPicture.cpp test picture.
+*
+*/
+
+
+#include "TestPicture.h"
+
+CTestPicture::CTestPicture()
+	{
+	iLineBreaksAllowed[0] = ETrue;
+	iLineBreaksAllowed[1] = ETrue;
+	iLineBreaksAllowed[2] = ETrue;
+	iLineBreaksAllowed[3] = ETrue;
+	iSizeInTwips.iWidth = 100;
+	iSizeInTwips.iHeight = 100;
+	}
+
+//draw a red square
+void CTestPicture::Draw(CGraphicsContext& aGc, const TPoint& aTopLeft,
+	const TRect& aClipRect, MGraphicsDeviceMap* aMap) const
+	{
+	aGc.Reset();
+	aGc.SetClippingRect(aClipRect);
+	TSize size;  
+	GetSizeInPixels(aMap,size);
+	TRect box;  
+	box.iTl=aTopLeft;
+	box.iBr.iX=aTopLeft.iX+size.iWidth;
+	box.iBr.iY=aTopLeft.iY+size.iHeight;
+	TRgb red(255,0,0);
+	aGc.SetBrushColor(red);
+	aGc.SetBrushStyle(CGraphicsContext::ESolidBrush);
+	aGc.DrawRect(box);
+	}
+
+/**
+Does nothing.
+@param aStream No effect.
+@internalComponent
+*/
+void CTestPicture::ExternalizeL(RWriteStream& /*aStream*/) const
+	{
+	}
+
+/**
+Returns size of picture.
+@param aSize
+	Returns size of picture.
+@internalComponent
+*/
+void CTestPicture::GetOriginalSizeInTwips(TSize& aSize) const
+	{
+	aSize = iSizeInTwips;
+	}
+
+/**
+Returns information supplied by SetLineBreaksAllowed.
+@param aClass
+	Not used.
+@param aBeforePicture As CPicture.
+@param aHaveSpaces As CPicture.
+@return TBool if line breaks are allowed.
+@internalComponent
+*/
+TBool CTestPicture::LineBreakPossible(TUint /*aClass*/,
+	TBool aBeforePicture, TBool aHaveSpaces) const
+	{
+	TInt index = aBeforePicture? 0 : 2;
+	index += aHaveSpaces? 1 : 0;
+	return iLineBreaksAllowed[index];
+	}
+
+/**
+Set whether LineBreakPossible should return ETrue.
+@param aBeforeWithoutSpaces
+	Sets the result of LineBreakPossible(*, ETrue, EFalse);
+@param aBeforeWithSpaces
+	Sets the result of LineBreakPossible(*, ETrue, ETrue);
+@param aAfterWithoutSpaces
+	Sets the result of LineBreakPossible(*, EFalse, EFalse);
+@param aAfterWithSpaces
+	Sets the result of LineBreakPossible(*, EFalse, ETrue);
+@internalComponent
+*/
+void CTestPicture::SetLineBreaksAllowed(
+	TBool aBeforeWithoutSpaces,
+	TBool aBeforeWithSpaces,
+	TBool aAfterWithoutSpaces,
+	TBool aAfterWithSpaces)
+	{
+	iLineBreaksAllowed[0] = aBeforeWithoutSpaces;
+	iLineBreaksAllowed[1] = aBeforeWithSpaces;
+	iLineBreaksAllowed[2] = aAfterWithoutSpaces;
+	iLineBreaksAllowed[3] = aAfterWithSpaces;
+	}
+
+/**
+Sets the picture size.
+@param aSize
+	The size to set.
+@internalComponent
+*/
+void CTestPicture::SetSizeInTwips(TSize aSize)
+	{
+	iSizeInTwips = aSize;
+	}
+
+/**
+Sets the picture size so that the graphics device map aMap will convert to
+the size specified.
+@param aSize The size to set.
+@param aMap The graphics device in which aSize should be the size in pixels.
+@internalComponent
+*/
+void CTestPicture::SetSizeInPixels(TSize aSize, const MGraphicsDeviceMap& aMap)
+	{
+	iSizeInTwips.iWidth = aMap.HorizontalTwipsToPixels(aSize.iWidth);
+	iSizeInTwips.iHeight = aMap.VerticalTwipsToPixels(aSize.iHeight);
+	}