结构体

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_startis_word_end 都可能设置成某个字符。

is_sentence_boundary

是一个句子边界。有两种将句子分割的方法。第一种是将句子之间的空白/控制/格式字符分配给某个句子,因此所有字符都属于某个句子;is_sentence_boundary 表示那里的边界。第二种方法不会将句子之间的空格等分配给任何句子,因此 is_sentence_start/is_sentence_end 标记这些句子的边界。

is_sentence_start

是一个句子中的第一个字符。

is_sentence_end

是在一个句子之后的第一个字符。注意在特殊情况下,is_sentence_startis_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

无可用描述。