Prev

Up

Home

GTK+ Reference Manual

Next

Top  |  Description  |  Object Hierarchy

GtkTextMark

GtkTextMark Позиция в буфере сохраняемая вопреки буферных модификации

Краткое описание

#include <gtk/gtk.h> GtkTextMark; void gtk_text_mark_set_visible (GtkTextMark *mark, gboolean setting); gboolean gtk_text_mark_get_visible (GtkTextMark *mark); gboolean gtk_text_mark_get_deleted (GtkTextMark *mark); const gchar* gtk_text_mark_get_name (GtkTextMark *mark); GtkTextBuffer* gtk_text_mark_get_buffer (GtkTextMark *mark); gboolean gtk_text_mark_get_left_gravity (GtkTextMark *mark);

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

GObject +----GtkTextMark

Описание

Предварительно вам необходимо прочесть text widget conceptual overview который даёт краткое описание всех объектов и типов данных связанных с текстовыми виджетами и как они взаимодействуют.

GtkTextMark это как закладка в текстовом буфере; она сохраняет позицию в тексте. Вы можете преобразовать маркер в итератор используя gtk_text_buffer_get_iter_at_mark(). В отличие от итераторов, маркеры остаются допустимыми вопреки изменений буфера, потому что их поведение определено когда текст вставляется или удаляется. Когда текст с маркером удаляется, маркер занимает первоначальную позицию занимаемую удаленным текстом. Когда текст вставляется в позицию маркера, маркер с left gravity будет перемещён в начало вновь-вставленного текста, а маркер с right gravity будет перемещён в конец. [3]

Маркеры являются ссылками счета, но ссылки счета только контролируют доступность памяти; маркеры могут быть удалены из буфера в любое время с помощью gtk_text_buffer_delete_mark(). После удаления из буфера маркер абсолютно бесполезен.

Маркеры опционально могут иметь имена; это может быть удобно для уничтожения переходящих GtkTextMark объектов.

Маркеры обычно создаются с помощь gtk_text_buffer_create_mark() функции.

Детали

GtkTextMark

typedef struct _GtkTextMark GtkTextMark;

gtk_text_mark_set_visible ()

void gtk_text_mark_set_visible (GtkTextMark *mark, gboolean setting);

Устанавливает видимость mark; вставляемый указатель обычно видим, то есть вы можете видеть его как вертикальную полосу. Кроме того, текстовый виджет использует видимый маркер для указания места текста после процедуры dragging-and-dropping. Большинство других маркеров являются невидимыми. Маркеры невидимы по умолчанию.

mark :

GtkTextMark

setting :

видимость маркера


gtk_text_mark_get_visible ()

gboolean    gtk_text_mark_get_visible       (GtkTextMark *mark);

Возвращает TRUE если маркер видим (то есть курсор отображается для него)

mark :

GtkTextMark

Возвращает :

TRUE если видим


gtk_text_mark_get_deleted ()

gboolean    gtk_text_mark_get_deleted       (GtkTextMark *mark);

Возвращает TRUE если маркер был удалён из буфера с помощью gtk_text_buffer_delete_mark(). Маркеры не могут использоваться после удаления.

mark :

GtkTextMark

Возвращает :

Удален ли маркер


gtk_text_mark_get_name ()

const gchar* gtk_text_mark_get_name         (GtkTextMark *mark);

Возвращает имя маркера; для анонимных маркеров возвращается NULL.

mark :

GtkTextMark

Возвращает :

Имя маркера


gtk_text_mark_get_buffer ()

GtkTextBuffer* gtk_text_mark_get_buffer     (GtkTextMark *mark);

Определяет буфер в котором расположен маркер, или NULL если маркер удален.

mark :

GtkTextMark

Возвращает :

маркеры GtkTextBuffer


gtk_text_mark_get_left_gravity ()

gboolean    gtk_text_mark_get_left_gravity  (GtkTextMark *mark);

Определяет имеет ли маркер левое притяжение (left gravity).

mark :

GtkTextMark

Возвращает :

TRUE если маркер имеет левое притяжение, иначе FALSE



[3] "left" и "right" относительно логического направления (сброс в начало буфера); в некоторых языках, таких как Иврит, логический-крайний-левый текст на самом деле не слева при отображении.