Spec-Zone.ru › GTK 3.20

GtkTextBuffer

GtkTextBuffer — Хранит атрибутированный текст для отображения в GtkTextView

Функции

GtkTextBuffer * gtk_text_buffer_new ()
gint gtk_text_buffer_get_line_count ()
gint gtk_text_buffer_get_char_count ()
GtkTextTagTable * gtk_text_buffer_get_tag_table ()
void gtk_text_buffer_insert ()
void gtk_text_buffer_insert_at_cursor ()
gboolean gtk_text_buffer_insert_interactive ()
gboolean gtk_text_buffer_insert_interactive_at_cursor ()
void gtk_text_buffer_insert_range ()
gboolean gtk_text_buffer_insert_range_interactive ()
void gtk_text_buffer_insert_with_tags ()
void gtk_text_buffer_insert_with_tags_by_name ()
void gtk_text_buffer_insert_markup ()
void gtk_text_buffer_delete ()
gboolean gtk_text_buffer_delete_interactive ()
gboolean gtk_text_buffer_backspace ()
void gtk_text_buffer_set_text ()
gchar * gtk_text_buffer_get_text ()
gchar * gtk_text_buffer_get_slice ()
void gtk_text_buffer_insert_pixbuf ()
void gtk_text_buffer_insert_child_anchor ()
GtkTextChildAnchor * gtk_text_buffer_create_child_anchor ()
GtkTextMark * gtk_text_buffer_create_mark ()
void gtk_text_buffer_move_mark ()
void gtk_text_buffer_move_mark_by_name ()
void gtk_text_buffer_add_mark ()
void gtk_text_buffer_delete_mark ()
void gtk_text_buffer_delete_mark_by_name ()
GtkTextMark * gtk_text_buffer_get_mark ()
GtkTextMark * gtk_text_buffer_get_insert ()
GtkTextMark * gtk_text_buffer_get_selection_bound ()
gboolean gtk_text_buffer_get_has_selection ()
void gtk_text_buffer_place_cursor ()
void gtk_text_buffer_select_range ()
void gtk_text_buffer_apply_tag ()
void gtk_text_buffer_remove_tag ()
void gtk_text_buffer_apply_tag_by_name ()
void gtk_text_buffer_remove_tag_by_name ()
void gtk_text_buffer_remove_all_tags ()
GtkTextTag * gtk_text_buffer_create_tag ()
void gtk_text_buffer_get_iter_at_line_offset ()
void gtk_text_buffer_get_iter_at_offset ()
void gtk_text_buffer_get_iter_at_line ()
void gtk_text_buffer_get_iter_at_line_index ()
void gtk_text_buffer_get_iter_at_mark ()
void gtk_text_buffer_get_iter_at_child_anchor ()
void gtk_text_buffer_get_start_iter ()
void gtk_text_buffer_get_end_iter ()
void gtk_text_buffer_get_bounds ()
gboolean gtk_text_buffer_get_modified ()
void gtk_text_buffer_set_modified ()
gboolean gtk_text_buffer_delete_selection ()
void gtk_text_buffer_paste_clipboard ()
void gtk_text_buffer_copy_clipboard ()
void gtk_text_buffer_cut_clipboard ()
gboolean gtk_text_buffer_get_selection_bounds ()
void gtk_text_buffer_begin_user_action ()
void gtk_text_buffer_end_user_action ()
void gtk_text_buffer_add_selection_clipboard ()
void gtk_text_buffer_remove_selection_clipboard ()
gboolean (*GtkTextBufferDeserializeFunc) ()
gboolean gtk_text_buffer_deserialize ()
gboolean gtk_text_buffer_deserialize_get_can_create_tags ()
void gtk_text_buffer_deserialize_set_can_create_tags ()
GtkTargetList * gtk_text_buffer_get_copy_target_list ()
GdkAtom * gtk_text_buffer_get_deserialize_formats ()
GtkTargetList * gtk_text_buffer_get_paste_target_list ()
GdkAtom * gtk_text_buffer_get_serialize_formats ()
GdkAtom gtk_text_buffer_register_deserialize_format ()
GdkAtom gtk_text_buffer_register_deserialize_tagset ()
GdkAtom gtk_text_buffer_register_serialize_format ()
GdkAtom gtk_text_buffer_register_serialize_tagset ()
guint8 * ( *GtkTextBufferSerializeFunc) ()
guint8 * gtk_text_buffer_serialize ()
void gtk_text_buffer_unregister_deserialize_format ()
void gtk_text_buffer_unregister_serialize_format ()

Свойства

GtkTargetList * copy-target-list Чтение
gint cursor-position Чтение
gboolean has-selection Чтение
GtkTargetList * paste-target-list Чтение
GtkTextTagTable * tag-table Чтение / Запись / Только для создания
gchar * text Чтение / Запись

Сигналы

void apply-tag Выполнить последним
void begin-user-action Выполнить последним
void changed Выполнить последним
void delete-range Выполнить последним
void end-user-action Выполнить последним
void insert-child-anchor Выполнить последним
void insert-pixbuf Выполнить последним
void insert-text Выполнить последним
void mark-deleted Выполнить последним
void mark-set Выполнить последним
void modified-changed Выполнить последним
void paste-done Выполнить последним
void remove-tag Выполнить последним

Типы и значения

GtkTextBuffer
struct GtkTextBufferClass
перечисление GtkTextBufferTargetInfo

Иерархия объектов

    GObject
    ╰── GtkTextBuffer

Включаемые файлы

#include <gtk/gtk.h>

Описание

Возможно, вам стоит начать с прочтения обзорной концепции виджета текста, в котором представлен обзор всех объектов и типов данных, связанных с виджетом текста, и как они взаимодействуют.

Функции

gtk_text_buffer_new ()

GtkTextBuffer *
gtk_text_buffer_new (GtkTextTagTable *table);

Создаёт новый буфер текста.

Параметры

table

таблица тегов или NULL для создания новой.

[allow-none]

Возвращает

новый буфер текста

gtk_text_buffer_get_line_count ()

gint
gtk_text_buffer_get_line_count (GtkTextBuffer *buffer);

Возвращает количество строк в буфере. Это значение кэшируется, поэтому функция очень быстрая.

Параметры

buffer

a GtkTextBuffer

Возвращает

количество строк в буфере

gtk_text_buffer_get_char_count ()

gint
gtk_text_buffer_get_char_count (GtkTextBuffer *buffer);

Получает количество символов в буфере; обратите внимание, что символы и байты — не одно и то же, вы не можете, например, ожидать, что содержимое буфера в строковом формате будет иметь такую же длину в байтах. Количество символов кэшируется, поэтому эта функция очень быстрая.

Параметры

buffer

a GtkTextBuffer

Возвращает

количество символов в буфере

gtk_text_buffer_get_tag_table ()

GtkTextTagTable *
gtk_text_buffer_get_tag_table (GtkTextBuffer *buffer);

Получить GtkTextTagTable, связанный с этим буфером.

Параметры

buffer

a GtkTextBuffer

Возвращает

таблицу тегов буфера.

[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

a GtkTextBuffer

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

a GtkTextBuffer

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

a GtkTextBuffer

iter

позиция в buffer

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

a GtkTextBuffer

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);

Копирует текст, теги и pixbuфы между start и end (порядок start и end не имеет значения) и вставляет копию в iter. Используется вместо простого получения/вставки текста, потому что сохраняет изображения и теги. Если start и end находятся в другом буфере, чем buffer, эти два буфера должны использовать одну и ту же таблицу тегов.

Реализовано с помощью испускания сигналов insert_text и apply_tag, так что ожидайте их.

Параметры

buffer

a GtkTextBuffer

iter

позиция в buffer

start

позиция в GtkTextBuffer

end

другая позиция в том же буфере, что и start

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

a GtkTextBuffer

iter

позиция в buffer

start

позиция в GtkTextBuffer

end

другая позиция в том же буфере, что и start

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

a GtkTextBuffer

iter

итератор в buffer

text

текст UTF-8

len

длина text, или -1

first_tag

первый тег для применения к text

...

NULL-завершённый список тегов для применения

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

a GtkTextBuffer

iter

позиция в buffer

text

текст UTF-8

len

длина text, или -1

first_tag_name

имя тега для применения к text

...

дополнительные имена тегов

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

a GtkTextBuffer

iter

место вставки разметки

markup

строка UTF-8, завершённая нулём, содержащая разметку Pango

len

длина markup в байтах, или -1

С: 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

a GtkTextBuffer

start

позиция в buffer

end

другая позиция в buffer

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

a GtkTextBuffer

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

буфер GtkTextBuffer

iter

позиция в buffer

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

буфер GtkTextBuffer

text

текст UTF-8 для вставки

len

длина text в байтах

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

буфер GtkTextBuffer

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

буфер GtkTextBuffer

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 . Изображение будет учитываться как один символ при подсчёте символов и при получении содержимого буфера в виде строки будет представлено Юникод-символом «заполнитель объекта» 0xFFFC. Обратите внимание, что в вариантах «срезов» для получения частей буфера в виде строки этот символ включён для pixbuf, но не включён в вариантах «текста». Например, см. gtk_text_buffer_get_slice() и gtk_text_buffer_get_text().

Параметры

buffer

буфер GtkTextBuffer

iter

место вставки pixbuf

pixbuf

GdkPixbuf

gtk_text_buffer_insert_child_anchor ()

void
gtk_text_buffer_insert_child_anchor (GtkTextBuffer *buffer,
                                     GtkTextIter *iter,
                                     GtkTextChildAnchor *anchor);

Вставляет якорь дочернего виджета в буфер текста в позиции iter. Якорь будет учитываться как один символ при подсчёте символов и при получении содержимого буфера в виде строки будет представлен Юникод-символом «заполнитель объекта» 0xFFFC. Обратите внимание, что варианты «срезов» для получения частей буфера в виде строки включают этот символ для якорей дочерних виджетов, но варианты «текста» — нет. См. gtk_text_buffer_get_slice() и gtk_text_buffer_get_text(). В качестве более удобной альтернативы этой функции рассмотрите gtk_text_buffer_create_child_anchor(). Буфер добавит ссылку на якорь, поэтому вы можете освободить его после вставки.

Параметры

buffer

буфер GtkTextBuffer

iter

место вставки якоря

anchor

GtkTextChildAnchor

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

a GtkTextBuffer

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

a GtkTextBuffer

mark_name

имя метки или NULL.

[allow-none]

where

местоположение для размещения метки

left_gravity

устанавливает, имеет ли метка левую гравитацию

Возвращает

новый объект GtkTextMark.

[transfer none]

gtk_text_buffer_move_mark ()

void
gtk_text_buffer_move_mark (GtkTextBuffer *buffer,
                           GtkTextMark *mark,
                           const GtkTextIter *where);

Перемещает mark в новое местоположение where . Выдаёт сигнал “mark-set” в качестве уведомления о перемещении.

Параметры

buffer

a GtkTextBuffer

mark

a GtkTextMark

where

новое местоположение для mark в buffer

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

a GtkTextBuffer

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

a GtkTextBuffer

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

a GtkTextBuffer

mark

a GtkTextMark в buffer

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

a GtkTextBuffer

name

имя метки в buffer

gtk_text_buffer_get_mark ()

GtkTextMark *
gtk_text_buffer_get_mark (GtkTextBuffer *buffer,
                          const gchar *name);

Возвращает метку с именем name в буфере buffer или NULL, если такой метки в буфере нет.

Параметры

buffer

a GtkTextBuffer

name

имя метки

Возвращаемое значение

a GtkTextMark или NULL.

[nullable][transfer none]

gtk_text_buffer_get_insert ()

GtkTextMark *
gtk_text_buffer_get_insert (GtkTextBuffer *buffer);

Возвращает метку, представляющую курсор (точку вставки). Эквивалентно вызову gtk_text_buffer_get_mark() для получения метки с именем «вставка», но немного более эффективно и требует меньше набора текста.

Параметры

buffer

a GtkTextBuffer

Возвращаемое значение

метка точки вставки.

[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

a GtkTextBuffer

Возвращаемое значение

метка границы выделения.

[transfer none]

gtk_text_buffer_get_has_selection ()

gboolean
gtk_text_buffer_get_has_selection (GtkTextBuffer *buffer);

Указывает, есть ли в буфере выделенный текст.

Параметры

buffer

a GtkTextBuffer

Возвращаемое значение

TRUE, если текст выделен

Since: 2.10

gtk_text_buffer_place_cursor ()

void
gtk_text_buffer_place_cursor (GtkTextBuffer *buffer,
                              const GtkTextIter *where);

Эта функция перемещает метки «вставка» и «selection_bound» одновременно. Если вы перемещаете их поэтапно с помощью gtk_text_buffer_move_mark(), вы временно выделите область между их старым и новым местоположениями, что может быть неэффективно, так как временно выделенная область заставит пересчитать что-то. Эта функция перемещает их как единое целое, что может быть оптимизировано.

Параметры

buffer

a GtkTextBuffer

where

куда поместить курсор

gtk_text_buffer_select-range ()

void
gtk_text_buffer_select_range (GtkTextBuffer *buffer,
                              const GtkTextIter *ins,
                              const GtkTextIter *bound);

Эта функция перемещает метки «вставка» и «selection_bound» одновременно. Если вы перемещаете их поэтапно с помощью gtk_text_buffer_move_mark(), вы временно выделите область между их старым и новым местоположениями, что может быть неэффективно, так как временно выделенная область заставит пересчитать что-то. Эта функция перемещает их как единое целое, что может быть оптимизировано.

Параметры

buffer

a GtkTextBuffer

ins

куда поместить метку «вставка»

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

a GtkTextBuffer

tag

a GtkTextTag

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

a GtkTextBuffer

tag

a GtkTextTag

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

a GtkTextBuffer

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

a GtkTextBuffer

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

a GtkTextBuffer

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().

Параметры

buffer

a GtkTextBuffer

tag_name

имя нового тега, или NULL.

[allow-none]

first_property_name

имя первого свойства для установки, или NULL.

[allow-none]

...

NULL-terminated list of property names and values

Возвращаемое значение

новый тег.

[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

a GtkTextBuffer

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

a GtkTextBuffer

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

a GtkTextBuffer

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

a GtkTextBuffer

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

a GtkTextBuffer

iter

итератор для инициализации.

[out]

mark

a GtkTextMark в buffer

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

a GtkTextBuffer

iter

итератор для инициализации.

[out]

anchor

якорная точка дочернего элемента, которая появляется в buffer

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

a GtkTextBuffer

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. Весь буфер находится в диапазоне от первой позиции в буфере (вызовите gtk_text_buffer_get_start_iter() для получения позиции символа 0) до итератора конца.

Параметры

buffer

a GtkTextBuffer

iter

итератор для инициализации.

[out]

gtk_text_buffer_get_bounds ()

void
gtk_text_buffer_get_bounds (GtkTextBuffer *buffer,
                            GtkTextIter *start,
                            GtkTextIter *end);

Получает первые и последние итераторы в буфере, т.е. весь буфер находится в диапазоне [start ,end ).

Параметры

buffer

a GtkTextBuffer

start

итератор для инициализации первой позиции в буфере.

[out]

end

итератор для инициализации итератором конца.

[out]

gtk_text_buffer_get_modified ()

gboolean
gtk_text_buffer_get_modified (GtkTextBuffer *buffer);

Указывает, был ли буфер изменён с момента последнего вызова gtk_text_buffer_set_modified(), который установил флаг изменения на FALSE. Используется, например, для включения функции «сохранить» в текстовом редакторе.

Параметры

buffer

a GtkTextBuffer

Возвращает

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

a GtkTextBuffer

setting

установка флага изменения

gtk_text_buffer_delete_selection ()

gboolean
gtk_text_buffer_delete_selection (GtkTextBuffer *buffer,
                                  gboolean interactive,
                                  gboolean default_editable);

Удаляет диапазон между метками «вставка» и «предел_выделения», то есть, текущий выделенный текст. Если interactive равно TRUE, редактируемость выделения будет учитываться (пользователи не могут удалить нередактируемый текст).

Параметры

buffer

a 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

a GtkTextBuffer

clipboard

the GtkClipboard для вставки

override_location

местоположение для вставки вставленного текста или NULL.

[allow-none]

default_editable

указывает, является ли буфер по умолчанию редактируемым

gtk_text_buffer_copy_clipboard ()

void
gtk_text_buffer_copy_clipboard (GtkTextBuffer *buffer,
                                GtkClipboard *clipboard);

Копирует текущий выделенный текст в буфер обмена.

Параметры

buffer

a GtkTextBuffer

clipboard

объект GtkClipboard для копирования

gtk_text_buffer_cut_clipboard ()

void
gtk_text_buffer_cut_clipboard (GtkTextBuffer *buffer,
                               GtkClipboard *clipboard,
                               gboolean default_editable);

Копирует текущий выделенный текст в буфер обмена, а затем удаляет указанный текст, если он редактируем.

Параметры

buffer

a 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

a GtkTextBuffer a 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(), и генерирует сигналы «начало-операции-пользователя» и «конец-операции-пользователя» только для внешней пары вызовов. Это позволяет вам создавать пользовательские действия из других пользовательских действий.

Функции модификации буфера с взаимодействием пользователя, такие как gtk_text_buffer_insert_interactive(), автоматически вызывают begin/end пользовательского действия вокруг выполняемых операций с буфером, поэтому нет необходимости добавлять дополнительные вызовы, если ваше действие пользователя состоит только из одного вызова одной из этих функций.

Параметры

buffer

a GtkTextBuffer

gtk_text_buffer_end_user_action ()

void
gtk_text_buffer_end_user_action (GtkTextBuffer *buffer);

Должен быть использован в паре с вызовом gtk_text_buffer_begin_user_action(). См. эту функцию для полного объяснения.

Параметры

buffer

a GtkTextBuffer

gtk_text_buffer_add_selection_clipboard ()

void
gtk_text_buffer_add_selection_clipboard
                               (GtkTextBuffer *buffer,
                                GtkClipboard *clipboard);

Добавляет clipboard в список буферов обмена, в которых доступно содержимое выделения buffer. В большинстве случаев, clipboard будет буфером обмена типа GDK_SELECTION_PRIMARY для представления buffer .

Параметры

buffer

a GtkTextBuffer

clipboard

a GtkClipboard

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

a GtkTextBuffer

clipboard

a GtkClipboard, добавленный к buffer с помощью gtk_text_buffer_add_selection_clipboard()

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

данные для десериализации.

[array length=length]

length

длина data

create_tags

TRUE, если при десериализации могут быть созданы теги

user_data

пользовательские данные, указанные при регистрации формата

error

место для возврата GError

Возвращаемое значение

TRUE при успехе, FALSE в противном случае

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, с которым зарегистрирован format

content_buffer

the GtkTextBuffer для десериализации

format

формат форматированного текста для десериализации

iter

точка вставки десериализованного текста

data

данные для десериализации.

[array length=length]

length

длина data

error

место для возврата GError

Возвращаемое значение

TRUE при успехе, FALSE в противном случае.

С: 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

a GtkTextBuffer

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

a GtkTextBuffer

format

a GdkAtom representing a registered rich text format

can_create_tags

разрешить создание тегов при десериализации этого формата

С: 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

a GtkTextBuffer

Возвращаемое значение

the GtkTargetList.

[transfer none]

С: 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

a GtkTextBuffer

n_formats

место для возвращаемого количества форматов.

[out]

Возвращаемое значение

массив GdkAtoms, представляющий зарегистрированные форматы.

[array length=n_formats][transfer container]

С: 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

a GtkTextBuffer

Возвращаемое значение

the GtkTargetList.

[transfer none]

С: 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

a GtkTextBuffer

n_formats

место для возвращаемого количества форматов.

[out]

Возвращаемое значение

массив GdkAtoms, представляющий зарегистрированные форматы.

[array length=n_formats][transfer container]

С: 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

a GtkTextBuffer

mime_type

MIME-тип формата

function

функция десериализации для регистрации

user_data

данные пользователя function

user_data_destroy

функция, вызываемая, когда user_data больше не нужна

Возвращаемое значение

GdkAtom, соответствующий MIME-типу нового зарегистрированного формата.

[transfer none]

С: 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

a GtkTextBuffer

tagset_name

необязательное имя набора тегов, если NULL.

[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

объект GtkTextBuffer

mime_type

mime-тип формата

function

функция сериализации для регистрации

user_data

данные пользователя function

user_data_destroy

функция, вызываемая, когда user_data больше не требуется

Возвращаемое значение

атом 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

объект GtkTextBuffer

tagset_name

необязательное имя набора тегов, может быть NULL.

[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.

Для использования formats необходимо предварительно зарегистрировать его с помощью gtk_text_buffer_register_serialize_format() или gtk_text_buffer_register_serialize_tagset().

Параметры

register_buffer

объект GtkTextBuffer, с которым зарегистрирован format

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-text”.

insert_pixbuf ()

Обработчик класса для сигнала “insert-pixbuf”.

insert_child_anchor ()

Обработчик класса для сигнала “insert-child-anchor”.

delete_range ()

Обработчик класса для сигнала “delete-range”.

changed ()

Обработчик класса для сигнала “changed”.

modified_changed ()

Обработчик класса для сигнала “modified-changed”.

mark_set ()

Обработчик класса для сигнала “mark-set”.

mark_deleted ()

Обработчик класса для сигнала “mark-deleted”.

apply_tag ()

Обработчик класса для сигнала “apply-tag”.

remove_tag ()

Обработчик класса для сигнала “remove-tag”.

begin_user_action ()

Обработчик класса для сигнала “begin-user-action”.

end_user_action ()

Обработчик класса для сигнала “end-user-action”.

paste_done ()

Обработчик класса для сигнала “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

Указывает, выбран ли в буфере текст.

Флаги: Чтение

Значение по умолчанию: FALSE

С версии: 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 в textbuffer

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 в textbuffer

pixbuf

GdkPixbuf для вставки

user_data

пользовательские данные, установленные при подключении обработчика сигнала.

Флаги: Выполнить последним

Сигнал “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 в textbuffer

text

вставляемый текст UTF-8

len

длина вставленного текста в байтах

user_data

пользовательские данные, установленные при подключении обработчика сигнала.

Флаги: Выполнить последним

Сигнал “mark-deleted”

void
user_function (GtkTextBuffer *textbuffer,
               GtkTextMark   *mark,
               gpointer       user_data)

Сигнал ::mark-deleted генерируется в качестве уведомления после удаления GtkTextMark.

См. также: gtk_text_buffer_delete_mark().

Параметры

textbuffer

объект, получивший сигнал

mark

Удаленная метка

user_data

пользовательские данные, установленные при подключении обработчика сигнала.

Флаги: Выполнить последним

Сигнал “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 в textbuffer

mark

Устанавливаемая метка

user_data

пользовательские данные, установленные при подключении обработчика сигнала.

Флаги: Выполнить последним

Сигнал “modified-changed”

void
user_function (GtkTextBuffer *textbuffer,
               gpointer       user_data)

Сигнал ::modified-changed генерируется, когда изменяется модифицированный бит GtkTextBuffer.

См. также: gtk_text_buffer_set_modified().

Параметры

textbuffer

объект, получивший сигнал

user_data

пользовательские данные, установленные при подключении обработчика сигнала.

Флаги: Выполнить последним

Сигнал “paste-done”

void
user_function (GtkTextBuffer *textbuffer,
               GtkClipboard  *clipboard,
               gpointer       user_data)

Сигнал paste-done генерируется после завершения операции вставки. Это полезно для правильной прокрутки просмотра до конца вставленного текста. Подробнее см. gtk_text_buffer_paste_clipboard().

Параметры

textbuffer

объект, получивший сигнал

clipboard

вставленный GtkClipboard

user_data

пользовательские данные, установленные при подключении обработчика сигнала.

Флаги: Выполнить последним

С версии 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

пользовательские данные, установленные при подключении обработчика сигнала.

Флаги: Выполнить последним

См. также

GtkTextView, GtkTextIter, GtkTextMark

© 2005–2020 The GNOME Project
Licensed under the GNU Lesser General Public License version 2.1 or later.
https://developer.gnome.org/gtk3/3.20/GtkTextBuffer.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API