gjs-esm-types
Version:
TypeScript module declarations for GJS ESM modules.
1,998 lines (1,996 loc) • 325 kB
TypeScript
/*
* Type Definitions for Gjs (https://gjs.guide/)
*
* These type definitions are automatically generated, do not edit them by hand.
* If you found a bug fix it in ts-for-gir itself or create a bug report on https://github.com/gjsify/ts-for-gjs
*/
import type freetype2 from "gi://freetype2?version=2.0";
import type GObject from "gi://GObject?version=2.0";
import type GLib from "gi://GLib?version=2.0";
declare namespace HarfBuzz {
/**
* The selectors defined for specifying AAT feature settings.
*/
enum aat_layout_feature_selector_t {
/**
* Initial, unset feature selector
*/
INVALID,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_ALL_TYPOGRAPHIC
*/
ALL_TYPE_FEATURES_ON,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_ALL_TYPOGRAPHIC
*/
ALL_TYPE_FEATURES_OFF,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES
*/
REQUIRED_LIGATURES_ON,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES
*/
REQUIRED_LIGATURES_OFF,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES
*/
COMMON_LIGATURES_ON,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES
*/
COMMON_LIGATURES_OFF,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES
*/
RARE_LIGATURES_ON,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES
*/
RARE_LIGATURES_OFF,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES
*/
LOGOS_ON,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES
*/
LOGOS_OFF,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES
*/
REBUS_PICTURES_ON,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES
*/
REBUS_PICTURES_OFF,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES
*/
DIPHTHONG_LIGATURES_ON,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES
*/
DIPHTHONG_LIGATURES_OFF,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES
*/
SQUARED_LIGATURES_ON,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES
*/
SQUARED_LIGATURES_OFF,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES
*/
ABBREV_SQUARED_LIGATURES_ON,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES
*/
ABBREV_SQUARED_LIGATURES_OFF,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES
*/
SYMBOL_LIGATURES_ON,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES
*/
SYMBOL_LIGATURES_OFF,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES
*/
CONTEXTUAL_LIGATURES_ON,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES
*/
CONTEXTUAL_LIGATURES_OFF,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES
*/
HISTORICAL_LIGATURES_ON,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES
*/
HISTORICAL_LIGATURES_OFF,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES
*/
UNCONNECTED,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES
*/
PARTIALLY_CONNECTED,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES
*/
CURSIVE,
/**
* Deprecated
*/
UPPER_AND_LOWER_CASE,
/**
* Deprecated
*/
ALL_CAPS,
/**
* Deprecated
*/
ALL_LOWER_CASE,
/**
* Deprecated
*/
SMALL_CAPS,
/**
* Deprecated
*/
INITIAL_CAPS,
/**
* Deprecated
*/
INITIAL_CAPS_AND_SMALL_CAPS,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_VERTICAL_SUBSTITUTION
*/
SUBSTITUTE_VERTICAL_FORMS_ON,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_VERTICAL_SUBSTITUTION
*/
SUBSTITUTE_VERTICAL_FORMS_OFF,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_LINGUISTIC_REARRANGEMENT
*/
LINGUISTIC_REARRANGEMENT_ON,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_LINGUISTIC_REARRANGEMENT
*/
LINGUISTIC_REARRANGEMENT_OFF,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_NUMBER_SPACING
*/
MONOSPACED_NUMBERS,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_NUMBER_SPACING
*/
PROPORTIONAL_NUMBERS,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_NUMBER_SPACING
*/
THIRD_WIDTH_NUMBERS,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_NUMBER_SPACING
*/
QUARTER_WIDTH_NUMBERS,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_SMART_SWASH_TYPE
*/
WORD_INITIAL_SWASHES_ON,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_SMART_SWASH_TYPE
*/
WORD_INITIAL_SWASHES_OFF,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_SMART_SWASH_TYPE
*/
WORD_FINAL_SWASHES_ON,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_SMART_SWASH_TYPE
*/
WORD_FINAL_SWASHES_OFF,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_SMART_SWASH_TYPE
*/
LINE_INITIAL_SWASHES_ON,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_SMART_SWASH_TYPE
*/
LINE_INITIAL_SWASHES_OFF,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_SMART_SWASH_TYPE
*/
LINE_FINAL_SWASHES_ON,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_SMART_SWASH_TYPE
*/
LINE_FINAL_SWASHES_OFF,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_SMART_SWASH_TYPE
*/
NON_FINAL_SWASHES_ON,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_SMART_SWASH_TYPE
*/
NON_FINAL_SWASHES_OFF,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_DIACRITICS_TYPE
*/
SHOW_DIACRITICS,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_DIACRITICS_TYPE
*/
HIDE_DIACRITICS,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_DIACRITICS_TYPE
*/
DECOMPOSE_DIACRITICS,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_VERTICAL_POSITION
*/
NORMAL_POSITION,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_VERTICAL_POSITION
*/
SUPERIORS,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_VERTICAL_POSITION
*/
INFERIORS,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_VERTICAL_POSITION
*/
ORDINALS,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_VERTICAL_POSITION
*/
SCIENTIFIC_INFERIORS,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_FRACTIONS
*/
NO_FRACTIONS,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_FRACTIONS
*/
VERTICAL_FRACTIONS,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_FRACTIONS
*/
DIAGONAL_FRACTIONS,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_OVERLAPPING_CHARACTERS_TYPE
*/
PREVENT_OVERLAP_ON,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_OVERLAPPING_CHARACTERS_TYPE
*/
PREVENT_OVERLAP_OFF,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS
*/
HYPHENS_TO_EM_DASH_ON,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS
*/
HYPHENS_TO_EM_DASH_OFF,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS
*/
HYPHEN_TO_EN_DASH_ON,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS
*/
HYPHEN_TO_EN_DASH_OFF,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS
*/
SLASHED_ZERO_ON,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS
*/
SLASHED_ZERO_OFF,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS
*/
FORM_INTERROBANG_ON,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS
*/
FORM_INTERROBANG_OFF,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS
*/
SMART_QUOTES_ON,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS
*/
SMART_QUOTES_OFF,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS
*/
PERIODS_TO_ELLIPSIS_ON,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS
*/
PERIODS_TO_ELLIPSIS_OFF,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS
*/
HYPHEN_TO_MINUS_ON,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS
*/
HYPHEN_TO_MINUS_OFF,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS
*/
ASTERISK_TO_MULTIPLY_ON,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS
*/
ASTERISK_TO_MULTIPLY_OFF,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS
*/
SLASH_TO_DIVIDE_ON,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS
*/
SLASH_TO_DIVIDE_OFF,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS
*/
INEQUALITY_LIGATURES_ON,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS
*/
INEQUALITY_LIGATURES_OFF,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS
*/
EXPONENTS_ON,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS
*/
EXPONENTS_OFF,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS
*/
MATHEMATICAL_GREEK_ON,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS
*/
MATHEMATICAL_GREEK_OFF,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_ORNAMENT_SETS_TYPE
*/
NO_ORNAMENTS,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_ORNAMENT_SETS_TYPE
*/
DINGBATS,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_ORNAMENT_SETS_TYPE
*/
PI_CHARACTERS,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_ORNAMENT_SETS_TYPE
*/
FLEURONS,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_ORNAMENT_SETS_TYPE
*/
DECORATIVE_BORDERS,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_ORNAMENT_SETS_TYPE
*/
INTERNATIONAL_SYMBOLS,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_ORNAMENT_SETS_TYPE
*/
MATH_SYMBOLS,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_ALTERNATIVES
*/
NO_ALTERNATES,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_DESIGN_COMPLEXITY_TYPE
*/
DESIGN_LEVEL1,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_DESIGN_COMPLEXITY_TYPE
*/
DESIGN_LEVEL2,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_DESIGN_COMPLEXITY_TYPE
*/
DESIGN_LEVEL3,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_DESIGN_COMPLEXITY_TYPE
*/
DESIGN_LEVEL4,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_DESIGN_COMPLEXITY_TYPE
*/
DESIGN_LEVEL5,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLE_OPTIONS
*/
NO_STYLE_OPTIONS,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLE_OPTIONS
*/
DISPLAY_TEXT,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLE_OPTIONS
*/
ENGRAVED_TEXT,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLE_OPTIONS
*/
ILLUMINATED_CAPS,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLE_OPTIONS
*/
TITLING_CAPS,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLE_OPTIONS
*/
TALL_CAPS,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE
*/
TRADITIONAL_CHARACTERS,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE
*/
SIMPLIFIED_CHARACTERS,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE
*/
JIS1978_CHARACTERS,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE
*/
JIS1983_CHARACTERS,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE
*/
JIS1990_CHARACTERS,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE
*/
TRADITIONAL_ALT_ONE,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE
*/
TRADITIONAL_ALT_TWO,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE
*/
TRADITIONAL_ALT_THREE,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE
*/
TRADITIONAL_ALT_FOUR,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE
*/
TRADITIONAL_ALT_FIVE,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE
*/
EXPERT_CHARACTERS,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE
*/
JIS2004_CHARACTERS,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE
*/
HOJO_CHARACTERS,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE
*/
NLCCHARACTERS,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE
*/
TRADITIONAL_NAMES_CHARACTERS,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_NUMBER_CASE
*/
LOWER_CASE_NUMBERS,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_NUMBER_CASE
*/
UPPER_CASE_NUMBERS,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_TEXT_SPACING
*/
PROPORTIONAL_TEXT,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_TEXT_SPACING
*/
MONOSPACED_TEXT,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_TEXT_SPACING
*/
HALF_WIDTH_TEXT,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_TEXT_SPACING
*/
THIRD_WIDTH_TEXT,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_TEXT_SPACING
*/
QUARTER_WIDTH_TEXT,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_TEXT_SPACING
*/
ALT_PROPORTIONAL_TEXT,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_TEXT_SPACING
*/
ALT_HALF_WIDTH_TEXT,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_TRANSLITERATION
*/
NO_TRANSLITERATION,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_TRANSLITERATION
*/
HANJA_TO_HANGUL,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_TRANSLITERATION
*/
HIRAGANA_TO_KATAKANA,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_TRANSLITERATION
*/
KATAKANA_TO_HIRAGANA,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_TRANSLITERATION
*/
KANA_TO_ROMANIZATION,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_TRANSLITERATION
*/
ROMANIZATION_TO_HIRAGANA,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_TRANSLITERATION
*/
ROMANIZATION_TO_KATAKANA,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_TRANSLITERATION
*/
HANJA_TO_HANGUL_ALT_ONE,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_TRANSLITERATION
*/
HANJA_TO_HANGUL_ALT_TWO,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_TRANSLITERATION
*/
HANJA_TO_HANGUL_ALT_THREE,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE
*/
NO_ANNOTATION,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE
*/
BOX_ANNOTATION,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE
*/
ROUNDED_BOX_ANNOTATION,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE
*/
CIRCLE_ANNOTATION,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE
*/
INVERTED_CIRCLE_ANNOTATION,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE
*/
PARENTHESIS_ANNOTATION,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE
*/
PERIOD_ANNOTATION,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE
*/
ROMAN_NUMERAL_ANNOTATION,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE
*/
DIAMOND_ANNOTATION,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE
*/
INVERTED_BOX_ANNOTATION,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE
*/
INVERTED_ROUNDED_BOX_ANNOTATION,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_KANA_SPACING_TYPE
*/
FULL_WIDTH_KANA,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_KANA_SPACING_TYPE
*/
PROPORTIONAL_KANA,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_IDEOGRAPHIC_SPACING_TYPE
*/
FULL_WIDTH_IDEOGRAPHS,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_IDEOGRAPHIC_SPACING_TYPE
*/
PROPORTIONAL_IDEOGRAPHS,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_IDEOGRAPHIC_SPACING_TYPE
*/
HALF_WIDTH_IDEOGRAPHS,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_UNICODE_DECOMPOSITION_TYPE
*/
CANONICAL_COMPOSITION_ON,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_UNICODE_DECOMPOSITION_TYPE
*/
CANONICAL_COMPOSITION_OFF,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_UNICODE_DECOMPOSITION_TYPE
*/
COMPATIBILITY_COMPOSITION_ON,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_UNICODE_DECOMPOSITION_TYPE
*/
COMPATIBILITY_COMPOSITION_OFF,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_UNICODE_DECOMPOSITION_TYPE
*/
TRANSCODING_COMPOSITION_ON,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_UNICODE_DECOMPOSITION_TYPE
*/
TRANSCODING_COMPOSITION_OFF,
/**
* Deprecated; use #HB_AAT_LAYOUT_FEATURE_SELECTOR_RUBY_KANA_OFF instead
*/
NO_RUBY_KANA,
/**
* Deprecated; use #HB_AAT_LAYOUT_FEATURE_SELECTOR_RUBY_KANA_ON instead
*/
RUBY_KANA,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_RUBY_KANA
*/
RUBY_KANA_ON,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_RUBY_KANA
*/
RUBY_KANA_OFF,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_CJK_SYMBOL_ALTERNATIVES_TYPE
*/
NO_CJK_SYMBOL_ALTERNATIVES,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_CJK_SYMBOL_ALTERNATIVES_TYPE
*/
CJK_SYMBOL_ALT_ONE,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_CJK_SYMBOL_ALTERNATIVES_TYPE
*/
CJK_SYMBOL_ALT_TWO,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_CJK_SYMBOL_ALTERNATIVES_TYPE
*/
CJK_SYMBOL_ALT_THREE,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_CJK_SYMBOL_ALTERNATIVES_TYPE
*/
CJK_SYMBOL_ALT_FOUR,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_CJK_SYMBOL_ALTERNATIVES_TYPE
*/
CJK_SYMBOL_ALT_FIVE,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_IDEOGRAPHIC_ALTERNATIVES_TYPE
*/
NO_IDEOGRAPHIC_ALTERNATIVES,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_IDEOGRAPHIC_ALTERNATIVES_TYPE
*/
IDEOGRAPHIC_ALT_ONE,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_IDEOGRAPHIC_ALTERNATIVES_TYPE
*/
IDEOGRAPHIC_ALT_TWO,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_IDEOGRAPHIC_ALTERNATIVES_TYPE
*/
IDEOGRAPHIC_ALT_THREE,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_IDEOGRAPHIC_ALTERNATIVES_TYPE
*/
IDEOGRAPHIC_ALT_FOUR,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_IDEOGRAPHIC_ALTERNATIVES_TYPE
*/
IDEOGRAPHIC_ALT_FIVE,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_CJK_VERTICAL_ROMAN_PLACEMENT_TYPE
*/
CJK_VERTICAL_ROMAN_CENTERED,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_CJK_VERTICAL_ROMAN_PLACEMENT_TYPE
*/
CJK_VERTICAL_ROMAN_HBASELINE,
/**
* Deprecated; use #HB_AAT_LAYOUT_FEATURE_SELECTOR_CJK_ITALIC_ROMAN_OFF instead
*/
NO_CJK_ITALIC_ROMAN,
/**
* Deprecated; use #HB_AAT_LAYOUT_FEATURE_SELECTOR_CJK_ITALIC_ROMAN_ON instead
*/
CJK_ITALIC_ROMAN,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_ITALIC_CJK_ROMAN
*/
CJK_ITALIC_ROMAN_ON,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_ITALIC_CJK_ROMAN
*/
CJK_ITALIC_ROMAN_OFF,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_CASE_SENSITIVE_LAYOUT
*/
CASE_SENSITIVE_LAYOUT_ON,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_CASE_SENSITIVE_LAYOUT
*/
CASE_SENSITIVE_LAYOUT_OFF,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_CASE_SENSITIVE_LAYOUT
*/
CASE_SENSITIVE_SPACING_ON,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_CASE_SENSITIVE_LAYOUT
*/
CASE_SENSITIVE_SPACING_OFF,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_ALTERNATE_KANA
*/
ALTERNATE_HORIZ_KANA_ON,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_ALTERNATE_KANA
*/
ALTERNATE_HORIZ_KANA_OFF,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_ALTERNATE_KANA
*/
ALTERNATE_VERT_KANA_ON,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_ALTERNATE_KANA
*/
ALTERNATE_VERT_KANA_OFF,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
*/
NO_STYLISTIC_ALTERNATES,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
*/
STYLISTIC_ALT_ONE_ON,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
*/
STYLISTIC_ALT_ONE_OFF,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
*/
STYLISTIC_ALT_TWO_ON,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
*/
STYLISTIC_ALT_TWO_OFF,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
*/
STYLISTIC_ALT_THREE_ON,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
*/
STYLISTIC_ALT_THREE_OFF,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
*/
STYLISTIC_ALT_FOUR_ON,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
*/
STYLISTIC_ALT_FOUR_OFF,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
*/
STYLISTIC_ALT_FIVE_ON,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
*/
STYLISTIC_ALT_FIVE_OFF,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
*/
STYLISTIC_ALT_SIX_ON,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
*/
STYLISTIC_ALT_SIX_OFF,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
*/
STYLISTIC_ALT_SEVEN_ON,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
*/
STYLISTIC_ALT_SEVEN_OFF,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
*/
STYLISTIC_ALT_EIGHT_ON,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
*/
STYLISTIC_ALT_EIGHT_OFF,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
*/
STYLISTIC_ALT_NINE_ON,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
*/
STYLISTIC_ALT_NINE_OFF,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
*/
STYLISTIC_ALT_TEN_ON,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
*/
STYLISTIC_ALT_TEN_OFF,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
*/
STYLISTIC_ALT_ELEVEN_ON,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
*/
STYLISTIC_ALT_ELEVEN_OFF,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
*/
STYLISTIC_ALT_TWELVE_ON,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
*/
STYLISTIC_ALT_TWELVE_OFF,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
*/
STYLISTIC_ALT_THIRTEEN_ON,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
*/
STYLISTIC_ALT_THIRTEEN_OFF,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
*/
STYLISTIC_ALT_FOURTEEN_ON,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
*/
STYLISTIC_ALT_FOURTEEN_OFF,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
*/
STYLISTIC_ALT_FIFTEEN_ON,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
*/
STYLISTIC_ALT_FIFTEEN_OFF,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
*/
STYLISTIC_ALT_SIXTEEN_ON,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
*/
STYLISTIC_ALT_SIXTEEN_OFF,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
*/
STYLISTIC_ALT_SEVENTEEN_ON,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
*/
STYLISTIC_ALT_SEVENTEEN_OFF,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
*/
STYLISTIC_ALT_EIGHTEEN_ON,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
*/
STYLISTIC_ALT_EIGHTEEN_OFF,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
*/
STYLISTIC_ALT_NINETEEN_ON,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
*/
STYLISTIC_ALT_NINETEEN_OFF,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
*/
STYLISTIC_ALT_TWENTY_ON,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES
*/
STYLISTIC_ALT_TWENTY_OFF,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_CONTEXTUAL_ALTERNATIVES
*/
CONTEXTUAL_ALTERNATES_ON,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_CONTEXTUAL_ALTERNATIVES
*/
CONTEXTUAL_ALTERNATES_OFF,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_CONTEXTUAL_ALTERNATIVES
*/
SWASH_ALTERNATES_ON,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_CONTEXTUAL_ALTERNATIVES
*/
SWASH_ALTERNATES_OFF,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_CONTEXTUAL_ALTERNATIVES
*/
CONTEXTUAL_SWASH_ALTERNATES_ON,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_CONTEXTUAL_ALTERNATIVES
*/
CONTEXTUAL_SWASH_ALTERNATES_OFF,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_LOWER_CASE
*/
DEFAULT_LOWER_CASE,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_LOWER_CASE
*/
LOWER_CASE_SMALL_CAPS,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_LOWER_CASE
*/
LOWER_CASE_PETITE_CAPS,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_UPPER_CASE
*/
DEFAULT_UPPER_CASE,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_UPPER_CASE
*/
UPPER_CASE_SMALL_CAPS,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_UPPER_CASE
*/
UPPER_CASE_PETITE_CAPS,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_CJK_ROMAN_SPACING_TYPE
*/
HALF_WIDTH_CJK_ROMAN,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_CJK_ROMAN_SPACING_TYPE
*/
PROPORTIONAL_CJK_ROMAN,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_CJK_ROMAN_SPACING_TYPE
*/
DEFAULT_CJK_ROMAN,
/**
* for #HB_AAT_LAYOUT_FEATURE_TYPE_CJK_ROMAN_SPACING_TYPE
*/
FULL_WIDTH_CJK_ROMAN,
}
/**
* The possible feature types defined for AAT shaping, from Apple [Font Feature Registry](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html).
*/
enum aat_layout_feature_type_t {
/**
* Initial, unset feature type
*/
INVALID,
/**
* [All Typographic Features](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type0)
*/
ALL_TYPOGRAPHIC,
/**
* [Ligatures](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type1)
*/
LIGATURES,
/**
* [Cursive Connection](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type2)
*/
CURISVE_CONNECTION,
/**
* [Letter Case](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type3)
*/
LETTER_CASE,
/**
* [Vertical Substitution](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type4)
*/
VERTICAL_SUBSTITUTION,
/**
* [Linguistic Rearrangement](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type5)
*/
LINGUISTIC_REARRANGEMENT,
/**
* [Number Spacing](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type6)
*/
NUMBER_SPACING,
/**
* [Smart Swash](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type8)
*/
SMART_SWASH_TYPE,
/**
* [Diacritics](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type9)
*/
DIACRITICS_TYPE,
/**
* [Vertical Position](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type10)
*/
VERTICAL_POSITION,
/**
* [Fractions](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type11)
*/
FRACTIONS,
/**
* [Overlapping Characters](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type13)
*/
OVERLAPPING_CHARACTERS_TYPE,
/**
* [Typographic Extras](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type14)
*/
TYPOGRAPHIC_EXTRAS,
/**
* [Mathematical Extras](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type15)
*/
MATHEMATICAL_EXTRAS,
/**
* [Ornament Sets](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type16)
*/
ORNAMENT_SETS_TYPE,
/**
* [Character Alternatives](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type17)
*/
CHARACTER_ALTERNATIVES,
/**
* [Design Complexity](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type18)
*/
DESIGN_COMPLEXITY_TYPE,
/**
* [Style Options](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type19)
*/
STYLE_OPTIONS,
/**
* [Character Shape](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type20)
*/
CHARACTER_SHAPE,
/**
* [Number Case](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type21)
*/
NUMBER_CASE,
/**
* [Text Spacing](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type22)
*/
TEXT_SPACING,
/**
* [Transliteration](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type23)
*/
TRANSLITERATION,
/**
* [Annotation](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type24)
*/
ANNOTATION_TYPE,
/**
* [Kana Spacing](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type25)
*/
KANA_SPACING_TYPE,
/**
* [Ideographic Spacing](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type26)
*/
IDEOGRAPHIC_SPACING_TYPE,
/**
* [Unicode Decomposition](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type27)
*/
UNICODE_DECOMPOSITION_TYPE,
/**
* [Ruby Kana](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type28)
*/
RUBY_KANA,
/**
* [CJK Symbol Alternatives](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type29)
*/
CJK_SYMBOL_ALTERNATIVES_TYPE,
/**
* [Ideographic Alternatives](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type30)
*/
IDEOGRAPHIC_ALTERNATIVES_TYPE,
/**
* [CJK Vertical Roman Placement](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type31)
*/
CJK_VERTICAL_ROMAN_PLACEMENT_TYPE,
/**
* [Italic CJK Roman](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type32)
*/
ITALIC_CJK_ROMAN,
/**
* [Case Sensitive Layout](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type33)
*/
CASE_SENSITIVE_LAYOUT,
/**
* [Alternate Kana](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type34)
*/
ALTERNATE_KANA,
/**
* [Stylistic Alternatives](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type35)
*/
STYLISTIC_ALTERNATIVES,
/**
* [Contextual Alternatives](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type36)
*/
CONTEXTUAL_ALTERNATIVES,
/**
* [Lower Case](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type37)
*/
LOWER_CASE,
/**
* [Upper Case](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type38)
*/
UPPER_CASE,
/**
* [Language Tag](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type39)
*/
LANGUAGE_TAG_TYPE,
/**
* [CJK Roman Spacing](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type103)
*/
CJK_ROMAN_SPACING_TYPE,
}
/**
* Data type for holding HarfBuzz's clustering behavior options. The cluster level
* dictates one aspect of how HarfBuzz will treat non-base characters
* during shaping.
*
* In `HB_BUFFER_CLUSTER_LEVEL_MONOTONE_GRAPHEMES,` non-base
* characters are merged into the cluster of the base character that precedes them.
*
* In `HB_BUFFER_CLUSTER_LEVEL_MONOTONE_CHARACTERS,` non-base characters are initially
* assigned their own cluster values, which are not merged into preceding base
* clusters. This allows HarfBuzz to perform additional operations like reorder
* sequences of adjacent marks.
*
* `HB_BUFFER_CLUSTER_LEVEL_MONOTONE_GRAPHEMES` is the default, because it maintains
* backward compatibility with older versions of HarfBuzz. New client programs that
* do not need to maintain such backward compatibility are recommended to use
* `HB_BUFFER_CLUSTER_LEVEL_MONOTONE_CHARACTERS` instead of the default.
*/
enum buffer_cluster_level_t {
/**
* Return cluster values grouped by graphemes into
* monotone order.
*/
MONOTONE_GRAPHEMES,
/**
* Return cluster values grouped into monotone order.
*/
MONOTONE_CHARACTERS,
/**
* Don't group cluster values.
*/
CHARACTERS,
/**
* Default cluster level,
* equal to `HB_BUFFER_CLUSTER_LEVEL_MONOTONE_GRAPHEMES`.
*/
DEFAULT,
}
/**
* The type of #hb_buffer_t contents.
*/
enum buffer_content_type_t {
/**
* Initial value for new buffer.
*/
INVALID,
/**
* The buffer contains input characters (before shaping).
*/
UNICODE,
/**
* The buffer contains output glyphs (after shaping).
*/
GLYPHS,
}
/**
* The buffer serialization and de-serialization format used in
* hb_buffer_serialize_glyphs() and hb_buffer_deserialize_glyphs().
*/
enum buffer_serialize_format_t {
/**
* a human-readable, plain text format.
*/
TEXT,
/**
* a machine-readable JSON format.
*/
JSON,
/**
* invalid format.
*/
INVALID,
}
/**
* The direction of a text segment or buffer.
*
* A segment can also be tested for horizontal or vertical
* orientation (irrespective of specific direction) with
* HB_DIRECTION_IS_HORIZONTAL() or HB_DIRECTION_IS_VERTICAL().
*/
enum direction_t {
/**
* Initial, unset direction.
*/
INVALID,
/**
* Text is set horizontally from left to right.
*/
LTR,
/**
* Text is set horizontally from right to left.
*/
RTL,
/**
* Text is set vertically from top to bottom.
*/
TTB,
/**
* Text is set vertically from bottom to top.
*/
BTT,
}
/**
* Data type holding the memory modes available to
* client programs.
*
* Regarding these various memory-modes:
*
* - In no case shall the HarfBuzz client modify memory
* that is passed to HarfBuzz in a blob. If there is
* any such possibility, `HB_MEMORY_MODE_DUPLICATE` should be used
* such that HarfBuzz makes a copy immediately,
*
* - Use `HB_MEMORY_MODE_READONLY` otherwise, unless you really really
* really know what you are doing,
*
* - `HB_MEMORY_MODE_WRITABLE` is appropriate if you really made a
* copy of data solely for the purpose of passing to
* HarfBuzz and doing that just once (no reuse!),
*
* - If the font is mmap()ed, it's okay to use
* `HB_MEMORY_MODE_READONLY_MAY_MAKE_WRITABLE,` however, using that mode
* correctly is very tricky. Use `HB_MEMORY_MODE_READONLY` instead.
*/
enum memory_mode_t {
/**
* HarfBuzz immediately makes a copy of the data.
*/
DUPLICATE,
/**
* HarfBuzz client will never modify the data,
* and HarfBuzz will never modify the data.
*/
READONLY,
/**
* HarfBuzz client made a copy of the data solely
* for HarfBuzz, so HarfBuzz may modify the data.
*/
WRITABLE,
/**
* See above
*/
READONLY_MAY_MAKE_WRITABLE,
}
/**
* Baseline tags from [Baseline Tags](https://docs.microsoft.com/en-us/typography/opentype/spec/baselinetags) registry.
*/
enum ot_layout_baseline_tag_t {
/**
* The baseline used by alphabetic scripts such as Latin, Cyrillic and Greek.
* In vertical writing mode, the alphabetic baseline for characters rotated 90 degrees clockwise.
* (This would not apply to alphabetic characters that remain upright in vertical writing mode, since these
* characters are not rotated.)
*/
ROMAN,
/**
* The hanging baseline. In horizontal direction, this is the horizontal
* line from which syllables seem, to hang in Tibetan and other similar scripts. In vertical writing mode,
* for Tibetan (or some other similar script) characters rotated 90 degrees clockwise.
*/
HANGING,
/**
* Ideographic character face bottom or left edge,
* if the direction is horizontal or vertical, respectively.
*/
IDEO_FACE_BOTTOM_OR_LEFT,
/**
* Ideographic character face top or right edge,
* if the direction is horizontal or vertical, respectively.
*/
IDEO_FACE_TOP_OR_RIGHT,
/**
* The center of the ideographic character face. Since: 4.0.0
*/
IDEO_FACE_CENTRAL,
/**
* Ideographic em-box bottom or left edge,
* if the direction is horizontal or vertical, respectively.
*/
IDEO_EMBOX_BOTTOM_OR_LEFT,
/**
* Ideographic em-box top or right edge baseline,
*/
IDEO_EMBOX_TOP_OR_RIGHT,
/**
* The center of the ideographic em-box. Since: 4.0.0
* if the direction is horizontal or vertical, respectively.
*/
IDEO_EMBOX_CENTRAL,
/**
* The baseline about which mathematical characters are centered.
* In vertical writing mode when mathematical characters rotated 90 degrees clockwise, are centered.
*/
MATH,
}
/**
* The GDEF classes defined for glyphs.
*/
enum ot_layout_glyph_class_t {
/**
* Glyphs not matching the other classifications
*/
UNCLASSIFIED,
/**
* Spacing, single characters, capable of accepting marks
*/
BASE_GLYPH,
/**
* Glyphs that represent ligation of multiple characters
*/
LIGATURE,
/**
* Non-spacing, combining glyphs that represent marks
*/
MARK,
/**
* Spacing glyphs that represent part of a single character
*/
COMPONENT,
}
/**
* The 'MATH' table constants, refer to
* [OpenType documentation](https://docs.microsoft.com/en-us/typography/opentype/spec/math#mathconstants-table)
* For more explanations.
*/
enum ot_math_constant_t {
/**
* scriptPercentScaleDown
*/
SCRIPT_PERCENT_SCALE_DOWN,
/**
* scriptScriptPercentScaleDown
*/
SCRIPT_SCRIPT_PERCENT_SCALE_DOWN,
/**
* delimitedSubFormulaMinHeight
*/
DELIMITED_SUB_FORMULA_MIN_HEIGHT,
/**
* displayOperatorMinHeight
*/
DISPLAY_OPERATOR_MIN_HEIGHT,
/**
* mathLeading
*/
MATH_LEADING,
/**
* axisHeight
*/
AXIS_HEIGHT,
/**
* accentBaseHeight
*/
ACCENT_BASE_HEIGHT,
/**
* flattenedAccentBaseHeight
*/
FLATTENED_ACCENT_BASE_HEIGHT,
/**
* subscriptShiftDown
*/
SUBSCRIPT_SHIFT_DOWN,
/**
* subscriptTopMax
*/
SUBSCRIPT_TOP_MAX,
/**
* subscriptBaselineDropMin
*/
SUBSCRIPT_BASELINE_DROP_MIN,
/**
* superscriptShiftUp
*/
SUPERSCRIPT_SHIFT_UP,
/**
* superscriptShiftUpCramped
*/
SUPERSCRIPT_SHIFT_UP_CRAMPED,
/**
* superscriptBottomMin
*/
SUPERSCRIPT_BOTTOM_MIN,
/**
* superscriptBaselineDropMax
*/
SUPERSCRIPT_BASELINE_DROP_MAX,
/**
* subSuperscriptGapMin
*/
SUB_SUPERSCRIPT_GAP_MIN,
/**
* superscriptBottomMaxWithSubscript
*/
SUPERSCRIPT_BOTTOM_MAX_WITH_SUBSCRIPT,
/**
* spaceAfterScript
*/
SPACE_AFTER_SCRIPT,
/**
* upperLimitGapMin
*/
UPPER_LIMIT_GAP_MIN,
/**
* upperLimitBaselineRiseMin
*/
UPPER_LIMIT_BASELINE_RISE_MIN,
/**
* lowerLimitGapMin
*/
LOWER_LIMIT_GAP_MIN,
/**
* lowerLimitBaselineDropMin
*/
LOWER_LIMIT_BASELINE_DROP_MIN,
/**
* stackTopShiftUp
*/
STACK_TOP_SHIFT_UP,
/**
* stackTopDisplayStyleShiftUp
*/
STACK_TOP_DISPLAY_STYLE_SHIFT_UP,
/**
* stackBottomShiftDown
*/
STACK_BOTTOM_SHIFT_DOWN,
/**
* stackBottomDisplayStyleShiftDown
*/
STACK_BOTTOM_DISPLAY_STYLE_SHIFT_DOWN,
/**
* stackGapMin
*/
STACK_GAP_MIN,
/**
* stackDisplayStyleGapMin
*/
STACK_DISPLAY_STYLE_GAP_MIN,
/**
* stretchStackTopShiftUp
*/
STRETCH_STACK_TOP_SHIFT_UP,
/**
* stretchStackBottomShiftDown
*/
STRETCH_STACK_BOTTOM_SHIFT_DOWN,
/**
* stretchStackGapAboveMin
*/
STRETCH_STACK_GAP_ABOVE_MIN,
/**
* stretchStackGapBelowMin
*/
STRETCH_STACK_GAP_BELOW_MIN,
/**
* fractionNumeratorShiftUp
*/
FRACTION_NUMERATOR_SHIFT_UP,
/**
* fractionNumeratorDisplayStyleShiftUp
*/
FRACTION_NUMERATOR_DISPLAY_STYLE_SHIFT_UP,
/**
* fractionDenominatorShiftDown
*/
FRACTION_DENOMINATOR_SHIFT_DOWN,
/**
* fractionDenominatorDisplayStyleShiftDown
*/
FRACTION_DENOMINATOR_DISPLAY_STYLE_SHIFT_DOWN,
/**
* fractionNumeratorGapMin
*/
FRACTION_NUMERATOR_GAP_MIN,
/**
* fractionNumDisplayStyleGapMin
*/
FRACTION_NUM_DISPLAY_STYLE_GAP_MIN,
/**
* fractionRuleThickness
*/
FRACTION_RULE_THICKNESS,
/**
* fractionDenominatorGapMin
*/
FRACTION_DENOMINATOR_GAP_MIN,
/**
* fractionDenomDisplayStyleGapMin
*/
FRACTION_DENOM_DISPLAY_STYLE_GAP_MIN,
/**
* skewedFractionHorizontalGap
*/
SKEWED_FRACTION_HORIZONTAL_GAP,
/**
* skewedFractionVerticalGap
*/
SKEWED_FRACTION_VERTICAL_GAP,
/**
* overbarVerticalGap
*/
OVERBAR_VERTICAL_GAP,
/**
* overbarRuleThickness
*/
OVERBAR_RULE_THICKNESS,
/**
* overbarExtraAscender
*/
OVERBAR_EXTRA_ASCENDER,
/**
* underbarVerticalGap
*/
UNDERBAR_VERTICAL_GAP,
/**
* underbarRuleThickness
*/
UNDERBAR_RULE_THICKNESS,
/**
* underbarExtraDescender
*/
UNDERBAR_EXTRA_DESCENDER,
/**
* radicalVerticalGap
*/
RADICAL_VERTICAL_GAP,
/**
* radicalDisplayStyleVerticalGap
*/
RADICAL_DISPLAY_STYLE_VERTICAL_GAP,
/**
* radicalRuleThickness
*/
RADICAL_RULE_THICKNESS,
/**
* radicalExtraAscender
*/
RADICAL_EXTRA_ASCENDER,
/**
* radicalKernBeforeDegree
*/
RADICAL_KERN_BEFORE_DEGREE,
/**
* radicalKernAfterDegree
*/
RADICAL_KERN_AFTER_DEGREE,
/**
* radicalDegreeBottomRaisePercent
*/
RADICAL_DEGREE_BOTTOM_RAISE_PERCENT,
}
/**
* The math kerning-table types defined for the four corners
* of a glyph.
*/
enum ot_math_kern_t {
/**
* The top right corner of the glyph.
*/
TOP_RIGHT,
/**
* The top left corner of the glyph.
*/
TOP_LEFT,
/**
* The bottom right corner of the glyph.
*/
BOTTOM_RIGHT,
/**
* The bottom left corner of the glyph.
*/
BOTTOM_LEFT,
}
/**
* Known metadata tags from https://docs.microsoft.com/en-us/typography/opentype/spec/meta
*/
enum ot_meta_tag_t {
/**
* Design languages. Text, using only
* Basic Latin (ASCII) characters. Indicates languages and/or scripts
* for the user audiences that the font was primarily designed for.
*/
DESIGN_LANGUAGES,
/**
* Supported languages. Text, using
* only Basic Latin (ASCII) characters. Indicates languages and/or scripts
* that the font is declared to be capable of supporting.
*/
SUPPORTED_LANGUAGES,
}
/**
* Metric tags corresponding to [MVAR Value
* Tags](https://docs.microsoft.com/en-us/typography/opentype/spec/mvar#value-tags)
*/
enum ot_metrics_tag_t {
/**
* horizontal ascender.
*/
HORIZONTAL_ASCENDER,
/**
* horizontal descender.
*/
HORIZONTAL_DESCENDER,
/**
* horizontal line gap.
*/
HORIZONTAL_LINE_GAP,
/**
* horizontal clipping ascent.
*/
HORIZONTAL_CLIPPING_ASCENT,
/**
* horizontal clipping descent.
*/
HORIZONTAL_CLIPPING_DESCENT,
/**
* vertical ascender.
*/
VERTICAL_ASCENDER,
/**
* vertical descender.
*/
VERTICAL_DESCENDER,
/**
* vertical line gap.
*/
VERTICAL_LINE_GAP,
/**
* horizontal caret rise.
*/
HORIZONTAL_CARET_RISE,
/**
* horizontal caret run.
*/
HORIZONTAL_CARET_RUN,
/**
* horizontal caret offset.
*/
HORIZONTAL_CARET_OFFSET,
/**
* vertical caret rise.
*/
VERTICAL_CARET_RISE,
/**
* vertical caret run.
*/
VERTICAL_CARET_RUN,
/**
* vertical caret offset.
*/
VERTICAL_CARET_OFFSET,
/**
* x height.
*/
X_HEIGHT,
/**
* cap height.
*/
CAP_HEIGHT,
/**
* subscript em x size.
*/
SUBSCRIPT_EM_X_SIZE,
/**
* subscript em y size.
*/
SUBSCRIPT_EM_Y_SIZE,
/**
* subscript em x offset.
*/
SUBSCRIPT_EM_X_OFFSET,
/**
* subscript em y offset.
*/
SUBSCRIPT_EM_Y_OFFSET,
/**
* superscript em x size.
*/
SUPERSCRIPT_EM_X_SIZE,
/**
* superscript em y size.
*/
SUPERSCRIPT_EM_Y_SIZE,
/**
* superscript em x offset.
*/
SUPERSCRIPT_EM_X_OFFSET,
/**
* superscript em y offset.
*/
SUPERSCRIPT_EM_Y_OFFSET,
/**
* strikeout size.
*/
STRIKEOUT_SIZE,
/**
* strikeout offset.
*/
STRIKEOUT_OFFSET,
/**
* underline size.
*/
UNDERLINE_SIZE,
/**
* underline offset.
*/
UNDERLINE_OFFSET,
}
/**
* An enum type representing the pre-defined name IDs.
*
* For more information on these fields, see the
* [OpenType spec](https://docs.microsoft.com/en-us/typography/opentype/spec/name#name-ids).
*/
enum ot_name_id_predefined_t {
/**
* Copyright notice
*/
COPYRIGHT,
/**
* Font Family name
*/
FONT_FAMILY,
/**
* Font Subfamily name
*/
FONT_SUBFAMILY,
/**
* Unique font identifier
*/
UNIQUE_ID,
/**
* Full font name that reflects
* all family and relevant subfamily descriptors
*/
FULL_NAME,
/**
* Version string
*/
VERSION_STRING,
/**
* PostScript name for the font
*/
POSTSCRIPT_NAME,
/**
* Trademark
*/
TRADEMARK,
/**
* Manufacturer Name
*/
MANUFACTURER,
/**
* Designer
*/
DESIGNER,
/**
* Description
*/
DESCRIPTION,
/**
* URL of font vendor
*/
VENDOR_URL,
/**
* URL of typeface designer
*/
DESIGNER_URL,
/**
* License Description
*/
LICENSE,
/**
* URL where additional licensing
* information can be found
*/
LICENSE_URL,
/**
* Typographic Family name
*/
TYPOGRAPHIC_FAMILY,
/**
* Typographic Subfamily name
*/
TYPOGRAPHIC_SUBFAMILY,
/**
* Compatible Full Name for MacOS
*/
MAC_FULL_NAME,
/**
* Sample text
*/
SAMPLE_TEXT,
/**
* PostScript CID findfont name
*/
CID_FINDFONT_NAME,
/**
* WWS Family Name
*/
WWS_FAMILY,
/**
* WWS Subfamily Name
*/
WWS_SUBFAMILY,
/**
* Light Background Palette
*/
LIGHT_BACKGROUND,
/**
* Dark Background Palette
*/
DARK_BACKGROUND,
/**
* Variations PostScript Name Prefix
*/
VARIATIONS_PS_PREFIX,
/**
* Value to represent a nonexistent name ID.
*/
INVALID,
}
/**
* The values of this enumeration describe the compositing modes
* that can be used when combining temporary redirected drawing
* with the backdrop.
*
* See the OpenType spec [COLR](https://learn.microsoft.com/en-us/typography/opentype/spec/colr)
* section for details.
*/
enum paint_composite_mode_t {
/**
* clear destination layer (bounded)
*/
CLEAR,
/**
* replace destination layer (bounded)
*/
SRC,
/**
* ignore the source
*/
DEST,
/**
* draw source layer on top of destination layer
* (bounded)
*/
SRC_OVER,
/**
* draw destination on top of source
*/
DEST_OVER,
/**
* draw source where there was destination content
* (unbounded)
*/
SRC_IN,
/**
* leave destination only where there was
* source content (unbounded)
*/
DEST_IN,
/**
* draw source where there was no destination
* content (unbounded)
*/
SRC_OUT,
/**
* leave destination only where there was no
* source content
*/
DEST_OUT,
/**
* draw source on top of destination content and
* only there
*/
SRC_ATOP,
/**
* leave destination on top of source content
* and only there (unbounded)
*/
DEST_ATOP,
/**
* source and destination are shown where there is only
* one of them
*/
XOR,
/**
* source and destination layers are accumulated
*/
PLUS,
/**
* source and destination are complemented and
* multiplied. This causes the result to be at least as light as the lighter
* inputs.
*/
SCREEN,
/**
* multiplies or screens, depending on the
* lightness of the destination color.
*/
OVERLAY,
/**
* replaces the destination with the source if it
* is darker, otherwise keeps the source.
*/
DARKEN,
/**
* replaces the destination with the source if it
* is lighter, otherwise keeps the source.
*/
LIGHTEN,