GTK+ Reference Manual |
||||
---|---|---|---|---|
GtkTextMarkGtkTextMark Позиция в буфере сохраняемая вопреки буферных модификации |
#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() функции.
typedef struct _GtkTextMark GtkTextMark;
gtk_text_mark_set_visible ()
void gtk_text_mark_set_visible (GtkTextMark *mark, gboolean setting);
Устанавливает видимость mark; вставляемый указатель обычно видим, то есть вы можете видеть его как вертикальную полосу. Кроме того, текстовый виджет использует видимый маркер для указания места текста после процедуры dragging-and-dropping. Большинство других маркеров являются невидимыми. Маркеры невидимы по умолчанию.
mark : |
|
setting : |
видимость маркера |
gboolean gtk_text_mark_get_visible (GtkTextMark *mark);Возвращает TRUE если маркер видим (то есть курсор отображается для него)
mark : |
|
Возвращает : |
TRUE если видим |
gboolean gtk_text_mark_get_deleted (GtkTextMark *mark);Возвращает TRUE если маркер был удалён из буфера с помощью gtk_text_buffer_delete_mark(). Маркеры не могут использоваться после удаления.
mark : |
|
Возвращает : |
Удален ли маркер |
const gchar* gtk_text_mark_get_name (GtkTextMark *mark);Возвращает имя маркера; для анонимных маркеров возвращается NULL.
mark : |
|
Возвращает : |
Имя маркера |
GtkTextBuffer* gtk_text_mark_get_buffer (GtkTextMark *mark);Определяет буфер в котором расположен маркер, или NULL если маркер удален.
mark : |
|
Возвращает : |
маркеры GtkTextBuffer |
gboolean gtk_text_mark_get_left_gravity (GtkTextMark *mark);Определяет имеет ли маркер левое притяжение (left gravity).
mark : |
|
Возвращает : |
TRUE если маркер имеет левое притяжение, иначе FALSE |
[3] "left" и "right" относительно логического направления (сброс в начало буфера); в некоторых языках, таких как Иврит, логический-крайний-левый текст на самом деле не слева при отображении.