结构体
PangoLogAttr
描述 [src]
struct PangoLogAttr {
guint is_line_break : 1;
guint is_mandatory_break : 1;
guint is_char_break : 1;
guint is_white : 1;
guint is_cursor_position : 1;
guint is_word_start : 1;
guint is_word_end : 1;
guint is_sentence_boundary : 1;
guint is_sentence_start : 1;
guint is_sentence_end : 1;
guint backspace_deletes_character : 1;
guint is_expandable_space : 1;
guint is_word_boundary : 1;
guint break_inserts_hyphen : 1;
guint break_removes_preceding : 1;
guint reserved : 17;
}
PangoLogAttr
结构体会存储关于单个字符属性的信息。
结构体成员
is_line_break
如果设置,则可以在字符前面换行。
is_mandatory_break
如果设置,则必须在字符前面换行。
is_char_break
如果设置,则可以在此位置换行,在进行字符换行时。
is_white
是空白字符。
is_cursor_position
如果设置,则光标可以出现在字符前面。即这是一个音节边界,或文本中的第一个字符。此标志是为实现 Unicode 的音节簇边界语义的。
is_word_start
是一个单词中的第一个字符。
is_word_end
是在一个单词之后的第一个非单词字符。注意在特殊情况下,
is_word_start
和is_word_end
都可能设置成某个字符。is_sentence_boundary
是一个句子边界。有两种将句子分割的方法。第一种是将句子之间的空白/控制/格式字符分配给某个句子,因此所有字符都属于某个句子;
is_sentence_boundary
表示那里的边界。第二种方法不会将句子之间的空格等分配给任何句子,因此is_sentence_start
/is_sentence_end
标记这些句子的边界。is_sentence_start
是一个句子中的第一个字符。
is_sentence_end
是在一个句子之后的第一个字符。注意在特殊情况下,
is_sentence_start
和is_sentence_end
都可能设置成某个字符。(例如,句号后没有空格,因此下一个句子会紧跟着开始)。backspace_deletes_character
如果设置,则退格键将删除一个字符,而不是整个音节簇。此字段仅在音节边界(在其中
is_cursor_position
被设置)上才有意义。在某些语言中,完整的音节(例如,字母 + 重音符号)被视为一个单位,而在其他语言中,音节中的每个分解的字符是一个单位。在pango_break()
的默认实现中,在所有音节边界上都设置此位,但拉丁字母、西里尔字母或希腊字母基本字符后面的边界除外。is_expandable_space
是一个空白字符,可以出于两端对齐的目的而扩展。(自:1.18)。
is_word_boundary
是一个单词边界,如 UAX#29 所定义。更具体地说,表示这不是单词中间的位置。例如,标点符号的两边都被视为单词边界。此标志在逐词选择文本时特别有用。此标志是为实现 Unicode 的单词边界语义的。(自:1.22)。
break_inserts_hyphen
在此 char 之前换行时,插入连字符。(自:1.50)
break_removes_preceding
在此 char 之前换行时,移除前一个字符。(自:1.50)
reserved
无可用描述。