| OLD | NEW |
| (Empty) |
| 1 /* | |
| 2 * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies) | |
| 3 * | |
| 4 * This is part of HarfBuzz, an OpenType Layout engine library. | |
| 5 * | |
| 6 * Permission is hereby granted, without written agreement and without | |
| 7 * license or royalty fees, to use, copy, modify, and distribute this | |
| 8 * software and its documentation for any purpose, provided that the | |
| 9 * above copyright notice and the following two paragraphs appear in | |
| 10 * all copies of this software. | |
| 11 * | |
| 12 * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR | |
| 13 * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES | |
| 14 * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN | |
| 15 * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH | |
| 16 * DAMAGE. | |
| 17 * | |
| 18 * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, | |
| 19 * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND | |
| 20 * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS | |
| 21 * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO | |
| 22 * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. | |
| 23 */ | |
| 24 | |
| 25 #ifndef HARFBUZZ_EXTERNAL_H | |
| 26 #define HARFBUZZ_EXTERNAL_H | |
| 27 | |
| 28 #include "harfbuzz-global.h" | |
| 29 | |
| 30 HB_BEGIN_HEADER | |
| 31 | |
| 32 /* This header contains some methods that are not part of | |
| 33 Harfbuzz itself, but referenced by it. | |
| 34 They need to be provided by the application/library | |
| 35 */ | |
| 36 | |
| 37 | |
| 38 /* | |
| 39 see http://www.unicode.org/reports/tr14/tr14-19.html | |
| 40 we don't use the XX, AI and CB properties and map them to AL instead. | |
| 41 as we don't support any EBDIC based OS'es, NL is ignored and mapped to AL as we
ll. | |
| 42 */ | |
| 43 typedef enum { | |
| 44 HB_LineBreak_OP, HB_LineBreak_CL, HB_LineBreak_QU, HB_LineBreak_GL, HB_LineB
reak_NS, | |
| 45 HB_LineBreak_EX, HB_LineBreak_SY, HB_LineBreak_IS, HB_LineBreak_PR, HB_LineB
reak_PO, | |
| 46 HB_LineBreak_NU, HB_LineBreak_AL, HB_LineBreak_ID, HB_LineBreak_IN, HB_LineB
reak_HY, | |
| 47 HB_LineBreak_BA, HB_LineBreak_BB, HB_LineBreak_B2, HB_LineBreak_ZW, HB_LineB
reak_CM, | |
| 48 HB_LineBreak_WJ, HB_LineBreak_H2, HB_LineBreak_H3, HB_LineBreak_JL, HB_LineB
reak_JV, | |
| 49 HB_LineBreak_JT, HB_LineBreak_SA, HB_LineBreak_SG, | |
| 50 HB_LineBreak_SP, HB_LineBreak_CR, HB_LineBreak_LF, HB_LineBreak_BK | |
| 51 } HB_LineBreakClass; | |
| 52 | |
| 53 typedef enum | |
| 54 { | |
| 55 HB_NoCategory, | |
| 56 | |
| 57 HB_Mark_NonSpacing, /* Mn */ | |
| 58 HB_Mark_SpacingCombining, /* Mc */ | |
| 59 HB_Mark_Enclosing, /* Me */ | |
| 60 | |
| 61 HB_Number_DecimalDigit, /* Nd */ | |
| 62 HB_Number_Letter, /* Nl */ | |
| 63 HB_Number_Other, /* No */ | |
| 64 | |
| 65 HB_Separator_Space, /* Zs */ | |
| 66 HB_Separator_Line, /* Zl */ | |
| 67 HB_Separator_Paragraph, /* Zp */ | |
| 68 | |
| 69 HB_Other_Control, /* Cc */ | |
| 70 HB_Other_Format, /* Cf */ | |
| 71 HB_Other_Surrogate, /* Cs */ | |
| 72 HB_Other_PrivateUse, /* Co */ | |
| 73 HB_Other_NotAssigned, /* Cn */ | |
| 74 | |
| 75 HB_Letter_Uppercase, /* Lu */ | |
| 76 HB_Letter_Lowercase, /* Ll */ | |
| 77 HB_Letter_Titlecase, /* Lt */ | |
| 78 HB_Letter_Modifier, /* Lm */ | |
| 79 HB_Letter_Other, /* Lo */ | |
| 80 | |
| 81 HB_Punctuation_Connector, /* Pc */ | |
| 82 HB_Punctuation_Dash, /* Pd */ | |
| 83 HB_Punctuation_Open, /* Ps */ | |
| 84 HB_Punctuation_Close, /* Pe */ | |
| 85 HB_Punctuation_InitialQuote, /* Pi */ | |
| 86 HB_Punctuation_FinalQuote, /* Pf */ | |
| 87 HB_Punctuation_Other, /* Po */ | |
| 88 | |
| 89 HB_Symbol_Math, /* Sm */ | |
| 90 HB_Symbol_Currency, /* Sc */ | |
| 91 HB_Symbol_Modifier, /* Sk */ | |
| 92 HB_Symbol_Other /* So */ | |
| 93 } HB_CharCategory; | |
| 94 | |
| 95 typedef enum | |
| 96 { | |
| 97 HB_Grapheme_Other, | |
| 98 HB_Grapheme_CR, | |
| 99 HB_Grapheme_LF, | |
| 100 HB_Grapheme_Control, | |
| 101 HB_Grapheme_Extend, | |
| 102 HB_Grapheme_L, | |
| 103 HB_Grapheme_V, | |
| 104 HB_Grapheme_T, | |
| 105 HB_Grapheme_LV, | |
| 106 HB_Grapheme_LVT | |
| 107 } HB_GraphemeClass; | |
| 108 | |
| 109 | |
| 110 typedef enum | |
| 111 { | |
| 112 HB_Word_Other, | |
| 113 HB_Word_Format, | |
| 114 HB_Word_Katakana, | |
| 115 HB_Word_ALetter, | |
| 116 HB_Word_MidLetter, | |
| 117 HB_Word_MidNum, | |
| 118 HB_Word_Numeric, | |
| 119 HB_Word_ExtendNumLet | |
| 120 } HB_WordClass; | |
| 121 | |
| 122 | |
| 123 typedef enum | |
| 124 { | |
| 125 HB_Sentence_Other, | |
| 126 HB_Sentence_Sep, | |
| 127 HB_Sentence_Format, | |
| 128 HB_Sentence_Sp, | |
| 129 HB_Sentence_Lower, | |
| 130 HB_Sentence_Upper, | |
| 131 HB_Sentence_OLetter, | |
| 132 HB_Sentence_Numeric, | |
| 133 HB_Sentence_ATerm, | |
| 134 HB_Sentence_STerm, | |
| 135 HB_Sentence_Close | |
| 136 } HB_SentenceClass; | |
| 137 | |
| 138 HB_GraphemeClass HB_GetGraphemeClass(HB_UChar32 ch); | |
| 139 HB_WordClass HB_GetWordClass(HB_UChar32 ch); | |
| 140 HB_SentenceClass HB_GetSentenceClass(HB_UChar32 ch); | |
| 141 HB_LineBreakClass HB_GetLineBreakClass(HB_UChar32 ch); | |
| 142 | |
| 143 void HB_GetGraphemeAndLineBreakClass(HB_UChar32 ch, HB_GraphemeClass *grapheme,
HB_LineBreakClass *lineBreak); | |
| 144 void HB_GetUnicodeCharProperties(HB_UChar32 ch, HB_CharCategory *category, int *
combiningClass); | |
| 145 HB_CharCategory HB_GetUnicodeCharCategory(HB_UChar32 ch); | |
| 146 int HB_GetUnicodeCharCombiningClass(HB_UChar32 ch); | |
| 147 HB_UChar16 HB_GetMirroredChar(HB_UChar16 ch); | |
| 148 | |
| 149 void *HB_Library_Resolve(const char *library, const char *symbol); | |
| 150 | |
| 151 void *HB_TextCodecForMib(int mib); | |
| 152 char *HB_TextCodec_ConvertFromUnicode(void *codec, const HB_UChar16 *unicode, hb
_uint32 length, hb_uint32 *outputLength); | |
| 153 void HB_TextCodec_FreeResult(char *); | |
| 154 | |
| 155 HB_END_HEADER | |
| 156 | |
| 157 #endif | |
| OLD | NEW |