8 #ifndef __PARAGRAPHLAYOUT_H 10 #define __PARAGRAPHLAYOUT_H 22 #if ! UCONFIG_NO_BREAK_ITERATION 167 static const char fgClassID;
182 inline Line &operator=(
const Line & ) {
return *
this; };
184 void computeMetrics();
187 const LEGlyphID glyphs[],
const float positions[],
const le_int32 glyphToCharMap[]);
239 inline le_int32 getGlyphCount()
const;
251 inline const LEGlyphID *getGlyphs()
const;
266 inline const float *getPositions()
const;
278 inline const le_int32 *getGlyphToCharMap()
const;
330 static const char fgClassID;
338 const float *fPositions;
348 const LEGlyphID glyphs[],
const float positions[],
const le_int32 glyphToCharMap[]);
489 virtual le_int32 getDescent()
const;
499 virtual le_int32 getLeading()
const;
507 inline void reflow();
509 #ifndef U_HIDE_INTERNAL_API 539 Line *nextLine(
float width);
562 static const char fgClassID;
583 void computeLevels(
UBiDiLevel paragraphLevel);
585 Line *computeVisualRuns();
588 void computeScripts();
590 void computeLocales();
594 void computeMetrics();
635 StyleRunInfo *fStyleRunInfo;
644 float fVisualRunLastX;
645 float fVisualRunLastY;
658 inline void ParagraphLayout::reflow()
663 inline ParagraphLayout::Line::Line()
664 :
UObject(), fAscent(0), fDescent(0), fLeading(0), fRunCount(0), fRunCapacity(0), fRuns(
NULL)
669 inline ParagraphLayout::Line::Line(
const Line & )
670 :
UObject(), fAscent(0), fDescent(0), fLeading(0), fRunCount(0), fRunCapacity(0), fRuns(
NULL)
675 inline le_int32 ParagraphLayout::Line::countRuns()
const 690 inline le_int32 ParagraphLayout::VisualRun::getGlyphCount()
const 695 inline const LEGlyphID *ParagraphLayout::VisualRun::getGlyphs()
const 700 inline const float *ParagraphLayout::VisualRun::getPositions()
const 705 inline const le_int32 *ParagraphLayout::VisualRun::getGlyphToCharMap()
const 707 return fGlyphToCharMap;
710 inline le_int32 ParagraphLayout::VisualRun::getAscent()
const 715 inline le_int32 ParagraphLayout::VisualRun::getDescent()
const 717 return fFont->getDescent();
720 inline le_int32 ParagraphLayout::VisualRun::getLeading()
const 722 return fFont->getLeading();
725 inline ParagraphLayout::VisualRun::VisualRun()
731 inline ParagraphLayout::VisualRun::VisualRun(
const VisualRun &)
738 const LEGlyphID glyphs[],
const float positions[],
const le_int32 glyphToCharMap[])
739 : fFont(font), fDirection(direction), fGlyphCount(glyphCount),
740 fGlyphs(glyphs), fPositions(positions), fGlyphToCharMap(glyphToCharMap)
virtual UClassID getDynamicClassID() const
ICU "poor man's RTTI", returns a UClassID for the actual class.
virtual le_int32 getAscent() const =0
Get the font's ascent.
static UClassID getStaticClassID()
ICU "poor man's RTTI", returns a UClassID for this class.
virtual UClassID getDynamicClassID() const
ICU "poor man's RTTI", returns a UClassID for the actual class.
virtual UClassID getDynamicClassID() const
ICU "poor man's RTTI", returns a UClassID for the actual class.
void * UClassID
UClassID is used to identify classes without using the compiler's RTTI.
UScriptCode
Constants for ISO 15924 script codes.
uint8_t UBiDiLevel
UBiDiLevel is the type of the level values in this Bidi implementation.
C API: Basic definitions for the ICU LayoutEngine.
static UClassID getStaticClassID()
ICU "poor man's RTTI", returns a UClassID for this class.
The FontRuns class associates pointers to LEFontInstance objects with runs of text.
int32_t le_int32
A type used for signed, 32-bit integers.
UBool le_bool
A type used for boolean values.
The LocaleRuns class associates pointers to Locale objects with runs of text.
This object represents a single visual run in a line of text in a paragraph.
C API: Unicode Script Information.
UBiDiDirection
UBiDiDirection values indicate the text direction.
This class represents a single line of text in a ParagraphLayout.
UBiDiDirection ubidi_getDirection(const UBiDi *pBiDi)
Get the directionality of the text.
#define U_NAMESPACE_BEGIN
This is used to begin a declaration of a public ICU C++ API.
The BreakIterator class implements methods for finding the location of boundaries in text...
#define NULL
Define NULL if necessary, to 0 for C++ and to ((void *)0) for C.
NOTE: This class is deprecated, please instead use HarfBuzz.
UBiDiLevel ubidi_getParaLevel(const UBiDi *pBiDi)
Get the paragraph level of the text.
C++ API: DEPRECATED: Virtual base class for complex text layout.
LEErrorCode
Error codes returned by the LayoutEngine.
#define U_NAMESPACE_END
This is used to end a declaration of a public ICU C++ API.
#define U_LAYOUTEX_API
Set to export library symbols from inside the layout extensions library, and to import them from outs...
C++ API: base class for building classes which represent data that is associated with runs of text...
The ValueRuns class associates integer values with runs of text.
UChar LEUnicode
Used to represent 16-bit Unicode code points.
This is a virtual base class that serves as the interface between a LayoutEngine and the platform fon...
le_uint32 LEGlyphID
Used for glyph indices.
static UClassID getStaticClassID()
ICU "poor man's RTTI", returns a UClassID for this class.
C++ API: Layout Engine Font Instance object.
UObject is the common ICU "boilerplate" class.
A Locale object represents a specific geographical, political, or cultural region.