gfx/thebes/gfxFontConstants.h

Thu, 22 Jan 2015 13:21:57 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 22 Jan 2015 13:21:57 +0100
branch
TOR_BUG_9701
changeset 15
b8a032363ba2
permissions
-rw-r--r--

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

mercurial