TAknFontSpecification Class Reference

API published in: S60 3rd Ed

Link against: fontutils.lib

Capability Information

Required Capabilities

None


#include <aknfontspecification.h>

Detailed Description

Object representing the series 60 requirements for a font.

It contains information from the layout specification that fonts bound to the given font id should honor.

It formst the basis of the request to font provisioning to provide a suitable font


Public Types

enum   TAknFontSpecificationUnits { EPixels = 0, ETwips }

Public Member Functions

IMPORT_C  TAknFontSpecification (TInt aFontId)
  Construct font specification from Font ID.
IMPORT_C  TAknFontSpecification (TAknFontCategory aCategory, const TFontSpec &aFontSpec, const MGraphicsDeviceMap *aDeviceMap)
  Construct the font specifiation from Symbian OS TFontSpec and MGraphicsDeviceMap The Symbian OS TFontSpec must be set in Twips.
IMPORT_C void  SetFontCategory (TAknFontCategory aCategory)
  Sets the Series 60 font category.
IMPORT_C TAknFontCategory  FontCategory () const
  Series 60 Layout Specification font category: Primary, Secondary, Title etc.
IMPORT_C void  SetTextPaneHeight (TInt aNewHeight)
  The requested height for a font.
IMPORT_C TInt  TextPaneHeight () const
  The requested height of the font.
IMPORT_C void  SetWeight (TFontStrokeWeight aWeight)
  Set the stoke weight to request using the Symbian OS stroke weight enumeration.
IMPORT_C void  SetPosture (TFontPosture aPosture)
  Sets the posture (e.g.
IMPORT_C void  SetTextPaneHeightIsDesignHeight (TBool aTextPaneHeightIsDesignHeight)
  Sets the policy to use in requesting the font height.
IMPORT_C TBool  TextPaneIsDesignHeight () const
  Accessor API for the height policy.
IMPORT_C void  SetExactMatchRequired (TBool aRequiresExactMatch)
  Sets a flag indicating to font requests whether they should insist upon an exact match.
IMPORT_C TBool  ExactMatchRequired () const
  Accessor API for whether an exact match is required for the font (See SetExactMatchRequired() ).
IMPORT_C void  SetUnits (TAknFontSpecification::TAknFontSpecificationUnits aUnits)
  Sets the units for the Text Pane Height APIs.
IMPORT_C TAknFontSpecification::TAknFontSpecificationUnits  Units () const
  Accessor API for the units being used.
IMPORT_C TFontStrokeWeight  Weight () const
  Accessor for the requested weight.
IMPORT_C TFontPosture  Posture () const
  Accessor for the requested posture.

Member Enumeration Documentation

enum TAknFontSpecification::TAknFontSpecificationUnits
 
Enumerator:
EPixels 
ETwips 

Constructor & Destructor Documentation

IMPORT_C TAknFontSpecification::TAknFontSpecification TInt  aFontId  ) 
 

Construct font specification from Font ID.

Parameters:
aFontId  Series 60 font id from which to create a font.
IMPORT_C TAknFontSpecification::TAknFontSpecification TAknFontCategory  aCategory,
const TFontSpec &  aFontSpec,
const MGraphicsDeviceMap *  aDeviceMap
 

Construct the font specifiation from Symbian OS TFontSpec and MGraphicsDeviceMap The Symbian OS TFontSpec must be set in Twips.

The MGraphicsDeviceMap is used to convert to pixels for the text pane height.

Note that the units policy during and in effect at the end of this constructor is EPixels.

Note that the TTypeface part of the TFontSpec is lost in this construction

Parameters:
aCategory  Series 60 Font category to use
aFontSpec  Provides the metrics and Style information to use for the match
aDeviceMap  Device map used to convert the aFontSpec's twips to pixels

Member Function Documentation

IMPORT_C TBool TAknFontSpecification::ExactMatchRequired  )  const
 

Accessor API for whether an exact match is required for the font (See SetExactMatchRequired() ).

Returns:
whether an exact match is required or not.
IMPORT_C TAknFontCategory TAknFontSpecification::FontCategory  )  const
 

Series 60 Layout Specification font category: Primary, Secondary, Title etc.

Returns:
Series 60 font category
IMPORT_C TFontPosture TAknFontSpecification::Posture  )  const
 

Accessor for the requested posture.

Returns:
Symbian OS font posture enumeration (e.g. EPostureItalic)
IMPORT_C void TAknFontSpecification::SetExactMatchRequired TBool  aRequiresExactMatch  ) 
 

Sets a flag indicating to font requests whether they should insist upon an exact match.

Whether a font match is treated as exact or not depends upon various things, including:

  • if a request is made via a generic font family or via a font family enumeration, then typeface is not tested for "exactness"
  • fonts may be forced to be rendered at certain sizes (within a small number of pixels). This still counts as an exact match

The default value upon construction is EFalse;

Parameters:
aRequiresExactMatch 
IMPORT_C void TAknFontSpecification::SetFontCategory TAknFontCategory  aCategory  ) 
 

Sets the Series 60 font category.

Parameters:
aCategory  New category to set.
IMPORT_C void TAknFontSpecification::SetPosture TFontPosture  aPosture  ) 
 

Sets the posture (e.g.

upright, italic) of requested font using the Symbian OS enumeration.

Parameters:
aPostore  posture to request
IMPORT_C void TAknFontSpecification::SetTextPaneHeight TInt  aNewHeight  ) 
 

The requested height for a font.

This represents the maximum vertical range that can be guraranteed to draw in the text pane.

Note also that this value is the height requested by layout or the client, and might not correspond to the design height, ascent + descent, or max height reported by the attached font. See the APIs CAknLayoutFont::TextPaneTopToBaseline and BaselineToTextPaneBottom.

If TextPaneHeightIsDesignHeight() is EFalse, then the font will be requested to fit entirely within this range.

If TextPaneHeightIsDesignHeight() is set, then this value is passed to the font request as the font design height, in which case the font may not render entirely within the "text pane height".

Parameters:
aNewHeight  Text pane height to be used by the font.
IMPORT_C void TAknFontSpecification::SetTextPaneHeightIsDesignHeight TBool  aTextPaneHeightIsDesignHeight  ) 
 

Sets the policy to use in requesting the font height.

Fonts may be requested either by "design height" (which is usually approximately the ascent + descent) or by maximum height. If false, this setting means the number set by SetTextPaneHeight is intended to match the font's maximum extent; all characters will fit within the text pane. If true, then the value passed by SetTextPaneHeight will be used to request design height.

This API has no effect if called on a TAknFontSpecification that has already been bound to a font

The default value upon construction is EFalse.

Parameters:
aTextPaneHeightIsDesignHeight  If EFalse, ensure that the font fits entirely within the text pane height If not EFalse, then the text pane height is treated as the font design height.
IMPORT_C void TAknFontSpecification::SetUnits TAknFontSpecification::TAknFontSpecificationUnits  aUnits  ) 
 

Sets the units for the Text Pane Height APIs.

Note that calling this API does not result in the numerical value of the text pane height being recalculated. Upon construction, TAknFontSpecification objects store TextPaneHeight in pixels. If you then call SetUnits to Twips, you will also have to call SetTextPaneHeight to pass in the new (twips) value.

Parameters:
aUnits 
IMPORT_C void TAknFontSpecification::SetWeight TFontStrokeWeight  aWeight  ) 
 

Set the stoke weight to request using the Symbian OS stroke weight enumeration.

aWeight The stroke weight.

IMPORT_C TInt TAknFontSpecification::TextPaneHeight  )  const
 

The requested height of the font.

This represents the maximum vertical range that can be guaranteed to draw in the text pane.

Note also that this value is the height requested by layout or the client, and may not correspond to the design height, ascent + descent, or max height reported by the attached font. See the APIs CAknLayoutFont::TextPaneTopToBaseline and BaselineToTextPaneBottom.

If TextPaneHeightIsDesignHeight() is EFalse, then the font is to be requested to fit entirely within this range.

If TextPaneHeightIsDesignHeight() is set, then this value is passed to the font request as the font design height, in which case the font may not render entirely within the "text pane height".

Depending upon the value of TextPaneHeightIsInTwips(), the value returned is in Pixels or Twips. Note that calling SetTextPaneHeightIsInTwips() does not perform any conversion of the text pane height; It retains its set value.

Returns:
Requested text pane height.
IMPORT_C TBool TAknFontSpecification::TextPaneIsDesignHeight  )  const
 

Accessor API for the height policy.

Returns:
EFalse if text pane height is to be the maximum font extent. ETrue if text pane height is to be treated as the font's design height
IMPORT_C TAknFontSpecification::TAknFontSpecificationUnits TAknFontSpecification::Units  )  const
 

Accessor API for the units being used.

Returns:
units currently being used.
IMPORT_C TFontStrokeWeight TAknFontSpecification::Weight  )  const
 

Accessor for the requested weight.

Returns:
Symbian OS stroke weight enumeration (e.g. EStrokeWeightBold)

The documentation for this class was generated from the following file:

Copyright © Nokia Corporation 2001-2008
Back to top