1ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/* 2ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 385bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho * (C) Copyright IBM Corp. 1998-2009 - All Rights Reserved 4ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 5ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 6ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 7ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#ifndef __LETYPES_H 8ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#define __LETYPES_H 9ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 10ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#if !defined(LE_USE_CMEMORY) && (defined(U_LAYOUT_IMPLEMENTATION) || defined(U_LAYOUTEX_IMPLEMENTATION) || defined(U_STATIC_IMPLEMENTATION) || defined(U_COMBINED_IMPLEMENTATION)) 11ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#define LE_USE_CMEMORY 12ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#endif 13ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 14ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#include "unicode/utypes.h" 15ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 16ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#ifdef XP_CPLUSPLUS 17ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#include "unicode/uobject.h" 18ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#endif 19ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 20ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#ifdef LE_USE_CMEMORY 21ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#include "cmemory.h" 22ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#endif 23ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 24ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/*! 25ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * \file 2685bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho * \brief C API: Basic definitions for the ICU LayoutEngine 27ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 28ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 29ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/** 30ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * A type used for signed, 32-bit integers. 31ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 32ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @stable ICU 2.4 33ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 34ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querutypedef int32_t le_int32; 35ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 36ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/** 37ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * A type used for unsigned, 32-bit integers. 38ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 39ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @stable ICU 2.4 40ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 41ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querutypedef uint32_t le_uint32; 42ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 43ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/** 44ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * A type used for signed, 16-bit integers. 45ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 46ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @stable ICU 2.4 47ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 48ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querutypedef int16_t le_int16; 49ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 50ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/** 51ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * A type used for unsigned, 16-bit integers. 52ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 53ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @stable ICU 2.4 54ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 55ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querutypedef uint16_t le_uint16; 56ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 57ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/** 58ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * A type used for signed, 8-bit integers. 59ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 60ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @stable ICU 2.4 61ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 62ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querutypedef int8_t le_int8; 63ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 64ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/** 65ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * A type used for unsigned, 8-bit integers. 66ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 67ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @stable ICU 2.4 68ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 69ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querutypedef uint8_t le_uint8; 70ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 71ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 72ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/** 73ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * A type used for boolean values. 74ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 75ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @stable ICU 2.4 76ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 77ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querutypedef UBool le_bool; 78ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 79ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#ifndef NULL 80ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/** 81ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Used to represent empty pointers. 82ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 83ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @stable ICU 2.4 84ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 85ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#define NULL 0 86ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#endif 87ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 88ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/** 89ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Used for four character tags. 90ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 91ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @stable ICU 2.4 92ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 93ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querutypedef le_uint32 LETag; 94ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 95ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/** 96ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Used for 16-bit glyph indices as they're represented 97ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * in TrueType font tables. 98ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 99ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @stable ICU 3.2 100ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 101ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querutypedef le_uint16 TTGlyphID; 102ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 103ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/** 104ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Used for glyph indices. The low-order 16 bits are 105ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * the glyph ID within the font. The next 8 bits are 106ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * the sub-font ID within a compound font. The high- 107ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * order 8 bits are client defined. The LayoutEngine 108ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * will never change or look at the client defined bits. 109ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 110ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @stable ICU 3.2 111ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 112ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querutypedef le_uint32 LEGlyphID; 113ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 114ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/** 115ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Used to mask off the glyph ID part of an LEGlyphID. 116ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 117ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @see LEGlyphID 118ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @stable ICU 3.2 119ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 120ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#define LE_GLYPH_MASK 0x0000FFFF 121ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 122ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/** 123ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Used to shift the glyph ID part of an LEGlyphID 124ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * into the low-order bits. 125ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 126ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @see LEGlyphID 127ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @stable ICU 3.2 128ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 129ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#define LE_GLYPH_SHIFT 0 130ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 131ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 132ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/** 133ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Used to mask off the sub-font ID part of an LEGlyphID. 134ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 135ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @see LEGlyphID 136ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @stable ICU 3.2 137ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 138ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#define LE_SUB_FONT_MASK 0x00FF0000 139ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 140ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/** 141ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Used to shift the sub-font ID part of an LEGlyphID 142ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * into the low-order bits. 143ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 144ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @see LEGlyphID 145ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @stable ICU 3.2 146ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 147ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#define LE_SUB_FONT_SHIFT 16 148ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 149ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 150ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/** 151ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Used to mask off the client-defined part of an LEGlyphID. 152ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 153ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @see LEGlyphID 154ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @stable ICU 3.2 155ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 156ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#define LE_CLIENT_MASK 0xFF000000 157ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 158ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/** 159ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Used to shift the sub-font ID part of an LEGlyphID 160ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * into the low-order bits. 161ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 162ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @see LEGlyphID 163ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @stable ICU 3.2 164ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 165ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#define LE_CLIENT_SHIFT 24 166ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 167ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 168ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/** 169ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * A convenience macro to get the Glyph ID part of an LEGlyphID. 170ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 171ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @see LEGlyphID 172ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @stable ICU 3.2 173ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 174ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#define LE_GET_GLYPH(gid) ((gid & LE_GLYPH_MASK) >> LE_GLYPH_SHIFT) 175ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 176ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/** 177ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * A convenience macro to get the sub-font ID part of an LEGlyphID. 178ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 179ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @see LEGlyphID 180ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @stable ICU 3.2 181ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 182ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#define LE_GET_SUB_FONT(gid) ((gid & LE_SUB_FONT_MASK) >> LE_SUB_FONT_SHIFT) 183ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 184ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/** 185ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * A convenience macro to get the client-defined part of an LEGlyphID. 186ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 187ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @see LEGlyphID 188ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @stable ICU 3.2 189ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 190ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#define LE_GET_CLIENT(gid) ((gid & LE_CLIENT_MASK) >> LE_CLIENT_SHIFT) 191ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 192ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 193ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/** 194ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * A convenience macro to set the Glyph ID part of an LEGlyphID. 195ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 196ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @see LEGlyphID 197ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @stable ICU 3.2 198ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 199ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#define LE_SET_GLYPH(gid, glyph) ((gid & ~LE_GLYPH_MASK) | ((glyph << LE_GLYPH_SHIFT) & LE_GLYPH_MASK)) 200ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 201ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/** 202ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * A convenience macro to set the sub-font ID part of an LEGlyphID. 203ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 204ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @see LEGlyphID 205ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @stable ICU 3.2 206ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 207ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#define LE_SET_SUB_FONT(gid, font) ((gid & ~LE_SUB_FONT_MASK) | ((font << LE_SUB_FONT_SHIFT) & LE_SUB_FONT_MASK)) 208ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 209ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/** 210ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * A convenience macro to set the client-defined part of an LEGlyphID. 211ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 212ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @see LEGlyphID 213ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @stable ICU 3.2 214ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 215ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#define LE_SET_CLIENT(gid, client) ((gid & ~LE_CLIENT_MASK) | ((client << LE_CLIENT_SHIFT) & LE_CLIENT_MASK)) 216ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 217ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 218ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/** 219ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Used to represent 16-bit Unicode code points. 220ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 221ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @stable ICU 2.4 222ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 223ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querutypedef UChar LEUnicode16; 224ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 225ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/** 226ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Used to represent 32-bit Unicode code points. 227ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 228ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @stable ICU 2.4 229ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 230ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querutypedef UChar32 LEUnicode32; 231ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 232ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/** 233ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Used to represent 16-bit Unicode code points. 234ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 235ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @deprecated since ICU 2.4. Use LEUnicode16 instead 236ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 237ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querutypedef UChar LEUnicode; 238ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 239ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/** 240ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Used to hold a pair of (x, y) values which represent a point. 241ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 242ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @stable ICU 2.4 243ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 244ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querustruct LEPoint 245ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{ 246ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru /** 247ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * The x coordinate of the point. 248ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 249ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @stable ICU 2.4 250ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 251ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru float fX; 252ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 253ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru /** 254ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * The y coordinate of the point. 255ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 256ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @stable ICU 2.4 257ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 258ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru float fY; 259ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru}; 260ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 261ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#ifndef XP_CPLUSPLUS 262ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/** 263ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Used to hold a pair of (x, y) values which represent a point. 264ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 265ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @stable ICU 2.4 266ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 267ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querutypedef struct LEPoint LEPoint; 268ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#endif 269ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 270ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 271ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/** 272ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * A convenience macro to get the length of an array. 273ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 274ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @internal 275ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 276ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#define LE_ARRAY_SIZE(array) (sizeof array / sizeof array[0]) 277ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 278ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#ifdef LE_USE_CMEMORY 279ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/** 280ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * A convenience macro for copying an array. 281ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 282ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @internal 283ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 284ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#define LE_ARRAY_COPY(dst, src, count) uprv_memcpy((void *) (dst), (void *) (src), (count) * sizeof (src)[0]) 285ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 286ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/** 287ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Allocate an array of basic types. This is used to isolate the rest of 288ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * the LayoutEngine code from cmemory.h. 289ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 290ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @internal 291ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 292ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#define LE_NEW_ARRAY(type, count) (type *) uprv_malloc((count) * sizeof(type)) 293ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 294ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/** 295ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Re-allocate an array of basic types. This is used to isolate the rest of 296ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * the LayoutEngine code from cmemory.h. 297ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 298ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @internal 299ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 300ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#define LE_GROW_ARRAY(array, newSize) uprv_realloc((void *) (array), (newSize) * sizeof (array)[0]) 301ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 302ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru /** 303ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Free an array of basic types. This is used to isolate the rest of 304ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * the LayoutEngine code from cmemory.h. 305ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 306ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @internal 307ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 308ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#define LE_DELETE_ARRAY(array) uprv_free((void *) (array)) 309ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#endif 310ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 311ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/** 312ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * A macro to construct the four-letter tags used to 313ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * label TrueType tables, and for script, language and 314ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * feature tags in OpenType tables. 315ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 316ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * WARNING: THIS MACRO WILL ONLY WORK CORRECTLY IF 317ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * THE ARGUMENT CHARACTERS ARE ASCII. 318ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 319ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @stable ICU 3.2 320ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 321ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#define LE_MAKE_TAG(a, b, c, d) \ 322ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru (((le_uint32)(a) << 24) | \ 323ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru ((le_uint32)(b) << 16) | \ 324ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru ((le_uint32)(c) << 8) | \ 325ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru (le_uint32)(d)) 326ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 327ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/** 328ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * This enumeration defines constants for the standard 329ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * TrueType, OpenType and AAT table tags. 330ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 331ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @stable ICU 3.2 332ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 333ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruenum LETableTags { 334ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_ACNT_TABLE_TAG = 0x61636E74UL, /**< 'acnt' */ 335ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_AVAR_TABLE_TAG = 0x61766172UL, /**< 'avar' */ 336ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_BASE_TABLE_TAG = 0x42415345UL, /**< 'BASE' */ 337ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_BDAT_TABLE_TAG = 0x62646174UL, /**< 'bdat' */ 338ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_BHED_TABLE_TAG = 0x62686564UL, /**< 'bhed' */ 339ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_BLOC_TABLE_TAG = 0x626C6F63UL, /**< 'bloc' */ 340ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_BSLN_TABLE_TAG = 0x62736C6EUL, /**< 'bsln' */ 341ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_CFF__TABLE_TAG = 0x43464620UL, /**< 'CFF ' */ 342ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_CMAP_TABLE_TAG = 0x636D6170UL, /**< 'cmap' */ 343ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_CVAR_TABLE_TAG = 0x63766172UL, /**< 'cvar' */ 344ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_CVT__TABLE_TAG = 0x63767420UL, /**< 'cvt ' */ 345ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_DSIG_TABLE_TAG = 0x44534947UL, /**< 'DSIG' */ 346ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_EBDT_TABLE_TAG = 0x45424454UL, /**< 'EBDT' */ 347ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_EBLC_TABLE_TAG = 0x45424C43UL, /**< 'EBLC' */ 348ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_EBSC_TABLE_TAG = 0x45425343UL, /**< 'EBSC' */ 349ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_FDSC_TABLE_TAG = 0x66647363UL, /**< 'fdsc' */ 350ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_FEAT_TABLE_TAG = 0x66656174UL, /**< 'feat' */ 351ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_FMTX_TABLE_TAG = 0x666D7478UL, /**< 'fmtx' */ 352ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_FPGM_TABLE_TAG = 0x6670676DUL, /**< 'fpgm' */ 353ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_FVAR_TABLE_TAG = 0x66766172UL, /**< 'fvar' */ 354ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_GASP_TABLE_TAG = 0x67617370UL, /**< 'gasp' */ 355ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_GDEF_TABLE_TAG = 0x47444546UL, /**< 'GDEF' */ 356ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_GLYF_TABLE_TAG = 0x676C7966UL, /**< 'glyf' */ 357ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_GPOS_TABLE_TAG = 0x47504F53UL, /**< 'GPOS' */ 358ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_GSUB_TABLE_TAG = 0x47535542UL, /**< 'GSUB' */ 359ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_GVAR_TABLE_TAG = 0x67766172UL, /**< 'gvar' */ 360ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_HDMX_TABLE_TAG = 0x68646D78UL, /**< 'hdmx' */ 361ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_HEAD_TABLE_TAG = 0x68656164UL, /**< 'head' */ 362ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_HHEA_TABLE_TAG = 0x68686561UL, /**< 'hhea' */ 363ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_HMTX_TABLE_TAG = 0x686D7478UL, /**< 'hmtx' */ 364ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_HSTY_TABLE_TAG = 0x68737479UL, /**< 'hsty' */ 365ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_JUST_TABLE_TAG = 0x6A757374UL, /**< 'just' */ 366ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_JSTF_TABLE_TAG = 0x4A535446UL, /**< 'JSTF' */ 367ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_KERN_TABLE_TAG = 0x6B65726EUL, /**< 'kern' */ 368ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_LCAR_TABLE_TAG = 0x6C636172UL, /**< 'lcar' */ 369ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_LOCA_TABLE_TAG = 0x6C6F6361UL, /**< 'loca' */ 370ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_LTSH_TABLE_TAG = 0x4C545348UL, /**< 'LTSH' */ 371ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_MAXP_TABLE_TAG = 0x6D617870UL, /**< 'maxp' */ 372ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_MORT_TABLE_TAG = 0x6D6F7274UL, /**< 'mort' */ 373ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_MORX_TABLE_TAG = 0x6D6F7278UL, /**< 'morx' */ 374ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_NAME_TABLE_TAG = 0x6E616D65UL, /**< 'name' */ 375ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_OPBD_TABLE_TAG = 0x6F706264UL, /**< 'opbd' */ 376ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_OS_2_TABLE_TAG = 0x4F532F32UL, /**< 'OS/2' */ 377ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_PCLT_TABLE_TAG = 0x50434C54UL, /**< 'PCLT' */ 378ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_POST_TABLE_TAG = 0x706F7374UL, /**< 'post' */ 379ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_PREP_TABLE_TAG = 0x70726570UL, /**< 'prep' */ 380ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_PROP_TABLE_TAG = 0x70726F70UL, /**< 'prop' */ 381ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_TRAK_TABLE_TAG = 0x7472616BUL, /**< 'trak' */ 382ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_VDMX_TABLE_TAG = 0x56444D58UL, /**< 'VDMX' */ 383ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_VHEA_TABLE_TAG = 0x76686561UL, /**< 'vhea' */ 384ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_VMTX_TABLE_TAG = 0x766D7478UL, /**< 'vmtx' */ 385ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_VORG_TABLE_TAG = 0x564F5247UL, /**< 'VORG' */ 386ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_ZAPF_TABLE_TAG = 0x5A617066UL /**< 'Zapf' */ 387ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru}; 388ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 389ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/** 390ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * This enumeration defines constants for all 391ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * the common OpenType feature tags. 392ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 393ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @stable ICU 3.2 394ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 395ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruenum LEFeatureTags { 396ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_AALT_FEATURE_TAG = 0x61616C74UL, /**< 'aalt' */ 397ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_ABVF_FEATURE_TAG = 0x61627666UL, /**< 'abvf' */ 398ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_ABVM_FEATURE_TAG = 0x6162766DUL, /**< 'abvm' */ 399ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_ABVS_FEATURE_TAG = 0x61627673UL, /**< 'abvs' */ 400ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_AFRC_FEATURE_TAG = 0x61667263UL, /**< 'afrc' */ 401ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_AKHN_FEATURE_TAG = 0x616B686EUL, /**< 'akhn' */ 402ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_BLWF_FEATURE_TAG = 0x626C7766UL, /**< 'blwf' */ 403ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_BLWM_FEATURE_TAG = 0x626C776DUL, /**< 'blwm' */ 404ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_BLWS_FEATURE_TAG = 0x626C7773UL, /**< 'blws' */ 405ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_CALT_FEATURE_TAG = 0x63616C74UL, /**< 'calt' */ 406ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_CASE_FEATURE_TAG = 0x63617365UL, /**< 'case' */ 407ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_CCMP_FEATURE_TAG = 0x63636D70UL, /**< 'ccmp' */ 40885bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho LE_CJCT_FEATURE_TAG = 0x636A6374UL, /**< 'cjct' */ 409ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_CLIG_FEATURE_TAG = 0x636C6967UL, /**< 'clig' */ 410ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_CPSP_FEATURE_TAG = 0x63707370UL, /**< 'cpsp' */ 411ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_CSWH_FEATURE_TAG = 0x63737768UL, /**< 'cswh' */ 412ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_CURS_FEATURE_TAG = 0x63757273UL, /**< 'curs' */ 413ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_C2SC_FEATURE_TAG = 0x63327363UL, /**< 'c2sc' */ 414ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_C2PC_FEATURE_TAG = 0x63327063UL, /**< 'c2pc' */ 415ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_DIST_FEATURE_TAG = 0x64697374UL, /**< 'dist' */ 416ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_DLIG_FEATURE_TAG = 0x646C6967UL, /**< 'dlig' */ 417ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_DNOM_FEATURE_TAG = 0x646E6F6DUL, /**< 'dnom' */ 418ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_EXPT_FEATURE_TAG = 0x65787074UL, /**< 'expt' */ 419ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_FALT_FEATURE_TAG = 0x66616C74UL, /**< 'falt' */ 420ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_FIN2_FEATURE_TAG = 0x66696E32UL, /**< 'fin2' */ 421ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_FIN3_FEATURE_TAG = 0x66696E33UL, /**< 'fin3' */ 422ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_FINA_FEATURE_TAG = 0x66696E61UL, /**< 'fina' */ 423ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_FRAC_FEATURE_TAG = 0x66726163UL, /**< 'frac' */ 424ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_FWID_FEATURE_TAG = 0x66776964UL, /**< 'fwid' */ 425ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_HALF_FEATURE_TAG = 0x68616C66UL, /**< 'half' */ 426ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_HALN_FEATURE_TAG = 0x68616C6EUL, /**< 'haln' */ 427ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_HALT_FEATURE_TAG = 0x68616C74UL, /**< 'halt' */ 428ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_HIST_FEATURE_TAG = 0x68697374UL, /**< 'hist' */ 429ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_HKNA_FEATURE_TAG = 0x686B6E61UL, /**< 'hkna' */ 430ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_HLIG_FEATURE_TAG = 0x686C6967UL, /**< 'hlig' */ 431ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_HNGL_FEATURE_TAG = 0x686E676CUL, /**< 'hngl' */ 432ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_HWID_FEATURE_TAG = 0x68776964UL, /**< 'hwid' */ 433ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_INIT_FEATURE_TAG = 0x696E6974UL, /**< 'init' */ 434ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_ISOL_FEATURE_TAG = 0x69736F6CUL, /**< 'isol' */ 435ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_ITAL_FEATURE_TAG = 0x6974616CUL, /**< 'ital' */ 436ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_JALT_FEATURE_TAG = 0x6A616C74UL, /**< 'jalt' */ 437ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_JP78_FEATURE_TAG = 0x6A703738UL, /**< 'jp78' */ 438ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_JP83_FEATURE_TAG = 0x6A703833UL, /**< 'jp83' */ 439ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_JP90_FEATURE_TAG = 0x6A703930UL, /**< 'jp90' */ 440ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_KERN_FEATURE_TAG = 0x6B65726EUL, /**< 'kern' */ 441ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_LFBD_FEATURE_TAG = 0x6C666264UL, /**< 'lfbd' */ 442ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_LIGA_FEATURE_TAG = 0x6C696761UL, /**< 'liga' */ 443ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_LJMO_FEATURE_TAG = 0x6C6A6D6FUL, /**< 'ljmo' */ 444ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_LNUM_FEATURE_TAG = 0x6C6E756DUL, /**< 'lnum' */ 445ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_LOCL_FEATURE_TAG = 0x6C6F636CUL, /**< 'locl' */ 446ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_MARK_FEATURE_TAG = 0x6D61726BUL, /**< 'mark' */ 447ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_MED2_FEATURE_TAG = 0x6D656432UL, /**< 'med2' */ 448ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_MEDI_FEATURE_TAG = 0x6D656469UL, /**< 'medi' */ 449ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_MGRK_FEATURE_TAG = 0x6D67726BUL, /**< 'mgrk' */ 450ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_MKMK_FEATURE_TAG = 0x6D6B6D6BUL, /**< 'mkmk' */ 451ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_MSET_FEATURE_TAG = 0x6D736574UL, /**< 'mset' */ 452ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_NALT_FEATURE_TAG = 0x6E616C74UL, /**< 'nalt' */ 453ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_NLCK_FEATURE_TAG = 0x6E6C636BUL, /**< 'nlck' */ 454ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_NUKT_FEATURE_TAG = 0x6E756B74UL, /**< 'nukt' */ 455ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_NUMR_FEATURE_TAG = 0x6E756D72UL, /**< 'numr' */ 456ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_ONUM_FEATURE_TAG = 0x6F6E756DUL, /**< 'onum' */ 457ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_OPBD_FEATURE_TAG = 0x6F706264UL, /**< 'opbd' */ 458ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_ORDN_FEATURE_TAG = 0x6F72646EUL, /**< 'ordn' */ 459ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_ORNM_FEATURE_TAG = 0x6F726E6DUL, /**< 'ornm' */ 460ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_PALT_FEATURE_TAG = 0x70616C74UL, /**< 'palt' */ 461ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_PCAP_FEATURE_TAG = 0x70636170UL, /**< 'pcap' */ 462ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_PNUM_FEATURE_TAG = 0x706E756DUL, /**< 'pnum' */ 463ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_PREF_FEATURE_TAG = 0x70726566UL, /**< 'pref' */ 464ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_PRES_FEATURE_TAG = 0x70726573UL, /**< 'pres' */ 465ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_PSTF_FEATURE_TAG = 0x70737466UL, /**< 'pstf' */ 466ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_PSTS_FEATURE_TAG = 0x70737473UL, /**< 'psts' */ 467ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_PWID_FEATURE_TAG = 0x70776964UL, /**< 'pwid' */ 468ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_QWID_FEATURE_TAG = 0x71776964UL, /**< 'qwid' */ 469ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_RAND_FEATURE_TAG = 0x72616E64UL, /**< 'rand' */ 470ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_RLIG_FEATURE_TAG = 0x726C6967UL, /**< 'rlig' */ 471ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_RPHF_FEATURE_TAG = 0x72706866UL, /**< 'rphf' */ 47285bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho LE_RKRF_FEATURE_TAG = 0x726B7266UL, /**< 'rkrf' */ 473ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_RTBD_FEATURE_TAG = 0x72746264UL, /**< 'rtbd' */ 474ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_RTLA_FEATURE_TAG = 0x72746C61UL, /**< 'rtla' */ 475ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_RUBY_FEATURE_TAG = 0x72756279UL, /**< 'ruby' */ 476ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_SALT_FEATURE_TAG = 0x73616C74UL, /**< 'salt' */ 477ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_SINF_FEATURE_TAG = 0x73696E66UL, /**< 'sinf' */ 478ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_SIZE_FEATURE_TAG = 0x73697A65UL, /**< 'size' */ 479ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_SMCP_FEATURE_TAG = 0x736D6370UL, /**< 'smcp' */ 480ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_SMPL_FEATURE_TAG = 0x736D706CUL, /**< 'smpl' */ 481ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_SS01_FEATURE_TAG = 0x73733031UL, /**< 'ss01' */ 482ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_SS02_FEATURE_TAG = 0x73733032UL, /**< 'ss02' */ 483ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_SS03_FEATURE_TAG = 0x73733033UL, /**< 'ss03' */ 484ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_SS04_FEATURE_TAG = 0x73733034UL, /**< 'ss04' */ 485ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_SS05_FEATURE_TAG = 0x73733035UL, /**< 'ss05' */ 486ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_SS06_FEATURE_TAG = 0x73733036UL, /**< 'ss06' */ 487ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_SS07_FEATURE_TAG = 0x73733037UL, /**< 'ss07' */ 488ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_SS08_FEATURE_TAG = 0x73733038UL, /**< 'ss08' */ 489ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_SS09_FEATURE_TAG = 0x73733039UL, /**< 'ss09' */ 490ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_SS10_FEATURE_TAG = 0x73733130UL, /**< 'ss10' */ 491ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_SS11_FEATURE_TAG = 0x73733131UL, /**< 'ss11' */ 492ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_SS12_FEATURE_TAG = 0x73733132UL, /**< 'ss12' */ 493ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_SS13_FEATURE_TAG = 0x73733133UL, /**< 'ss13' */ 494ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_SS14_FEATURE_TAG = 0x73733134UL, /**< 'ss14' */ 495ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_SS15_FEATURE_TAG = 0x73733135UL, /**< 'ss15' */ 496ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_SS16_FEATURE_TAG = 0x73733136UL, /**< 'ss16' */ 497ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_SS17_FEATURE_TAG = 0x73733137UL, /**< 'ss17' */ 498ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_SS18_FEATURE_TAG = 0x73733138UL, /**< 'ss18' */ 499ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_SS19_FEATURE_TAG = 0x73733139UL, /**< 'ss19' */ 500ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_SS20_FEATURE_TAG = 0x73733230UL, /**< 'ss20' */ 501ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_SUBS_FEATURE_TAG = 0x73756273UL, /**< 'subs' */ 502ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_SUPS_FEATURE_TAG = 0x73757073UL, /**< 'sups' */ 503ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_SWSH_FEATURE_TAG = 0x73777368UL, /**< 'swsh' */ 504ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_TITL_FEATURE_TAG = 0x7469746CUL, /**< 'titl' */ 505ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_TJMO_FEATURE_TAG = 0x746A6D6FUL, /**< 'tjmo' */ 506ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_TNAM_FEATURE_TAG = 0x746E616DUL, /**< 'tnam' */ 507ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_TNUM_FEATURE_TAG = 0x746E756DUL, /**< 'tnum' */ 508ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_TRAD_FEATURE_TAG = 0x74726164UL, /**< 'trad' */ 509ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_TWID_FEATURE_TAG = 0x74776964UL, /**< 'twid' */ 510ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_UNIC_FEATURE_TAG = 0x756E6963UL, /**< 'unic' */ 511ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_VALT_FEATURE_TAG = 0x76616C74UL, /**< 'valt' */ 512ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_VATU_FEATURE_TAG = 0x76617475UL, /**< 'vatu' */ 513ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_VERT_FEATURE_TAG = 0x76657274UL, /**< 'vert' */ 514ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_VHAL_FEATURE_TAG = 0x7668616CUL, /**< 'vhal' */ 515ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_VJMO_FEATURE_TAG = 0x766A6D6FUL, /**< 'vjmo' */ 516ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_VKNA_FEATURE_TAG = 0x766B6E61UL, /**< 'vkna' */ 517ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_VKRN_FEATURE_TAG = 0x766B726EUL, /**< 'vkrn' */ 518ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_VPAL_FEATURE_TAG = 0x7670616CUL, /**< 'vpal' */ 519ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_VRT2_FEATURE_TAG = 0x76727432UL, /**< 'vrt2' */ 520ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_ZERO_FEATURE_TAG = 0x7A65726FUL /**< 'zero' */ 521ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru}; 522ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 523ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/** 524ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Error codes returned by the LayoutEngine. 525ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 526ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @stable ICU 2.4 527ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 528ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruenum LEErrorCode { 529ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru /* informational */ 530ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_NO_SUBFONT_WARNING = U_USING_DEFAULT_WARNING, /**< The font does not contain subfonts. */ 531ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 532ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru /* success */ 533ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_NO_ERROR = U_ZERO_ERROR, /**< No error, no warning. */ 534ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 535ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru /* failures */ 536ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_ILLEGAL_ARGUMENT_ERROR = U_ILLEGAL_ARGUMENT_ERROR, /**< An illegal argument was detected. */ 537ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_MEMORY_ALLOCATION_ERROR = U_MEMORY_ALLOCATION_ERROR, /**< Memory allocation error. */ 538ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_INDEX_OUT_OF_BOUNDS_ERROR = U_INDEX_OUTOFBOUNDS_ERROR, /**< Trying to access an index that is out of bounds. */ 539ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_NO_LAYOUT_ERROR = U_UNSUPPORTED_ERROR, /**< You must call layoutChars() first. */ 540ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_INTERNAL_ERROR = U_INTERNAL_PROGRAM_ERROR, /**< An internal error was encountered. */ 541ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_FONT_FILE_NOT_FOUND_ERROR = U_FILE_ACCESS_ERROR, /**< The requested font file cannot be opened. */ 542ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_MISSING_FONT_TABLE_ERROR = U_MISSING_RESOURCE_ERROR /**< The requested font table does not exist. */ 543ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru}; 544ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 545ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#ifndef XP_CPLUSPLUS 546ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/** 547ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Error codes returned by the LayoutEngine. 548ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 549ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @stable ICU 2.4 550ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 551ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querutypedef enum LEErrorCode LEErrorCode; 552ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#endif 553ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 554ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/** 555ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * A convenience macro to test for the success of a LayoutEngine call. 556ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 557ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @stable ICU 2.4 558ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 559ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#define LE_SUCCESS(code) (U_SUCCESS((UErrorCode)code)) 560ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 561ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/** 562ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * A convenience macro to test for the failure of a LayoutEngine call. 563ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 564ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @stable ICU 2.4 565ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 566ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#define LE_FAILURE(code) (U_FAILURE((UErrorCode)code)) 567ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 568ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#endif 569