First Commit
This commit is contained in:
commit
ae0fab9400
424 files changed
+71006
No files matched your search
@@ -0,0 +1,190 @@
|
||||
_UI_ENUM(uiAttribute) {
|
||||
uiAttributeFamily,
|
||||
uiAttributeSize, // use Double
|
||||
uiAttributeWeight,
|
||||
uiAttributeItalic,
|
||||
uiAttributeStretch,
|
||||
uiAttributeColor, // use R, G, B, A
|
||||
uiAttributeBackground, // use R, G, B, A
|
||||
|
||||
// TODO kerning amount
|
||||
// OS X: kCTKernAttributeName
|
||||
// > 0: farther (TODO from advance or standard kerning?)
|
||||
// == 0: no kerning
|
||||
// < 0: closer (TODO same)
|
||||
// undefined: standard kerning
|
||||
// Pango: pango_attr_letter_spacing_new()
|
||||
// parameter meaning unspecified
|
||||
// Windows: requires Platform Update, SetLetterSpacing()
|
||||
// parameter meaning unspecified
|
||||
|
||||
uiAttributeUnderline, // enum uiDrawUnderlineStyle
|
||||
// TODO what is the color in the case we don't specify it, black or the text color?
|
||||
uiAttributeUnderlineColor, // enum uiDrawUnderlineColor
|
||||
|
||||
// TODO kCTSuperscriptAttributeName vs below
|
||||
// all it does is set the below attribute so
|
||||
|
||||
// TODO kCTBaselineClassAttributeName, kCTBaselineInfoAttributeName, kCTBaselineReferenceInfoAttributeName
|
||||
|
||||
// TODO strikethroughs? (pango yes, directwrite yes, os x no)
|
||||
// TODO baseline offsets? (pango yes)
|
||||
// TODO size scales? (pango yes)
|
||||
// TODO fallbacks (pango: enable or disable)
|
||||
|
||||
// TODO document that this will also enable language-specific font features (TODO on DirectWrite too?)
|
||||
// TODO document that this should be strict BCP 47 form (A-Z, a-z, 0-9, and -) for maximum compatibility
|
||||
uiAttributeLanguage, // BCP 47 string
|
||||
|
||||
// These attributes represent typographic features. Each feature
|
||||
// is a separate attribute, to make composition easier. The
|
||||
// availability of for each attribute are defined by the font; the
|
||||
// default values are defined by the font and/or by the OS.
|
||||
//
|
||||
// A note about features whose parameter is an enumeration:
|
||||
// OS X defines typographic features using the AAT specification
|
||||
// and converts to OpenType internally when needed, whereas
|
||||
// other platforms use OpenType directly. OpenType is less
|
||||
// precise about what each enumeration value means than AAT
|
||||
// is, so enumeration values do not necessarily represent what
|
||||
// OS X expects with all fonts. In cases where they do, libui
|
||||
// provides an enumeration type to use. Otherwise, the AAT
|
||||
// enumeration values are provided in comments for
|
||||
// documentation purposes.
|
||||
|
||||
// TODO kAllTypographicFeaturesType
|
||||
|
||||
// AAT calls these "common ligatures"
|
||||
uiAttributeStandardLigatures, // 0 = off, 1 = on
|
||||
uiAttributeRequiredLigatures, // 0 = off, 1 = on
|
||||
// AAT calls these "rare ligatures"
|
||||
uiAttributeDiscretionaryLigatures, // 0 = off, 1 = on
|
||||
uiAttributeContextualLigatures, // 0 = off, 1 = on
|
||||
uiAttributeHistoricalLigatures, // 0 = off, 1 = on
|
||||
|
||||
// TODO uiAttributeCursiveConnection, // 0 = none, 1 = some, 2 = all
|
||||
|
||||
uiAttributeUnicase, // 0 = off, 1 = on
|
||||
|
||||
// TODO uiAttributeLinguisticRearrangement, // 0 = off, 1 = on
|
||||
|
||||
// TODO rename this
|
||||
uiAttributeNumberSpacings, // enum uiAttributeNumberSpacing
|
||||
|
||||
// TODO kSmartSwashType, falt and jalt
|
||||
|
||||
// TODO kDiacriticsType
|
||||
|
||||
uiAttributeSuperscripts, // enum uiAttributeSuperscript
|
||||
|
||||
uiAttributeFractionForms, // enum uiAttributeFractionForm
|
||||
|
||||
uiAttributeSlashedZero, // 0 = off, 1 = on
|
||||
|
||||
uiAttributeMathematicalGreek, // 0 = off, 1 = on
|
||||
|
||||
// AAT defines the following values:
|
||||
// 0 = none
|
||||
// 1 = dingbats
|
||||
// 2 = pi characters
|
||||
// 3 = fleurons
|
||||
// 4 = decorative borders
|
||||
// 5 = international symbols
|
||||
// 6 = mathematical symbols
|
||||
// OpenType says alphanumeric characters must(? TODO) have one form each and the bullet character U+2022 (•) can have many
|
||||
uiAttributeOrnamentalForms, // an integer from 0 to a font-specified upper bound
|
||||
// TODO provide a function to get the upper bound?
|
||||
|
||||
// AAT calls this "character alternatives" and defines the
|
||||
// following values:
|
||||
// 0 = none
|
||||
// OpenType calls this "access all alternates".
|
||||
// TODO doesn't OpenType do the same about 0?
|
||||
uiAttributeSpecificCharacterForm, // an integer from 0 to a font-specified upper bound
|
||||
// TODO provide a function to get the upper bound?
|
||||
|
||||
uiAttributeTitlingCapitalForms, // 0 = off, 1 = on
|
||||
|
||||
// AAT calls these "character shapes"
|
||||
uiAttributeHanCharacterForms, // enum uiAttributeHanCharacterForm
|
||||
|
||||
// OpenType calls these "old-style"
|
||||
uiAttributeLowercaseNumbers, // 0 = off, 1 = on
|
||||
|
||||
// TODO kTextSpacingType
|
||||
// see kKanaSpacingType below
|
||||
|
||||
uiAttributeHanjaToHangul, // 0 = off, 1 = on
|
||||
|
||||
// AAT defines the following values:
|
||||
// 0 = none
|
||||
// 1 = box
|
||||
// 2 = rounded box
|
||||
// 3 = circle
|
||||
// 4 = inverted circle
|
||||
// 5 = parentheses
|
||||
// 6 = period
|
||||
// 7 = roman numeral
|
||||
// 8 = diamond
|
||||
// 9 = inverted box
|
||||
// 10 = inverted rounded box
|
||||
// TODO rename to AnnotatedForms?
|
||||
uiAttributeAnnotatedGlyphForms, // an integer from 0 to a font-specified upper bound
|
||||
// TODO provide a function to get the upper bound?
|
||||
|
||||
// TODO kKanaSpacingType
|
||||
// TODO kIdeographicSpacingType
|
||||
// can they be provided independently of kTextSpacingType? Core Text doesn't seem to
|
||||
|
||||
// TODO kUnicodeDecompositionType
|
||||
|
||||
uiAttributeRubyKanaForms, // 0 = off, 1 = on
|
||||
|
||||
// TODO kCJKVerticalRomanPlacementType
|
||||
// this is 'valt' in OpenType but I don't know if I want to make it selectable or not
|
||||
|
||||
uiAttributeCJKRomansToItalics, // 0 = off, 1 = on
|
||||
|
||||
// AAT calls this "case-sensitive layout"
|
||||
uiAttributeCaseSensitiveForms, // 0 = off, 1 = on
|
||||
// AAT: this is called "case-sensitive spacing"
|
||||
uiAttributeCapitalSpacing, // 0 = off, 1 = on
|
||||
|
||||
uiAttributeAlternateHorizontalKana, // 0 = off, 1 = on
|
||||
uiAttributeAlternateVerticalKana, // 0 = off, 1 = on
|
||||
|
||||
// TODO "Alternate"? unify all this
|
||||
// TODO document that these are guaranteed to be consecutive
|
||||
uiAttributeStylisticAlternate1, // 0 = off, 1 = on
|
||||
uiAttributeStylisticAlternate2, // 0 = off, 1 = on
|
||||
uiAttributeStylisticAlternate3, // 0 = off, 1 = on
|
||||
uiAttributeStylisticAlternate4, // 0 = off, 1 = on
|
||||
uiAttributeStylisticAlternate5, // 0 = off, 1 = on
|
||||
uiAttributeStylisticAlternate6, // 0 = off, 1 = on
|
||||
uiAttributeStylisticAlternate7, // 0 = off, 1 = on
|
||||
uiAttributeStylisticAlternate8, // 0 = off, 1 = on
|
||||
uiAttributeStylisticAlternate9, // 0 = off, 1 = on
|
||||
uiAttributeStylisticAlternate10, // 0 = off, 1 = on
|
||||
uiAttributeStylisticAlternate11, // 0 = off, 1 = on
|
||||
uiAttributeStylisticAlternate12, // 0 = off, 1 = on
|
||||
uiAttributeStylisticAlternate13, // 0 = off, 1 = on
|
||||
uiAttributeStylisticAlternate14, // 0 = off, 1 = on
|
||||
uiAttributeStylisticAlternate15, // 0 = off, 1 = on
|
||||
uiAttributeStylisticAlternate16, // 0 = off, 1 = on
|
||||
uiAttributeStylisticAlternate17, // 0 = off, 1 = on
|
||||
uiAttributeStylisticAlternate18, // 0 = off, 1 = on
|
||||
uiAttributeStylisticAlternate19, // 0 = off, 1 = on
|
||||
uiAttributeStylisticAlternate20, // 0 = off, 1 = on
|
||||
|
||||
uiAttributeContextualAlternates, // 0 = off, 1 = on
|
||||
uiAttributeSwashes, // 0 = off, 1 = on
|
||||
uiAttributeContextualSwashes, // 0 = off, 1 = on
|
||||
|
||||
uiAttributeLowercaseCapForms, // enum uiAttributeCapForm
|
||||
uiAttributeUppercaseCapForms, // enum uiAttributeCapForm
|
||||
|
||||
// TODO kCJKRomanSpacingType
|
||||
|
||||
// TODO uiAttributeSystem, (this might not be doable with DirectWrite)
|
||||
// TODO uiAttributeCustom,
|
||||
};
|
||||
Reference in new issue
Block a user