tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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