| 
 | |
|  | 
| 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;
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" относительно логического направления (сброс в начало буфера); в некоторых языках, таких как Иврит, логический-крайний-левый текст на самом деле не слева при отображении.
| Закладки на сайте Проследить за страницей | Created 1996-2025 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |