Main Page | Class Hierarchy | Alphabetical List | Data Structures | File List | Data Fields | Globals | Related Pages

ICULayoutEngine Class Reference

This is a wrapper class designed to allow ICU clients to use LayoutEngine in a way that is consistent with the rest of ICU. More...

#include <loengine.h>

Inheritance diagram for ICULayoutEngine:

UObject UMemory

Public Member Functions

virtual ~ICULayoutEngine ()
 The destructor.

int32_t layoutChars (const UChar chars[], int32_t startOffset, int32_t endOffset, int32_t maxOffset, UBool rightToLeft, float x, float y, UErrorCode &success)
 This method computes the glyph, character index and position arrays for the input characters.

int32_t layoutString (const UnicodeString &str, int32_t startOffset, int32_t endOffset, UBool rightToLeft, float x, float y, UErrorCode &success)
 This method computes the glyph, character index and position arrays for the input characters.

int32_t countGlyphs () const
 This method returns the number of glyphs in the glyph array.

void getGlyphs (uint32_t glyphs[], UErrorCode &success)
 This method copies the glyph array into a caller supplied array.

void getCharIndices (int32_t charIndices[], UErrorCode &success)
 This method copies the character index array into a caller supplied array.

void getCharIndices (int32_t charIndices[], int32_t indexBase, UErrorCode &success)
 This method copies the character index array into a caller supplied array.

void getGlyphPositions (float positions[], UErrorCode &success)
 This method copies the position array into a caller supplied array.

void getGlyphPosition (int32_t glyphIndex, float &x, float &y, UErrorCode &success)
 This method returns the X and Y position of the glyph at the given index.

virtual UClassID getDynamicClassID () const
 ICU "poor man's RTTI", returns a UClassID for the actual class.


Static Public Member Functions

ICULayoutEnginecreateInstance (const LEFontInstance *fontInstance, UScriptCode scriptCode, Locale &locale, UErrorCode &success)
 This method returns an ICULayoutEngine capable of laying out text in the given font, script and langauge.

UClassID getStaticClassID ()
 ICU "poor man's RTTI", returns a UClassID for this class.


Detailed Description

This is a wrapper class designed to allow ICU clients to use LayoutEngine in a way that is consistent with the rest of ICU.

(LayoutEngine was developed seperately from ICU and the same source is used in non-ICU environments, so it cannot be changed to match ICU coding conventions).

This class is designed for clients who wish to use LayoutEngine to layout complex text. If you need to subclass LayoutEngine, you'll need to use the LayoutEngine interfaces directly.

Basically, it creates an instance of LayoutEngine, stashes it in fLayoutEngine, and uses it to implement the layout functionality.

Use the createInstance method to create an ICULayoutEngine. Use delete to destroy it. The layoutChars method computes the glyphs and positions, and saves them in the ICULayoutEngine object. Use getGlyphs, getPositions and getCharIndices to retreive this data.

You'll also need an implementation of LEFontInstance for your platform.

See also:
LayoutEngine.h

LEFontInstance.h

ICU 2.2


Constructor & Destructor Documentation

ICULayoutEngine::~ICULayoutEngine  )  [inline, virtual]
 

The destructor.

At least on Windows it needs to be virtual to ensure that it deletes the object from the same heap that createInstance will allocate it from. We don't know why this is...

See also:
createInstance
ICU 2.2


Member Function Documentation

int32_t ICULayoutEngine::countGlyphs  )  const [inline]
 

This method returns the number of glyphs in the glyph array.

Note that the number of glyphs will be greater than or equal to the number of characters used to create the LayoutEngine.

Returns:
the number of glyphs in the glyph array
ICU 2.2

ICULayoutEngine * ICULayoutEngine::createInstance const LEFontInstance *  fontInstance,
UScriptCode  scriptCode,
Locale locale,
UErrorCode success
[inline, static]
 

This method returns an ICULayoutEngine capable of laying out text in the given font, script and langauge.

Parameters:
fontInstance - the font of the text
scriptCode - the script of the text
locale - used to determine the language of the text
success - output parameter set to an error code if the operation fails
Returns:
an ICULayoutEngine which can layout text in the given font.
NOTE: currently, locale is ignored...

See also:
LEFontInstance
ICU 2.2

void ICULayoutEngine::getCharIndices int32_t  charIndices[],
int32_t  indexBase,
UErrorCode success
[inline]
 

This method copies the character index array into a caller supplied array.

The caller must ensure that the array is large enough to hold a character index for each glyph.

Parameters:
charIndices - the destiniation character index array
indexBase - an offset which will be added to each index
success - output parameter set to an error code if the operation fails
ICU 2.2

void ICULayoutEngine::getCharIndices int32_t  charIndices[],
UErrorCode success
[inline]
 

This method copies the character index array into a caller supplied array.

The caller must ensure that the array is large enough to hold a character index for each glyph.

Parameters:
charIndices - the destiniation character index array
success - output parameter set to an error code if the operation fails
ICU 2.2

virtual UClassID ICULayoutEngine::getDynamicClassID void   )  const [inline, virtual]
 

ICU "poor man's RTTI", returns a UClassID for the actual class.

ICU 2.2

Implements UObject.

void ICULayoutEngine::getGlyphPosition int32_t  glyphIndex,
float &  x,
float &  y,
UErrorCode success
[inline]
 

This method returns the X and Y position of the glyph at the given index.

Input parameters:

Parameters:
glyphIndex - the index of the glyph
Output parameters:
Parameters:
x - the glyph's X position
y - the glyph's Y position
success - output parameter set to an error code if the operation fails
ICU 2.2

void ICULayoutEngine::getGlyphPositions float  positions[],
UErrorCode success
[inline]
 

This method copies the position array into a caller supplied array.

The caller must ensure that the array is large enough to hold an X and Y position for each glyph, plus an extra X and Y for the advance of the last glyph.

Parameters:
glyphs - the destiniation position array
success - output parameter set to an error code if the operation fails
ICU 2.2

void ICULayoutEngine::getGlyphs uint32_t  glyphs[],
UErrorCode success
[inline]
 

This method copies the glyph array into a caller supplied array.

The caller must ensure that the array is large enough to hold all the glyphs.

Parameters:
glyphs - the destiniation glyph array
success - output parameter set to an error code if the operation fails
ICU 2.2

UClassID ICULayoutEngine::getStaticClassID void   )  [inline, static]
 

ICU "poor man's RTTI", returns a UClassID for this class.

ICU 2.2

int32_t ICULayoutEngine::layoutChars const UChar  chars[],
int32_t  startOffset,
int32_t  endOffset,
int32_t  maxOffset,
UBool  rightToLeft,
float  x,
float  y,
UErrorCode success
[inline]
 

This method computes the glyph, character index and position arrays for the input characters.

Parameters:
chars - the input character context
startOffset - the starting offset of the characters to process
endOffset - the ending offset of the characters to process
max - the number of characters in the input context
rightToLeft - true if the characers are in a right to left directional run
x - the initial X position
y - the initial Y position
success - output parameter set to an error code if the operation fails
Returns:
the number of glyphs in the glyph array
Note; the glyph, character index and position array can be accessed using the getter method below.

ICU 2.2

int32_t ICULayoutEngine::layoutString const UnicodeString str,
int32_t  startOffset,
int32_t  endOffset,
UBool  rightToLeft,
float  x,
float  y,
UErrorCode success
[inline]
 

This method computes the glyph, character index and position arrays for the input characters.

Parameters:
str - the input character context
startOffset - the starting offset of the characters to process
endOffset - the ending offset of the characters to process
rightToLeft - true if the characers are in a right to left directional run
x - the initial X position
y - the initial Y position
success - output parameter set to an error code if the operation fails
Returns:
the number of glyphs in the glyph array
Note; the glyph, character index and position array can be accessed using the getter method below.

ICU 2.2


The documentation for this class was generated from the following file:
Generated on Wed Sep 3 17:47:19 2003 for ICU 2.6 by doxygen 1.3.2