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[]);
397 const FontRuns *fontRuns,
398 const ValueRuns *levelRuns,
399 const ValueRuns *scriptRuns,
400 const LocaleRuns *localeRuns,
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;
579 ParagraphLayout() {};
580 ParagraphLayout(
const ParagraphLayout & ) : UObject( ){};
581 inline ParagraphLayout &operator=(
const ParagraphLayout & ) {
return *
this; };
583 void computeLevels(
UBiDiLevel paragraphLevel);
585 Line *computeVisualRuns();
588 void computeScripts();
590 void computeLocales();
592 void computeSubFonts(
const FontRuns *fontRuns,
LEErrorCode &status);
594 void computeMetrics();
596 le_int32 getLanguageCode(
const Locale *locale);
608 const FontRuns *fFontRuns;
609 const ValueRuns *fLevelRuns;
610 const ValueRuns *fScriptRuns;
611 const LocaleRuns *fLocaleRuns;
635 StyleRunInfo *fStyleRunInfo;
638 BreakIterator *fBreakIterator;
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)
707 return fGlyphToCharMap;
712 return fFont->getAscent();
717 return fFont->getDescent();
722 return fFont->getLeading();
725 inline ParagraphLayout::VisualRun::VisualRun()
731 inline ParagraphLayout::VisualRun::VisualRun(
const VisualRun &)
737 inline ParagraphLayout::VisualRun::VisualRun(
const LEFontInstance *font,
UBiDiDirection direction,
le_int32 glyphCount,
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)