Package: pango

CStruct pango-log-attr

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

2021-1-6