class TAknLayoutText |
Low level drawing based on European LAF document (can be used by application's custom controls)
This class reads AVKON_LAYOUT_TEXT resources
Public Member Functions | |
---|---|
TAknLayoutText() | |
CGraphicsContext::TTextAlign | Align() |
TInt | BaselineOffset() |
TRgb | Color() |
IMPORT_C void | DrawText(CGraphicsContext &, const TDesC &) |
IMPORT_C void | DrawText(CGraphicsContext &, const TDesC &, TBool) |
IMPORT_C void | DrawText(CGraphicsContext &, const TDesC &, TBool, const TRgb &) |
const CFont * | Font() |
IMPORT_C void | LayoutText(const TRect &, TInt, const CFont *) |
IMPORT_C void | LayoutText(const TRect &, TResourceReader &, const CFont *) |
IMPORT_C void | LayoutText(const TRect &, const AknLayoutUtils::SAknLayoutText &, const CFont *) |
IMPORT_C void | LayoutText(const TRect &, const TAknTextLineLayout &, const CFont *) |
IMPORT_C void | LayoutText(const TRect &, TInt, TInt, TInt, TInt, TInt, TInt, TInt, const CFont *) |
IMPORT_C TRect | TextRect() |
Private Attributes | |
---|---|
CGraphicsContext::TTextAlign | iAlign |
TInt | iColor |
const CFont * | iFont |
TInt | iOffset |
TRect | iTextRect |
TInt | BaselineOffset | ( | ) | const |
Returns the baseline position for the font set in this object. This value, together with TextRect(), are the metrics that are used to parametrise a call to DrawText, for example: void CGraphicsContext::DrawText( const TDesC& aText, const TRect& aBox, TInt aBaselineOffset, TTextAlign aAlignment = ELeft, TInt aLeftMargin = 0);
TAknLayoutText's own DrawText methods are recommended, however.
Notice that this value is relative to the top of the TextRect() rectangle, which is generally made to bound all accents. Thus this offset value is usually larger than the CFont::AscentInPixels value.
3.1
distance in pixels measured from the top of the textpane down to the baseline
IMPORT_C void | DrawText | ( | CGraphicsContext & | aGc, |
const TDesC & | aText | |||
) | const |
Do the actual drawing, should be placed to control's Draw() method.
CGraphicsContext & aGc | |
const TDesC & aText |
IMPORT_C void | DrawText | ( | CGraphicsContext & | aGc, |
const TDesC & | aText, | |||
TBool | aUseLogicalToVisualConversion | |||
) | const |
In case of bidirectional text, which is already converted from logical to visual order, use this method with parameter aUseLogicalToVisualConversion EFalse.
CGraphicsContext & aGc | |
const TDesC & aText | |
TBool aUseLogicalToVisualConversion |
IMPORT_C void | DrawText | ( | CGraphicsContext & | aGc, |
const TDesC & | aText, | |||
TBool | aUseLogicalToVisualConversion, | |||
const TRgb & | aColor | |||
) | const |
CGraphicsContext & aGc | |
const TDesC & aText | |
TBool aUseLogicalToVisualConversion | |
const TRgb & aColor |
IMPORT_C void | LayoutText | ( | const TRect & | aParent, |
TInt | aResourceId, | |||
const CFont * | aCustomFont = 0 | |||
) |
Read resources and calculate information needed to draw text.
LayoutText() call should be placed to control's SizeChanged() method.
IMPORT_C void | LayoutText | ( | const TRect & | aParent, |
TResourceReader & | aReader, | |||
const CFont * | aCustomFont = 0 | |||
) |
IMPORT_C void | LayoutText | ( | const TRect & | aParent, |
const AknLayoutUtils::SAknLayoutText & | aLayout, | |||
const CFont * | aCustomFont = 0 | |||
) |
const TRect & aParent | |
const AknLayoutUtils::SAknLayoutText & aLayout | |
const CFont * aCustomFont = 0 |
IMPORT_C void | LayoutText | ( | const TRect & | aParent, |
const TAknTextLineLayout & | aLayout, | |||
const CFont * | aCustomFont = 0 | |||
) |
const TRect & aParent | |
const TAknTextLineLayout & aLayout | |
const CFont * aCustomFont = 0 |
IMPORT_C void | LayoutText | ( | const TRect & | aParent, |
TInt | fontid, | |||
TInt | C, | |||
TInt | l, | |||
TInt | r, | |||
TInt | B, | |||
TInt | W, | |||
TInt | J, | |||
const CFont * | aCustomFont = 0 | |||
) |
IMPORT_C TRect | TextRect | ( | ) | const |
This returns rectangle that is used to draw the text.
This allows you to divide screen space for egul's TextUtils::ClearBetweenRect() without knowing exact coordinates => when coordinates change, your code does not need to change.