ICU 73.2  73.2
playout.h
Go to the documentation of this file.
00001 // © 2016 and later: Unicode, Inc. and others.
00002 // License & terms of use: http://www.unicode.org/copyright.html
00003 /*
00004  *
00005  * (C) Copyright IBM Corp. 1998-2011 - All Rights Reserved
00006  *
00007  */
00008 
00009 #ifndef __PLAYOUT_H
00010 #define __PLAYOUT_H
00011 
00012 /*
00013  * ParagraphLayout doesn't make much sense without
00014  * BreakIterator...
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_CAPI 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_CAPI void U_EXPORT2
00119 pl_close(pl_paragraph *paragraph);
00120 
00134 U_CAPI le_bool U_EXPORT2
00135 pl_isComplex(const LEUnicode chars[],
00136           le_int32 count);
00137 
00149 U_CAPI UBiDiLevel U_EXPORT2
00150 pl_getParagraphLevel(pl_paragraph *paragraph);
00151 
00163 U_CAPI UBiDiDirection U_EXPORT2
00164 pl_getTextDirection(pl_paragraph *paragraph);
00165 
00176 U_CAPI le_int32 U_EXPORT2
00177 pl_getAscent(const pl_paragraph *paragraph);
00178 
00189 U_CAPI le_int32 U_EXPORT2
00190 pl_getDescent(const pl_paragraph *paragraph);
00191 
00202 U_CAPI le_int32 U_EXPORT2
00203 pl_getLeading(const pl_paragraph *paragraph);
00204 
00212 U_CAPI void U_EXPORT2
00213 pl_reflow(pl_paragraph *paragraph);
00214 
00233 U_CAPI pl_line * U_EXPORT2
00234 pl_nextLine(pl_paragraph *paragraph, float width);
00235 
00245 U_CAPI void U_EXPORT2
00246 pl_closeLine(pl_line *line);
00247 
00257 U_CAPI le_int32 U_EXPORT2
00258 pl_countLineRuns(const pl_line *line);
00259 
00270 U_CAPI le_int32 U_EXPORT2
00271 pl_getLineAscent(const pl_line *line);
00272 
00283 U_CAPI le_int32 U_EXPORT2
00284 pl_getLineDescent(const pl_line *line);
00285 
00296 U_CAPI le_int32 U_EXPORT2
00297 pl_getLineLeading(const pl_line *line);
00298 
00310 U_CAPI le_int32 U_EXPORT2
00311 pl_getLineWidth(const pl_line *line);
00312 
00329 U_CAPI const pl_visualRun * U_EXPORT2
00330 pl_getLineVisualRun(const pl_line *line, le_int32 runIndex);
00331 
00346 U_CAPI const le_font * U_EXPORT2
00347 pl_getVisualRunFont(const pl_visualRun *run);
00348 
00359 U_CAPI UBiDiDirection U_EXPORT2
00360 pl_getVisualRunDirection(const pl_visualRun *run);
00361 
00371 U_CAPI le_int32 U_EXPORT2
00372 pl_getVisualRunGlyphCount(const pl_visualRun *run);
00373 
00386 U_CAPI const LEGlyphID * U_EXPORT2
00387 pl_getVisualRunGlyphs(const pl_visualRun *run);
00388 
00404 U_CAPI const float * U_EXPORT2
00405 pl_getVisualRunPositions(const pl_visualRun *run);
00406 
00419 U_CAPI const le_int32 * U_EXPORT2
00420 pl_getVisualRunGlyphToCharMap(const pl_visualRun *run);
00421 
00432 U_CAPI le_int32 U_EXPORT2
00433 pl_getVisualRunAscent(const pl_visualRun *run);
00434 
00445 U_CAPI le_int32 U_EXPORT2
00446 pl_getVisualRunDescent(const pl_visualRun *run);
00447 
00458 U_CAPI le_int32 U_EXPORT2
00459 pl_getVisualRunLeading(const pl_visualRun *run);
00460 
00461 #endif  /* U_HIDE_INTERNAL_API */
00462 #endif
00463 #endif