00001
00002
00003
00004
00005
00006
00007 #ifndef __PLAYOUT_H
00008 #define __PLAYOUT_H
00009
00010
00011
00012
00013
00014 #include "unicode/ubidi.h"
00015 #if ! UCONFIG_NO_BREAK_ITERATION
00016
00017 #include "layout/LETypes.h"
00018 #include "plruns.h"
00019
00034 typedef void pl_paragraph;
00035
00041 typedef void pl_line;
00042
00048 typedef void pl_visualRun;
00049
00095 U_INTERNAL pl_paragraph * U_EXPORT2
00096 pl_create(const LEUnicode chars[],
00097 le_int32 count,
00098 const pl_fontRuns *fontRuns,
00099 const pl_valueRuns *levelRuns,
00100 const pl_valueRuns *scriptRuns,
00101 const pl_localeRuns *localeRuns,
00102 UBiDiLevel paragraphLevel,
00103 le_bool vertical,
00104 LEErrorCode *status);
00105
00115 U_INTERNAL void U_EXPORT2
00116 pl_close(pl_paragraph *paragraph);
00117
00131 U_INTERNAL le_bool U_EXPORT2
00132 pl_isComplex(const LEUnicode chars[],
00133 le_int32 count);
00134
00146 U_INTERNAL UBiDiLevel U_EXPORT2
00147 pl_getParagraphLevel(pl_paragraph *paragraph);
00148
00160 U_INTERNAL UBiDiDirection U_EXPORT2
00161 pl_getTextDirection(pl_paragraph *paragraph);
00162
00178 U_INTERNAL le_int32 U_EXPORT2
00179 pl_getAscent(const pl_paragraph *paragraph);
00180
00191 U_INTERNAL le_int32 U_EXPORT2
00192 pl_getDescent(const pl_paragraph *paragraph);
00193
00204 U_INTERNAL le_int32 U_EXPORT2
00205 pl_getLeading(const pl_paragraph *paragraph);
00206
00214 U_INTERNAL void U_EXPORT2
00215 pl_reflow(pl_paragraph *paragraph);
00216
00235 U_INTERNAL pl_line * U_EXPORT2
00236 pl_nextLine(pl_paragraph *paragraph, float width);
00237
00247 U_INTERNAL void U_EXPORT2
00248 pl_closeLine(pl_line *line);
00249
00259 U_INTERNAL le_int32 U_EXPORT2
00260 pl_countLineRuns(const pl_line *line);
00261
00272 U_INTERNAL le_int32 U_EXPORT2
00273 pl_getLineAscent(const pl_line *line);
00274
00285 U_INTERNAL le_int32 U_EXPORT2
00286 pl_getLineDescent(const pl_line *line);
00287
00298 U_INTERNAL le_int32 U_EXPORT2
00299 pl_getLineLeading(const pl_line *line);
00300
00312 U_INTERNAL le_int32 U_EXPORT2
00313 pl_getLineWidth(const pl_line *line);
00314
00331 U_INTERNAL const pl_visualRun * U_EXPORT2
00332 pl_getLineVisualRun(const pl_line *line, le_int32 runIndex);
00333
00348 U_INTERNAL const le_font * U_EXPORT2
00349 pl_getVisualRunFont(const pl_visualRun *run);
00350
00361 U_INTERNAL UBiDiDirection U_EXPORT2
00362 pl_getVisualRunDirection(const pl_visualRun *run);
00363
00373 U_INTERNAL le_int32 U_EXPORT2
00374 pl_getVisualRunGlyphCount(const pl_visualRun *run);
00375
00388 U_INTERNAL const LEGlyphID * U_EXPORT2
00389 pl_getVisualRunGlyphs(const pl_visualRun *run);
00390
00406 U_INTERNAL const float * U_EXPORT2
00407 pl_getVisualRunPositions(const pl_visualRun *run);
00408
00421 U_INTERNAL const le_int32 * U_EXPORT2
00422 pl_getVisualRunGlyphToCharMap(const pl_visualRun *run);
00423
00434 U_INTERNAL le_int32 U_EXPORT2
00435 pl_getVisualRunAscent(const pl_visualRun *run);
00436
00447 U_INTERNAL le_int32 U_EXPORT2
00448 pl_getVisualRunDescent(const pl_visualRun *run);
00449
00460 U_INTERNAL le_int32 U_EXPORT2
00461 pl_getVisualRunLeading(const pl_visualRun *run);
00462
00463 #endif
00464 #endif