GtkTextMark
GtkTextMark — Позиция в буфере, сохраняемая при изменениях буфера
Функции
| GtkTextMark * | gtk_text_mark_new () |
| void | gtk_text_mark_set_visible () |
| gboolean | gtk_text_mark_get_visible () |
| gboolean | gtk_text_mark_get_deleted () |
| const gchar * | gtk_text_mark_get_name () |
| GtkTextBuffer * | gtk_text_mark_get_buffer () |
| gboolean | gtk_text_mark_get_left_gravity () |
Свойства
| gboolean | left-gravity | Чтение/Запись/Только для создания |
| char * | имя | Чтение/Запись/Только для создания |
Типы и значения
| struct | 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
C 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 |
Возвращаемое значение
имя метки.
[nullable]
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 |
Возвращаемое значение
TRUE , если метка имеет левую гравитацию, FALSE в противном случае
Типы и значения
struct GtkTextMark
struct GtkTextMark;
Подробности свойств
Свойство “left-gravity”
“left-gravity” gboolean
Определяет, имеет ли метка левую гравитацию. При вставке текста в текущую позицию метки, если у неё есть левая гравитация, она будет перемещена влево от вставленного текста, в противном случае — вправо.
Владелец: GtkTextMark
Флаги: Чтение / Запись / Только для создания
Значение по умолчанию: FALSE
Свойство “name”
“name” char *
Имя метки или NULL , если метка анонимна.
Владелец: GtkTextMark
Флаги: Чтение / Запись / Только для создания
Значение по умолчанию: NULL
© 2005–2020 The GNOME Project
Licensed under the GNU Lesser General Public License version 2.1 or later.
https://developer.gnome.org/gtk3/3.24/GtkTextMark.html