Main Page | Class Hierarchy | Alphabetical List | Data Structures | File List | Data Fields | Globals | Related Pages

ubidi.h

Go to the documentation of this file.
00001 /* 00002 ****************************************************************************** 00003 * 00004 * Copyright (C) 1999-2001, International Business Machines 00005 * Corporation and others. All Rights Reserved. 00006 * 00007 ****************************************************************************** 00008 * file name: ubidi.h 00009 * encoding: US-ASCII 00010 * tab size: 8 (not used) 00011 * indentation:4 00012 * 00013 * created on: 1999jul27 00014 * created by: Markus W. Scherer 00015 */ 00016 00017 #ifndef UBIDI_H 00018 #define UBIDI_H 00019 00020 #include "unicode/utypes.h" 00021 #include "unicode/uchar.h" 00022 00023 /* 00024 * javadoc-style comments are intended to be transformed into HTML 00025 * using DOC++ - see 00026 * http://www.zib.de/Visual/software/doc++/index.html . 00027 * 00028 * The HTML documentation is created with 00029 * doc++ -H ubidi.h 00030 * 00031 * The following #define trick allows us to do it all in one file 00032 * and still be able to compile it. 00033 */ 00034 /*#define DOCXX_TAG*/ 00035 /*#define BIDI_SAMPLE_CODE*/ 00036 00296 /*DOCXX_TAG*/ 00338 typedef uint8_t UBiDiLevel; 00339 00344 #define UBIDI_DEFAULT_LTR 0xfe 00345 00350 #define UBIDI_DEFAULT_RTL 0xff 00351 00357 #define UBIDI_MAX_EXPLICIT_LEVEL 61 00358 00363 #define UBIDI_LEVEL_OVERRIDE 0x80 00364 00369 enum UBiDiDirection { 00371 UBIDI_LTR, 00373 UBIDI_RTL, 00375 UBIDI_MIXED 00376 }; 00377 00379 typedef enum UBiDiDirection UBiDiDirection; 00380 00391 struct UBiDi; 00392 00394 typedef struct UBiDi UBiDi; 00395 00410 U_CAPI UBiDi * U_EXPORT2 00411 ubidi_open(void); 00412 00448 U_CAPI UBiDi * U_EXPORT2 00449 ubidi_openSized(int32_t maxLength, int32_t maxRunCount, UErrorCode *pErrorCode); 00450 00469 U_CAPI void U_EXPORT2 00470 ubidi_close(UBiDi *pBiDi); 00471 00508 U_CAPI void U_EXPORT2 00509 ubidi_setInverse(UBiDi *pBiDi, UBool isInverse); 00510 00519 U_CAPI UBool U_EXPORT2 00520 ubidi_isInverse(UBiDi *pBiDi); 00521 00593 U_CAPI void U_EXPORT2 00594 ubidi_setPara(UBiDi *pBiDi, const UChar *text, int32_t length, 00595 UBiDiLevel paraLevel, UBiDiLevel *embeddingLevels, 00596 UErrorCode *pErrorCode); 00597 00641 U_CAPI void U_EXPORT2 00642 ubidi_setLine(const UBiDi *pParaBiDi, 00643 int32_t start, int32_t limit, 00644 UBiDi *pLineBiDi, 00645 UErrorCode *pErrorCode); 00646 00659 U_CAPI UBiDiDirection U_EXPORT2 00660 ubidi_getDirection(const UBiDi *pBiDi); 00661 00673 U_CAPI const UChar * U_EXPORT2 00674 ubidi_getText(const UBiDi *pBiDi); 00675 00684 U_CAPI int32_t U_EXPORT2 00685 ubidi_getLength(const UBiDi *pBiDi); 00686 00697 U_CAPI UBiDiLevel U_EXPORT2 00698 ubidi_getParaLevel(const UBiDi *pBiDi); 00699 00712 U_CAPI UBiDiLevel U_EXPORT2 00713 ubidi_getLevelAt(const UBiDi *pBiDi, int32_t charIndex); 00714 00732 U_CAPI const UBiDiLevel * U_EXPORT2 00733 ubidi_getLevels(UBiDi *pBiDi, UErrorCode *pErrorCode); 00734 00757 U_CAPI void U_EXPORT2 00758 ubidi_getLogicalRun(const UBiDi *pBiDi, int32_t logicalStart, 00759 int32_t *pLogicalLimit, UBiDiLevel *pLevel); 00760 00777 U_CAPI int32_t U_EXPORT2 00778 ubidi_countRuns(UBiDi *pBiDi, UErrorCode *pErrorCode); 00779 00831 U_CAPI UBiDiDirection U_EXPORT2 00832 ubidi_getVisualRun(UBiDi *pBiDi, int32_t runIndex, 00833 int32_t *pLogicalStart, int32_t *pLength); 00834 00858 U_CAPI int32_t U_EXPORT2 00859 ubidi_getVisualIndex(UBiDi *pBiDi, int32_t logicalIndex, UErrorCode *pErrorCode); 00860 00882 U_CAPI int32_t U_EXPORT2 00883 ubidi_getLogicalIndex(UBiDi *pBiDi, int32_t visualIndex, UErrorCode *pErrorCode); 00884 00903 U_CAPI void U_EXPORT2 00904 ubidi_getLogicalMap(UBiDi *pBiDi, int32_t *indexMap, UErrorCode *pErrorCode); 00905 00924 U_CAPI void U_EXPORT2 00925 ubidi_getVisualMap(UBiDi *pBiDi, int32_t *indexMap, UErrorCode *pErrorCode); 00926 00947 U_CAPI void U_EXPORT2 00948 ubidi_reorderLogical(const UBiDiLevel *levels, int32_t length, int32_t *indexMap); 00949 00970 U_CAPI void U_EXPORT2 00971 ubidi_reorderVisual(const UBiDiLevel *levels, int32_t length, int32_t *indexMap); 00972 00987 U_CAPI void U_EXPORT2 00988 ubidi_invertMap(const int32_t *srcMap, int32_t *destMap, int32_t length); 00989 00999 #define UBIDI_KEEP_BASE_COMBINING 1 01000 01009 #define UBIDI_DO_MIRRORING 2 01010 01020 #define UBIDI_INSERT_LRM_FOR_NUMERIC 4 01021 01030 #define UBIDI_REMOVE_BIDI_CONTROLS 8 01031 01046 #define UBIDI_OUTPUT_REVERSE 16 01047 01105 U_CAPI int32_t U_EXPORT2 01106 ubidi_writeReordered(UBiDi *pBiDi, 01107 UChar *dest, int32_t destSize, 01108 uint16_t options, 01109 UErrorCode *pErrorCode); 01110 01158 U_CAPI int32_t U_EXPORT2 01159 ubidi_writeReverse(const UChar *src, int32_t srcLength, 01160 UChar *dest, int32_t destSize, 01161 uint16_t options, 01162 UErrorCode *pErrorCode); 01163 /*#define BIDI_SAMPLE_CODE*/ 01167 01170 #endif

Generated on Fri Aug 13 09:53:50 2004 for ICU 2.1 by doxygen 1.3.7