00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef __PLAYOUT_H
00010 #define __PLAYOUT_H
00011
00012
00013
00014
00015
00016 #include "unicode/ubidi.h"
00017 #if ! UCONFIG_NO_BREAK_ITERATION
00018 #ifndef U_HIDE_INTERNAL_API
00019
00020 #include "layout/LETypes.h"
00021 #include "plruns.h"
00022
00037 typedef void pl_paragraph;
00038
00044 typedef void pl_line;
00045
00051 typedef void pl_visualRun;
00052
00098 U_INTERNAL pl_paragraph * U_EXPORT2
00099 pl_create(const LEUnicode chars[],
00100 le_int32 count,
00101 const pl_fontRuns *fontRuns,
00102 const pl_valueRuns *levelRuns,
00103 const pl_valueRuns *scriptRuns,
00104 const pl_localeRuns *localeRuns,
00105 UBiDiLevel paragraphLevel,
00106 le_bool vertical,
00107 LEErrorCode *status);
00108
00118 U_INTERNAL void U_EXPORT2
00119 pl_close(pl_paragraph *paragraph);
00120
00134 U_INTERNAL le_bool U_EXPORT2
00135 pl_isComplex(const LEUnicode chars[],
00136 le_int32 count);
00137
00149 U_INTERNAL UBiDiLevel U_EXPORT2
00150 pl_getParagraphLevel(pl_paragraph *paragraph);
00151
00163 U_INTERNAL UBiDiDirection U_EXPORT2
00164 pl_getTextDirection(pl_paragraph *paragraph);
00165
00181 U_INTERNAL le_int32 U_EXPORT2
00182 pl_getAscent(const pl_paragraph *paragraph);
00183
00194 U_INTERNAL le_int32 U_EXPORT2
00195 pl_getDescent(const pl_paragraph *paragraph);
00196
00207 U_INTERNAL le_int32 U_EXPORT2
00208 pl_getLeading(const pl_paragraph *paragraph);
00209
00217 U_INTERNAL void U_EXPORT2
00218 pl_reflow(pl_paragraph *paragraph);
00219
00238 U_INTERNAL pl_line * U_EXPORT2
00239 pl_nextLine(pl_paragraph *paragraph, float width);
00240
00250 U_INTERNAL void U_EXPORT2
00251 pl_closeLine(pl_line *line);
00252
00262 U_INTERNAL le_int32 U_EXPORT2
00263 pl_countLineRuns(const pl_line *line);
00264
00275 U_INTERNAL le_int32 U_EXPORT2
00276 pl_getLineAscent(const pl_line *line);
00277
00288 U_INTERNAL le_int32 U_EXPORT2
00289 pl_getLineDescent(const pl_line *line);
00290
00301 U_INTERNAL le_int32 U_EXPORT2
00302 pl_getLineLeading(const pl_line *line);
00303
00315 U_INTERNAL le_int32 U_EXPORT2
00316 pl_getLineWidth(const pl_line *line);
00317
00334 U_INTERNAL const pl_visualRun * U_EXPORT2
00335 pl_getLineVisualRun(const pl_line *line, le_int32 runIndex);
00336
00351 U_INTERNAL const le_font * U_EXPORT2
00352 pl_getVisualRunFont(const pl_visualRun *run);
00353
00364 U_INTERNAL UBiDiDirection U_EXPORT2
00365 pl_getVisualRunDirection(const pl_visualRun *run);
00366
00376 U_INTERNAL le_int32 U_EXPORT2
00377 pl_getVisualRunGlyphCount(const pl_visualRun *run);
00378
00391 U_INTERNAL const LEGlyphID * U_EXPORT2
00392 pl_getVisualRunGlyphs(const pl_visualRun *run);
00393
00409 U_INTERNAL const float * U_EXPORT2
00410 pl_getVisualRunPositions(const pl_visualRun *run);
00411
00424 U_INTERNAL const le_int32 * U_EXPORT2
00425 pl_getVisualRunGlyphToCharMap(const pl_visualRun *run);
00426
00437 U_INTERNAL le_int32 U_EXPORT2
00438 pl_getVisualRunAscent(const pl_visualRun *run);
00439
00450 U_INTERNAL le_int32 U_EXPORT2
00451 pl_getVisualRunDescent(const pl_visualRun *run);
00452
00463 U_INTERNAL le_int32 U_EXPORT2
00464 pl_getVisualRunLeading(const pl_visualRun *run);
00465
00466 #endif
00467 #endif
00468 #endif