Thu, 22 Jan 2015 13:21:57 +0100
Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6
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/. */
6 /* font constants shared by both thebes and layout */
8 #ifndef GFX_FONT_CONSTANTS_H
9 #define GFX_FONT_CONSTANTS_H
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 */
16 #define NS_FONT_STYLE_NORMAL 0
17 #define NS_FONT_STYLE_ITALIC 1
18 #define NS_FONT_STYLE_OBLIQUE 2
20 #define NS_FONT_WEIGHT_NORMAL 400
21 #define NS_FONT_WEIGHT_BOLD 700
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
33 #define NS_FONT_SMOOTHING_AUTO 0
34 #define NS_FONT_SMOOTHING_GRAYSCALE 1
36 #define NS_FONT_KERNING_AUTO 0
37 #define NS_FONT_KERNING_NONE 1
38 #define NS_FONT_KERNING_NORMAL 2
40 #define NS_FONT_SYNTHESIS_WEIGHT 0x1
41 #define NS_FONT_SYNTHESIS_STYLE 0x2
43 enum {
44 eFeatureAlternates_historical,
45 eFeatureAlternates_stylistic,
46 eFeatureAlternates_styleset,
47 eFeatureAlternates_character_variant,
48 eFeatureAlternates_swash,
49 eFeatureAlternates_ornaments,
50 eFeatureAlternates_annotation,
52 eFeatureAlternates_numFeatures
53 };
55 // alternates - simple enumerated values
56 #define NS_FONT_VARIANT_ALTERNATES_HISTORICAL (1 << eFeatureAlternates_historical)
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)
66 #define NS_FONT_VARIANT_ALTERNATES_ENUMERATED_MASK \
67 NS_FONT_VARIANT_ALTERNATES_HISTORICAL
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 )
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
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,
96 eFeatureEastAsian_numFeatures
97 };
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)
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 )
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 )
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,
132 eFeatureLigatures_numFeatures
133 };
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)
145 #define NS_FONT_VARIANT_LIGATURES_COMMON_MASK ( \
146 NS_FONT_VARIANT_LIGATURES_COMMON | \
147 NS_FONT_VARIANT_LIGATURES_NO_COMMON )
149 #define NS_FONT_VARIANT_LIGATURES_DISCRETIONARY_MASK ( \
150 NS_FONT_VARIANT_LIGATURES_DISCRETIONARY | \
151 NS_FONT_VARIANT_LIGATURES_NO_DISCRETIONARY )
153 #define NS_FONT_VARIANT_LIGATURES_HISTORICAL_MASK ( \
154 NS_FONT_VARIANT_LIGATURES_HISTORICAL | \
155 NS_FONT_VARIANT_LIGATURES_NO_HISTORICAL )
157 #define NS_FONT_VARIANT_LIGATURES_CONTEXTUAL_MASK \
158 NS_FONT_VARIANT_LIGATURES_CONTEXTUAL | \
159 NS_FONT_VARIANT_LIGATURES_NO_CONTEXTUAL
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,
171 eFeatureNumeric_numFeatures
172 };
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)
183 #define NS_FONT_VARIANT_NUMERIC_FIGURE_MASK \
184 NS_FONT_VARIANT_NUMERIC_LINING | \
185 NS_FONT_VARIANT_NUMERIC_OLDSTYLE
187 #define NS_FONT_VARIANT_NUMERIC_SPACING_MASK \
188 NS_FONT_VARIANT_NUMERIC_PROPORTIONAL | \
189 NS_FONT_VARIANT_NUMERIC_TABULAR
191 #define NS_FONT_VARIANT_NUMERIC_FRACTION_MASK \
192 NS_FONT_VARIANT_NUMERIC_DIAGONAL_FRACTIONS | \
193 NS_FONT_VARIANT_NUMERIC_STACKED_FRACTIONS
195 #define NS_FONT_VARIANT_POSITION_NORMAL 0
196 #define NS_FONT_VARIANT_POSITION_SUPER 1
197 #define NS_FONT_VARIANT_POSITION_SUB 2
199 #endif