1 | /* |
2 | * Copyright (C) 2015 The Qt Company Ltd |
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 | typedef enum |
38 | { |
39 | HB_Mark_NonSpacing, /* Mn */ |
40 | HB_Mark_SpacingCombining, /* Mc */ |
41 | HB_Mark_Enclosing, /* Me */ |
42 | |
43 | HB_Number_DecimalDigit, /* Nd */ |
44 | HB_Number_Letter, /* Nl */ |
45 | HB_Number_Other, /* No */ |
46 | |
47 | HB_Separator_Space, /* Zs */ |
48 | HB_Separator_Line, /* Zl */ |
49 | HB_Separator_Paragraph, /* Zp */ |
50 | |
51 | HB_Other_Control, /* Cc */ |
52 | HB_Other_Format, /* Cf */ |
53 | HB_Other_Surrogate, /* Cs */ |
54 | HB_Other_PrivateUse, /* Co */ |
55 | HB_Other_NotAssigned, /* Cn */ |
56 | |
57 | HB_Letter_Uppercase, /* Lu */ |
58 | HB_Letter_Lowercase, /* Ll */ |
59 | HB_Letter_Titlecase, /* Lt */ |
60 | HB_Letter_Modifier, /* Lm */ |
61 | HB_Letter_Other, /* Lo */ |
62 | |
63 | HB_Punctuation_Connector, /* Pc */ |
64 | HB_Punctuation_Dash, /* Pd */ |
65 | HB_Punctuation_Open, /* Ps */ |
66 | HB_Punctuation_Close, /* Pe */ |
67 | HB_Punctuation_InitialQuote, /* Pi */ |
68 | HB_Punctuation_FinalQuote, /* Pf */ |
69 | HB_Punctuation_Other, /* Po */ |
70 | |
71 | HB_Symbol_Math, /* Sm */ |
72 | HB_Symbol_Currency, /* Sc */ |
73 | HB_Symbol_Modifier, /* Sk */ |
74 | HB_Symbol_Other /* So */ |
75 | } HB_CharCategory; |
76 | |
77 | void HB_GetUnicodeCharProperties(HB_UChar32 ch, HB_CharCategory *category, int *combiningClass); |
78 | HB_CharCategory HB_GetUnicodeCharCategory(HB_UChar32 ch); |
79 | int HB_GetUnicodeCharCombiningClass(HB_UChar32 ch); |
80 | HB_UChar16 HB_GetMirroredChar(HB_UChar16 ch); |
81 | |
82 | void (*HB_Library_Resolve(const char *library, int version, const char *symbol))(); |
83 | |
84 | HB_END_HEADER |
85 | |
86 | #endif |
87 | |