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 char * | gtk_text_mark_get_name () |
| GtkTextBuffer * | gtk_text_mark_get_buffer () |
| gboolean | gtk_text_mark_get_left_gravity () |
Свойства
| gboolean | left-gravity | Чтение/Запись/Только для создания |
| char * | name | Чтение/Запись/Только для создания |
Типы и значения
| 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 char *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
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 char *
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 в противном случае
Типы и значения
Структура 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-old.gnome.org/gtk4/4.0/GtkTextMark.html