Branch data Line data Source code
1 : : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 : : /*
3 : : * Version: MPL 1.1 / GPLv3+ / LGPLv3+
4 : : *
5 : : * The contents of this file are subject to the Mozilla Public License Version
6 : : * 1.1 (the "License"); you may not use this file except in compliance with
7 : : * the License or as specified alternatively below. You may obtain a copy of
8 : : * the License at http://www.mozilla.org/MPL/
9 : : *
10 : : * Software distributed under the License is distributed on an "AS IS" basis,
11 : : * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
12 : : * for the specific language governing rights and limitations under the
13 : : * License.
14 : : *
15 : : * Major Contributor(s):
16 : : * Copyright (C) 2011 Red Hat, Inc., Caolán McNamara <caolanm@redhat.com>
17 : : * (initial developer)
18 : : *
19 : : * All Rights Reserved.
20 : : *
21 : : * For minor contributions see the git repository.
22 : : *
23 : : * Alternatively, the contents of this file may be used under the terms of
24 : : * either the GNU General Public License Version 3 or later (the "GPLv3+"), or
25 : : * the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"),
26 : : * in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable
27 : : * instead of those above.
28 : : */
29 : :
30 : : #ifndef _VCLFONTCAPABILITIES_HXX
31 : : #define _VCLFONTCAPABILITIES_HXX
32 : :
33 : : #include <boost/dynamic_bitset.hpp>
34 : : #include <vector>
35 : :
36 : : //See OS/2 table, i.e. http://www.microsoft.com/typography/otspec/os2.htm#ur
37 : : namespace vcl
38 : : {
39 : : namespace UnicodeCoverage
40 : : {
41 : : enum UnicodeCoverageEnum
42 : : {
43 : : BASIC_LATIN = 0,
44 : : LATIN_1_SUPPLEMENT = 1,
45 : : LATIN_EXTENDED_A = 2,
46 : : LATIN_EXTENDED_B = 3,
47 : : IPA_EXTENSIONS = 4,
48 : : SPACING_MODIFIER_LETTERS = 5,
49 : : COMBINING_DIACRITICAL_MARKS = 6,
50 : : GREEK_AND_COPTIC = 7,
51 : : COPTIC = 8,
52 : : CYRILLIC = 9,
53 : : ARMENIAN = 10,
54 : : HEBREW = 11,
55 : : VAI = 12,
56 : : ARABIC = 13,
57 : : NKO = 14,
58 : : DEVANAGARI = 15,
59 : : BENGALI = 16,
60 : : GURMUKHI = 17,
61 : : GUJARATI = 18,
62 : : ORIYA = 19,
63 : : TAMIL = 20,
64 : : TELUGU = 21,
65 : : KANNADA = 22,
66 : : MALAYALAM = 23,
67 : : THAI = 24,
68 : : LAO = 25,
69 : : GEORGIAN = 26,
70 : : BALINESE = 27,
71 : : HANGUL_JAMO = 28,
72 : : LATIN_EXTENDED_ADDITIONAL = 29,
73 : : GREEK_EXTENDED = 30,
74 : : GENERAL_PUNCTUATION = 31,
75 : : SUPERSCRIPTS_AND_SUBSCRIPTS = 32,
76 : : CURRENCY_SYMBOLS = 33,
77 : : COMBINING_DIACRITICAL_MARKS_FOR_SYMBOLS = 34,
78 : : LETTERLIKE_SYMBOLS = 35,
79 : : NUMBER_FORMS = 36,
80 : : ARROWS = 37,
81 : : MATHEMATICAL_OPERATORS = 38,
82 : : MISCELLANEOUS_TECHNICAL = 39,
83 : : CONTROL_PICTURES = 40,
84 : : OPTICAL_CHARACTER_RECOGNITION = 41,
85 : : ENCLOSED_ALPHANUMERICS = 42,
86 : : BOX_DRAWING = 43,
87 : : BLOCK_ELEMENTS = 44,
88 : : GEOMETRIC_SHAPES = 45,
89 : : MISCELLANEOUS_SYMBOLS = 46,
90 : : DINGBATS = 47,
91 : : CJK_SYMBOLS_AND_PUNCTUATION = 48,
92 : : HIRAGANA = 49,
93 : : KATAKANA = 50,
94 : : BOPOMOFO = 51,
95 : : HANGUL_COMPATIBILITY_JAMO = 52,
96 : : PHAGS_PA = 53,
97 : : ENCLOSED_CJK_LETTERS_AND_MONTHS = 54,
98 : : CJK_COMPATIBILITY = 55,
99 : : HANGUL_SYLLABLES = 56,
100 : : NONPLANE_0 = 57,
101 : : PHOENICIAN = 58,
102 : : CJK_UNIFIED_IDEOGRAPHS = 59,
103 : : PRIVATE_USE_AREA_PLANE_0 = 60,
104 : : CJK_STROKES = 61,
105 : : ALPHABETIC_PRESENTATION_FORMS = 62,
106 : : ARABIC_PRESENTATION_FORMS_A = 63,
107 : : COMBINING_HALF_MARKS = 64,
108 : : VERTICAL_FORMS = 65,
109 : : SMALL_FORM_VARIANTS = 66,
110 : : ARABIC_PRESENTATION_FORMS_B = 67,
111 : : HALFWIDTH_AND_FULLWIDTH_FORMS = 68,
112 : : SPECIALS = 69,
113 : : TIBETAN = 70,
114 : : SYRIAC = 71,
115 : : THAANA = 72,
116 : : SINHALA = 73,
117 : : MYANMAR = 74,
118 : : ETHIOPIC = 75,
119 : : CHEROKEE = 76,
120 : : UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS = 77,
121 : : OGHAM = 78,
122 : : RUNIC = 79,
123 : : KHMER = 80,
124 : : MONGOLIAN = 81,
125 : : BRAILLE_PATTERNS = 82,
126 : : YI_SYLLABLES = 83,
127 : : TAGALOG = 84,
128 : : OLD_ITALIC = 85,
129 : : GOTHIC = 86,
130 : : DESERET = 87,
131 : : BYZANTINE_MUSICAL_SYMBOLS = 88,
132 : : MATHEMATICAL_ALPHANUMERIC_SYMBOLS = 89,
133 : : PRIVATE_USE_PLANE_15 = 90,
134 : : VARIATION_SELECTORS = 91,
135 : : TAGS = 92,
136 : : LIMBU = 93,
137 : : TAI_LE = 94,
138 : : NEW_TAI_LUE = 95,
139 : : BUGINESE = 96,
140 : : GLAGOLITIC = 97,
141 : : TIFINAGH = 98,
142 : : YIJING_HEXAGRAM_SYMBOLS = 99,
143 : : SYLOTI_NAGRI = 100,
144 : : LINEAR_B_SYLLABARY = 101,
145 : : ANCIENT_GREEK_NUMBERS = 102,
146 : : UGARITIC = 103,
147 : : OLD_PERSIAN = 104,
148 : : SHAVIAN = 105,
149 : : OSMANYA = 106,
150 : : CYPRIOT_SYLLABARY = 107,
151 : : KHAROSHTHI = 108,
152 : : TAI_XUAN_JING_SYMBOLS = 109,
153 : : CUNEIFORM = 110,
154 : : COUNTING_ROD_NUMERALS = 111,
155 : : SUNDANESE = 112,
156 : : LEPCHA = 113,
157 : : OL_CHIKI = 114,
158 : : SAURASHTRA = 115,
159 : : KAYAH_LI = 116,
160 : : REJANG = 117,
161 : : CHAM = 118,
162 : : ANCIENT_SYMBOLS = 119,
163 : : PHAISTOS_DISC = 120,
164 : : CARIAN = 121,
165 : : DOMINO_TILES = 122,
166 : : RESERVED1 = 123,
167 : : RESERVED2 = 124,
168 : : RESERVED3 = 125,
169 : : RESERVED4 = 126,
170 : : RESERVED5 = 127,
171 : : MAX_UC_ENUM = 128
172 : : };
173 : : };
174 : :
175 : : namespace CodePageCoverage
176 : : {
177 : : enum CodePageCoverageEnum
178 : : {
179 : : CP1252 = 0,
180 : : CP1250 = 1,
181 : : CP1251 = 2,
182 : : CP1253 = 3,
183 : : CP1254 = 4,
184 : : CP1255 = 5,
185 : : CP1256 = 6,
186 : : CP1257 = 7,
187 : : CP1258 = 8,
188 : : CP874 = 16,
189 : : CP932 = 17,
190 : : CP936 = 18,
191 : : CP949 = 19,
192 : : CP950 = 20,
193 : : CP1361 = 21,
194 : : CP869 = 48,
195 : : CP866 = 49,
196 : : CP865 = 50,
197 : : CP864 = 51,
198 : : CP863 = 52,
199 : : CP862 = 53,
200 : : CP861 = 54,
201 : : CP860 = 55,
202 : : CP857 = 56,
203 : : CP855 = 57,
204 : : CP852 = 58,
205 : : CP775 = 59,
206 : : CP737 = 60,
207 : : CP780 = 61,
208 : : CP850 = 62,
209 : : CP437 = 63,
210 : : MAX_CP_ENUM = 64
211 : : };
212 : : };
213 : :
214 [ + - ][ + - ]: 4 : struct FontCapabilities
[ + - ]
215 : : {
216 : : boost::dynamic_bitset<sal_uInt32> maUnicodeRange;
217 : : boost::dynamic_bitset<sal_uInt32> maCodePageRange;
218 : : std::vector< sal_uInt32 > maGSUBScriptTags;
219 : : };
220 : : }
221 : :
222 : : #endif
223 : :
224 : : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|