8 #ifndef __PARAGRAPHLAYOUT_H
10 #define __PARAGRAPHLAYOUT_H
22 #if ! UCONFIG_NO_BREAK_ITERATION
160 static const char fgClassID;
175 inline Line &operator=(
const Line & ) {
return *
this; };
177 void computeMetrics();
180 const LEGlyphID glyphs[],
const float positions[],
const le_int32 glyphToCharMap[]);
232 inline le_int32 getGlyphCount()
const;
244 inline const LEGlyphID *getGlyphs()
const;
259 inline const float *getPositions()
const;
271 inline const le_int32 *getGlyphToCharMap()
const;
323 static const char fgClassID;
331 const float *fPositions;
341 const LEGlyphID glyphs[],
const float positions[],
const le_int32 glyphToCharMap[]);
390 const FontRuns *fontRuns,
391 const ValueRuns *levelRuns,
392 const ValueRuns *scriptRuns,
393 const LocaleRuns *localeRuns,
482 virtual le_int32 getDescent()
const;
492 virtual le_int32 getLeading()
const;
500 inline void reflow();
502 #ifndef U_HIDE_INTERNAL_API
532 Line *nextLine(
float width);
555 static const char fgClassID;
572 ParagraphLayout() {};
573 ParagraphLayout(
const ParagraphLayout & ) : UObject( ){};
574 inline ParagraphLayout &operator=(
const ParagraphLayout & ) {
return *
this; };
576 void computeLevels(
UBiDiLevel paragraphLevel);
578 Line *computeVisualRuns();
581 void computeScripts();
583 void computeLocales();
585 void computeSubFonts(
const FontRuns *fontRuns,
LEErrorCode &status);
587 void computeMetrics();
589 le_int32 getLanguageCode(
const Locale *locale);
601 const FontRuns *fFontRuns;
602 const ValueRuns *fLevelRuns;
603 const ValueRuns *fScriptRuns;
604 const LocaleRuns *fLocaleRuns;
628 StyleRunInfo *fStyleRunInfo;
631 BreakIterator *fBreakIterator;
637 float fVisualRunLastX;
638 float fVisualRunLastY;
651 inline void ParagraphLayout::reflow()
656 inline ParagraphLayout::Line::Line()
657 :
UObject(), fAscent(0), fDescent(0), fLeading(0), fRunCount(0), fRunCapacity(0), fRuns(
NULL)
662 inline ParagraphLayout::Line::Line(
const Line & )
663 : UObject(), fAscent(0), fDescent(0), fLeading(0), fRunCount(0), fRunCapacity(0), fRuns(
NULL)
700 return fGlyphToCharMap;
705 return fFont->getAscent();
710 return fFont->getDescent();
715 return fFont->getLeading();
718 inline ParagraphLayout::VisualRun::VisualRun()
724 inline ParagraphLayout::VisualRun::VisualRun(
const VisualRun &)
730 inline ParagraphLayout::VisualRun::VisualRun(
const LEFontInstance *font,
UBiDiDirection direction,
le_int32 glyphCount,
731 const LEGlyphID glyphs[],
const float positions[],
const le_int32 glyphToCharMap[])
732 : fFont(font), fDirection(direction), fGlyphCount(glyphCount),
733 fGlyphs(glyphs), fPositions(positions), fGlyphToCharMap(glyphToCharMap)