1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/gfx/thebes/gfxFontConstants.h Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,199 @@ 1.4 +/* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- 1.5 + * This Source Code Form is subject to the terms of the Mozilla Public 1.6 + * License, v. 2.0. If a copy of the MPL was not distributed with this 1.7 + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 1.8 + 1.9 +/* font constants shared by both thebes and layout */ 1.10 + 1.11 +#ifndef GFX_FONT_CONSTANTS_H 1.12 +#define GFX_FONT_CONSTANTS_H 1.13 + 1.14 +/* 1.15 + * This file is separate from gfxFont.h so that layout can include it 1.16 + * without bringing in gfxFont.h and everything it includes. 1.17 + */ 1.18 + 1.19 +#define NS_FONT_STYLE_NORMAL 0 1.20 +#define NS_FONT_STYLE_ITALIC 1 1.21 +#define NS_FONT_STYLE_OBLIQUE 2 1.22 + 1.23 +#define NS_FONT_WEIGHT_NORMAL 400 1.24 +#define NS_FONT_WEIGHT_BOLD 700 1.25 + 1.26 +#define NS_FONT_STRETCH_ULTRA_CONDENSED (-4) 1.27 +#define NS_FONT_STRETCH_EXTRA_CONDENSED (-3) 1.28 +#define NS_FONT_STRETCH_CONDENSED (-2) 1.29 +#define NS_FONT_STRETCH_SEMI_CONDENSED (-1) 1.30 +#define NS_FONT_STRETCH_NORMAL 0 1.31 +#define NS_FONT_STRETCH_SEMI_EXPANDED 1 1.32 +#define NS_FONT_STRETCH_EXPANDED 2 1.33 +#define NS_FONT_STRETCH_EXTRA_EXPANDED 3 1.34 +#define NS_FONT_STRETCH_ULTRA_EXPANDED 4 1.35 + 1.36 +#define NS_FONT_SMOOTHING_AUTO 0 1.37 +#define NS_FONT_SMOOTHING_GRAYSCALE 1 1.38 + 1.39 +#define NS_FONT_KERNING_AUTO 0 1.40 +#define NS_FONT_KERNING_NONE 1 1.41 +#define NS_FONT_KERNING_NORMAL 2 1.42 + 1.43 +#define NS_FONT_SYNTHESIS_WEIGHT 0x1 1.44 +#define NS_FONT_SYNTHESIS_STYLE 0x2 1.45 + 1.46 +enum { 1.47 + eFeatureAlternates_historical, 1.48 + eFeatureAlternates_stylistic, 1.49 + eFeatureAlternates_styleset, 1.50 + eFeatureAlternates_character_variant, 1.51 + eFeatureAlternates_swash, 1.52 + eFeatureAlternates_ornaments, 1.53 + eFeatureAlternates_annotation, 1.54 + 1.55 + eFeatureAlternates_numFeatures 1.56 +}; 1.57 + 1.58 +// alternates - simple enumerated values 1.59 +#define NS_FONT_VARIANT_ALTERNATES_HISTORICAL (1 << eFeatureAlternates_historical) 1.60 + 1.61 +// alternates - values that use functional syntax 1.62 +#define NS_FONT_VARIANT_ALTERNATES_STYLISTIC (1 << eFeatureAlternates_stylistic) 1.63 +#define NS_FONT_VARIANT_ALTERNATES_STYLESET (1 << eFeatureAlternates_styleset) 1.64 +#define NS_FONT_VARIANT_ALTERNATES_CHARACTER_VARIANT (1 << eFeatureAlternates_character_variant) 1.65 +#define NS_FONT_VARIANT_ALTERNATES_SWASH (1 << eFeatureAlternates_swash) 1.66 +#define NS_FONT_VARIANT_ALTERNATES_ORNAMENTS (1 << eFeatureAlternates_ornaments) 1.67 +#define NS_FONT_VARIANT_ALTERNATES_ANNOTATION (1 << eFeatureAlternates_annotation) 1.68 + 1.69 +#define NS_FONT_VARIANT_ALTERNATES_ENUMERATED_MASK \ 1.70 + NS_FONT_VARIANT_ALTERNATES_HISTORICAL 1.71 + 1.72 +#define NS_FONT_VARIANT_ALTERNATES_FUNCTIONAL_MASK ( \ 1.73 + NS_FONT_VARIANT_ALTERNATES_STYLISTIC | \ 1.74 + NS_FONT_VARIANT_ALTERNATES_STYLESET | \ 1.75 + NS_FONT_VARIANT_ALTERNATES_CHARACTER_VARIANT | \ 1.76 + NS_FONT_VARIANT_ALTERNATES_SWASH | \ 1.77 + NS_FONT_VARIANT_ALTERNATES_ORNAMENTS | \ 1.78 + NS_FONT_VARIANT_ALTERNATES_ANNOTATION ) 1.79 + 1.80 +#define NS_FONT_VARIANT_CAPS_NORMAL 0 1.81 +#define NS_FONT_VARIANT_CAPS_SMALLCAPS 1 1.82 +#define NS_FONT_VARIANT_CAPS_ALLSMALL 2 1.83 +#define NS_FONT_VARIANT_CAPS_PETITECAPS 3 1.84 +#define NS_FONT_VARIANT_CAPS_ALLPETITE 4 1.85 +#define NS_FONT_VARIANT_CAPS_TITLING 5 1.86 +#define NS_FONT_VARIANT_CAPS_UNICASE 6 1.87 + 1.88 +enum { 1.89 + eFeatureEastAsian_jis78, 1.90 + eFeatureEastAsian_jis83, 1.91 + eFeatureEastAsian_jis90, 1.92 + eFeatureEastAsian_jis04, 1.93 + eFeatureEastAsian_simplified, 1.94 + eFeatureEastAsian_traditional, 1.95 + eFeatureEastAsian_full_width, 1.96 + eFeatureEastAsian_prop_width, 1.97 + eFeatureEastAsian_ruby, 1.98 + 1.99 + eFeatureEastAsian_numFeatures 1.100 +}; 1.101 + 1.102 +#define NS_FONT_VARIANT_EAST_ASIAN_JIS78 (1 << eFeatureEastAsian_jis78) 1.103 +#define NS_FONT_VARIANT_EAST_ASIAN_JIS83 (1 << eFeatureEastAsian_jis83) 1.104 +#define NS_FONT_VARIANT_EAST_ASIAN_JIS90 (1 << eFeatureEastAsian_jis90) 1.105 +#define NS_FONT_VARIANT_EAST_ASIAN_JIS04 (1 << eFeatureEastAsian_jis04) 1.106 +#define NS_FONT_VARIANT_EAST_ASIAN_SIMPLIFIED (1 << eFeatureEastAsian_simplified) 1.107 +#define NS_FONT_VARIANT_EAST_ASIAN_TRADITIONAL (1 << eFeatureEastAsian_traditional) 1.108 +#define NS_FONT_VARIANT_EAST_ASIAN_FULL_WIDTH (1 << eFeatureEastAsian_full_width) 1.109 +#define NS_FONT_VARIANT_EAST_ASIAN_PROP_WIDTH (1 << eFeatureEastAsian_prop_width) 1.110 +#define NS_FONT_VARIANT_EAST_ASIAN_RUBY (1 << eFeatureEastAsian_ruby) 1.111 + 1.112 +#define NS_FONT_VARIANT_EAST_ASIAN_VARIANT_MASK ( \ 1.113 + NS_FONT_VARIANT_EAST_ASIAN_JIS78 | \ 1.114 + NS_FONT_VARIANT_EAST_ASIAN_JIS83 | \ 1.115 + NS_FONT_VARIANT_EAST_ASIAN_JIS90 | \ 1.116 + NS_FONT_VARIANT_EAST_ASIAN_JIS04 | \ 1.117 + NS_FONT_VARIANT_EAST_ASIAN_SIMPLIFIED | \ 1.118 + NS_FONT_VARIANT_EAST_ASIAN_TRADITIONAL ) 1.119 + 1.120 +#define NS_FONT_VARIANT_EAST_ASIAN_WIDTH_MASK ( \ 1.121 + NS_FONT_VARIANT_EAST_ASIAN_FULL_WIDTH | \ 1.122 + NS_FONT_VARIANT_EAST_ASIAN_PROP_WIDTH ) 1.123 + 1.124 +enum { 1.125 + eFeatureLigatures_none, 1.126 + eFeatureLigatures_common, 1.127 + eFeatureLigatures_no_common, 1.128 + eFeatureLigatures_discretionary, 1.129 + eFeatureLigatures_no_discretionary, 1.130 + eFeatureLigatures_historical, 1.131 + eFeatureLigatures_no_historical, 1.132 + eFeatureLigatures_contextual, 1.133 + eFeatureLigatures_no_contextual, 1.134 + 1.135 + eFeatureLigatures_numFeatures 1.136 +}; 1.137 + 1.138 +#define NS_FONT_VARIANT_LIGATURES_NONE (1 << eFeatureLigatures_none) 1.139 +#define NS_FONT_VARIANT_LIGATURES_COMMON (1 << eFeatureLigatures_common) 1.140 +#define NS_FONT_VARIANT_LIGATURES_NO_COMMON (1 << eFeatureLigatures_no_common) 1.141 +#define NS_FONT_VARIANT_LIGATURES_DISCRETIONARY (1 << eFeatureLigatures_discretionary) 1.142 +#define NS_FONT_VARIANT_LIGATURES_NO_DISCRETIONARY (1 << eFeatureLigatures_no_discretionary) 1.143 +#define NS_FONT_VARIANT_LIGATURES_HISTORICAL (1 << eFeatureLigatures_historical) 1.144 +#define NS_FONT_VARIANT_LIGATURES_NO_HISTORICAL (1 << eFeatureLigatures_no_historical) 1.145 +#define NS_FONT_VARIANT_LIGATURES_CONTEXTUAL (1 << eFeatureLigatures_contextual) 1.146 +#define NS_FONT_VARIANT_LIGATURES_NO_CONTEXTUAL (1 << eFeatureLigatures_no_contextual) 1.147 + 1.148 +#define NS_FONT_VARIANT_LIGATURES_COMMON_MASK ( \ 1.149 + NS_FONT_VARIANT_LIGATURES_COMMON | \ 1.150 + NS_FONT_VARIANT_LIGATURES_NO_COMMON ) 1.151 + 1.152 +#define NS_FONT_VARIANT_LIGATURES_DISCRETIONARY_MASK ( \ 1.153 + NS_FONT_VARIANT_LIGATURES_DISCRETIONARY | \ 1.154 + NS_FONT_VARIANT_LIGATURES_NO_DISCRETIONARY ) 1.155 + 1.156 +#define NS_FONT_VARIANT_LIGATURES_HISTORICAL_MASK ( \ 1.157 + NS_FONT_VARIANT_LIGATURES_HISTORICAL | \ 1.158 + NS_FONT_VARIANT_LIGATURES_NO_HISTORICAL ) 1.159 + 1.160 +#define NS_FONT_VARIANT_LIGATURES_CONTEXTUAL_MASK \ 1.161 + NS_FONT_VARIANT_LIGATURES_CONTEXTUAL | \ 1.162 + NS_FONT_VARIANT_LIGATURES_NO_CONTEXTUAL 1.163 + 1.164 +enum { 1.165 + eFeatureNumeric_lining, 1.166 + eFeatureNumeric_oldstyle, 1.167 + eFeatureNumeric_proportional, 1.168 + eFeatureNumeric_tabular, 1.169 + eFeatureNumeric_diagonal_fractions, 1.170 + eFeatureNumeric_stacked_fractions, 1.171 + eFeatureNumeric_slashedzero, 1.172 + eFeatureNumeric_ordinal, 1.173 + 1.174 + eFeatureNumeric_numFeatures 1.175 +}; 1.176 + 1.177 +#define NS_FONT_VARIANT_NUMERIC_LINING (1 << eFeatureNumeric_lining) 1.178 +#define NS_FONT_VARIANT_NUMERIC_OLDSTYLE (1 << eFeatureNumeric_oldstyle) 1.179 +#define NS_FONT_VARIANT_NUMERIC_PROPORTIONAL (1 << eFeatureNumeric_proportional) 1.180 +#define NS_FONT_VARIANT_NUMERIC_TABULAR (1 << eFeatureNumeric_tabular) 1.181 +#define NS_FONT_VARIANT_NUMERIC_DIAGONAL_FRACTIONS (1 << eFeatureNumeric_diagonal_fractions) 1.182 +#define NS_FONT_VARIANT_NUMERIC_STACKED_FRACTIONS (1 << eFeatureNumeric_stacked_fractions) 1.183 +#define NS_FONT_VARIANT_NUMERIC_SLASHZERO (1 << eFeatureNumeric_slashedzero) 1.184 +#define NS_FONT_VARIANT_NUMERIC_ORDINAL (1 << eFeatureNumeric_ordinal) 1.185 + 1.186 +#define NS_FONT_VARIANT_NUMERIC_FIGURE_MASK \ 1.187 + NS_FONT_VARIANT_NUMERIC_LINING | \ 1.188 + NS_FONT_VARIANT_NUMERIC_OLDSTYLE 1.189 + 1.190 +#define NS_FONT_VARIANT_NUMERIC_SPACING_MASK \ 1.191 + NS_FONT_VARIANT_NUMERIC_PROPORTIONAL | \ 1.192 + NS_FONT_VARIANT_NUMERIC_TABULAR 1.193 + 1.194 +#define NS_FONT_VARIANT_NUMERIC_FRACTION_MASK \ 1.195 + NS_FONT_VARIANT_NUMERIC_DIAGONAL_FRACTIONS | \ 1.196 + NS_FONT_VARIANT_NUMERIC_STACKED_FRACTIONS 1.197 + 1.198 +#define NS_FONT_VARIANT_POSITION_NORMAL 0 1.199 +#define NS_FONT_VARIANT_POSITION_SUPER 1 1.200 +#define NS_FONT_VARIANT_POSITION_SUB 2 1.201 + 1.202 +#endif