31
31
/* Logical attributes of a character.
35
* @is_line_break: if set, can break line in front of character
36
* @is_mandatory_break: if set, must break line in front of character
37
* @is_char_break: if set, can break here when doing character wrapping
38
* @is_white: is whitespace character
39
* @is_cursor_position: if set, cursor can appear in front of character.
40
* i.e. this is a grapheme boundary, or the first character
42
* This flag implements Unicode's
43
* <ulink url="http://www.unicode.org/reports/tr29/">Grapheme
44
* Cluster Boundaries</ulink> semantics.
45
* @is_word_start: is first character in a word
46
* @is_word_end: is first non-word char after a word
47
* Note that in degenerate cases, you could have both @is_word_start
48
* and @is_word_end set for some character.
49
* @is_sentence_boundary: is a sentence boundary.
50
* There are two ways to divide sentences. The first assigns all
51
* inter-sentence whitespace/control/format chars to some sentence,
52
* so all chars are in some sentence; @is_sentence_boundary denotes
53
* the boundaries there. The second way doesn't assign
54
* between-sentence spaces, etc. to any sentence, so
55
* @is_sentence_start/@is_sentence_end mark the boundaries of those sentences.
56
* @is_sentence_start: is first character in a sentence
57
* @is_sentence_end: is first char after a sentence.
58
* Note that in degenerate cases, you could have both @is_sentence_start
59
* and @is_sentence_end set for some character. (e.g. no space after a
60
* period, so the next sentence starts right away)
61
* @backspace_deletes_character: if set, backspace deletes one character
62
* rather than the entire grapheme cluster. This
63
* field is only meaningful on grapheme
64
* boundaries (where @is_cursor_position is
65
* set). In some languages, the full grapheme
66
* (e.g. letter + diacritics) is considered a
67
* unit, while in others, each decomposed
68
* character in the grapheme is a unit. In the
69
* default implementation of pango_break(), this
70
* bit is set on all grapheme boundaries except
71
* those following Latin, Cyrillic or Greek base characters.
72
* @is_expandable_space: is a whitespace character that can possibly be
73
* expanded for justification purposes. (Since: 1.18)
74
* @is_word_boundary: is a word boundary.
75
* More specifically, means that this is not a position in the middle
76
* of a word. For example, both sides of a punctuation mark are
77
* considered word boundaries. This flag is particularly useful when
78
* selecting text word-by-word.
79
* This flag implements Unicode's
80
* <ulink url="http://www.unicode.org/reports/tr29/">Word
81
* Boundaries</ulink> semantics. (Since: 1.22)
83
* The #PangoLogAttr structure stores information
84
* about the attributes of a single character.
33
86
struct _PangoLogAttr
35
88
guint is_line_break : 1; /* Can break line in front of character */