25 lines
1.4 KiB
Plaintext
25 lines
1.4 KiB
Plaintext
= attributed strings
|
|
attribute lengths are rounded to complete unicode codepoints
|
|
zero-length attributes are elided
|
|
consecutive attributes of the same type and value are merged
|
|
overlapping attributes of different types do not split each other
|
|
overlapping attributes of the same type but different values do split
|
|
empty string is allowed
|
|
empty string cannot have attributes
|
|
font family names are case-insensitive both in attributes and in descriptors
|
|
attributes are unique throughout a Unicode codepoint, not just to UTF-8 bytes
|
|
define what "it is an error" means in the case of uiFreeAttribute() and all uiAttributeValue() functions and constructors
|
|
does uiAttributeFamily() return a normalized string
|
|
should uiNewAttributeBackground() be renamed to uiNewAttributeBackgroundColor() and likewise for the type constant
|
|
should underline colors just ignore non-custom component arguments
|
|
should any color getter function accept a NULL pointer
|
|
what should uiAttributeUnderlineColor() do if the color type isn't Custom but the other pointers are non-NULL
|
|
should uiOpenTypeFeaturesGet() accept a NULL value pointer
|
|
what happens if uiOpenTypeFeaturesForEach() is given a NULl function pointer
|
|
should FeaturesAttribute be changed to OpenTypeFeaturesAttribute and likewise for the type enum
|
|
should uiNewFeaturesAttribute() accept NULL
|
|
should uiNewFamilyAttribute() accept NULL
|
|
it is an error in ForEach too
|
|
invalid values for uiDrawTextAlign
|
|
empty text layouts have one line
|