GtkTextMark
GtkTextMark — Позиция в буфере, сохраняемая при модификациях буфера
Функции
Свойства
| gboolean | left-gravity | Чтение/Запись/Только для создания |
| gchar * | имя | Чтение/Запись/Только для создания |
Типы и значения
| структура | GtkTextMark |
Иерархия объектов
GObject ╰── GtkTextMark
Включаемые файлы
#include <gtk/gtk.h>
Описание
Рекомендуется начать с прочтения концептуального обзора виджета текста, который дает общее представление обо всех объектах и типах данных, связанных с виджетом текста и как они взаимодействуют.
GtkTextMark — это как закладка в буфере текста; она сохраняет позицию в тексте. Вы можете преобразовать метку в итератор, используя gtk_text_buffer_get_iter_at_mark(). В отличие от итераторов, метки остаются действительными при изменениях буфера, потому что их поведение определено при вставке или удалении текста. При удалении текста, содержащего метку, метка остается в позиции, которую занимал удаленный текст. При вставке текста в метку метка с «левой гравитацией» будет перемещена в начало вставленного текста, а метка с «правой гравитацией» — в конец.
Обратите внимание, что «слева» и «справа» здесь относятся к логическому направлению (влево — к началу буфера); в некоторых языках, таких как иврит, логически левая часть текста может быть не слева при отображении.
Метки используют счетчик ссылок, но счетчик ссылок контролирует только корректность памяти; метки могут быть удалены из буфера в любое время с помощью gtk_text_buffer_delete_mark(). После удаления из буфера метка становится бесполезной.
Метки могут иметь имена; это может быть удобно для избежания передачи объекта GtkTextMark.
Метки обычно создаются с помощью функции gtk_text_buffer_create_mark().
Функции
gtk_text_mark_new ()
GtkTextMark * gtk_text_mark_new (const gchar *name,gboolean left_gravity);
Создаёт метку текста. Добавьте её в буфер с помощью gtk_text_buffer_add_mark(). Если name имеет значение NULL, метка является анонимной; в противном случае её можно получить по имени, используя gtk_text_buffer_get_mark(). Если у метки установлена левая гравитация, и текст вставляется в текущую позицию метки, метка будет перемещена влево от нового вставленного текста. Если метка имеет правую гравитацию (left_gravity = FALSE), метка окажется справа от нового вставленного текста. Стандартный курсор слева направо — это метка с правой гравитацией (при наборе текст остается справа от того, что вы печатаете).
Параметры
name | имя метки или | [allow-none] |
left_gravity | указать, нужно ли метке установить левую гравитацию |
Возвращает
новую GtkTextMark
С: 2.12
gtk_text_mark_set_visible ()
void gtk_text_mark_set_visible (GtkTextMark *mark,gboolean setting);
Устанавливает видимость mark; точка вставки обычно видна, т. е. вы можете видеть её как вертикальную черту. Кроме того, виджет текста использует видимую метку для указания того, где произойдёт выпадение при перетаскивании текста. Большинство других меток не видны. По умолчанию метки не видны.
Параметры
mark | ||
setting | видимость метки |
gtk_text_mark_get_visible ()
gboolean
gtk_text_mark_get_visible (GtkTextMark *mark); Возвращает TRUE, если метка видимая (т. е. для неё отображается курсор).
Параметры
mark |
Возвращает
TRUE, если видимая
gtk_text_mark_get_deleted ()
gboolean
gtk_text_mark_get_deleted (GtkTextMark *mark); Возвращает TRUE, если метка была удалена из её буфера с помощью gtk_text_buffer_delete_mark(). См. gtk_text_buffer_add_mark() для способа её повторного добавления в буфер.
Параметры
mark |
Возвращает
удалена ли метка
gtk_text_mark_get_name ()
const gchar *
gtk_text_mark_get_name (GtkTextMark *mark); Возвращает имя метки; возвращает NULL для анонимных меток.
Параметры
mark |
Возвращает
имя метки
gtk_text_mark_get_buffer ()
GtkTextBuffer *
gtk_text_mark_get_buffer (GtkTextMark *mark); Получает буфер, в котором находится эта метка, или NULL, если метка удалена.
Параметры
mark |
gtk_text_mark_get_left_gravity ()
gboolean
gtk_text_mark_get_left_gravity (GtkTextMark *mark); Определяет, имеет ли метка левую гравитацию.
Параметры
mark |
Типы и значения
struct GtkTextMark
struct GtkTextMark;
Подробное описание свойств
Свойство “left-gravity”
“left-gravity” gboolean
Указывает, имеет ли метка левую гравитацию. Когда текст вставляется в текущую позицию метки, если метка имеет левую гравитацию, она будет перемещена влево от вставленного текста, в противном случае — вправо.
Флаги: Чтение / Запись / Только для конструирования
Значение по умолчанию: FALSE
© 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/GtkTextMark.html