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 #ifndef U_HIDE_INTERNAL_API
00017
00018 #include "layout/LETypes.h"
00019 #include "plruns.h"
00020
00035 typedef void pl_paragraph;
00036
00042 typedef void pl_line;
00043
00049 typedef void pl_visualRun;
00050
00096 U_INTERNAL pl_paragraph * U_EXPORT2
00097 pl_create(const LEUnicode chars[],
00098 le_int32 count,
00099 const pl_fontRuns *fontRuns,
00100 const pl_valueRuns *levelRuns,
00101 const pl_valueRuns *scriptRuns,
00102 const pl_localeRuns *localeRuns,
00103 UBiDiLevel paragraphLevel,
00104 le_bool vertical,
00105 LEErrorCode *status);
00106
00116 U_INTERNAL void U_EXPORT2
00117 pl_close(pl_paragraph *paragraph);
00118
00132 U_INTERNAL le_bool U_EXPORT2
00133 pl_isComplex(const LEUnicode chars[],
00134 le_int32 count);
00135
00147 U_INTERNAL UBiDiLevel U_EXPORT2
00148 pl_getParagraphLevel(pl_paragraph *paragraph);
00149
00161 U_INTERNAL UBiDiDirection U_EXPORT2
00162 pl_getTextDirection(pl_paragraph *paragraph);
00163
00179 U_INTERNAL le_int32 U_EXPORT2
00180 pl_getAscent(const pl_paragraph *paragraph);
00181
00192 U_INTERNAL le_int32 U_EXPORT2
00193 pl_getDescent(const pl_paragraph *paragraph);
00194
00205 U_INTERNAL le_int32 U_EXPORT2
00206 pl_getLeading(const pl_paragraph *paragraph);
00207
00215 U_INTERNAL void U_EXPORT2
00216 pl_reflow(pl_paragraph *paragraph);
00217
00236 U_INTERNAL pl_line * U_EXPORT2
00237 pl_nextLine(pl_paragraph *paragraph, float width);
00238
00248 U_INTERNAL void U_EXPORT2
00249 pl_closeLine(pl_line *line);
00250
00260 U_INTERNAL le_int32 U_EXPORT2
00261 pl_countLineRuns(const pl_line *line);
00262
00273 U_INTERNAL le_int32 U_EXPORT2
00274 pl_getLineAscent(const pl_line *line);
00275
00286 U_INTERNAL le_int32 U_EXPORT2
00287 pl_getLineDescent(const pl_line *line);
00288
00299 U_INTERNAL le_int32 U_EXPORT2
00300 pl_getLineLeading(const pl_line *line);
00301
00313 U_INTERNAL le_int32 U_EXPORT2
00314 pl_getLineWidth(const pl_line *line);
00315
00332 U_INTERNAL const pl_visualRun * U_EXPORT2
00333 pl_getLineVisualRun(const pl_line *line, le_int32 runIndex);
00334
00349 U_INTERNAL const le_font * U_EXPORT2
00350 pl_getVisualRunFont(const pl_visualRun *run);
00351
00362 U_INTERNAL UBiDiDirection U_EXPORT2
00363 pl_getVisualRunDirection(const pl_visualRun *run);
00364
00374 U_INTERNAL le_int32 U_EXPORT2
00375 pl_getVisualRunGlyphCount(const pl_visualRun *run);
00376
00389 U_INTERNAL const LEGlyphID * U_EXPORT2
00390 pl_getVisualRunGlyphs(const pl_visualRun *run);
00391
00407 U_INTERNAL const float * U_EXPORT2
00408 pl_getVisualRunPositions(const pl_visualRun *run);
00409
00422 U_INTERNAL const le_int32 * U_EXPORT2
00423 pl_getVisualRunGlyphToCharMap(const pl_visualRun *run);
00424
00435 U_INTERNAL le_int32 U_EXPORT2
00436 pl_getVisualRunAscent(const pl_visualRun *run);
00437
00448 U_INTERNAL le_int32 U_EXPORT2
00449 pl_getVisualRunDescent(const pl_visualRun *run);
00450
00461 U_INTERNAL le_int32 U_EXPORT2
00462 pl_getVisualRunLeading(const pl_visualRun *run);
00463
00464 #endif
00465 #endif
00466 #endif