williamr@2: // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). williamr@2: // All rights reserved. williamr@2: // This component and the accompanying materials are made available williamr@2: // under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members williamr@2: // which accompanies this distribution, and is available williamr@2: // at the URL "http://www.symbianfoundation.org/legal/licencesv10.html". williamr@2: // williamr@2: // Initial Contributors: williamr@2: // Nokia Corporation - initial contribution. williamr@2: // williamr@2: // Contributors: williamr@2: // williamr@2: // Description: williamr@2: // williamr@2: williamr@2: #ifndef __COEFONTPROVIDER_H__ williamr@2: #define __COEFONTPROVIDER_H__ williamr@2: williamr@2: #include williamr@2: #include williamr@2: #include williamr@2: #include williamr@2: #include williamr@2: #include williamr@2: williamr@2: /** A helper object designed to make obtaining a font easier, taking into account williamr@2: zoom factors. williamr@2: williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: class CCoeFontProvider : public CBase williamr@2: { williamr@2: public: // life williamr@2: IMPORT_C static CCoeFontProvider* NewL(); williamr@2: IMPORT_C static CCoeFontProvider* NewL(const TDesC& aTypefaceName); williamr@2: ~CCoeFontProvider(); williamr@2: public: // methods williamr@2: IMPORT_C const CFont& Font(const TCoeFont& aFont, const TZoomFactor& aZoomFactor) const; williamr@2: public: // properties williamr@2: IMPORT_C void SetTypeface(const TTypeface aTypeface); williamr@2: IMPORT_C void UseSystemTypeface(); williamr@2: IMPORT_C TTypeface Typeface() const; williamr@2: public: //but not exported williamr@2: void RefetchPixelMappingL(); williamr@2: williamr@2: private: williamr@2: CCoeFontProvider(const TDesC& aTypefaceName); williamr@2: void ConstructL(); williamr@2: void ReleaseAllFonts(); williamr@2: private: williamr@2: class TFont williamr@2: { williamr@2: public: williamr@2: TFont(const TCoeFont& aFontSpec, TInt aZoomFactor, const CFont* aFont = NULL); williamr@2: static TInt Compare(const TFont& aFirst, const TFont& aSecond); williamr@2: public: williamr@2: const TCoeFont iCoeFont; williamr@2: const TInt iZoomFactor; williamr@2: const CFont* iFont; williamr@2: }; williamr@2: private: williamr@2: mutable RArray iFonts; williamr@2: TTypeface iTypeface; williamr@2: RArray iLogicalToPixelSizes; williamr@2: }; williamr@2: williamr@2: #endif // __COEFONTPROVIDER_H__