功能

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 之前或之后)的基础缓冲区时获得通知。如果你想观察缓冲区的更改(在其他信号处理程序可能在向默认信号处理程序的途中修改状态时),则这非常有用。

flagsGTK_TEXT_BUFFER_NOTIFY_BEFORE_INSERT 时,position 设置为缓冲区开始处(以字符为单位)的偏移量,插入将在该位置发生。length 设置为要插入的字符数。在插入之前,你可能尚未检索文本。你可以使用 gtk_text_buffer_get_slice()GTK_TEXT_BUFFER_NOTIFY_AFTER_INSERT 访问文本。

flagsGTK_TEXT_BUFFER_NOTIFY_AFTER_INSERT 时,position 设置为插入发生的字符的偏移量,而 length 设置为已插入的字符数。

flagsGTK_TEXT_BUFFER_NOTIFY_BEFORE_DELETE 时,position 设置为删除将发生的字符的偏移量,而 length 设置为将被删除的字符数。你仍可以使用 positionlength 从此处理程序检索文本。

flagsGTK_TEXT_BUFFER_NOTIFY_AFTER_DELETE 时,length 设置为零,表示删除范围已提交至底层 B-Tree。你可能无法再从 GtkTextBuffer 检索已删除的文本。

自 4.16 起提供

参数

buffer

类型: GtkTextBuffer

正在发送通知的文本缓冲区。

此数据归函数调用者所有。
flags

类型: GtkTextBufferNotifyFlags

提交通知的 类型。

position

类型: guint

文本操作的位置。

length

类型: guint

文本操作的长度(以字符 计)。

user_data

类型: gpointer

传递给 回调的用户数据。

参数可以为 NULL
此数据归函数调用者所有。