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