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 0 : 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: */
|