gfxFontConstants.h (4345B)
1 /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 2 -*- 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 #define NS_FONT_WEIGHT_THIN 100 23 24 #define NS_FONT_STRETCH_ULTRA_CONDENSED 50 25 #define NS_FONT_STRETCH_EXTRA_CONDENSED 62 26 #define NS_FONT_STRETCH_CONDENSED 75 27 #define NS_FONT_STRETCH_SEMI_CONDENSED 87 28 #define NS_FONT_STRETCH_NORMAL 100 29 #define NS_FONT_STRETCH_SEMI_EXPANDED 112 30 #define NS_FONT_STRETCH_EXPANDED 125 31 #define NS_FONT_STRETCH_EXTRA_EXPANDED 150 32 #define NS_FONT_STRETCH_ULTRA_EXPANDED 200 33 34 #define NS_FONT_SMOOTHING_AUTO 0 35 #define NS_FONT_SMOOTHING_GRAYSCALE 1 36 /* For -webkit-font-smoothing; behaves the same as AUTO, but not aliased for 37 parsing/serialization because that would confuse tests. */ 38 #define NS_FONT_SMOOTHING_SUBPIXEL_ANTIALIASED 2 39 40 #define NS_FONT_KERNING_AUTO 0 41 #define NS_FONT_KERNING_NONE 1 42 #define NS_FONT_KERNING_NORMAL 2 43 44 #define NS_FONT_OPTICAL_SIZING_AUTO 0 45 #define NS_FONT_OPTICAL_SIZING_NONE 1 46 47 #define NS_FONT_VARIANT_ALTERNATES_NORMAL 0 48 // alternates - simple enumerated values 49 #define NS_FONT_VARIANT_ALTERNATES_HISTORICAL (1 << 0) 50 51 // alternates - values that use functional syntax 52 #define NS_FONT_VARIANT_ALTERNATES_STYLISTIC (1 << 1) 53 #define NS_FONT_VARIANT_ALTERNATES_STYLESET (1 << 2) 54 #define NS_FONT_VARIANT_ALTERNATES_CHARACTER_VARIANT (1 << 3) 55 #define NS_FONT_VARIANT_ALTERNATES_SWASH (1 << 4) 56 #define NS_FONT_VARIANT_ALTERNATES_ORNAMENTS (1 << 5) 57 #define NS_FONT_VARIANT_ALTERNATES_ANNOTATION (1 << 6) 58 #define NS_FONT_VARIANT_ALTERNATES_COUNT 7 59 60 #define NS_FONT_VARIANT_ALTERNATES_ENUMERATED_MASK \ 61 NS_FONT_VARIANT_ALTERNATES_HISTORICAL 62 63 #define NS_FONT_VARIANT_ALTERNATES_FUNCTIONAL_MASK \ 64 (NS_FONT_VARIANT_ALTERNATES_STYLISTIC | \ 65 NS_FONT_VARIANT_ALTERNATES_STYLESET | \ 66 NS_FONT_VARIANT_ALTERNATES_CHARACTER_VARIANT | \ 67 NS_FONT_VARIANT_ALTERNATES_SWASH | NS_FONT_VARIANT_ALTERNATES_ORNAMENTS | \ 68 NS_FONT_VARIANT_ALTERNATES_ANNOTATION) 69 70 #define NS_FONT_VARIANT_CAPS_NORMAL 0 71 #define NS_FONT_VARIANT_CAPS_SMALLCAPS 1 72 #define NS_FONT_VARIANT_CAPS_ALLSMALL 2 73 #define NS_FONT_VARIANT_CAPS_PETITECAPS 3 74 #define NS_FONT_VARIANT_CAPS_ALLPETITE 4 75 #define NS_FONT_VARIANT_CAPS_TITLING 5 76 #define NS_FONT_VARIANT_CAPS_UNICASE 6 77 78 #define NS_FONT_VARIANT_POSITION_NORMAL 0 79 #define NS_FONT_VARIANT_POSITION_SUPER 1 80 #define NS_FONT_VARIANT_POSITION_SUB 2 81 82 #define NS_FONT_VARIANT_WIDTH_NORMAL 0 83 #define NS_FONT_VARIANT_WIDTH_FULL 1 84 #define NS_FONT_VARIANT_WIDTH_HALF 2 85 #define NS_FONT_VARIANT_WIDTH_THIRD 3 86 #define NS_FONT_VARIANT_WIDTH_QUARTER 4 87 88 enum class StyleFontVariantEmoji : uint8_t { Normal, Text, Emoji, Unicode }; 89 90 // based on fixed offset values used within WebKit 91 #define NS_FONT_SUBSCRIPT_OFFSET_RATIO (0.20) 92 #define NS_FONT_SUPERSCRIPT_OFFSET_RATIO (0.34) 93 94 // this roughly corresponds to font-size: smaller behavior 95 // at smaller sizes <20px the ratio is closer to 0.8 while at 96 // larger sizes >45px the ratio is closer to 0.667 and in between 97 // a blend of values is used 98 #define NS_FONT_SUB_SUPER_SIZE_RATIO_SMALL (0.82) 99 #define NS_FONT_SUB_SUPER_SIZE_RATIO_LARGE (0.667) 100 #define NS_FONT_SUB_SUPER_SMALL_SIZE (20.0) 101 #define NS_FONT_SUB_SUPER_LARGE_SIZE (45.0) 102 103 // pref lang id's for font prefs 104 enum eFontPrefLang : uint8_t { 105 #define FONT_PREF_LANG(enum_id_, str_, atom_id_) eFontPrefLang_##enum_id_ 106 #include "gfxFontPrefLangList.h" 107 #undef FONT_PREF_LANG 108 109 , 110 eFontPrefLang_CJKSet // special code for CJK set 111 , 112 eFontPrefLang_Emoji // special code for emoji presentation 113 , 114 eFontPrefLang_First = eFontPrefLang_Western, 115 eFontPrefLang_Last = eFontPrefLang_Others, 116 eFontPrefLang_Count = (eFontPrefLang_Last - eFontPrefLang_First + 1) 117 }; 118 119 #endif