class MTmCustom : public MLineBreaker |
The text customization interface. You can customize the colors, word spacing, line breaking, line height calculation, background drawing, and text appearance, of a text object by supplying an implementation of the MTmCustom class, either directly (as in CTmText::CustomizeL, which takes a pointer to MTmCustom) or indirectly, making use of the fact that MTmSource is derived from MTmCustom (as in CTmTextLayout::SetTextL, which takes a reference to MTmSource).
Public Member Functions | |
---|---|
IMPORT_C void | DrawBackground(CGraphicsContext &, const TPoint &, const TRect &, const TLogicalRgb &, TRect &) |
IMPORT_C void | DrawLineGraphics(CGraphicsContext &, const TPoint &, const TRect &, const TTmLineInfo &) |
IMPORT_C void | DrawPicture(CGraphicsContext &, const TPoint &, const TRect &, MGraphicsDeviceMap &, const CPicture &) |
IMPORT_C void | DrawText(CGraphicsContext &, const TPoint &, const TRect &, const TTmLineInfo &, const TTmCharFormat &, const TDesC &, const TPoint &, TInt) |
IMPORT_C TBool | GetLineBreakInContext(const TDesC &, TInt, TInt, TBool, TInt &) |
IMPORT_C TBool | IsHangingCharacter(TUint) |
IMPORT_C TUint | LineBreakClass(TUint, TUint &, TUint &) |
IMPORT_C TBool | LineBreakPossible(TUint, TUint, TBool) |
IMPORT_C void | SetLineHeight(const TLineHeightParam &, TInt &, TInt &) |
IMPORT_C void | SetPenColor(CGraphicsContext &, TLogicalRgb) |
IMPORT_C TInt | Stretch(TUint) |
IMPORT_C TRgb | SystemColor(TUint, TRgb) |
IMPORT_C TRgb | SystemColor(TLogicalRgb) |
Inherited Enumerations | |
---|---|
MLineBreaker:@53 |
IMPORT_C void | DrawBackground | ( | CGraphicsContext & | aGc, |
const TPoint & | aTextLayoutTopLeft, | |||
const TRect & | aRect, | |||
const TLogicalRgb & | aBackground, | |||
TRect & | aRectDrawn | |||
) | const [virtual] |
The default function to drawn the background. It fills the supplied rectangle with the background colour.
CGraphicsContext & aGc | |
const TPoint & aTextLayoutTopLeft | |
const TRect & aRect | |
const TLogicalRgb & aBackground | |
TRect & aRectDrawn |
IMPORT_C void | DrawLineGraphics | ( | CGraphicsContext & | aGc, |
const TPoint & | aTextLayoutTopLeft, | |||
const TRect & | aRect, | |||
const TTmLineInfo & | aLineInfo | |||
) | const [virtual] |
By default no line graphics are drawn.
CGraphicsContext & aGc | |
const TPoint & aTextLayoutTopLeft | |
const TRect & aRect | |
const TTmLineInfo & aLineInfo |
IMPORT_C void | DrawPicture | ( | CGraphicsContext & | aGc, |
const TPoint & | aTextLayoutTopLeft, | |||
const TRect & | aRect, | |||
MGraphicsDeviceMap & | aDevice, | |||
const CPicture & | aPicture | |||
) | const [virtual] |
Draw the picture onto the graphics context. CPicture::Draw
CGraphicsContext & aGc | The graphics context. |
const TPoint & aTextLayoutTopLeft | Coordinates of the top left corner pixel of the picture. |
const TRect & aRect | A clipping rectangle that defines the area to draw the picture. |
MGraphicsDeviceMap & aDevice | The device map for the graphics device. It provides the scaling to apply to the picture. |
const CPicture & aPicture | The drawable object. |
IMPORT_C void | DrawText | ( | CGraphicsContext & | aGc, |
const TPoint & | aTopLeft, | |||
const TRect & | aRect, | |||
const TTmLineInfo & | aLineInfo, | |||
const TTmCharFormat & | aFormat, | |||
const TDesC & | aText, | |||
const TPoint & | aTextOrigin, | |||
TInt | aExtraPixels | |||
) | const [virtual] |
Draw text and its highlit background if any. The text should be drawn with its origin at aTextOrigin after optionally drawing the background in aRect; and the text should be expanded in width by aExtraPixels, normally by using letterspacing. The default function draws the text with no special effects and supports standard and rounded highlighting only. The font, colour, and text style, which are specified in aFormat, have already been selected into the graphics context.
CGraphicsContext & aGc | |
const TPoint & aTopLeft | |
const TRect & aRect | |
const TTmLineInfo & aLineInfo | |
const TTmCharFormat & aFormat | |
const TDesC & aText | |
const TPoint & aTextOrigin | |
TInt aExtraPixels |
IMPORT_C TBool | GetLineBreakInContext | ( | const TDesC & | aText, |
TInt | aMinBreakPos, | |||
TInt | aMaxBreakPos, | |||
TBool | aForwards, | |||
TInt & | aBreakPos | |||
) | const [virtual] |
Gets the position of the first or last possible line break position in a text string. This function is called instead of LineBreakPossible() for runs of characters of class ESaLineBreakClass. It is used for languages like Thai, Lao and Khmer that have no spaces between words, so that line breaks must be calculated using dictionary lookup or a linguistic algorithm. Only the Thai language is supported in this implementation, i.e. this function will return false for other languages. MLineBreaker::GetLineBreakInContext()
const TDesC & aText | A string containing characters of class ESaLineBreakClass. |
TInt aMinBreakPos | A position within aText at which to begin searching for a possible line break position. |
TInt aMaxBreakPos | A position within aText at which to stop searching for a possible line break position. |
TBool aForwards | If ETrue, the function gets the first possible line break position (searches forwards from aMinBreakPos); if EFalse, gets the last one (searches backwards from aMaxBreakPos). |
TInt & aBreakPos | On return, the position of the first or last possible line break within aText. This must be greater than zero and less than aText.Length()1, and must also be in the range aMinBreakPos to aMaxBreakPos. |
IMPORT_C TBool | IsHangingCharacter | ( | TUint | aChar | ) | const [virtual] |
Tests whether a character may be positioned outside the right margin. This function is provided to allow customisation of the line breaking behaviour for closing punctuation in Japanese. Any characters for which this function returns ETrue are allowed to overhang the right margin. The rest will be moved to the next line.
The default implementation of this function just returns false. MLineBreaker::IsHangingCharacter()
TUint aChar | The Unicode character code of interest. |
IMPORT_C TUint | LineBreakClass | ( | TUint | aCode, |
TUint & | aRangeStart, | |||
TUint & | aRangeEnd | |||
) | const [virtual] |
Converts Unicode character into line breaking class. MLineBreaker::LineBreakClass()
TUint aCode | Input Unicode value. |
TUint & aRangeStart | Returns the start of the contiguous range of characters including aCode that have the returned line breaking class. |
TUint & aRangeEnd | Returns the end of the contiguous range of characters including aCode that have the returned line breaking class. |
IMPORT_C TBool | LineBreakPossible | ( | TUint | aPrevClass, |
TUint | aNextClass, | |||
TBool | aHaveSpaces | |||
) | const [virtual] |
Returns whether line break is possible between two characters. MLineBreaker::LineBreakPossible()
IMPORT_C void | SetLineHeight | ( | const TLineHeightParam & | aParam, |
TInt & | aAscent, | |||
TInt & | aDescent | |||
) | const [virtual] |
The default function to set the line height.
const TLineHeightParam & aParam | |
TInt & aAscent | |
TInt & aDescent |
IMPORT_C void | SetPenColor | ( | CGraphicsContext & | aGc, |
TLogicalRgb | aColor | |||
) | const |
Sets the pen colour. The pen is used to draw lines, the outlines of filled shapes, and text.
CGraphicsContext & aGc | |
TLogicalRgb aColor | The logical colour for the pen. |
IMPORT_C TRgb | SystemColor | ( | TUint | aColorIndex, |
TRgb | aDefaultColor | |||
) | const [virtual] |
Convert a system colour index to a system colour, using or modifying the supplied default colour if desired.
IMPORT_C TRgb | SystemColor | ( | TLogicalRgb | aColor | ) | const |
This function translates logical colours specified in FORM objects into real colours. It extracts the logical colour index stored in TLogicalRgb and invokes MtmCustom::SystemColor(TUint, TRgb) to convert the logical colour to real colour.
TLogicalRgb aColor | The logical colour to translate. |
The Unicode line breaking classes; see Unicode Technical Report 14. Not a named enumerated type, so that overriding applications can add new line breaking classes freely. The description of each constant gives the name of the line-breaking class, an example and a brief, imprecise description of the default behaviour of characters of that class.
EOpLineBreakClass |
Opening Punctuation (e.g. '['). Breaking after prohibited. |
EClLineBreakClass |
Closing Punctuation (e.g. ']'). Breaking before prohibited. |
EQuLineBreakClass |
Ambiguous Quotes (e.g. '"'). Breaking before and after prohibited. |
EGlLineBreakClass |
Glue (e.g. Non-breaking space). Breaking before and after prohibited unless spaces are present. |
ENsLineBreakClass |
Non-Starter (e.g. small Japanese kana). Breaking before prohibited if no spaces present. |
EExLineBreakClass |
Exclamation or Interrogation (e.g. '?'). Like closing punctuation except before Postfix or Non-starter. |
ESyLineBreakClass |
Symbol (e.g. '/'. Like Alphabetic, but allows breaking before Alphabetic. |
EIsLineBreakClass |
Numeric Infix Separator (e.g. ','). Forbids breaking after any and before Numeric. |
EPrLineBreakClass |
Numeric Prefix (e.g. '$'). Forbids breaking before Numeric. |
EPoLineBreakClass |
Numeric Postfix (e.g. ''). Forbids breaking after Numeric. |
ENuLineBreakClass |
Numeric (e.g. '1'). |
EAlLineBreakClass |
Alphabetic (e.g. 'a'). |
EIdLineBreakClass |
Ideographic (e.g. Japanese Kanji). Generally break before or after |
EInLineBreakClass |
Inseparable (e.g. ellipsis). Forbid breaks between Inseparables. |
EHyLineBreakClass |
Hyphen (e.g. '-'). Allows a break after except before Numeric. |
EBaLineBreakClass |
Break After. Generally allow a break after. Breaking between Break Afters not separated by spaces is prohibited. |
EBbLineBreakClass |
Break Before. Generally allow a break before. Breaking between Break Befores not separated by spaces is prohibited. |
EB2LineBreakClass |
Break Before and After. Generally allow a break before or after. Breaking between Break Before and Afters is prohibited, even if spaces are present. |
EZwLineBreakClass |
Zero-Width Space. Allow a break. |
ECmLineBreakClass |
Combining Mark. Takes on the class of its base class. |
EBkLineBreakClass |
Mandatory Break. |
ECrLineBreakClass |
Carriage Return. Break after unless part of a CRLF pair. |
ELfLineBreakClass |
Line Feed. Break after. |
ESgLineBreakClass |
Surrogate. Half of a surrogate pair. |
ECbLineBreakClass |
Contingent Break (e.g. embedded pictures). Uses external information |
ESpLineBreakClass |
Space. Intervening characters of class Space are indicated by aHaveSpaces in LineBreakPossible. |
ESaLineBreakClass |
Complex Context (e.g. Thai). Runs of Complex Context are passed to GetLineBreakInContext. |
EAiLineBreakClass |
Ambiguous. Characters of ambiguous East Asian width are treated as Alphabetic, unless they are resolved as being "Wide", in which case they are treated as Ideographic. |
EXxLineBreakClass |
The Xx class is used when the class is unknown; e.g.; outside the provided context. |
ELineBreakClasses |
The number of Unicode line break classes. |
The Unicode line breaking classes; see Unicode Technical Report 14. Not a named enumerated type, so that overriding applications can add new line breaking classes freely. The description of each constant gives the name of the line-breaking class, an example and a brief, imprecise description of the default behaviour of characters of that class.
Copyright ©2010 Nokia Corporation and/or its subsidiary(-ies).
All rights
reserved. Unless otherwise stated, these materials are provided under the terms of the Eclipse Public License
v1.0.