功能
GtkTextBufferCommitNotify
自 4.16 起提供
声明
void
(* GtkTextBufferCommitNotify) (
GtkTextBuffer* buffer,
GtkTextBufferNotifyFlags flags,
guint position,
guint length,
gpointer user_data
)
描述 [src]
一种通知回调,由 gtk_text_buffer_add_commit_notify()
使用。
你可能无法从 GtkTextBufferCommitNotify
回调修改 GtkTextBuffer
,而且 GtkTextBuffer
API 施加了强制执行。
GtkTextBufferCommitNotify
可用于在更改(在更改提交至底层 B-Tree 之前或之后)的基础缓冲区时获得通知。如果你想观察缓冲区的更改(在其他信号处理程序可能在向默认信号处理程序的途中修改状态时),则这非常有用。
当 flags
为 GTK_TEXT_BUFFER_NOTIFY_BEFORE_INSERT
时,position
设置为缓冲区开始处(以字符为单位)的偏移量,插入将在该位置发生。length
设置为要插入的字符数。在插入之前,你可能尚未检索文本。你可以使用 gtk_text_buffer_get_slice()
从 GTK_TEXT_BUFFER_NOTIFY_AFTER_INSERT
访问文本。
当 flags
为 GTK_TEXT_BUFFER_NOTIFY_AFTER_INSERT
时,position
设置为插入发生的字符的偏移量,而 length
设置为已插入的字符数。
当 flags
为 GTK_TEXT_BUFFER_NOTIFY_BEFORE_DELETE
时,position
设置为删除将发生的字符的偏移量,而 length
设置为将被删除的字符数。你仍可以使用 position
和 length
从此处理程序检索文本。
当 flags
为 GTK_TEXT_BUFFER_NOTIFY_AFTER_DELETE
时,length
设置为零,表示删除范围已提交至底层 B-Tree。你可能无法再从 GtkTextBuffer
检索已删除的文本。
自 4.16 起提供
参数
buffer
-
类型:
GtkTextBuffer
正在发送通知的文本缓冲区。
此数据归函数调用者所有。 flags
-
提交通知的 类型。
position
-
类型:
guint
文本操作的位置。
length
-
类型:
guint
文本操作的长度(以字符 计)。
user_data
-
类型:
gpointer
传递给 回调的用户数据。
参数可以为 NULL
。此数据归函数调用者所有。