mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-29 07:42:04 +00:00
213 lines
8.5 KiB
C
213 lines
8.5 KiB
C
/* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*-
|
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
/* font constants shared by both thebes and layout */
|
|
|
|
#ifndef GFX_FONT_CONSTANTS_H
|
|
#define GFX_FONT_CONSTANTS_H
|
|
|
|
/*
|
|
* This file is separate from gfxFont.h so that layout can include it
|
|
* without bringing in gfxFont.h and everything it includes.
|
|
*/
|
|
|
|
#define NS_FONT_STYLE_NORMAL 0
|
|
#define NS_FONT_STYLE_ITALIC 1
|
|
#define NS_FONT_STYLE_OBLIQUE 2
|
|
|
|
#define NS_FONT_WEIGHT_NORMAL 400
|
|
#define NS_FONT_WEIGHT_BOLD 700
|
|
|
|
#define NS_FONT_STRETCH_ULTRA_CONDENSED (-4)
|
|
#define NS_FONT_STRETCH_EXTRA_CONDENSED (-3)
|
|
#define NS_FONT_STRETCH_CONDENSED (-2)
|
|
#define NS_FONT_STRETCH_SEMI_CONDENSED (-1)
|
|
#define NS_FONT_STRETCH_NORMAL 0
|
|
#define NS_FONT_STRETCH_SEMI_EXPANDED 1
|
|
#define NS_FONT_STRETCH_EXPANDED 2
|
|
#define NS_FONT_STRETCH_EXTRA_EXPANDED 3
|
|
#define NS_FONT_STRETCH_ULTRA_EXPANDED 4
|
|
|
|
#define NS_FONT_SMOOTHING_AUTO 0
|
|
#define NS_FONT_SMOOTHING_GRAYSCALE 1
|
|
|
|
#define NS_FONT_KERNING_AUTO 0
|
|
#define NS_FONT_KERNING_NONE 1
|
|
#define NS_FONT_KERNING_NORMAL 2
|
|
|
|
#define NS_FONT_SYNTHESIS_WEIGHT 0x1
|
|
#define NS_FONT_SYNTHESIS_STYLE 0x2
|
|
|
|
enum {
|
|
eFeatureAlternates_historical,
|
|
eFeatureAlternates_stylistic,
|
|
eFeatureAlternates_styleset,
|
|
eFeatureAlternates_character_variant,
|
|
eFeatureAlternates_swash,
|
|
eFeatureAlternates_ornaments,
|
|
eFeatureAlternates_annotation,
|
|
|
|
eFeatureAlternates_numFeatures
|
|
};
|
|
|
|
// alternates - simple enumerated values
|
|
#define NS_FONT_VARIANT_ALTERNATES_HISTORICAL (1 << eFeatureAlternates_historical)
|
|
|
|
// alternates - values that use functional syntax
|
|
#define NS_FONT_VARIANT_ALTERNATES_STYLISTIC (1 << eFeatureAlternates_stylistic)
|
|
#define NS_FONT_VARIANT_ALTERNATES_STYLESET (1 << eFeatureAlternates_styleset)
|
|
#define NS_FONT_VARIANT_ALTERNATES_CHARACTER_VARIANT (1 << eFeatureAlternates_character_variant)
|
|
#define NS_FONT_VARIANT_ALTERNATES_SWASH (1 << eFeatureAlternates_swash)
|
|
#define NS_FONT_VARIANT_ALTERNATES_ORNAMENTS (1 << eFeatureAlternates_ornaments)
|
|
#define NS_FONT_VARIANT_ALTERNATES_ANNOTATION (1 << eFeatureAlternates_annotation)
|
|
|
|
#define NS_FONT_VARIANT_ALTERNATES_ENUMERATED_MASK \
|
|
NS_FONT_VARIANT_ALTERNATES_HISTORICAL
|
|
|
|
#define NS_FONT_VARIANT_ALTERNATES_FUNCTIONAL_MASK ( \
|
|
NS_FONT_VARIANT_ALTERNATES_STYLISTIC | \
|
|
NS_FONT_VARIANT_ALTERNATES_STYLESET | \
|
|
NS_FONT_VARIANT_ALTERNATES_CHARACTER_VARIANT | \
|
|
NS_FONT_VARIANT_ALTERNATES_SWASH | \
|
|
NS_FONT_VARIANT_ALTERNATES_ORNAMENTS | \
|
|
NS_FONT_VARIANT_ALTERNATES_ANNOTATION )
|
|
|
|
#define NS_FONT_VARIANT_CAPS_NORMAL 0
|
|
#define NS_FONT_VARIANT_CAPS_SMALLCAPS 1
|
|
#define NS_FONT_VARIANT_CAPS_ALLSMALL 2
|
|
#define NS_FONT_VARIANT_CAPS_PETITECAPS 3
|
|
#define NS_FONT_VARIANT_CAPS_ALLPETITE 4
|
|
#define NS_FONT_VARIANT_CAPS_TITLING 5
|
|
#define NS_FONT_VARIANT_CAPS_UNICASE 6
|
|
|
|
enum {
|
|
eFeatureEastAsian_jis78,
|
|
eFeatureEastAsian_jis83,
|
|
eFeatureEastAsian_jis90,
|
|
eFeatureEastAsian_jis04,
|
|
eFeatureEastAsian_simplified,
|
|
eFeatureEastAsian_traditional,
|
|
eFeatureEastAsian_full_width,
|
|
eFeatureEastAsian_prop_width,
|
|
eFeatureEastAsian_ruby,
|
|
|
|
eFeatureEastAsian_numFeatures
|
|
};
|
|
|
|
#define NS_FONT_VARIANT_EAST_ASIAN_JIS78 (1 << eFeatureEastAsian_jis78)
|
|
#define NS_FONT_VARIANT_EAST_ASIAN_JIS83 (1 << eFeatureEastAsian_jis83)
|
|
#define NS_FONT_VARIANT_EAST_ASIAN_JIS90 (1 << eFeatureEastAsian_jis90)
|
|
#define NS_FONT_VARIANT_EAST_ASIAN_JIS04 (1 << eFeatureEastAsian_jis04)
|
|
#define NS_FONT_VARIANT_EAST_ASIAN_SIMPLIFIED (1 << eFeatureEastAsian_simplified)
|
|
#define NS_FONT_VARIANT_EAST_ASIAN_TRADITIONAL (1 << eFeatureEastAsian_traditional)
|
|
#define NS_FONT_VARIANT_EAST_ASIAN_FULL_WIDTH (1 << eFeatureEastAsian_full_width)
|
|
#define NS_FONT_VARIANT_EAST_ASIAN_PROP_WIDTH (1 << eFeatureEastAsian_prop_width)
|
|
#define NS_FONT_VARIANT_EAST_ASIAN_RUBY (1 << eFeatureEastAsian_ruby)
|
|
|
|
#define NS_FONT_VARIANT_EAST_ASIAN_VARIANT_MASK ( \
|
|
NS_FONT_VARIANT_EAST_ASIAN_JIS78 | \
|
|
NS_FONT_VARIANT_EAST_ASIAN_JIS83 | \
|
|
NS_FONT_VARIANT_EAST_ASIAN_JIS90 | \
|
|
NS_FONT_VARIANT_EAST_ASIAN_JIS04 | \
|
|
NS_FONT_VARIANT_EAST_ASIAN_SIMPLIFIED | \
|
|
NS_FONT_VARIANT_EAST_ASIAN_TRADITIONAL )
|
|
|
|
#define NS_FONT_VARIANT_EAST_ASIAN_WIDTH_MASK ( \
|
|
NS_FONT_VARIANT_EAST_ASIAN_FULL_WIDTH | \
|
|
NS_FONT_VARIANT_EAST_ASIAN_PROP_WIDTH )
|
|
|
|
enum {
|
|
eFeatureLigatures_none,
|
|
eFeatureLigatures_common,
|
|
eFeatureLigatures_no_common,
|
|
eFeatureLigatures_discretionary,
|
|
eFeatureLigatures_no_discretionary,
|
|
eFeatureLigatures_historical,
|
|
eFeatureLigatures_no_historical,
|
|
eFeatureLigatures_contextual,
|
|
eFeatureLigatures_no_contextual,
|
|
|
|
eFeatureLigatures_numFeatures
|
|
};
|
|
|
|
#define NS_FONT_VARIANT_LIGATURES_NONE (1 << eFeatureLigatures_none)
|
|
#define NS_FONT_VARIANT_LIGATURES_COMMON (1 << eFeatureLigatures_common)
|
|
#define NS_FONT_VARIANT_LIGATURES_NO_COMMON (1 << eFeatureLigatures_no_common)
|
|
#define NS_FONT_VARIANT_LIGATURES_DISCRETIONARY (1 << eFeatureLigatures_discretionary)
|
|
#define NS_FONT_VARIANT_LIGATURES_NO_DISCRETIONARY (1 << eFeatureLigatures_no_discretionary)
|
|
#define NS_FONT_VARIANT_LIGATURES_HISTORICAL (1 << eFeatureLigatures_historical)
|
|
#define NS_FONT_VARIANT_LIGATURES_NO_HISTORICAL (1 << eFeatureLigatures_no_historical)
|
|
#define NS_FONT_VARIANT_LIGATURES_CONTEXTUAL (1 << eFeatureLigatures_contextual)
|
|
#define NS_FONT_VARIANT_LIGATURES_NO_CONTEXTUAL (1 << eFeatureLigatures_no_contextual)
|
|
|
|
#define NS_FONT_VARIANT_LIGATURES_COMMON_MASK ( \
|
|
NS_FONT_VARIANT_LIGATURES_COMMON | \
|
|
NS_FONT_VARIANT_LIGATURES_NO_COMMON )
|
|
|
|
#define NS_FONT_VARIANT_LIGATURES_DISCRETIONARY_MASK ( \
|
|
NS_FONT_VARIANT_LIGATURES_DISCRETIONARY | \
|
|
NS_FONT_VARIANT_LIGATURES_NO_DISCRETIONARY )
|
|
|
|
#define NS_FONT_VARIANT_LIGATURES_HISTORICAL_MASK ( \
|
|
NS_FONT_VARIANT_LIGATURES_HISTORICAL | \
|
|
NS_FONT_VARIANT_LIGATURES_NO_HISTORICAL )
|
|
|
|
#define NS_FONT_VARIANT_LIGATURES_CONTEXTUAL_MASK \
|
|
NS_FONT_VARIANT_LIGATURES_CONTEXTUAL | \
|
|
NS_FONT_VARIANT_LIGATURES_NO_CONTEXTUAL
|
|
|
|
enum {
|
|
eFeatureNumeric_lining,
|
|
eFeatureNumeric_oldstyle,
|
|
eFeatureNumeric_proportional,
|
|
eFeatureNumeric_tabular,
|
|
eFeatureNumeric_diagonal_fractions,
|
|
eFeatureNumeric_stacked_fractions,
|
|
eFeatureNumeric_slashedzero,
|
|
eFeatureNumeric_ordinal,
|
|
|
|
eFeatureNumeric_numFeatures
|
|
};
|
|
|
|
#define NS_FONT_VARIANT_NUMERIC_LINING (1 << eFeatureNumeric_lining)
|
|
#define NS_FONT_VARIANT_NUMERIC_OLDSTYLE (1 << eFeatureNumeric_oldstyle)
|
|
#define NS_FONT_VARIANT_NUMERIC_PROPORTIONAL (1 << eFeatureNumeric_proportional)
|
|
#define NS_FONT_VARIANT_NUMERIC_TABULAR (1 << eFeatureNumeric_tabular)
|
|
#define NS_FONT_VARIANT_NUMERIC_DIAGONAL_FRACTIONS (1 << eFeatureNumeric_diagonal_fractions)
|
|
#define NS_FONT_VARIANT_NUMERIC_STACKED_FRACTIONS (1 << eFeatureNumeric_stacked_fractions)
|
|
#define NS_FONT_VARIANT_NUMERIC_SLASHZERO (1 << eFeatureNumeric_slashedzero)
|
|
#define NS_FONT_VARIANT_NUMERIC_ORDINAL (1 << eFeatureNumeric_ordinal)
|
|
|
|
#define NS_FONT_VARIANT_NUMERIC_FIGURE_MASK \
|
|
NS_FONT_VARIANT_NUMERIC_LINING | \
|
|
NS_FONT_VARIANT_NUMERIC_OLDSTYLE
|
|
|
|
#define NS_FONT_VARIANT_NUMERIC_SPACING_MASK \
|
|
NS_FONT_VARIANT_NUMERIC_PROPORTIONAL | \
|
|
NS_FONT_VARIANT_NUMERIC_TABULAR
|
|
|
|
#define NS_FONT_VARIANT_NUMERIC_FRACTION_MASK \
|
|
NS_FONT_VARIANT_NUMERIC_DIAGONAL_FRACTIONS | \
|
|
NS_FONT_VARIANT_NUMERIC_STACKED_FRACTIONS
|
|
|
|
#define NS_FONT_VARIANT_POSITION_NORMAL 0
|
|
#define NS_FONT_VARIANT_POSITION_SUPER 1
|
|
#define NS_FONT_VARIANT_POSITION_SUB 2
|
|
|
|
// based on fixed offset values used within WebKit
|
|
#define NS_FONT_SUBSCRIPT_OFFSET_RATIO (0.20)
|
|
#define NS_FONT_SUPERSCRIPT_OFFSET_RATIO (0.34)
|
|
|
|
// this roughly corresponds to font-size: smaller behavior
|
|
// at smaller sizes <20px the ratio is closer to 0.8 while at
|
|
// larger sizes >45px the ratio is closer to 0.667 and in between
|
|
// a blend of values is used
|
|
#define NS_FONT_SUB_SUPER_SIZE_RATIO_SMALL (0.82)
|
|
#define NS_FONT_SUB_SUPER_SIZE_RATIO_LARGE (0.667)
|
|
#define NS_FONT_SUB_SUPER_SMALL_SIZE (20.0)
|
|
#define NS_FONT_SUB_SUPER_LARGE_SIZE (45.0)
|
|
|
|
#endif
|