GtkTextBuffer
GtkTextBuffer — Хранит атрибутированный текст для отображения в GtkTextView
Функции
Свойства
| GtkTargetList * | copy-target-list | Чтение |
| gint | cursor-position | Чтение |
| gboolean | has-selection | Чтение |
| GtkTargetList * | paste-target-list | Чтение |
| GtkTextTagTable * | tag-table | Чтение / Запись / Только для создания |
| gchar * | text | Чтение / Запись |
Сигналы
| void | apply-tag | Run Last |
| void | begin-user-action | Run Last |
| void | changed | Run Last |
| void | delete-range | Run Last |
| void | end-user-action | Run Last |
| void | insert-child-anchor | Run Last |
| void | insert-pixbuf | Run Last |
| void | insert-text | Run Last |
| void | mark-deleted | Run Last |
| void | mark-set | Run Last |
| void | modified-changed | Run Last |
| void | paste-done | Run Last |
| void | remove-tag | Run Last |
Типы и значения
| GtkTextBuffer | |
| struct | GtkTextBufferClass |
| перечисление | GtkTextBufferTargetInfo |
Иерархия объектов
GObject ╰── GtkTextBuffer
Включаемые файлы
#include <gtk/gtk.h>
Описание
Возможно, вам стоит начать с прочтения концептуального обзора виджета текста, который предоставляет обзор всех объектов и типов данных, связанных с виджетом текста, и того, как они взаимодействуют.
Функции
gtk_text_buffer_new ()
GtkTextBuffer *
gtk_text_buffer_new (GtkTextTagTable *table); Создаёт новый буфер текста.
Параметры
table | таблица тегов или | [allow-none] |
Возвращает
новый буфер текста
gtk_text_buffer_get_line_count ()
gint
gtk_text_buffer_get_line_count (GtkTextBuffer *buffer); Получает количество строк в буфере. Это значение кэшируется, поэтому функция очень быстрая.
Параметры
buffer |
Возвращает
количество строк в буфере
gtk_text_buffer_get_char_count ()
gint
gtk_text_buffer_get_char_count (GtkTextBuffer *buffer); Получает количество символов в буфере; обратите внимание, что символы и байты не одно и то же, вы не можете, например, ожидать, что содержимое буфера в строковой форме будет иметь такую длину в байтах. Количество символов кэшируется, поэтому функция очень быстрая.
Параметры
buffer |
Возвращает
количество символов в буфере
gtk_text_buffer_get_tag_table ()
GtkTextTagTable *
gtk_text_buffer_get_tag_table (GtkTextBuffer *buffer); Получить связанную с этим буфером GtkTextTagTable.
Параметры
buffer |
Возвращает
таблицу тегов буфера.
[transfer none]
gtk_text_buffer_insert ()
void gtk_text_buffer_insert (GtkTextBuffer *buffer,GtkTextIter *iter,const gchar *text,gint len);
Вставляет len байтов text в позицию iter . Если len равно -1, text должен быть нуль-терминированным и будет вставлен целиком. Издаёт сигнал «insert-text»; фактическая вставка происходит в обработчике по умолчанию для сигнала. iter становится недействительным при вставке (потому что содержимое буфера меняется), но обработчик сигнала по умолчанию пересоздаёт его, чтобы он указывал на конец вставленного текста.
Параметры
buffer | ||
iter | позиция в буфере | |
text | текст в формате UTF-8 | |
len | длина текста в байтах, или -1 |
gtk_text_buffer_insert_at_cursor ()
void gtk_text_buffer_insert_at_cursor (GtkTextBuffer *buffer,const gchar *text,gint len);
Просто вызывает gtk_text_buffer_insert(), используя текущую позицию курсора в качестве точки вставки.
Параметры
buffer | ||
text | текст в формате UTF-8 | |
len | длина текста в байтах |
gtk_text_buffer_insert_interactive ()
gboolean gtk_text_buffer_insert_interactive (GtkTextBuffer *buffer,GtkTextIter *iter,const gchar *text,gint len,gboolean default_editable);
Подобно gtk_text_buffer_insert(), но вставка не произойдёт, если iter находится в нередактируемой позиции в буфере. Обычно вы хотите предотвратить вставки в нередактируемые позиции, если вставка происходит по действию пользователя (интерактивно).
default_editable указывает на редактируемость текста, к которому не применён влияющий на редактируемость тег. Обычно здесь подходит результат gtk_text_view_get_editable().
Параметры
buffer | ||
iter | позиция в | |
text | текст в формате UTF-8 | |
len | длина текста в байтах, или -1 | |
default_editable | редактируемость буфера по умолчанию |
Возвращает
был ли текст фактически вставлен
gtk_text_buffer_insert_interactive_at_cursor ()
gboolean gtk_text_buffer_insert_interactive_at_cursor (GtkTextBuffer *buffer,const gchar *text,gint len,gboolean default_editable);
Вызывает gtk_text_buffer_insert_interactive() в позиции курсора.
default_editable указывает на редактируемость текста, к которому не применён влияющий на редактируемость тег. Обычно здесь подходит результат gtk_text_view_get_editable().
Параметры
buffer | ||
text | текст в формате UTF-8 | |
len | длина текста в байтах, или -1 | |
default_editable | редактируемость буфера по умолчанию |
Возвращает
был ли текст фактически вставлен
gtk_text_buffer_insert_range ()
void gtk_text_buffer_insert_range (GtkTextBuffer *buffer,GtkTextIter *iter,const GtkTextIter *start,const GtkTextIter *end);
Копирует текст, теги и пиксы между start и end (порядок start и end не важен) и вставляет копию в iter . Используется вместо простого получения/вставки текста, потому что сохраняет изображения и теги. Если start и end находятся в другом буфере, отличном от buffer, два буфера должны иметь одну и ту же таблицу тегов.
Реализовано через выбросы сигналов insert_text и apply_tag, поэтому ожидайте их.
Параметры
buffer | ||
iter | позиция в | |
start | позиция в GtkTextBuffer | |
end | ещё одна позиция в том же буфере, что и |
gtk_text_buffer_insert_range_interactive ()
gboolean gtk_text_buffer_insert_range_interactive (GtkTextBuffer *buffer,GtkTextIter *iter,const GtkTextIter *start,const GtkTextIter *end,gboolean default_editable);
То же самое, что и gtk_text_buffer_insert_range(), но ничего не делает, если точка вставки не редактируема. Параметр default_editable указывает, редактируемый ли текст в позиции iter, если теги, окружающие iter, не влияют на редактируемость. Обычно результат gtk_text_view_get_editable() здесь подходит.
Параметры
buffer | ||
iter | позиция в | |
start | позиция в GtkTextBuffer | |
end | ещё одна позиция в том же буфере, что и | |
default_editable | стандартная редактируемость буфера |
Возвращаемое значение
указывает, возможна ли вставка в iter
gtk_text_buffer_insert_with_tags ()
void gtk_text_buffer_insert_with_tags (GtkTextBuffer *buffer,GtkTextIter *iter,const gchar *text,gint len,GtkTextTag *first_tag,...);
Вставляет text в buffer в позиции iter, применяя список тегов к нововставленному тексту. Последний указанный тег должен быть NULL для завершения списка. Эквивалентно вызову gtk_text_buffer_insert(), а затем gtk_text_buffer_apply_tag() на вставленном тексте; gtk_text_buffer_insert_with_tags() — просто удобная функция.
Параметры
buffer | ||
iter | итератор в | |
text | текст UTF-8 | |
len | длина | |
first_tag | первый тег для применения к | |
... |
|
gtk_text_buffer_insert_with_tags_by_name ()
void gtk_text_buffer_insert_with_tags_by_name (GtkTextBuffer *buffer,GtkTextIter *iter,const gchar *text,gint len,const gchar *first_tag_name,...);
То же самое, что и gtk_text_buffer_insert_with_tags(), но позволяет передавать имена тегов вместо самих объектов тегов.
Параметры
buffer | ||
iter | позиция в | |
text | текст UTF-8 | |
len | длина | |
first_tag_name | имя тега для применения к | |
... | ещё больше имён тегов |
gtk_text_buffer_insert_markup ()
void gtk_text_buffer_insert_markup (GtkTextBuffer *buffer,GtkTextIter *iter,const gchar *markup,gint len);
Вставляет текст из markup в позицию iter. markup будет вставлен целиком и должен быть завершён нулём, а также являться допустимым UTF-8. Вызывает сигнал “insert-text”, возможно, несколько раз; фактическая вставка происходит в обработчике по умолчанию для сигнала. iter будет указывать на конец вставленного текста по возвращении.
Параметры
buffer | ||
iter | место для вставки разметки | |
markup | строка UTF-8, завершённая нулём, содержащая разметку Pango | |
len | длина |
Since: 3.16
gtk_text_buffer_delete ()
void gtk_text_buffer_delete (GtkTextBuffer *buffer,GtkTextIter *start,GtkTextIter *end);
Удаляет текст между start и end. Порядок start и end на самом деле не важен; gtk_text_buffer_delete() их переупорядочит. Эта функция на самом деле вызывает сигнал “delete-range”, а обработчик по умолчанию для этого сигнала удаляет текст. Поскольку буфер изменяется, все активные итераторы становятся недействительными после вызова этой функции; однако start и end будут перезапущены, чтобы указать на место удаления текста.
Параметры
buffer | ||
start | позиция в | |
end | ещё одна позиция в |
gtk_text_buffer_delete_interactive ()
gboolean gtk_text_buffer_delete_interactive (GtkTextBuffer *buffer,GtkTextIter *start_iter,GtkTextIter *end_iter,gboolean default_editable);
Удаляет весь редактируемый текст в заданном диапазоне. Вызывает gtk_text_buffer_delete() для каждого редактируемого поддиапазона [start,end). start и end перепроверяются, чтобы указать на место последнего удалённого диапазона или остаются неизменными, если текст не был удалён.
Параметры
buffer | ||
start_iter | начало удаляемого диапазона | |
end_iter | конец диапазона | |
default_editable | указывает, редактируется ли буфер по умолчанию |
Возвращаемое значение
указывает, был ли удалён какой-либо текст
gtk_text_buffer_backspace ()
gboolean gtk_text_buffer_backspace (GtkTextBuffer *buffer,GtkTextIter *iter,gboolean interactive,gboolean default_editable);
Выполняет соответствующее действие, как если бы пользователь нажал клавишу Delete с курсором в позиции, указанной параметром iter. В обычном случае будет удалён один символ, но при объединении акцентов может быть удалено более одного символа, а при объединении прекомпонованных символов и акцентов — меньше одного символа.
Поскольку буфер изменяется, все активные итераторы становятся недействительными после вызова этой функции; однако, iter будет повторно инициализирован для указания места, где был удалён текст.
Параметры
buffer | ||
iter | позиция в | |
interactive | указывает, вызвана ли операция удаления взаимодействием пользователя | |
default_editable | указывает, является ли буфер по умолчанию редактируемым |
Возвращаемое значение
TRUE, если буфер был изменён
С: 2.6
gtk_text_buffer_set_text ()
void gtk_text_buffer_set_text (GtkTextBuffer *buffer,const gchar *text,gint len);
Удаляет текущее содержимое buffer и вставляет вместо него text. Если len равно -1, text должен быть завершён нулём. text должен быть валидным UTF-8.
Параметры
buffer | ||
text | UTF-8 текст для вставки | |
len | длина |
gtk_text_buffer_get_text ()
gchar * gtk_text_buffer_get_text (GtkTextBuffer *buffer,const GtkTextIter *start,const GtkTextIter *end,gboolean include_hidden_chars);
Возвращает текст в диапазоне [start ,end ). Исключает неотображаемый текст (текст, помеченный тегами, которые устанавливают атрибут невидимости), если include_hidden_chars равен FALSE. Не включает символы, представляющие встроенные изображения, поэтому индексы байтов и символов в возвращаемой строке не соответствуют индексам байтов и символов в буфере. Противопоставьте gtk_text_buffer_get_slice().
Параметры
buffer | ||
start | начало диапазона | |
end | конец диапазона | |
include_hidden_chars | включать ли невидимый текст |
Возвращаемое значение
выделенная строка UTF-8
gtk_text_buffer_get_slice ()
gchar * gtk_text_buffer_get_slice (GtkTextBuffer *buffer,const GtkTextIter *start,const GtkTextIter *end,gboolean include_hidden_chars);
Возвращает текст в диапазоне [start ,end ). Исключает неотображаемый текст (текст, помеченный тегами, которые устанавливают атрибут невидимости), если include_hidden_chars равен FALSE. Возвращаемая строка включает символ 0xFFFC всякий раз, когда буфер содержит встроенные изображения, поэтому индексы байтов и символов в возвращаемой строке соответствуют индексам байтов и символов в буфере. Противопоставьте gtk_text_buffer_get_text(). Обратите внимание, что 0xFFFC может встречаться и в обычном тексте, поэтому это не надёжный индикатор того, что в буфере находится pixbuf или виджет.
Параметры
buffer | ||
start | начало диапазона | |
end | конец диапазона | |
include_hidden_chars | включать ли невидимый текст |
Возвращаемое значение
выделенная строка UTF-8
gtk_text_buffer_insert_pixbuf ()
void gtk_text_buffer_insert_pixbuf (GtkTextBuffer *buffer,GtkTextIter *iter,GdkPixbuf *pixbuf);
Вставляет изображение в буфер текста в позиции iter. Изображение будет учитываться как один символ в подсчёте символов и будет представлено в Unicode символом «замены объекта» 0xFFFC при получении содержимого буфера в виде строки. Обратите внимание, что варианты «слайса» для получения частей буфера в виде строки включают этот символ для pixbuфов, но варианты «текста» — нет. Например, см. gtk_text_buffer_get_slice() и gtk_text_buffer_get_text().
Параметры
buffer | ||
iter | позиция для вставки pixbuf | |
pixbuf | a GdkPixbuf |
gtk_text_buffer_insert_child_anchor ()
void gtk_text_buffer_insert_child_anchor (GtkTextBuffer *buffer,GtkTextIter *iter,GtkTextChildAnchor *anchor);
Вставляет анкор виджета-потомка в буфер текста в позиции iter. Анкор будет учитываться как один символ в подсчёте символов и будет представлен в Unicode символом «замены объекта» 0xFFFC при получении содержимого буфера в виде строки. Обратите внимание, что варианты «слайса» для получения частей буфера в виде строки включают этот символ для анкоров потомков, но варианты «текста» — нет. Например, см. gtk_text_buffer_get_slice() и gtk_text_buffer_get_text(). Рассмотрите gtk_text_buffer_create_child_anchor() как более удобную альтернативу этой функции. Буфер добавит ссылку на анкор, поэтому вы можете unref его после вставки.
Параметры
buffer | ||
iter | позиция для вставки анкора | |
anchor |
gtk_text_buffer_create_child_anchor ()
GtkTextChildAnchor * gtk_text_buffer_create_child_anchor (GtkTextBuffer *buffer,GtkTextIter *iter);
Это функция-обёртка, которая просто создаёт дочерний якорь с помощью gtk_text_child_anchor_new() и вставляет его в буфер с помощью gtk_text_buffer_insert_child_anchor(). Новый якорь принадлежит буферу; счётчик ссылок не возвращается вызывающей стороне gtk_text_buffer_create_child_anchor().
Параметры
buffer | ||
iter | местоположение в буфере |
Возвращаемое значение
созданный дочерний якорь.
[transfer none]
gtk_text_buffer_create_mark ()
GtkTextMark * gtk_text_buffer_create_mark (GtkTextBuffer *buffer,const gchar *mark_name,const GtkTextIter *where,gboolean left_gravity);
Создаёт метку в позиции where . Если mark_name — NULL, метка анонимная; в противном случае метку можно получить по имени, используя gtk_text_buffer_get_mark(). Если у метки есть левая гравитация, и текст вставляется в текущее местоположение метки, метка будет перемещена влево от недавно вставленного текста. Если у метки есть правая гравитация (left_gravity = FALSE), метка окажется справа от вставленного текста. Стандартный курсор слева направо — это метка с правой гравитацией (при вводе курсор остаётся справа от текста, который вы вводите).
Вызывающая сторона этой функции не владеет ссылкой на возвращённый GtkTextMark, поэтому вы можете игнорировать возвращаемое значение, если хотите. Метки принадлежат буферу и исчезают вместе с буфером.
Выдаёт сигнал “mark-set” в качестве уведомления о первоначальном размещении метки.
Параметры
buffer | ||
mark_name | имя метки или | [allow-none] |
where | местоположение для размещения метки | |
left_gravity | имеет ли метка левую гравитацию |
gtk_text_buffer_move_mark ()
void gtk_text_buffer_move_mark (GtkTextBuffer *buffer,GtkTextMark *mark,const GtkTextIter *where);
Перемещает mark в новое местоположение where . Выдаёт сигнал “mark-set” в качестве уведомления о перемещении.
Параметры
buffer | ||
mark | ||
where | новое местоположение для |
gtk_text_buffer_move_mark_by_name ()
void gtk_text_buffer_move_mark_by_name (GtkTextBuffer *buffer,const gchar *name,const GtkTextIter *where);
Перемещает метку с именем name (которая должна существовать) в местоположение where . Подробности см. в gtk_text_buffer_move_mark().
Параметры
buffer | ||
name | имя метки | |
where | новое местоположение метки |
gtk_text_buffer_add_mark ()
void gtk_text_buffer_add_mark (GtkTextBuffer *buffer,GtkTextMark *mark,const GtkTextIter *where);
Добавляет метку в позиции where . Метка не должна добавляться в другой буфер, и если её имя не NULL, то в буфере не должно быть другой метки с таким же именем.
Выдаёт сигнал “mark-set” в качестве уведомления о первоначальном размещении метки.
Параметры
buffer | ||
mark | добавляемая метка | |
where | местоположение для размещения метки |
С: 2.12
gtk_text_buffer_delete_mark ()
void gtk_text_buffer_delete_mark (GtkTextBuffer *buffer,GtkTextMark *mark);
Удаляет mark, чтобы она больше не находилась нигде в буфере. Удаляет ссылку, которую буфер держит на метку, поэтому если вы не вызвали g_object_ref() на метке, она будет освобождена. Даже если метка не освобождается, большинство операций с mark становятся недействительными до тех пор, пока она снова не будет добавлена в буфер с помощью gtk_text_buffer_add_mark(). Используйте gtk_text_mark_get_deleted(), чтобы узнать, была ли метка удалена из её буфера. Сигнал “mark-deleted” будет выпущен в качестве уведомления после удаления метки.
Параметры
buffer | ||
mark | a GtkTextMark в |
gtk_text_buffer_delete_mark_by_name ()
void gtk_text_buffer_delete_mark_by_name (GtkTextBuffer *buffer,const gchar *name);
Удаляет метку с именем name; метка должна существовать. Подробности см. в gtk_text_buffer_delete_mark().
Параметры
buffer | ||
name | имя метки в |
gtk_text_buffer_get_mark ()
GtkTextMark * gtk_text_buffer_get_mark (GtkTextBuffer *buffer,const gchar *name);
Возвращает метку с именем name в буфере buffer или NULL, если такая метка в буфере отсутствует.
Параметры
buffer | ||
name | имя метки |
gtk_text_buffer_get_insert ()
GtkTextMark *
gtk_text_buffer_get_insert (GtkTextBuffer *buffer); Возвращает метку, представляющую курсор (точку вставки). Эквивалентно вызову gtk_text_buffer_get_mark() для получения метки с именем «insert», но немного эффективнее и требует меньше набора.
Параметры
buffer |
Возвращаемое значение
метка точки вставки.
[transfer none]
gtk_text_buffer_get_selection_bound ()
GtkTextMark *
gtk_text_buffer_get_selection_bound (GtkTextBuffer *buffer); Возвращает метку, представляющую границу выделения. Эквивалентно вызову gtk_text_buffer_get_mark() для получения метки с именем «selection_bound», но немного эффективнее и требует меньше набора.
Выделенный в настоящее время текст в buffer — это область между метками «selection_bound» и «insert». Если «selection_bound» и «insert» находятся в одном месте, выделения нет. gtk_text_buffer_get_selection_bounds() — это еще одна удобная функция для работы с выделением, если вам нужно только узнать, есть ли выделение и каковы его границы.
Параметры
buffer |
Возвращаемое значение
метка границы выделения.
[transfer none]
gtk_text_buffer_get_has_selection ()
gboolean
gtk_text_buffer_get_has_selection (GtkTextBuffer *buffer); Указывает, есть ли в буфере выделенный текст.
Параметры
buffer |
Возвращаемое значение
TRUE, если текст выделен
Since: 2.10
gtk_text_buffer_place_cursor ()
void gtk_text_buffer_place_cursor (GtkTextBuffer *buffer,const GtkTextIter *where);
Эта функция перемещает метки «insert» и «selection_bound» одновременно. Если вы перемещаете их по отдельности с помощью gtk_text_buffer_move_mark(), между их старым и новым местоположениями временно выделится область, что может быть довольно неэффективно, поскольку временно выделенная область заставит пересчитывать некоторые данные. Эта функция перемещает их как единое целое, что оптимизировано.
Параметры
buffer | ||
where | куда поместить курсор |
gtk_text_buffer_select_range ()
void gtk_text_buffer_select_range (GtkTextBuffer *buffer,const GtkTextIter *ins,const GtkTextIter *bound);
Эта функция перемещает метки «insert» и «selection_bound» одновременно. Если вы перемещаете их по отдельности с помощью gtk_text_buffer_move_mark(), между их старым и новым местоположениями временно выделится область, что может быть довольно неэффективно, поскольку временно выделенная область заставит пересчитывать некоторые данные. Эта функция перемещает их как единое целое, что оптимизировано.
Параметры
buffer | ||
ins | куда поместить метку «insert» | |
bound | куда поместить метку «selection_bound» |
Since: 2.4
gtk_text_buffer_apply_tag ()
void gtk_text_buffer_apply_tag (GtkTextBuffer *buffer,GtkTextTag *tag,const GtkTextIter *start,const GtkTextIter *end);
Вызывает сигнал «apply-tag» на buffer. Обработчик по умолчанию сигнала применяет tag к заданной области. start и end не обязательно должны быть упорядочены.
Параметры
buffer | ||
tag | ||
start | одна граница области, которая должна быть помечена | |
end | другая граница области, которая должна быть помечена |
gtk_text_buffer_remove_tag ()
void gtk_text_buffer_remove_tag (GtkTextBuffer *buffer,GtkTextTag *tag,const GtkTextIter *start,const GtkTextIter *end);
Вызывает сигнал «remove-tag». Обработчик по умолчанию сигнала удаляет все вхождения tag из заданной области. start и end не обязательно должны быть упорядочены.
Параметры
buffer | ||
tag | ||
start | одна граница области, которую нужно размечать | |
end | другая граница области, которую нужно размечать |
gtk_text_buffer_apply_tag_by_name ()
void gtk_text_buffer_apply_tag_by_name (GtkTextBuffer *buffer,const gchar *name,const GtkTextIter *start,const GtkTextIter *end);
Вызывает gtk_text_tag_table_lookup() в таблице тегов буфера, чтобы получить GtkTextTag, затем вызывает gtk_text_buffer_apply_tag().
Параметры
buffer | ||
name | имя именованного GtkTextTag | |
start | одна граница диапазона, который будет помечен | |
end | другая граница диапазона, который будет помечен |
gtk_text_buffer_remove_tag_by_name ()
void gtk_text_buffer_remove_tag_by_name (GtkTextBuffer *buffer,const gchar *name,const GtkTextIter *start,const GtkTextIter *end);
Вызывает gtk_text_tag_table_lookup() в таблице тегов буфера, чтобы получить GtkTextTag, затем вызывает gtk_text_buffer_remove_tag().
Параметры
buffer | ||
name | имя GtkTextTag | |
start | одна граница диапазона, который будет разметка удалена | |
end | другая граница диапазона, который будет разметка удалена |
gtk_text_buffer_remove_all_tags ()
void gtk_text_buffer_remove_all_tags (GtkTextBuffer *buffer,const GtkTextIter *start,const GtkTextIter *end);
Удаляет все теги в диапазоне между start и end. Будьте осторожны с этой функцией; она может удалить теги, добавленные кодом, не связанным с кодом, который вы сейчас пишете. То есть, использование этой функции, вероятно, плохая идея, если у вас есть две или более не связанные друг с другом части кода, добавляющие теги.
Параметры
buffer | ||
start | одна граница диапазона, который будет разметка удалена | |
end | другая граница диапазона, который будет разметка удалена |
gtk_text_buffer_create_tag ()
GtkTextTag * gtk_text_buffer_create_tag (GtkTextBuffer *buffer,const gchar *tag_name,const gchar *first_property_name,...);
Создает тег и добавляет его в таблицу тегов для buffer. Эквивалентно вызову gtk_text_tag_new(), а затем добавлению тега в таблицу тегов буфера. Возвращаемый тег принадлежит таблице тегов буфера, поэтому счетчик ссылок будет равен единице.
Если tag_name равен NULL, тег анонимный.
Если tag_name не равен NULL, тег с именем tag_name не должен уже существовать в таблице тегов для этого буфера.
Аргумент first_property_name и последующие аргументы представляют собой список свойств, которые нужно установить для тега, как в g_object_set().
Параметры
Возвращает
новый тег.
[transfer none]
gtk_text_buffer_get_iter_at_line_offset ()
void gtk_text_buffer_get_iter_at_line_offset (GtkTextBuffer *buffer,GtkTextIter *iter,gint line_number,gint char_offset);
Получает итератор, указывающий на char_offset в заданной строке. Обратите внимание на символы, а не байты; UTF-8 может кодировать один символ как несколько байтов.
До версии 3.20 недопустимо передавать некорректное расположение.
С версии 3.20, если line_number больше, чем количество строк в buffer, возвращается итератор конца. И если char_offset выходит за пределы строки, возвращается итератор конца строки.
Параметры
buffer | ||
iter | итератор для инициализации. | [out] |
line_number | номер строки, считая с 0 | |
char_offset | смещение символа от начала строки |
gtk_text_buffer_get_iter_at_offset ()
void gtk_text_buffer_get_iter_at_offset (GtkTextBuffer *buffer,GtkTextIter *iter,gint char_offset);
Инициализирует iter в позиции char_offset символов от начала всего буфера. Если char_offset равно -1 или больше, чем количество символов в буфере, iter инициализируется итератором конца, итератором после последнего допустимого символа в буфере.
Параметры
buffer | ||
iter | итератор для инициализации. | [out] |
char_offset | смещение символа от начала буфера, считая с 0, или -1 |
gtk_text_buffer_get_iter_at_line ()
void gtk_text_buffer_get_iter_at_line (GtkTextBuffer *buffer,GtkTextIter *iter,gint line_number);
Инициализирует iter в начало заданной строки. Если line_number больше, чем количество строк в buffer, возвращается итератор конца.
Параметры
buffer | ||
iter | итератор для инициализации. | [out] |
line_number | номер строки, считая с 0 |
gtk_text_buffer_get-iter-at-line-index ()
void gtk_text_buffer_get_iter_at_line_index (GtkTextBuffer *buffer,GtkTextIter *iter,gint line_number,gint byte_index);
Получает итератор, указывающий на byte_index внутри заданной строки. byte_index должен быть началом UTF-8 символа. Обратите внимание на байты, а не символы; UTF-8 может кодировать один символ как несколько байтов.
До версии 3.20 не разрешалось передавать некорректное местоположение.
Начиная с версии 3.20, если line_number больше, чем количество строк в buffer , возвращается итератор конца. А если byte_index находится за пределами строки, возвращается итератор конца строки.
Параметры
buffer | ||
iter | итератор для инициализации. | [out] |
line_number | номер строки, считая с 0 | |
byte_index | индекс байта от начала строки |
gtk_text_buffer_get_iter_at_mark ()
void gtk_text_buffer_get_iter_at_mark (GtkTextBuffer *buffer,GtkTextIter *iter,GtkTextMark *mark);
Инициализирует iter текущим положением mark.
Параметры
buffer | ||
iter | итератор для инициализации. | [out] |
mark | a GtkTextMark в |
gtk_text_buffer_get_iter_at_child_anchor ()
void gtk_text_buffer_get_iter_at_child_anchor (GtkTextBuffer *buffer,GtkTextIter *iter,GtkTextChildAnchor *anchor);
Получает расположение anchor внутри buffer.
Параметры
buffer | ||
iter | итератор для инициализации. | [out] |
anchor | якорь дочернего элемента, присутствующий в |
gtk_text_buffer_get_start_iter ()
void gtk_text_buffer_get_start_iter (GtkTextBuffer *buffer,GtkTextIter *iter);
Инициализирует iter первой позицией в буфере текста. Это эквивалентно использованию gtk_text_buffer_get_iter_at_offset() для получения итератора по смещению 0.
Параметры
buffer | ||
iter | итератор для инициализации. | [out] |
gtk_text_buffer_get_end_iter ()
void gtk_text_buffer_get_end_iter (GtkTextBuffer *buffer,GtkTextIter *iter);
Инициализирует iter “итератором конца”, следующим за последним допустимым символом в буфере текста. Если обращаться к нему с помощью gtk_text_iter_get_char(), значение итератора конца равно 0. Весь буфер находится в диапазоне от первой позиции в буфере (чтобы получить позицию символа 0, вызовите gtk_text_buffer_get_start_iter()) до итератора конца.
Параметры
buffer | ||
iter | итератор для инициализации. | [out] |
gtk_text_buffer_get_bounds ()
void gtk_text_buffer_get_bounds (GtkTextBuffer *buffer,GtkTextIter *start,GtkTextIter *end);
Возвращает первый и последний итераторы в буфере, т. е. весь буфер лежит в диапазоне [start ,end ).
Параметры
buffer | ||
start | итератор для инициализации первой позиции в буфере. | [out] |
end | итератор для инициализации итератора конца. | [out] |
gtk_text_buffer_get_modified ()
gboolean
gtk_text_buffer_get_modified (GtkTextBuffer *buffer); Указывает, был ли буфер изменён с момента последнего вызова gtk_text_buffer_set_modified(), установившего флаг изменения в FALSE. Используется, например, для активации функции «сохранить» в текстовом редакторе.
Параметры
buffer |
Возвращает
TRUE, если буфер был изменён
gtk_text_buffer_set_modified ()
void gtk_text_buffer_set_modified (GtkTextBuffer *buffer,gboolean setting);
Используется для отслеживания того, был ли буфер изменён с момента последней сохранения. Всякий раз, когда буфер сохраняется на диск, вызывайте gtk_text_buffer_set_modified (buffer, FALSE). При изменении буфера, бит модификации автоматически устанавливается снова. Когда бит модификации изменяется, буфер испускает сигнал “modified-changed”.
Параметры
buffer | буфер GtkTextBuffer | |
setting | значение флага модификации |
gtk_text_buffer_delete_selection ()
gboolean gtk_text_buffer_delete_selection (GtkTextBuffer *buffer,gboolean interactive,gboolean default_editable);
Удаляет диапазон между метками «вставка» и «selection_bound», то есть текущий выделенный текст. Если interactive равно TRUE, редактируемость выделения будет учитываться (пользователи не могут удалить нередактируемый текст).
Параметры
buffer | буфер GtkTextBuffer | |
interactive | признак того, вызвано ли удаление действиями пользователя | |
default_editable | является ли буфер редактируемым по умолчанию |
Возвращает
признак того, был ли выделенный текст для удаления непустым
gtk_text_buffer_paste_clipboard ()
void gtk_text_buffer_paste_clipboard (GtkTextBuffer *buffer,GtkClipboard *clipboard,GtkTextIter *override_location,gboolean default_editable);
Вставляет содержимое буфера обмена. Если override_location равно NULL, вставленный текст будет вставлен в позицию курсора, или выделение буфера будет заменено, если выделение непустое.
Примечание: вставка асинхронна, то есть мы запрашиваем данные вставки и возвращаем, и в какой-то момент позже, после выполнения основного цикла, данные вставки будут вставлены.
Параметры
buffer | буфер GtkTextBuffer | |
clipboard | буфер обмена GtkClipboard для вставки | |
override_location | место вставки вставленного текста, или | [allow-none] |
default_editable | является ли буфер редактируемым по умолчанию |
gtk_text_buffer_copy_clipboard ()
void gtk_text_buffer_copy_clipboard (GtkTextBuffer *buffer,GtkClipboard *clipboard);
Копирует текущий выделенный текст в буфер обмена.
Параметры
buffer | буфер GtkTextBuffer | |
clipboard | объект буфера обмена GtkClipboard для копирования |
gtk_text_buffer_cut_clipboard ()
void gtk_text_buffer_cut_clipboard (GtkTextBuffer *buffer,GtkClipboard *clipboard,gboolean default_editable);
Копирует текущий выделенный текст в буфер обмена, а затем удаляет указанный текст, если он редактируемый.
Параметры
buffer | буфер GtkTextBuffer | |
clipboard | объект буфера обмена GtkClipboard для обрезки | |
default_editable | редактируемость буфера по умолчанию |
gtk_text_buffer_get_selection_bounds ()
gboolean gtk_text_buffer_get_selection_bounds (GtkTextBuffer *buffer,GtkTextIter *start,GtkTextIter *end);
Возвращает TRUE, если текст выделен; помещает границы выделения в start и end (если выделение имеет длину 0, то start и end заполняются одним и тем же значением). start и end будут в порядке возрастания. Если start и end равны NULL, то они не заполняются, но возвращаемое значение всё равно указывает, выделен ли текст.
Параметры
buffer | буфер GtkTextBuffer | |
start | итератор для инициализации началом выделения. | [out] |
end | итератор для инициализации концом выделения. | [out] |
Возвращает
признак наличия выделенного текста ненулевой длины
gtk_text_buffer_begin_user_action ()
void
gtk_text_buffer_begin_user_action (GtkTextBuffer *buffer); Вызывается для указания того, что операции с буфером между этим вызовом и вызовом gtk_text_buffer_end_user_action() являются частью одной видимой пользователю операции. Операции между gtk_text_buffer_begin_user_action() и gtk_text_buffer_end_user_action() могут быть сгруппированы при создании стека отмены. GtkTextBuffer сохраняет счёт вызовов gtk_text_buffer_begin_user_action(), которые не были закрыты вызовом gtk_text_buffer_end_user_action(), и испускает сигналы «begin-user-action» и «end-user-action» только для самой внешней пары вызовов. Это позволяет формировать пользовательские действия из других пользовательских действий.
Функции изменения буфера «interactive», такие как gtk_text_buffer_insert_interactive(), автоматически вызывают begin/end user action вокруг выполняемых операций с буфером, поэтому нет необходимости добавлять дополнительные вызовы, если ваше пользовательское действие состоит только из одного вызова одной из таких функций.
Параметры
buffer | буфер GtkTextBuffer |
gtk_text_buffer_end_user_action ()
void
gtk_text_buffer_end_user_action (GtkTextBuffer *buffer); Должен быть сопряжён с вызовом gtk_text_buffer_begin_user_action(). Смотрите эту функцию для полного объяснения.
Параметры
buffer | буфер GtkTextBuffer |
gtk_text_buffer_add_selection_clipboard ()
void gtk_text_buffer_add_selection_clipboard (GtkTextBuffer *buffer,GtkClipboard *clipboard);
Добавляет clipboard в список буферов обмена, в которых доступно содержимое выделения buffer. В большинстве случаев, clipboard будет буфером обмена GtkClipboard типа GDK_SELECTION_PRIMARY для просмотра buffer.
Параметры
buffer | ||
clipboard |
gtk_text_buffer_remove_selection_clipboard ()
void gtk_text_buffer_remove_selection_clipboard (GtkTextBuffer *buffer,GtkClipboard *clipboard);
Удаляет GtkClipboard, добавленный с помощью gtk_text_buffer_add_selection_clipboard().
Параметры
buffer | ||
clipboard | a GtkClipboard, добавленный в |
GtkTextBufferDeserializeFunc ()
gboolean (*GtkTextBufferDeserializeFunc) (GtkTextBuffer *register_buffer,GtkTextBuffer *content_buffer,GtkTextIter *iter,const guint8 *data,gsize length,gboolean create_tags,gpointer user_data,GError **error);
Функция, вызываемая для десериализации форматированного текста, сериализованного с помощью gtk_text_buffer_serialize(), и вставки его в позицию iter.
Параметры
register_buffer | the GtkTextBuffer, для которого зарегистрирован формат | |
content_buffer | the GtkTextBuffer для десериализации | |
iter | точка вставки десериализованного текста | |
data | данные для десериализации. | [массив length=length] |
length | длина | |
create_tags |
| |
user_data | пользовательские данные, указанные при регистрации формата | |
error | место для возврата GError |
gtk_text_buffer_deserialize ()
gboolean gtk_text_buffer_deserialize (GtkTextBuffer *register_buffer,GtkTextBuffer *content_buffer,GdkAtom format,GtkTextIter *iter,const guint8 *data,gsize length,GError **error);
Эта функция десериализует форматированный текст в формате format и вставляет его в позицию iter.
Для использования формата formats он должен быть зарегистрирован с помощью gtk_text_buffer_register_deserialize_format() или gtk_text_buffer_register_deserialize_tagset() предварительно.
Параметры
register_buffer | the GtkTextBuffer, для которого зарегистрирован формат | |
content_buffer | the GtkTextBuffer для десериализации | |
format | используемый формат форматированного текста для десериализации | |
iter | точка вставки десериализованного текста | |
data | данные для десериализации. | [массив length=length] |
length | длина | |
error | место для возврата GError |
С: 2.10
gtk_text_buffer_deserialize_get_can_create_tags ()
gboolean gtk_text_buffer_deserialize_get_can_create_tags (GtkTextBuffer *buffer,GdkAtom format);
Эта функция возвращает значение, заданное с помощью gtk_text_buffer_deserialize_set_can_create_tags()
Параметры
buffer | ||
format | a GdkAtom представляющий зарегистрированный формат форматированного текста |
Возвращаемое значение
может ли десериализация этого формата создать теги
С: 2.10
gtk_text_buffer_deserialize_set_can_create_tags ()
void gtk_text_buffer_deserialize_set_can_create_tags (GtkTextBuffer *buffer,GdkAtom format,gboolean can_create_tags);
Используйте эту функцию, чтобы позволить функции десериализации форматированного текста создавать новые теги в буфере получателя. Обратите внимание, что использование этой функции почти всегда плохая идея, потому что зарегистрированные вами функции форматированного текста должны знать, как сопоставлять формат форматированного текста, который они обрабатывают, с набором тегов вашего буфера текста.
Возможность создания новых (произвольных!) тегов в буфере получателя предназначена для специальных форматов форматированного текста, таких как внутренний, зарегистрированный с помощью gtk_text_buffer_register_deserialize_tagset(), потому что этот формат по сути представляет собой дамп внутренней структуры буфера источника, включая имена его тегов.
Вы должны разрешить создание тегов только в том случае, если вы знаете, что делаете, например, если вы определили имя набора тегов для буферов текста вашего приложения и знаете, что прием новых тегов из этих буферов приемлем, потому что вы знаете, что ваше приложение может обрабатывать вновь созданные теги.
Параметры
buffer | ||
format | a GdkAtom представляющий зарегистрированный формат форматированного текста | |
can_create_tags | указывает, может ли десериализация этого формата создавать теги |
Since: 2.10
gtk_text_buffer_get_copy_target_list ()
GtkTargetList *
gtk_text_buffer_get_copy_target_list (GtkTextBuffer *buffer); Эта функция возвращает список целей, которые этот буфер текста может предоставить для копирования и в качестве источника перетаскивания. Цели в списке добавляются с помощью значений info из перечисления GtkTextBufferTargetInfo, используя gtk_target_list_add_rich_text_targets() и gtk_target_list_add_text_targets().
Параметры
buffer |
Since: 2.10
gtk_text_buffer_get_deserialize_formats ()
GdkAtom * gtk_text_buffer_get_deserialize_formats (GtkTextBuffer *buffer,gint *n_formats);
Эта функция возвращает зарегистрированные форматы десериализации форматированного текста с помощью buffer, используя gtk_text_buffer_register_deserialize_format() или gtk_text_buffer_register_deserialize_tagset()
Параметры
buffer | ||
n_formats | место для возврата количества форматов. | [out] |
Возвращаемое значение
массив GdkAtoms, представляющий зарегистрированные форматы.
[array length=n_formats][transfer container]
Since: 2.10
gtk_text_buffer_get_paste_target_list ()
GtkTargetList *
gtk_text_buffer_get_paste_target_list (GtkTextBuffer *buffer); Эта функция возвращает список целей, которые этот буфер текста поддерживает для вставки и в качестве пункта назначения перетаскивания. Цели в списке добавляются с помощью значений info из перечисления GtkTextBufferTargetInfo, используя gtk_target_list_add_rich_text_targets() и gtk_target_list_add_text_targets().
Параметры
buffer |
Since: 2.10
gtk_text_buffer_get_serialize_formats ()
GdkAtom * gtk_text_buffer_get_serialize_formats (GtkTextBuffer *buffer,gint *n_formats);
Эта функция возвращает зарегистрированные форматы сериализации форматированного текста с помощью buffer, используя gtk_text_buffer_register_serialize_format() или gtk_text_buffer_register_serialize_tagset()
Параметры
buffer | ||
n_formats | место для возврата количества форматов. | [out] |
Возвращаемое значение
массив GdkAtoms, представляющий зарегистрированные форматы.
[array length=n_formats][transfer container]
Since: 2.10
gtk_text_buffer_register_deserialize_format ()
GdkAtom gtk_text_buffer_register_deserialize_format (GtkTextBuffer *buffer,const gchar *mime_type,GtkTextBufferDeserializeFunc function,gpointer user_data,GDestroyNotify user_data_destroy);
Эта функция регистрирует функцию десериализации форматированного текста function вместе с ее mime_type в переданном buffer.
Параметры
buffer | ||
mime_type | mime-тип формата | |
function | функция десериализации для регистрации | |
user_data |
| |
user_data_destroy | функция, вызываемая, когда |
Возвращаемое значение
GdkAtom, соответствующий mime-типу вновь зарегистрированного формата.
[transfer none]
Since: 2.10
gtk_text_buffer_register_deserialize_tagset ()
GdkAtom gtk_text_buffer_register_deserialize_tagset (GtkTextBuffer *buffer,const gchar *tagset_name);
Эта функция регистрирует внутренний формат сериализации форматированного текста GTK+ с переданным buffer . Подробности см. в gtk_text_buffer_register_serialize_tagset().
Параметры
buffer | ||
tagset_name | необязательное имя набора тегов, по умолчанию | [allow-none] |
Возвращаемое значение
GdkAtom, соответствующий MIME-типу нового зарегистрированного формата.
[transfer none]
С: 2.10
gtk_text_buffer_register_serialize_format ()
GdkAtom gtk_text_buffer_register_serialize_format (GtkTextBuffer *buffer,const gchar *mime_type,GtkTextBufferSerializeFunc function,gpointer user_data,GDestroyNotify user_data_destroy);
Эта функция регистрирует формат сериализации форматированного текста function вместе с его mime_type с переданным buffer .
Параметры
buffer | ||
mime_type | MIME-тип формата | |
function | Функция сериализации для регистрации | |
user_data | пользовательские данные | |
user_data_destroy | функция, вызываемая при завершении использования |
Возвращаемое значение
GdkAtom, соответствующий MIME-типу нового зарегистрированного формата.
[transfer none]
С: 2.10
gtk_text_buffer_register_serialize_tagset ()
GdkAtom gtk_text_buffer_register_serialize_tagset (GtkTextBuffer *buffer,const gchar *tagset_name);
Эта функция регистрирует внутренний формат сериализации форматированного текста GTK+ с переданным buffer . Внутренний формат не соответствует никакому стандартному формату форматированного текста и работает только между экземплярами GtkTextBuffer. Он может сериализовать все теги и встроенные pixbuфы буфера текста.
Эта функция — просто обёртка вокруг gtk_text_buffer_register_serialize_format(). Используемый MIME-тип для регистрации — “application/x-gtk-text-buffer-rich-text”, или “application/x-gtk-text-buffer-rich-text;format=tagset_name ”, если было передано tagset_name.
tagset_name можно использовать для ограничения передачи форматированного текста буферам с совместимыми наборами тегов, чтобы избежать вставки неизвестных тегов. Вероятно, обычно нужно передавать идентификатор != NULL, так как набор тегов NULL требует от принимающего буфера обработки вставки произвольных тегов.
Параметры
buffer | ||
tagset_name | необязательное имя набора тегов, по умолчанию | [allow-none] |
Возвращаемое значение
GdkAtom, соответствующий MIME-типу нового зарегистрированного формата.
[transfer none]
С: 2.10
GtkTextBufferSerializeFunc ()
guint8 * (*GtkTextBufferSerializeFunc) (GtkTextBuffer *register_buffer,GtkTextBuffer *content_buffer,const GtkTextIter *start,const GtkTextIter *end,gsize *length,gpointer user_data);
Функция, вызываемая для сериализации содержимого буфера текста. Она должна вернуть сериализованную форму содержимого.
Параметры
register_buffer | GtkTextBuffer, для которого зарегистрирован формат | |
content_buffer | GtkTextBuffer, который нужно сериализовать | |
start | начало блока текста для сериализации | |
end | конец блока текста для сериализации | |
length | место для длины сериализованных данных | |
user_data | пользовательские данные, указанные при регистрации формата |
Возвращаемое значение
новый массив guint8, содержащий сериализованные данные, или NULL в случае ошибки.
[nullable]
gtk_text_buffer_serialize ()
guint8 * gtk_text_buffer_serialize (GtkTextBuffer *register_buffer,GtkTextBuffer *content_buffer,GdkAtom format,const GtkTextIter *start,const GtkTextIter *end,gsize *length);
Эта функция сериализует часть текста между start и end в формате форматированного текста, представленном format .
Формат, который нужно использовать, должен быть зарегистрирован предварительно с помощью gtk_text_buffer_register_serialize_format() или gtk_text_buffer_register_serialize_tagset().
Параметры
register_buffer | GtkTextBuffer, с которым зарегистрирован | |
content_buffer | GtkTextBuffer, который нужно сериализовать | |
format | формат форматированного текста для сериализации | |
start | начало блока текста для сериализации | |
end | конец блока текста для сериализации | |
length | место для длины сериализованных данных. | [out] |
Возвращаемое значение
данные сериализованных данных, закодированные как format .
[array length=length][transfer full]
С: 2.10
gtk_text_buffer_unregister_deserialize_format ()
void gtk_text_buffer_unregister_deserialize_format (GtkTextBuffer *buffer,GdkAtom format);
Эта функция отменяет регистрацию формата форматированного текста, ранее зарегистрированного с помощью gtk_text_buffer_register_deserialize_format() или gtk_text_buffer_register_deserialize_tagset().
Параметры
buffer | объект GtkTextBuffer | |
format | объект GdkAtom, представляющий зарегистрированный формат форматированного текста. |
С: 2.10
gtk_text_buffer_unregister_serialize_format ()
void gtk_text_buffer_unregister_serialize_format (GtkTextBuffer *buffer,GdkAtom format);
Эта функция отменяет регистрацию формата форматированного текста, ранее зарегистрированного с помощью gtk_text_buffer_register_serialize_format() или gtk_text_buffer_register_serialize_tagset()
Параметры
buffer | объект GtkTextBuffer | |
format | объект GdkAtom, представляющий зарегистрированный формат форматированного текста. |
С: 2.10
Типы и значения
GtkTextBuffer
typedef struct _GtkTextBuffer GtkTextBuffer;
struct GtkTextBufferClass
struct GtkTextBufferClass {
GObjectClass parent_class;
void (* insert_text) (GtkTextBuffer *buffer,
GtkTextIter *pos,
const gchar *new_text,
gint new_text_length);
void (* insert_pixbuf) (GtkTextBuffer *buffer,
GtkTextIter *iter,
GdkPixbuf *pixbuf);
void (* insert_child_anchor) (GtkTextBuffer *buffer,
GtkTextIter *iter,
GtkTextChildAnchor *anchor);
void (* delete_range) (GtkTextBuffer *buffer,
GtkTextIter *start,
GtkTextIter *end);
void (* changed) (GtkTextBuffer *buffer);
void (* modified_changed) (GtkTextBuffer *buffer);
void (* mark_set) (GtkTextBuffer *buffer,
const GtkTextIter *location,
GtkTextMark *mark);
void (* mark_deleted) (GtkTextBuffer *buffer,
GtkTextMark *mark);
void (* apply_tag) (GtkTextBuffer *buffer,
GtkTextTag *tag,
const GtkTextIter *start,
const GtkTextIter *end);
void (* remove_tag) (GtkTextBuffer *buffer,
GtkTextTag *tag,
const GtkTextIter *start,
const GtkTextIter *end);
void (* begin_user_action) (GtkTextBuffer *buffer);
void (* end_user_action) (GtkTextBuffer *buffer);
void (* paste_done) (GtkTextBuffer *buffer,
GtkClipboard *clipboard);
};
Члены
| Обработчик класса для сигнала “insert-text”. | |
| Обработчик класса для сигнала “insert-pixbuf”. | |
| Обработчик класса для сигнала “insert-child-anchor”. | |
| Обработчик класса для сигнала “delete-range”. | |
| Обработчик класса для сигнала “changed”. | |
| Обработчик класса для сигнала “modified-changed”. | |
| Обработчик класса для сигнала “mark-set”. | |
| Обработчик класса для сигнала “mark-deleted”. | |
| Обработчик класса для сигнала “apply-tag”. | |
| Обработчик класса для сигнала “remove-tag”. | |
| Обработчик класса для сигнала “begin-user-action”. | |
| Обработчик класса для сигнала “end-user-action”. | |
| Обработчик класса для сигнала “paste-done”. |
перечисление GtkTextBufferTargetInfo
Эти значения используются в качестве «информации» для целевых элементов, содержащихся в списках, возвращаемых gtk_text_buffer_get_copy_target_list() и gtk_text_buffer_get_paste_target_list().
Значения отсчитываются вниз от -1, чтобы избежать конфликтов с целевыми элементами, добавленными приложением, которые обычно начинаются с 0.
Члены
GTK_TEXT_BUFFER_TARGET_INFO_BUFFER_CONTENTS | Содержимое буфера | |
GTK_TEXT_BUFFER_TARGET_INFO_RICH_TEXT | Форматированный текст | |
GTK_TEXT_BUFFER_TARGET_INFO_TEXT | Текст |
Подробное описание свойств
Свойство “copy-target-list”
“copy-target-list” GtkTargetList *
Список целевых форматов, поддерживаемых этим буфером для копирования в буфер обмена и в качестве источника перетаскивания.
Флаги: Чтение
С: 2.10
Свойство “cursor-position”
“cursor-position” gint
Позиция вставки (как смещение от начала буфера). Полезно для получения уведомлений о перемещении курсора.
Флаги: Чтение
Допустимые значения: >= 0
Значение по умолчанию: 0
С: 2.10
Свойство “has-selection”
“has-selection” gboolean
Указывает, есть ли в буфере выделенный текст.
Флаги: Чтение
Значение по умолчанию: ЛОЖЬ
С: 2.10
Свойство “paste-target-list”
“paste-target-list” GtkTargetList *
Список целевых форматов, поддерживаемых этим буфером для вставки из буфера обмена и в качестве пункта назначения перетаскивания.
Флаги: Чтение
С: 2.10
Свойство “tag-table”
“tag-table” GtkTextTagTable *
Таблица тегов текста.
Флаги: Чтение / Запись / Только для построения
Свойство “text”
“text” gchar *
Содержимое текста буфера. Без дочерних виджетов и изображений, см. gtk_text_buffer_get_text() для получения дополнительной информации.
Флаги: Чтение / Запись
Значение по умолчанию: ""
С: 2.8
Подробное описание сигналов
Сигнал “apply-tag”
void user_function (GtkTextBuffer *textbuffer, GtkTextTag *tag, GtkTextIter *start, GtkTextIter *end, gpointer user_data)
Сигнал ::apply-tag генерируется для применения тега к диапазону текста в GtkTextBuffer. Применение фактически происходит в обработчике по умолчанию.
Обратите внимание, что если ваш обработчик выполняется до обработчика по умолчанию, он не должен делать недействительными итераторы start и end (или должен их перепроверять).
См. также: gtk_text_buffer_apply_tag(), gtk_text_buffer_insert_with_tags(), gtk_text_buffer_insert_range().
Параметры
textbuffer | объект, получивший сигнал | |
tag | применяемый тег | |
start | начало диапазона, к которому применяется тег | |
end | конец диапазона, к которому применяется тег | |
user_data | данные пользователя, заданные при подключении обработчика сигнала. |
Флаги: Выполнить последним
Сигнал “begin-user-action”
void user_function (GtkTextBuffer *textbuffer, gpointer user_data)
Сигнал ::begin-user-action генерируется в начале однократного, видимого пользователю, действия с GtkTextBuffer.
См. также: gtk_text_buffer_begin_user_action(), gtk_text_buffer_insert_interactive(), gtk_text_buffer_insert_range_interactive(), gtk_text_buffer_delete_interactive(), gtk_text_buffer_backspace(), gtk_text_buffer_delete_selection().
Параметры
textbuffer | объект, получивший сигнал | |
user_data | данные пользователя, заданные при подключении обработчика сигнала. |
Флаги: Выполнить последним
Сигнал “changed”
void user_function (GtkTextBuffer *textbuffer, gpointer user_data)
Сигнал ::changed генерируется, когда содержимое GtkTextBuffer изменилось.
Параметры
textbuffer | объект, получивший сигнал | |
user_data | данные пользователя, заданные при подключении обработчика сигнала. |
Флаги: Выполнить последним
Сигнал “delete-range”
void user_function (GtkTextBuffer *textbuffer, GtkTextIter *start, GtkTextIter *end, gpointer user_data)
Сигнал ::delete-range генерируется для удаления диапазона из GtkTextBuffer.
Обратите внимание, что если ваш обработчик выполняется до обработчика по умолчанию, он не должен делать недействительными итераторы start и end (или должен их перепроверять). Обработчик сигнала по умолчанию перепроверяет итераторы start и end, чтобы оба указывали на место, где текст был удален. Обработчики, которые выполняются после обработчика по умолчанию (см. g_signal_connect_after()), не имеют доступа к удаленному тексту.
См. также: gtk_text_buffer_delete().
Параметры
textbuffer | объект, получивший сигнал | |
start | начало диапазона, подлежащего удалению | |
end | конец диапазона, подлежащего удалению | |
user_data | данные пользователя, заданные при подключении обработчика сигнала. |
Флаги: Выполнить последним
Сигнал “end-user-action”
void user_function (GtkTextBuffer *textbuffer, gpointer user_data)
Сигнал ::end-user-action генерируется в конце однократного, видимого пользователю, действия с GtkTextBuffer.
См. также: gtk_text_buffer_end_user_action(), gtk_text_buffer_insert_interactive(), gtk_text_buffer_insert_range_interactive(), gtk_text_buffer_delete_interactive(), gtk_text_buffer_backspace(), gtk_text_buffer_delete_selection(), gtk_text_buffer_backspace().
Параметры
textbuffer | объект, получивший сигнал | |
user_data | данные пользователя, заданные при подключении обработчика сигнала. |
Флаги: Выполнить последним
Сигнал “insert-child-anchor”
void user_function (GtkTextBuffer *textbuffer, GtkTextIter *location, GtkTextChildAnchor *anchor, gpointer user_data)
Сигнал ::insert-child-anchor генерируется для вставки GtkTextChildAnchor в GtkTextBuffer. Вставка фактически происходит в обработчике по умолчанию.
Обратите внимание, что если ваш обработчик выполняется до обработчика по умолчанию, он не должен делать недействительным итератор location (или должен его перепроверять). Обработчик сигнала по умолчанию перепроверяет его, чтобы он располагался после вставленного anchor.
См. также: gtk_text_buffer_insert_child_anchor().
Параметры
textbuffer | объект, получивший сигнал | |
location | позиция для вставки | |
anchor | вставляемый GtkTextChildAnchor | |
user_data | данные пользователя, заданные при подключении обработчика сигнала. |
Флаги: Выполнить последним
Сигнал “insert-pixbuf”
void user_function (GtkTextBuffer *textbuffer, GtkTextIter *location, GdkPixbuf *pixbuf, gpointer user_data)
Сигнал ::insert-pixbuf генерируется для вставки GdkPixbuf в GtkTextBuffer. Вставка выполняется в обработчике по умолчанию.
Обратите внимание, что если ваш обработчик выполняется до обработчика по умолчанию, он не должен делать недействительным итератор location (или должен его перевалидировать). Обработчик сигнала по умолчанию перевалидирует его, чтобы поместить его после вставленного pixbuf.
См. также: gtk_text_buffer_insert_pixbuf().
Параметры
textbuffer | объект, получивший сигнал | |
location | позиция для вставки | |
pixbuf | вставляемый GdkPixbuf | |
user_data | пользовательские данные, установленные при подключении обработчика сигнала. |
Флаги: Run Last
Сигнал “insert-text”
void user_function (GtkTextBuffer *textbuffer, GtkTextIter *location, gchar *text, gint len, gpointer user_data)
Сигнал ::insert-text генерируется для вставки текста в GtkTextBuffer. Вставка происходит в обработчике по умолчанию.
Обратите внимание, что если ваш обработчик выполняется до обработчика по умолчанию, он не должен делать недействительным итератор location (или должен его перевалидировать). Обработчик сигнала по умолчанию перевалидирует его, чтобы указать на конец вставленного текста.
См. также: gtk_text_buffer_insert(), gtk_text_buffer_insert_range().
Параметры
textbuffer | объект, получивший сигнал | |
location | позиция для вставки | |
text | вставляемый текст UTF-8 | |
len | длина вставленного текста в байтах | |
user_data | пользовательские данные, установленные при подключении обработчика сигнала. |
Флаги: Run Last
Сигнал “mark-deleted”
void user_function (GtkTextBuffer *textbuffer, GtkTextMark *mark, gpointer user_data)
Сигнал ::mark-deleted генерируется после удаления GtkTextMark.
См. также: gtk_text_buffer_delete_mark().
Параметры
textbuffer | объект, получивший сигнал | |
mark | Удаленный маркер | |
user_data | пользовательские данные, установленные при подключении обработчика сигнала. |
Флаги: Run Last
Сигнал “mark-set”
void user_function (GtkTextBuffer *textbuffer, GtkTextIter *location, GtkTextMark *mark, gpointer user_data)
Сигнал ::mark-set генерируется после установки GtkTextMark.
См. также: gtk_text_buffer_create_mark(), gtk_text_buffer_move_mark().
Параметры
textbuffer | объект, получивший сигнал | |
location | Позиция | |
mark | Устанавливаемый маркер | |
user_data | пользовательские данные, установленные при подключении обработчика сигнала. |
Флаги: Run Last
Сигнал “modified-changed”
void user_function (GtkTextBuffer *textbuffer, gpointer user_data)
Сигнал ::modified-changed генерируется при изменении флага модификации GtkTextBuffer.
См. также: gtk_text_buffer_set_modified().
Параметры
textbuffer | объект, получивший сигнал | |
user_data | пользовательские данные, установленные при подключении обработчика сигнала. |
Флаги: Run Last
Сигнал “paste-done”
void user_function (GtkTextBuffer *textbuffer, GtkClipboard *clipboard, gpointer user_data)
Сигнал paste-done генерируется после завершения операции вставки. Это полезно для корректного прокручивания области просмотра до конца вставленного текста. Дополнительные сведения см. в gtk_text_buffer_paste_clipboard().
Параметры
textbuffer | объект, получивший сигнал | |
clipboard | используемый для вставки GtkClipboard | |
user_data | пользовательские данные, установленные при подключении обработчика сигнала. |
Флаги: Run Last
С: 2.16
Сигнал “remove-tag”
void user_function (GtkTextBuffer *textbuffer, GtkTextTag *tag, GtkTextIter *start, GtkTextIter *end, gpointer user_data)
Сигнал ::remove-tag генерируется для удаления всех вхождений tag из диапазона текста в GtkTextBuffer. Удаление выполняется в обработчике по умолчанию.
Обратите внимание, что если ваш обработчик выполняется до обработчика по умолчанию, он не должен делать недействительными итераторы start и end (или должен их перевалидировать).
См. также: gtk_text_buffer_remove_tag().
Параметры
textbuffer | объект, получивший сигнал | |
tag | удаляемый тег | |
start | начало диапазона, из которого удаляется тег | |
end | конец диапазона, из которого удаляется тег | |
user_data | пользовательские данные, установленные при подключении обработчика сигнала. |
Флаги: Run Last
См. также
© 2005–2020 The GNOME Project
Licensed under the GNU Lesser General Public License version 2.1 or later.
https://developer.gnome.org/gtk3/3.22/GtkTextBuffer.html