graphicsdeviceinterface/bitgdi/tbit/TFont.h
changeset 0 5d03bc08d59c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/graphicsdeviceinterface/bitgdi/tbit/TFont.h	Tue Feb 02 01:47:50 2010 +0200
@@ -0,0 +1,123 @@
+// Copyright (c) 2006-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:
+//
+
+/**
+ @file
+ @test
+ @internalComponent - Internal Symbian test code 
+*/
+
+
+#if !defined(__TFONT_H__)
+#define __TFONT_H__
+
+#include <test/testexecutestepbase.h>
+#include <test/fontinjector.h>
+#include "TGraphicsHarness.h"
+
+
+//--------------------------------------------------------------
+
+class CFbsFontEx : public CFbsFont
+	{
+public:
+	static CBitmapFont* FontAddress(CFbsFont* aFont);
+	};
+
+//--------------------------------------------------------------
+
+#ifdef __WINS__
+template<class C> class XTCallCounter : public MShellcode
+	{
+public:
+	XTCallCounter(CTGraphicsBase& aTestBase);
+private:
+	// From MShellcode
+	void ExecuteShellcode(TInt aFromFunction);
+private:
+	CTGraphicsBase& iTestBase;
+public:
+	XVtableInjector<C> iInjector;
+	TInt iVFCallsOutsideFBServ;
+	};
+#endif
+
+//--------------------------------------------------------------
+
+class CTFont : public CTGraphicsBase
+	{
+public:
+	CTFont(CTestStep* aStep);
+	~CTFont();
+	void ConstructL();
+protected:
+//from 	CTGraphicsStep
+	virtual void RunTestCaseL(TInt aCurTestCase);
+public:
+	void DoAllFontsL();
+	void DoTextFormatsL();
+	void DoBitAlignmentL();
+	void DoLargeFontsL();
+	void DoAntiAliasedTextL();
+	void DoVerticalText();
+	void DoVerticalBoxL();
+	void DoUlStL();
+	void DoSuperSubScriptL();
+	void DoTextFormatsInContextL();
+private:
+	void ResetGc();
+	void DrawTextInContext();
+	void DrawTextInContextBox();
+	void DrawTextInContextVertical();
+	void Box();
+	void Underline();
+	void Clipping();
+	void Justification();
+	void BoxInContext();
+	void JustificationInContext();
+	void DisplayAsciiCharSet(const TDesC& aTypefaceName);
+	void DisplayBoldItalic(const TDesC& aTypefaceName);
+	void DisplayLargeChars();
+	TInt DisplayCharAndBounds(TInt aChar,TPoint aPos,TBool aVertical,TBool aUp);
+	void FontExternalizeL();
+	TInt TestFontL(const TFontSpec &aFsp);
+	TInt GetNearestFontToDesignHeightInPixels(CFbsFont*& aFont, const TFontSpec& aFontSpec);
+	TInt GetNearestFontToDesignHeightInTwips(CFbsFont*& aFont, const TFontSpec& aFontSpec);
+private:
+	CFbsFont* iFont;
+	CFbsBitGc* iGc;
+	CFbsScreenDevice* iDev;
+#ifdef __WINS__
+	XTCallCounter<CFont> iFontCallCounter;
+	XTCallCounter<COpenFont> iOpenFontCallCounter;
+#endif
+	};
+
+//--------------------------------------------------------------
+
+class CTFontStep : public CTGraphicsStep
+	{
+public:
+	CTFontStep();
+protected:	
+	//from CTGraphicsStep
+	virtual CTGraphicsBase* CreateTestL();
+	virtual void TestSetupL();
+	virtual void TestClose();
+	};
+
+_LIT(KTFontStep,"TFont");
+
+#endif	// __TFONT_H__