workaround segfault in compiler on macos-clang-intel
[LibreOffice.git] / include / vcl / fontcapabilities.hxx
blob9698be7a535e7237b8447eb8c58918ecee87266d
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 */
10 #ifndef INCLUDED_VCL_FONTCAPABILITIES_HXX
11 #define INCLUDED_VCL_FONTCAPABILITIES_HXX
13 #include <optional>
14 #include <bitset>
16 //See OS/2 table, i.e. http://www.microsoft.com/typography/otspec/os2.htm#ur
17 namespace vcl
19 namespace UnicodeCoverage
21 enum UnicodeCoverageEnum
23 BASIC_LATIN = 0,
24 LATIN_1_SUPPLEMENT = 1,
25 LATIN_EXTENDED_A = 2,
26 LATIN_EXTENDED_B = 3,
27 IPA_EXTENSIONS = 4,
28 SPACING_MODIFIER_LETTERS = 5,
29 COMBINING_DIACRITICAL_MARKS = 6,
30 GREEK_AND_COPTIC = 7,
31 COPTIC = 8,
32 CYRILLIC = 9,
33 ARMENIAN = 10,
34 HEBREW = 11,
35 VAI = 12,
36 ARABIC = 13,
37 NKO = 14,
38 DEVANAGARI = 15,
39 BENGALI = 16,
40 GURMUKHI = 17,
41 GUJARATI = 18,
42 ODIA = 19,
43 TAMIL = 20,
44 TELUGU = 21,
45 KANNADA = 22,
46 MALAYALAM = 23,
47 THAI = 24,
48 LAO = 25,
49 GEORGIAN = 26,
50 BALINESE = 27,
51 HANGUL_JAMO = 28,
52 LATIN_EXTENDED_ADDITIONAL = 29,
53 GREEK_EXTENDED = 30,
54 GENERAL_PUNCTUATION = 31,
55 SUPERSCRIPTS_AND_SUBSCRIPTS = 32,
56 CURRENCY_SYMBOLS = 33,
57 COMBINING_DIACRITICAL_MARKS_FOR_SYMBOLS = 34,
58 LETTERLIKE_SYMBOLS = 35,
59 NUMBER_FORMS = 36,
60 ARROWS = 37,
61 MATHEMATICAL_OPERATORS = 38,
62 MISCELLANEOUS_TECHNICAL = 39,
63 CONTROL_PICTURES = 40,
64 OPTICAL_CHARACTER_RECOGNITION = 41,
65 ENCLOSED_ALPHANUMERICS = 42,
66 BOX_DRAWING = 43,
67 BLOCK_ELEMENTS = 44,
68 GEOMETRIC_SHAPES = 45,
69 MISCELLANEOUS_SYMBOLS = 46,
70 DINGBATS = 47,
71 CJK_SYMBOLS_AND_PUNCTUATION = 48,
72 HIRAGANA = 49,
73 KATAKANA = 50,
74 BOPOMOFO = 51,
75 HANGUL_COMPATIBILITY_JAMO = 52,
76 PHAGS_PA = 53,
77 ENCLOSED_CJK_LETTERS_AND_MONTHS = 54,
78 CJK_COMPATIBILITY = 55,
79 HANGUL_SYLLABLES = 56,
80 NONPLANE_0 = 57,
81 PHOENICIAN = 58,
82 CJK_UNIFIED_IDEOGRAPHS = 59,
83 PRIVATE_USE_AREA_PLANE_0 = 60,
84 CJK_STROKES = 61,
85 ALPHABETIC_PRESENTATION_FORMS = 62,
86 ARABIC_PRESENTATION_FORMS_A = 63,
87 COMBINING_HALF_MARKS = 64,
88 VERTICAL_FORMS = 65,
89 SMALL_FORM_VARIANTS = 66,
90 ARABIC_PRESENTATION_FORMS_B = 67,
91 HALFWIDTH_AND_FULLWIDTH_FORMS = 68,
92 SPECIALS = 69,
93 TIBETAN = 70,
94 SYRIAC = 71,
95 THAANA = 72,
96 SINHALA = 73,
97 MYANMAR = 74,
98 ETHIOPIC = 75,
99 CHEROKEE = 76,
100 UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS = 77,
101 OGHAM = 78,
102 RUNIC = 79,
103 KHMER = 80,
104 MONGOLIAN = 81,
105 BRAILLE_PATTERNS = 82,
106 YI_SYLLABLES = 83,
107 TAGALOG = 84,
108 OLD_ITALIC = 85,
109 GOTHIC = 86,
110 DESERET = 87,
111 BYZANTINE_MUSICAL_SYMBOLS = 88,
112 MATHEMATICAL_ALPHANUMERIC_SYMBOLS = 89,
113 PRIVATE_USE_PLANE_15 = 90,
114 VARIATION_SELECTORS = 91,
115 TAGS = 92,
116 LIMBU = 93,
117 TAI_LE = 94,
118 NEW_TAI_LUE = 95,
119 BUGINESE = 96,
120 GLAGOLITIC = 97,
121 TIFINAGH = 98,
122 YIJING_HEXAGRAM_SYMBOLS = 99,
123 SYLOTI_NAGRI = 100,
124 LINEAR_B_SYLLABARY = 101,
125 ANCIENT_GREEK_NUMBERS = 102,
126 UGARITIC = 103,
127 OLD_PERSIAN = 104,
128 SHAVIAN = 105,
129 OSMANYA = 106,
130 CYPRIOT_SYLLABARY = 107,
131 KHAROSHTHI = 108,
132 TAI_XUAN_JING_SYMBOLS = 109,
133 CUNEIFORM = 110,
134 COUNTING_ROD_NUMERALS = 111,
135 SUNDANESE = 112,
136 LEPCHA = 113,
137 OL_CHIKI = 114,
138 SAURASHTRA = 115,
139 KAYAH_LI = 116,
140 REJANG = 117,
141 CHAM = 118,
142 ANCIENT_SYMBOLS = 119,
143 PHAISTOS_DISC = 120,
144 CARIAN = 121,
145 DOMINO_TILES = 122,
146 RESERVED1 = 123,
147 RESERVED2 = 124,
148 RESERVED3 = 125,
149 RESERVED4 = 126,
150 RESERVED5 = 127,
151 MAX_UC_ENUM = 128
155 namespace CodePageCoverage
157 enum CodePageCoverageEnum
159 CP1252 = 0,
160 CP1250 = 1,
161 CP1251 = 2,
162 CP1253 = 3,
163 CP1254 = 4,
164 CP1255 = 5,
165 CP1256 = 6,
166 CP1257 = 7,
167 CP1258 = 8,
168 CP874 = 16,
169 CP932 = 17,
170 CP936 = 18,
171 CP949 = 19,
172 CP950 = 20,
173 CP1361 = 21,
174 CP869 = 48,
175 CP866 = 49,
176 CP865 = 50,
177 CP864 = 51,
178 CP863 = 52,
179 CP862 = 53,
180 CP861 = 54,
181 CP860 = 55,
182 CP857 = 56,
183 CP855 = 57,
184 CP852 = 58,
185 CP775 = 59,
186 CP737 = 60,
187 CP780 = 61,
188 CP850 = 62,
189 CP437 = 63,
190 MAX_CP_ENUM = 64
194 struct FontCapabilities
196 std::optional<std::bitset<UnicodeCoverage::MAX_UC_ENUM>> oUnicodeRange;
197 std::optional<std::bitset<CodePageCoverage::MAX_CP_ENUM>> oCodePageRange;
201 #endif
203 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */