Details The pango-log-attr structure stores information about the attributes
of a single character.
(defcstruct pango-log-attr
(is-line-break :uint)
(is-mandatory-break :uint)
(is-char-break :uint)
(is-white :uint)
(is-cursor-position :uint)
(is-word-start :uint)
(is-word-end :uint)
(is-sentence-boundary :uint)
(is-sentence-start :uint)
(is-sentence-end :uint)
(backspcaces-deletes-character :uint)
(is-expandable-space :uint)
(is-word-boundary :uint)) - is-line-break
- If set, can break line in front of character.
- is-mandatory-break
- If set, must break line in front of character.
- is-char-break
- If set, can break here when doing character wrapping.
- is-white
- Is whitespace character.
- is-cursor-position
- If set, cursor can appear in front of character.
I.e. this is a grapheme boundary, or the first character in the text. This flag implements Unicode's Grapheme Cluster Boundaries semantics.
- is-word-start
- Is first character in a word.
- is-word-end
- Is first non-word char after a word. Note that in degenerate cases, you could have both is-word-start and is-word-end set for some character.
- is-sentence-boundary
- Is a sentence boundary. There are two ways to
divide sentences. The first assigns all inter-sentence
whitespace/control/format chars to some sentence, so all chars are in some sentence; is-sentence-boundary denotes the boundaries there.
The second way does not assign between-sentence spaces, etc. to any sentence, so is-sentence_start/is-sentence-end mark the boundaries of those sentences.
- is-sentence-start
- Is first character in a sentence.
- is-sentence-end
- Is first char after a sentence. Note that in degenerate cases, you could have both is-sentence-start and is-sentence-end set for some character, e.g. no space after a period, so the next sentence starts right away.
- backspace-deletes-character
- If set, backspace deletes one character
rather than the entire grapheme cluster. This field is only meaningful on grapheme boundaries, where is-cursor-position is set. In some
languages, the full grapheme, e.g. letter + diacritics, is considered a
unit, while in others, each decomposed character in the grapheme is a unit. In the default implementation of pango-break, this bit is set
on all grapheme boundaries except those following Latin, Cyrillic or Greek base characters.
- is-expandable-space
- Is a whitespace character that can possibly be expanded for justification purposes.
- is-word-boundary
- Is a word boundary. More specifically, means that
this is not a position in the middle of a word. For example, both sides
of a punctuation mark are considered word boundaries. This flag is
particularly useful when selecting text word-by-word. This flag implements Unicode's Word Boundaries semantics.
|
| See also |