|
1 /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- |
|
2 * This Source Code Form is subject to the terms of the Mozilla Public |
|
3 * License, v. 2.0. If a copy of the MPL was not distributed with this |
|
4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
|
5 |
|
6 /* font constants shared by both thebes and layout */ |
|
7 |
|
8 #ifndef GFX_FONT_CONSTANTS_H |
|
9 #define GFX_FONT_CONSTANTS_H |
|
10 |
|
11 /* |
|
12 * This file is separate from gfxFont.h so that layout can include it |
|
13 * without bringing in gfxFont.h and everything it includes. |
|
14 */ |
|
15 |
|
16 #define NS_FONT_STYLE_NORMAL 0 |
|
17 #define NS_FONT_STYLE_ITALIC 1 |
|
18 #define NS_FONT_STYLE_OBLIQUE 2 |
|
19 |
|
20 #define NS_FONT_WEIGHT_NORMAL 400 |
|
21 #define NS_FONT_WEIGHT_BOLD 700 |
|
22 |
|
23 #define NS_FONT_STRETCH_ULTRA_CONDENSED (-4) |
|
24 #define NS_FONT_STRETCH_EXTRA_CONDENSED (-3) |
|
25 #define NS_FONT_STRETCH_CONDENSED (-2) |
|
26 #define NS_FONT_STRETCH_SEMI_CONDENSED (-1) |
|
27 #define NS_FONT_STRETCH_NORMAL 0 |
|
28 #define NS_FONT_STRETCH_SEMI_EXPANDED 1 |
|
29 #define NS_FONT_STRETCH_EXPANDED 2 |
|
30 #define NS_FONT_STRETCH_EXTRA_EXPANDED 3 |
|
31 #define NS_FONT_STRETCH_ULTRA_EXPANDED 4 |
|
32 |
|
33 #define NS_FONT_SMOOTHING_AUTO 0 |
|
34 #define NS_FONT_SMOOTHING_GRAYSCALE 1 |
|
35 |
|
36 #define NS_FONT_KERNING_AUTO 0 |
|
37 #define NS_FONT_KERNING_NONE 1 |
|
38 #define NS_FONT_KERNING_NORMAL 2 |
|
39 |
|
40 #define NS_FONT_SYNTHESIS_WEIGHT 0x1 |
|
41 #define NS_FONT_SYNTHESIS_STYLE 0x2 |
|
42 |
|
43 enum { |
|
44 eFeatureAlternates_historical, |
|
45 eFeatureAlternates_stylistic, |
|
46 eFeatureAlternates_styleset, |
|
47 eFeatureAlternates_character_variant, |
|
48 eFeatureAlternates_swash, |
|
49 eFeatureAlternates_ornaments, |
|
50 eFeatureAlternates_annotation, |
|
51 |
|
52 eFeatureAlternates_numFeatures |
|
53 }; |
|
54 |
|
55 // alternates - simple enumerated values |
|
56 #define NS_FONT_VARIANT_ALTERNATES_HISTORICAL (1 << eFeatureAlternates_historical) |
|
57 |
|
58 // alternates - values that use functional syntax |
|
59 #define NS_FONT_VARIANT_ALTERNATES_STYLISTIC (1 << eFeatureAlternates_stylistic) |
|
60 #define NS_FONT_VARIANT_ALTERNATES_STYLESET (1 << eFeatureAlternates_styleset) |
|
61 #define NS_FONT_VARIANT_ALTERNATES_CHARACTER_VARIANT (1 << eFeatureAlternates_character_variant) |
|
62 #define NS_FONT_VARIANT_ALTERNATES_SWASH (1 << eFeatureAlternates_swash) |
|
63 #define NS_FONT_VARIANT_ALTERNATES_ORNAMENTS (1 << eFeatureAlternates_ornaments) |
|
64 #define NS_FONT_VARIANT_ALTERNATES_ANNOTATION (1 << eFeatureAlternates_annotation) |
|
65 |
|
66 #define NS_FONT_VARIANT_ALTERNATES_ENUMERATED_MASK \ |
|
67 NS_FONT_VARIANT_ALTERNATES_HISTORICAL |
|
68 |
|
69 #define NS_FONT_VARIANT_ALTERNATES_FUNCTIONAL_MASK ( \ |
|
70 NS_FONT_VARIANT_ALTERNATES_STYLISTIC | \ |
|
71 NS_FONT_VARIANT_ALTERNATES_STYLESET | \ |
|
72 NS_FONT_VARIANT_ALTERNATES_CHARACTER_VARIANT | \ |
|
73 NS_FONT_VARIANT_ALTERNATES_SWASH | \ |
|
74 NS_FONT_VARIANT_ALTERNATES_ORNAMENTS | \ |
|
75 NS_FONT_VARIANT_ALTERNATES_ANNOTATION ) |
|
76 |
|
77 #define NS_FONT_VARIANT_CAPS_NORMAL 0 |
|
78 #define NS_FONT_VARIANT_CAPS_SMALLCAPS 1 |
|
79 #define NS_FONT_VARIANT_CAPS_ALLSMALL 2 |
|
80 #define NS_FONT_VARIANT_CAPS_PETITECAPS 3 |
|
81 #define NS_FONT_VARIANT_CAPS_ALLPETITE 4 |
|
82 #define NS_FONT_VARIANT_CAPS_TITLING 5 |
|
83 #define NS_FONT_VARIANT_CAPS_UNICASE 6 |
|
84 |
|
85 enum { |
|
86 eFeatureEastAsian_jis78, |
|
87 eFeatureEastAsian_jis83, |
|
88 eFeatureEastAsian_jis90, |
|
89 eFeatureEastAsian_jis04, |
|
90 eFeatureEastAsian_simplified, |
|
91 eFeatureEastAsian_traditional, |
|
92 eFeatureEastAsian_full_width, |
|
93 eFeatureEastAsian_prop_width, |
|
94 eFeatureEastAsian_ruby, |
|
95 |
|
96 eFeatureEastAsian_numFeatures |
|
97 }; |
|
98 |
|
99 #define NS_FONT_VARIANT_EAST_ASIAN_JIS78 (1 << eFeatureEastAsian_jis78) |
|
100 #define NS_FONT_VARIANT_EAST_ASIAN_JIS83 (1 << eFeatureEastAsian_jis83) |
|
101 #define NS_FONT_VARIANT_EAST_ASIAN_JIS90 (1 << eFeatureEastAsian_jis90) |
|
102 #define NS_FONT_VARIANT_EAST_ASIAN_JIS04 (1 << eFeatureEastAsian_jis04) |
|
103 #define NS_FONT_VARIANT_EAST_ASIAN_SIMPLIFIED (1 << eFeatureEastAsian_simplified) |
|
104 #define NS_FONT_VARIANT_EAST_ASIAN_TRADITIONAL (1 << eFeatureEastAsian_traditional) |
|
105 #define NS_FONT_VARIANT_EAST_ASIAN_FULL_WIDTH (1 << eFeatureEastAsian_full_width) |
|
106 #define NS_FONT_VARIANT_EAST_ASIAN_PROP_WIDTH (1 << eFeatureEastAsian_prop_width) |
|
107 #define NS_FONT_VARIANT_EAST_ASIAN_RUBY (1 << eFeatureEastAsian_ruby) |
|
108 |
|
109 #define NS_FONT_VARIANT_EAST_ASIAN_VARIANT_MASK ( \ |
|
110 NS_FONT_VARIANT_EAST_ASIAN_JIS78 | \ |
|
111 NS_FONT_VARIANT_EAST_ASIAN_JIS83 | \ |
|
112 NS_FONT_VARIANT_EAST_ASIAN_JIS90 | \ |
|
113 NS_FONT_VARIANT_EAST_ASIAN_JIS04 | \ |
|
114 NS_FONT_VARIANT_EAST_ASIAN_SIMPLIFIED | \ |
|
115 NS_FONT_VARIANT_EAST_ASIAN_TRADITIONAL ) |
|
116 |
|
117 #define NS_FONT_VARIANT_EAST_ASIAN_WIDTH_MASK ( \ |
|
118 NS_FONT_VARIANT_EAST_ASIAN_FULL_WIDTH | \ |
|
119 NS_FONT_VARIANT_EAST_ASIAN_PROP_WIDTH ) |
|
120 |
|
121 enum { |
|
122 eFeatureLigatures_none, |
|
123 eFeatureLigatures_common, |
|
124 eFeatureLigatures_no_common, |
|
125 eFeatureLigatures_discretionary, |
|
126 eFeatureLigatures_no_discretionary, |
|
127 eFeatureLigatures_historical, |
|
128 eFeatureLigatures_no_historical, |
|
129 eFeatureLigatures_contextual, |
|
130 eFeatureLigatures_no_contextual, |
|
131 |
|
132 eFeatureLigatures_numFeatures |
|
133 }; |
|
134 |
|
135 #define NS_FONT_VARIANT_LIGATURES_NONE (1 << eFeatureLigatures_none) |
|
136 #define NS_FONT_VARIANT_LIGATURES_COMMON (1 << eFeatureLigatures_common) |
|
137 #define NS_FONT_VARIANT_LIGATURES_NO_COMMON (1 << eFeatureLigatures_no_common) |
|
138 #define NS_FONT_VARIANT_LIGATURES_DISCRETIONARY (1 << eFeatureLigatures_discretionary) |
|
139 #define NS_FONT_VARIANT_LIGATURES_NO_DISCRETIONARY (1 << eFeatureLigatures_no_discretionary) |
|
140 #define NS_FONT_VARIANT_LIGATURES_HISTORICAL (1 << eFeatureLigatures_historical) |
|
141 #define NS_FONT_VARIANT_LIGATURES_NO_HISTORICAL (1 << eFeatureLigatures_no_historical) |
|
142 #define NS_FONT_VARIANT_LIGATURES_CONTEXTUAL (1 << eFeatureLigatures_contextual) |
|
143 #define NS_FONT_VARIANT_LIGATURES_NO_CONTEXTUAL (1 << eFeatureLigatures_no_contextual) |
|
144 |
|
145 #define NS_FONT_VARIANT_LIGATURES_COMMON_MASK ( \ |
|
146 NS_FONT_VARIANT_LIGATURES_COMMON | \ |
|
147 NS_FONT_VARIANT_LIGATURES_NO_COMMON ) |
|
148 |
|
149 #define NS_FONT_VARIANT_LIGATURES_DISCRETIONARY_MASK ( \ |
|
150 NS_FONT_VARIANT_LIGATURES_DISCRETIONARY | \ |
|
151 NS_FONT_VARIANT_LIGATURES_NO_DISCRETIONARY ) |
|
152 |
|
153 #define NS_FONT_VARIANT_LIGATURES_HISTORICAL_MASK ( \ |
|
154 NS_FONT_VARIANT_LIGATURES_HISTORICAL | \ |
|
155 NS_FONT_VARIANT_LIGATURES_NO_HISTORICAL ) |
|
156 |
|
157 #define NS_FONT_VARIANT_LIGATURES_CONTEXTUAL_MASK \ |
|
158 NS_FONT_VARIANT_LIGATURES_CONTEXTUAL | \ |
|
159 NS_FONT_VARIANT_LIGATURES_NO_CONTEXTUAL |
|
160 |
|
161 enum { |
|
162 eFeatureNumeric_lining, |
|
163 eFeatureNumeric_oldstyle, |
|
164 eFeatureNumeric_proportional, |
|
165 eFeatureNumeric_tabular, |
|
166 eFeatureNumeric_diagonal_fractions, |
|
167 eFeatureNumeric_stacked_fractions, |
|
168 eFeatureNumeric_slashedzero, |
|
169 eFeatureNumeric_ordinal, |
|
170 |
|
171 eFeatureNumeric_numFeatures |
|
172 }; |
|
173 |
|
174 #define NS_FONT_VARIANT_NUMERIC_LINING (1 << eFeatureNumeric_lining) |
|
175 #define NS_FONT_VARIANT_NUMERIC_OLDSTYLE (1 << eFeatureNumeric_oldstyle) |
|
176 #define NS_FONT_VARIANT_NUMERIC_PROPORTIONAL (1 << eFeatureNumeric_proportional) |
|
177 #define NS_FONT_VARIANT_NUMERIC_TABULAR (1 << eFeatureNumeric_tabular) |
|
178 #define NS_FONT_VARIANT_NUMERIC_DIAGONAL_FRACTIONS (1 << eFeatureNumeric_diagonal_fractions) |
|
179 #define NS_FONT_VARIANT_NUMERIC_STACKED_FRACTIONS (1 << eFeatureNumeric_stacked_fractions) |
|
180 #define NS_FONT_VARIANT_NUMERIC_SLASHZERO (1 << eFeatureNumeric_slashedzero) |
|
181 #define NS_FONT_VARIANT_NUMERIC_ORDINAL (1 << eFeatureNumeric_ordinal) |
|
182 |
|
183 #define NS_FONT_VARIANT_NUMERIC_FIGURE_MASK \ |
|
184 NS_FONT_VARIANT_NUMERIC_LINING | \ |
|
185 NS_FONT_VARIANT_NUMERIC_OLDSTYLE |
|
186 |
|
187 #define NS_FONT_VARIANT_NUMERIC_SPACING_MASK \ |
|
188 NS_FONT_VARIANT_NUMERIC_PROPORTIONAL | \ |
|
189 NS_FONT_VARIANT_NUMERIC_TABULAR |
|
190 |
|
191 #define NS_FONT_VARIANT_NUMERIC_FRACTION_MASK \ |
|
192 NS_FONT_VARIANT_NUMERIC_DIAGONAL_FRACTIONS | \ |
|
193 NS_FONT_VARIANT_NUMERIC_STACKED_FRACTIONS |
|
194 |
|
195 #define NS_FONT_VARIANT_POSITION_NORMAL 0 |
|
196 #define NS_FONT_VARIANT_POSITION_SUPER 1 |
|
197 #define NS_FONT_VARIANT_POSITION_SUB 2 |
|
198 |
|
199 #endif |