краткое описание#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() функции. деталиgtktextmarktypedef struct _gtktextmark gtktextmark; gtk_text_mark_set_visible ()void gtk_text_mark_set_visible (gtktextmark *mark, gboolean setting); устанавливает видимость mark; вставляемый указатель обычно видим, то есть вы можете видеть его как вертикальную полосу. кроме того, текстовый виджет использует видимый маркер для указания места текста после процедуры dragging-and-dropping. большинство других маркеров являются невидимыми. маркеры невидимы по умолчанию.
gtk_text_mark_get_visible ()gboolean gtk_text_mark_get_visible (gtktextmark *mark); возвращает true если маркер видим (то есть курсор отображается для него)
gtk_text_mark_get_deleted ()gboolean gtk_text_mark_get_deleted (gtktextmark *mark); возвращает true если маркер был удалён из буфера с помощью gtk_text_buffer_delete_mark(). маркеры не могут использоваться после удаления.
gtk_text_mark_get_name ()const gchar* gtk_text_mark_get_name (gtktextmark *mark); возвращает имя маркера; для анонимных маркеров возвращается null.
gtk_text_mark_get_buffer ()gtktextbuffer* gtk_text_mark_get_buffer (gtktextmark *mark); определяет буфер в котором расположен маркер, или null если маркер удален.
gtk_text_mark_get_left_gravity ()gboolean gtk_text_mark_get_left_gravity (gtktextmark *mark); определяет имеет ли маркер левое притяжение (left gravity).
[3] "left" и "right" относительно логического направления (сброс в начало буфера); в некоторых языках, таких как иврит, логический-крайний-левый текст на самом деле не слева при отображении. |