Spec-Zone.ru › GTK 3.22

GtkTextIter

GtkTextIter — Итератор буфера текста

Функции

GtkTextBuffer * gtk_text_iter_get_buffer ()
GtkTextIter * gtk_text_iter_copy ()
void gtk_text_iter_assign ()
void gtk_text_iter_free ()
gint gtk_text_iter_get_offset ()
gint gtk_text_iter_get_line ()
gint gtk_text_iter_get_line_offset ()
gint gtk_text_iter_get_line_index ()
gint gtk_text_iter_get_visible_line_index ()
gint gtk_text_iter_get_visible_line_offset ()
gunichar gtk_text_iter_get_char ()
gchar * gtk_text_iter_get_slice ()
gchar * gtk_text_iter_get_text ()
gchar * gtk_text_iter_get_visible_slice ()
gchar * gtk_text_iter_get_visible_text ()
GdkPixbuf * gtk_text_iter_get_pixbuf ()
GSList * gtk_text_iter_get_marks ()
GSList * gtk_text_iter_get_toggled_tags ()
GtkTextChildAnchor * gtk_text_iter_get_child_anchor ()
gboolean gtk_text_iter_starts_tag ()
gboolean gtk_text_iter_begins_tag ()
gboolean gtk_text_iter_ends_tag ()
gboolean gtk_text_iter_toggles_tag ()
gboolean gtk_text_iter_has_tag ()
GSList * gtk_text_iter_get_tags ()
gboolean gtk_text_iter_editable ()
gboolean gtk_text_iter_can_insert ()
gboolean gtk_text_iter_starts_word ()
gboolean gtk_text_iter_ends_word ()
gboolean gtk_text_iter_inside_word ()
gboolean gtk_text_iter_starts_line ()
gboolean gtk_text_iter_ends_line ()
gboolean gtk_text_iter_starts_sentence ()
gboolean gtk_text_iter_ends_sentence ()
gboolean gtk_text_iter_inside_sentence ()
gboolean gtk_text_iter_is_cursor_position ()
gint gtk_text_iter_get_chars_in_line ()
gint gtk_text_iter_get_bytes_in_line ()
gboolean gtk_text_iter_get_attributes ()
PangoLanguage * gtk_text_iter_get_language ()
gboolean gtk_text_iter_is_end ()
gboolean gtk_text_iter_is_start ()
gboolean gtk_text_iter_forward_char ()
gboolean gtk_text_iter_backward_char ()
gboolean gtk_text_iter_forward_chars ()
gboolean gtk_text_iter_backward_chars ()
gboolean gtk_text_iter_forward_line ()
gboolean gtk_text_iter_backward_line ()
gboolean gtk_text_iter_forward_lines ()
gboolean gtk_text_iter_backward_lines ()
gboolean gtk_text_iter_forward_word_ends ()
gboolean gtk_text_iter_backward_word_starts ()
gboolean gtk_text_iter_forward_word_end ()
gboolean gtk_text_iter_backward_word_start ()
gboolean gtk_text_iter_forward_cursor_position ()
gboolean gtk_text_iter_backward_cursor_position ()
gboolean gtk_text_iter_forward_cursor_positions ()
gboolean gtk_text_iter_backward_cursor_positions ()
gboolean gtk_text_iter_backward_sentence_start ()
gboolean gtk_text_iter_backward_sentence_starts ()
gboolean gtk_text_iter_forward_sentence_end ()
gboolean gtk_text_iter_forward_sentence_ends ()
gboolean gtk_text_iter_forward_visible_word_ends ()
gboolean gtk_text_iter_backward_visible_word_starts ()
gboolean gtk_text_iter_forward_visible_word_end ()
gboolean gtk_text_iter_backward_visible_word_start ()
gboolean gtk_text_iter_forward_visible_cursor_position ()
gboolean gtk_text_iter_backward_visible_cursor_position ()
gboolean gtk_text_iter_forward_visible_cursor_positions ()
gboolean gtk_text_iter_backward_visible_cursor_positions ()
gboolean gtk_text_iter_forward_visible_line ()
gboolean gtk_text_iter_backward_visible_line ()
gboolean gtk_text_iter_forward_visible_lines ()
gboolean gtk_text_iter_backward_visible_lines ()
void gtk_text_iter_set_offset ()
void gtk_text_iter_set_line ()
void gtk_text_iter_set_line_offset ()
void gtk_text_iter_set_line_index ()
void gtk_text_iter_set_visible_line_index ()
void gtk_text_iter_set_visible_line_offset ()
void gtk_text_iter_forward_to_end ()
gboolean gtk_text_iter_forward_to_line_end ()
gboolean gtk_text_iter_forward_to_tag_toggle ()
gboolean gtk_text_iter_backward_to_tag_toggle ()
gboolean (*GtkTextCharPredicate) ()
gboolean gtk_text_iter_forward_find_char ()
gboolean gtk_text_iter_backward_find_char ()
gboolean gtk_text_iter_forward_search ()
gboolean gtk_text_iter_backward_search ()
gboolean gtk_text_iter_equal ()
gint gtk_text_iter_compare ()
gboolean gtk_text_iter_in_range ()
void gtk_text_iter_order ()

Типы и значения

GtkTextIter
перечисление GtkTextSearchFlags

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

    GBoxed
    ╰── GtkTextIter

Включенные файлы

#include <gtk/gtk.h>

Описание

Возможно, вам будет полезно начать с ознакомления с обзорной концепцией виджета текста, в котором представлено общее описание всех объектов и типов данных, связанных с виджетом текста, и как они взаимодействуют.

Функции

gtk_text_iter_get_buffer ()

GtkTextBuffer *
gtk_text_iter_get_buffer (const GtkTextIter *iter);

Возвращает GtkTextBuffer, с которым связан этот итератор.

Параметры

iter

итератор

Возвращаемое значение

буфер.

[transfer none]

gtk_text_iter_copy ()

GtkTextIter *
gtk_text_iter_copy (const GtkTextIter *iter);

Создает динамически выделенную копию итератора. Эта функция бесполезна в приложениях, так как итераторы можно копировать с помощью простого присваивания (GtkTextIter i = j;). Функция используется языковыми связующими.

Параметры

iter

итератор

Возвращаемое значение

копию iter, освобождаемую с помощью gtk_text_iter_free()

gtk_text_iter_assign ()

void
gtk_text_iter_assign (GtkTextIter *iter,
                      const GtkTextIter *other);

Присваивает значение other переменной iter. Эта функция бесполезна в приложениях, так как итераторы можно присвоить с помощью GtkTextIter i = j;. Функция используется языковыми связующими.

Параметры

iter

a GtkTextIter

other

another GtkTextIter

С: 3.2

gtk_text_iter_free ()

void
gtk_text_iter_free (GtkTextIter *iter);

Освобождает итератор, выделенный в куче. Эта функция предназначена для использования языковыми связующими и не особенно полезна для приложений, так как итераторы можно просто выделить в стеке.

Параметры

iter

динамически выделенный итератор

gtk_text_iter_get_offset ()

gint
gtk_text_iter_get_offset (const GtkTextIter *iter);

Возвращает смещение символа итератора. Каждый символ в GtkTextBuffer имеет смещение, начиная с 0 для первого символа в буфере. Используйте gtk_text_buffer_get_iter_at_offset() для преобразования смещения обратно в итератор.

Параметры

iter

итератор

Возвращаемое значение

смещение символа

gtk_text_iter_get_line ()

gint
gtk_text_iter_get_line (const GtkTextIter *iter);

Возвращает номер строки, содержащей итератор. Строки в GtkTextBuffer нумеруются, начиная с 0 для первой строки в буфере.

Параметры

iter

итератор

Возвращаемое значение

номер строки

gtk_text_iter_get_line_offset ()

gint
gtk_text_iter_get_line_offset (const GtkTextIter *iter);

Возвращает смещение символа итератора, считая от начала строки, завершающейся символом новой строки. Первый символ в строке имеет смещение 0.

Параметры

iter

итератор

Возвращаемое значение

смещение от начала строки

gtk_text_iter_get_line_index ()

gint
gtk_text_iter_get_line_index (const GtkTextIter *iter);

Возвращает индекс байта итератора, считая от начала строки, завершающейся символом новой строки. Помните, что GtkTextBuffer кодирует текст в формате UTF-8, и символы могут занимать переменное количество байт.

Параметры

iter

итератор

Возвращаемое значение

расстояние от начала строки в байтах

gtk_text_iter_get_visible_line_index ()

gint
gtk_text_iter_get_visible_line_index (const GtkTextIter *iter);

Возвращает количество байтов от начала строки до данного iter , не считая байты, невидимые из-за тегов, у которых включён флаг «невидимый».

Параметры

iter

a GtkTextIter

Возвращаемое значение

индекс байта iter относительно начала строки

gtk_text_iter_get_visible_line_offset ()

gint
gtk_text_iter_get_visible_line_offset (const GtkTextIter *iter);

Возвращает смещение в символах от начала строки до данного iter , не считая символы, невидимые из-за тегов, у которых включён флаг «невидимый».

Параметры

iter

a GtkTextIter

Возвращаемое значение

смещение в видимых символах от начала строки

gtk_text_iter_get_char ()

gunichar
gtk_text_iter_get_char (const GtkTextIter *iter);

Возвращает символ Юникод в этом итераторе. (Эквивалентно оператору * для C++ итератора.) Если элемент в этом итераторе является несимвольным элементом, таким как изображение, вставленное в буфер, возвращается символ Юникод «неизвестный» 0xFFFC. Если вызывается на конце итератора, возвращается ноль; ноль не является допустимым символом Юникод. Поэтому вы можете написать цикл, который завершается, когда gtk_text_iter_get_char() возвращает 0.

Параметры

iter

итератор

Возвращаемое значение

символ Юникод или 0, если iter нельзя декрементировать

gtk_text_iter_get_slice ()

gchar *
gtk_text_iter_get_slice (const GtkTextIter *start,
                         const GtkTextIter *end);

Возвращает текст в заданном диапазоне. «Срез» — это массив символов, закодированных в формате UTF-8, включая символ Юникод «неизвестный» 0xFFFC для элементов, не являющихся символами, в итерируемом буфере, таких как изображения. Так как изображения кодируются в срезе, байтовые и символьные смещения в возвращаемом массиве соответствуют байтовым смещениям в буфере текста. Обратите внимание, что 0xFFFC также может встречаться в обычном тексте, поэтому это не надёжный индикатор наличия пикбюра или виджета в буфере.

Параметры

start

итератор в начале диапазона

end

итератор в конце диапазона

Возвращаемое значение

срез текста из буфера.

[transfer full]

gtk_text_iter_get_text ()

gchar *
gtk_text_iter_get_text (const GtkTextIter *start,
                        const GtkTextIter *end);

Возвращает текст в заданном диапазоне. Если диапазон содержит элементы, не являющиеся текстом, такие как изображения, то смещения символов и байтов в возвращаемой строке не будут соответствовать смещениям символов и байтов в буфере. Если вам нужны смещения, соответствующие смещениям, см. gtk_text_iter_get_slice().

Параметры

start

итератор в начале диапазона

end

итератор в конце диапазона

Возвращает

массив символов из буфера.

[transfer full]

gtk_text_iter_get_visible_slice ()

gchar *
gtk_text_iter_get_visible_slice (const GtkTextIter *start,
                                 const GtkTextIter *end);

Как gtk_text_iter_get_slice(), но не включает невидимый текст. Невидимый текст обычно невидим, потому что к нему применена метка GtkTextTag со свойством «невидимый», установленным в включённое состояние.

Параметры

start

итератор в начале диапазона

end

итератор в конце диапазона

Возвращает

срез текста из буфера.

[transfer full]

gtk_text_iter_get_visible_text ()

gchar *
gtk_text_iter_get_visible_text (const GtkTextIter *start,
                                const GtkTextIter *end);

Как gtk_text_iter_get_text(), но не включает невидимый текст. Невидимый текст обычно невидим, потому что к нему применена метка GtkTextTag со свойством «невидимый», установленным в включённое состояние.

Параметры

start

итератор в начале диапазона

end

итератор в конце диапазона

Возвращает

строка, содержащая видимый текст в диапазоне.

[transfer full]

gtk_text_iter_get_pixbuf ()

GdkPixbuf *
gtk_text_iter_get_pixbuf (const GtkTextIter *iter);

Если элемент в iter является pixbuf, то возвращается pixbuf (без добавления новой ссылки). В противном случае возвращается NULL.

Параметры

iter

итератор

Возвращает

pixbuf в iter .

[transfer none]

gtk_text_iter_get_marks ()

GSList *
gtk_text_iter_get_marks (const GtkTextIter *iter);

Возвращает список всех меток GtkTextMark в этом месте. Поскольку метки не итерируемы (они не занимают никакого «пространства» в буфере, они просто метки между итерируемыми местоположениями), в одном месте может существовать несколько меток. Возвращаемый список не упорядочен осмысленным образом.

Параметры

iter

итератор

Возвращает

список меток GtkTextMark.

[element-type GtkTextMark][transfer container]

gtk_text_iter_get_toggled_tags ()

GSList *
gtk_text_iter_get_toggled_tags (const GtkTextIter *iter,
                                gboolean toggled_on);

Возвращает список меток GtkTextTag, которые включены или выключены в этой точке. (Если toggled_on равен TRUE, список содержит метки, которые включены.) Если метка включена в iter , то некоторый непустой диапазон символов, следующих за iter , имеет эту метку. Если метка выключена, то некоторый непустой диапазон, следующий за iter, не имеет эту метку.

Параметры

iter

итератор

toggled_on

TRUE, чтобы получить включенные метки

Возвращает

метки, переключенные в этой точке.

[element-type GtkTextTag][transfer container]

gtk_text_iter_get_child_anchor ()

GtkTextChildAnchor *
gtk_text_iter_get_child_anchor (const GtkTextIter *iter);

Если местоположение в iter содержит дочерний якорь, то возвращается якорь (без добавления новой ссылки). В противном случае возвращается NULL.

Параметры

iter

итератор

Возвращает

якорь в iter .

[transfer none]

gtk_text_iter_starts_tag ()

gboolean
gtk_text_iter_starts_tag (const GtkTextIter *iter,
                          GtkTextTag *tag);

Возвращает TRUE, если tag включена в точности в этой точке. Если tag равен NULL, возвращает TRUE, если любая метка включена в этой точке.

Обратите внимание, что если gtk_text_iter_starts_tag() возвращает TRUE, это означает, что iter находится в начале помеченного диапазона, и что символ в iter находится внутри помеченного диапазона. Другими словами, в отличие от gtk_text_iter_ends_tag(), если gtk_text_iter_starts_tag() возвращает TRUE, gtk_text_iter_has_tag() также вернёт TRUE для тех же параметров.

Параметры

iter

итератор

tag

метка GtkTextTag или NULL.

[nullable]

Возвращает

является ли iter началом диапазона, помеченного tag

С: 3.20

gtk_text_iter_begins_tag ()

gboolean
gtk_text_iter_begins_tag (const GtkTextIter *iter,
                          GtkTextTag *tag);

gtk_text_iter_begins_tag устарело начиная с версии 3.20 и не должно использоваться в новом коде.

Используйте gtk_text_iter_starts_tag() вместо этого.

Возвращает TRUE, если tag включен ровно в этой точке. Если tag равен NULL, возвращает TRUE, если какой-либо тег включён в этой точке.

Обратите внимание, что если gtk_text_iter_begins_tag() возвращает TRUE, это означает, что iter находится в начале помеченной области, а символ в iter находится внутри помеченной области. Другими словами, в отличие от gtk_text_iter_ends_tag(), если gtk_text_iter_begins_tag() возвращает TRUE, gtk_text_iter_has_tag() также вернёт TRUE для тех же параметров.

Параметры

iter

итератор

tag

тег GtkTextTag или NULL.

[nullable]

Возвращаемое значение

является ли iter началом области, помеченной тегом tag

gtk_text_iter_ends_tag ()

gboolean
gtk_text_iter_ends_tag (const GtkTextIter *iter,
                        GtkTextTag *tag);

Возвращает TRUE, если tag выключен ровно в этой точке. Если tag равен NULL, возвращает TRUE, если какой-либо тег выключен в этой точке.

Обратите внимание, что если gtk_text_iter_ends_tag() возвращает TRUE, это означает, что iter находится в конце помеченной области, но символ в iter находится вне помеченной области. Другими словами, в отличие от gtk_text_iter_starts_tag(), если gtk_text_iter_ends_tag() возвращает TRUE, gtk_text_iter_has_tag() вернёт FALSE для тех же параметров.

Параметры

iter

итератор

tag

тег GtkTextTag или NULL.

[allow-none]

Возвращаемое значение

является ли iter концом области, помеченной тегом tag

gtk_text_iter_toggles_tag ()

gboolean
gtk_text_iter_toggles_tag (const GtkTextIter *iter,
                           GtkTextTag *tag);

Это эквивалентно (gtk_text_iter_starts_tag() || gtk_text_iter_ends_tag()), т.е. указывает, начинается или заканчивается ли область с применением tag в iter.

Параметры

iter

итератор

tag

тег GtkTextTag или NULL.

[allow-none]

Возвращаемое значение

включается или выключается ли tag в iter

gtk_text_iter_has_tag ()

gboolean
gtk_text_iter_has_tag (const GtkTextIter *iter,
                       GtkTextTag *tag);

Возвращает TRUE, если iter указывает на символ, который входит в область, помеченную тегом tag. См. также gtk_text_iter_starts_tag() и gtk_text_iter_ends_tag().

Параметры

iter

итератор

tag

тег GtkTextTag

Возвращаемое значение

помечен ли iter тегом tag

gtk_text_iter_get_tags ()

GSList *
gtk_text_iter_get_tags (const GtkTextIter *iter);

Возвращает список тегов, применимых к iter, в порядке возрастания приоритета (теги с наивысшим приоритетом находятся последними). Теги GtkTextTag в списке не имеют добавленной ссылки, но вы должны освободить сам список.

Параметры

iter

итератор GtkTextIter

Возвращаемое значение

список тегов GtkTextTag.

[element-type GtkTextTag][transfer container]

gtk_text_iter_editable ()

gboolean
gtk_text_iter_editable (const GtkTextIter *iter,
                        gboolean default_setting);

Возвращает, находится ли символ в iter в редактируемой области текста. Неизменяемый текст «заблокирован» и не может быть изменен пользователем через GtkTextView. Эта функция является просто удобной оберткой вокруг gtk_text_iter_get_attributes(). Если ни один тег, примененный к этому тексту, не влияет на редактируемость, будет возвращено default_setting.

Не следует использовать эту функцию для определения того, можно ли вставить текст в iter, поскольку для вставки вам не нужно знать, находится ли символ в iter внутри редактируемого диапазона, вам нужно знать, будет ли новый символ, вставленный в iter, внутри редактируемого диапазона. Используйте gtk_text_iter_can_insert() для обработки этого случая.

Параметры

iter

итератор

default_setting

TRUE если текст редактируется по умолчанию

Возвращаемое значение

находится ли iter внутри редактируемого диапазона

gtk_text_iter_can_insert ()

gboolean
gtk_text_iter_can_insert (const GtkTextIter *iter,
                          gboolean default_editability);

Учитывая редактируемость буфера по умолчанию и теги, влияющие на редактируемость, определяет, будет ли текст, вставленный в iter, редактируемым. Если текст, вставленный в iter, будет редактируемым, то пользователю следует разрешить вставку текста в iter. gtk_text_buffer_insert_interactive() использует эту функцию для определения того, разрешены ли вставки в заданной позиции.

Параметры

iter

итератор

default_editability

TRUE если текст редактируется по умолчанию

Возвращаемое значение

будет ли текст, вставленный в iter, редактируемым

gtk_text_iter_starts_word ()

gboolean
gtk_text_iter_starts_word (const GtkTextIter *iter);

Определяет, начинается ли iter со слова на естественном языке. Разрывы слов определяются Pango и должны быть правильными практически для любого языка (если нет, правильное исправление будет внесено в алгоритмы разрыва слов Pango).

Параметры

iter

a GtkTextIter

Возвращаемое значение

TRUE если iter находится в начале слова

gtk_text_iter_ends_word ()

gboolean
gtk_text_iter_ends_word (const GtkTextIter *iter);

Определяет, заканчивается ли iter словом на естественном языке. Разрывы слов определяются Pango и должны быть правильными практически для любого языка (если нет, правильное исправление будет внесено в алгоритмы разрыва слов Pango).

Параметры

iter

a GtkTextIter

Возвращаемое значение

TRUE если iter находится в конце слова

gtk_text_iter_inside_word ()

gboolean
gtk_text_iter_inside_word (const GtkTextIter *iter);

Определяет, является ли символ, на который указывает iter, частью слова на естественном языке (в отличие от, например, внутри каких-либо пробелов). Разрывы слов определяются Pango и должны быть правильными практически для любого языка (если нет, правильное исправление будет внесено в алгоритмы разрыва слов Pango).

Обратите внимание, что если gtk_text_iter_starts_word() возвращает TRUE, то эта функция также возвращает TRUE, поскольку iter указывает на первый символ слова.

Параметры

iter

a GtkTextIter

Возвращаемое значение

TRUE если iter находится внутри слова

gtk_text_iter_starts_line ()

gboolean
gtk_text_iter_starts_line (const GtkTextIter *iter);

Возвращает TRUE, если iter начинается с абзаца, т. е. если gtk_text_iter_get_line_offset() вернет 0. Однако эта функция потенциально более эффективна, чем gtk_text_iter_get_line_offset(), поскольку ей не нужно вычислять смещение, ей просто нужно увидеть, равно ли оно 0.

Параметры

iter

итератор

Возвращаемое значение

начинается ли iter со строки

gtk_text_iter_ends_line ()

gboolean
gtk_text_iter_ends_line (const GtkTextIter *iter);

Возвращает TRUE, если iter указывает на начало разделительных символов абзаца для строки (разделителями будут либо символ новой строки, символ возврата каретки, символ возврата каретки, за которым следует символ новой строки, или символ разделителя абзаца Unicode). Обратите внимание, что итератор, указывающий на \n пары \r\n, не будет считаться концом строки, строка заканчивается до \r. Конечный итератор считается находящимся в конце строки, даже если там нет символов разделителей абзаца.

Параметры

iter

итератор

Возвращаемое значение

находится ли iter в конце строки

gtk_text_iter_starts_sentence ()

gboolean
gtk_text_iter_starts_sentence (const GtkTextIter *iter);

Определяет, начинается ли iter с предложения. Границы предложений определяются Pango и должны быть правильными практически для любого языка (если нет, правильное исправление будет внесено в алгоритмы границ текста Pango).

Параметры

iter

a GtkTextIter

Возвращаемое значение

TRUE если iter находится в начале предложения.

gtk_text_iter_ends_sentence ()

gboolean
gtk_text_iter_ends_sentence (const GtkTextIter *iter);

Определяет, заканчивается ли iter предложением. Границы предложений определяются Pango и должны быть правильными практически для любого языка (если нет, правильное исправление будет внесено в алгоритмы границ текста Pango).

Параметры

iter

a GtkTextIter

Возвращаемое значение

TRUE если iter находится в конце предложения.

gtk_text_iter_inside_sentence ()

gboolean
gtk_text_iter_inside_sentence (const GtkTextIter *iter);

Определяет, находится ли iter внутри предложения (в отличие от промежутка между предложениями, например, после точки и перед первой буквой следующего предложения). Границы предложений определяются Pango и должны быть корректными для почти любого языка (если нет, то правильное исправление должно быть внесено в алгоритмы разбиения текста Pango).

Параметры

iter

a GtkTextIter

Возвращаемое значение

TRUE, если iter находится внутри предложения.

gtk_text_iter_is_cursor_position ()

gboolean
gtk_text_iter_is_cursor_position (const GtkTextIter *iter);

См. gtk_text_iter_forward_cursor_position() или PangoLogAttr или pango_break() для получения подробной информации о том, что представляет собой позиция курсора.

Параметры

iter

a GtkTextIter

Возвращаемое значение

TRUE, если курсор может быть размещен в позиции iter

gtk_text_iter_get_chars_in_line ()

gint
gtk_text_iter_get_chars_in_line (const GtkTextIter *iter);

Возвращает количество символов в строке, содержащей iter, включая разделители абзацев.

Параметры

iter

итератор

Возвращаемое значение

количество символов в строке

gtk_text_iter_get_bytes_in_line ()

gint
gtk_text_iter_get_bytes_in_line (const GtkTextIter *iter);

Возвращает количество байтов в строке, содержащей iter, включая разделители абзацев.

Параметры

iter

итератор

Возвращаемое значение

количество байтов в строке

gtk_text_iter_get_attributes ()

gboolean
gtk_text_iter_get_attributes (const GtkTextIter *iter,
                              GtkTextAttributes *values);

Вычисляет влияние любых тегов, примененных к этому месту в тексте. Параметр values должен быть инициализирован значениями по умолчанию, которые вы хотите использовать, если теги отсутствуют. Обычно значения по умолчанию получаются из gtk_text_view_get_default_attributes().

gtk_text_iter_get_attributes() модифицирует values, применяя эффекты любых тегов, присутствующих в позиции iter. Если какие-либо теги повлияли на values, функция возвращает TRUE.

Параметры

iter

итератор

values

a GtkTextAttributes для заполнения.

[out]

Возвращаемое значение

TRUE, если values была изменена

gtk_text_iter_get_language ()

PangoLanguage *
gtk_text_iter_get_language (const GtkTextIter *iter);

Удобная обертка вокруг gtk_text_iter_get_attributes(), которая возвращает язык, действующий в позиции iter. Если теги, влияющие на язык, не применяются к iter, значение возврата идентично значению gtk_get_default_language().

Параметры

iter

итератор

Возвращаемое значение

язык, действующий в позиции iter .

[transfer full]

gtk_text_iter_is_end ()

gboolean
gtk_text_iter_is_end (const GtkTextIter *iter);

Возвращает TRUE, если iter является итератором конца, т.е. следующим за последним обратимым итератором в буфере. gtk_text_iter_is_end() — наиболее эффективный способ проверки того, является ли итератор итератором конца.

Параметры

iter

итератор

Возвращаемое значение

является ли iter итератором конца

gtk_text_iter_is_start ()

gboolean
gtk_text_iter_is_start (const GtkTextIter *iter);

Возвращает TRUE, если iter является первым итератором в буфере, то есть если у iter смещение символа равно 0.

Параметры

iter

итератор

Возвращаемое значение

является ли iter первым в буфере

gtk_text-iter-forward-char ()

gboolean
gtk_text_iter_forward_char (GtkTextIter *iter);

Перемещает iter вперед на один символ. Обратите внимание, что вставленные в буфер изображения занимают 1 слот символа, поэтому gtk_text_iter_forward_char() может фактически переместиться на изображение вместо символа, если в вашем буфере есть изображения. Если iter является итератором конца или символом перед ним, iter теперь указывает на итератор конца, и gtk_text_iter_forward_char() возвращает FALSE для удобства при написании циклов.

Параметры

iter

итератор

Возвращаемое значение

был ли перемещен iter и доступен для обращения

gtk_text_iter_backward_char ()

gboolean
gtk_text_iter_backward_char (GtkTextIter *iter);

Перемещает назад на один символ. Возвращает TRUE, если перемещение возможно; если iter был первым в буфере (смещение символа 0), gtk_text_iter_backward_char() возвращает FALSE для удобства при написании циклов.

Параметры

iter

итератор

Возвращаемое значение

возможно ли перемещение

gtk_text_iter_forward_chars ()

gboolean
gtk_text_iter_forward_chars (GtkTextIter *iter,
                             gint count);

Перемещает count символов, если это возможно (если count переместит итератор за начало или конец буфера, перемещает его к началу или концу буфера). Значение возврата указывает, отличается ли новое положение iter от исходного положения и доступно ли оно для разыменования (последняя итератор в буфере недоступна для разыменования). Если count равно 0, функция ничего не делает и возвращает FALSE.

Параметры

iter

итератор

count

количество символов для перемещения, может быть отрицательным

Возвращает

является ли iter перемещённым и доступным для разыменования

gtk_text_iter_backward_chars ()

gboolean
gtk_text_iter_backward_chars (GtkTextIter *iter,
                              gint count);

Перемещает count символов назад, если это возможно (если count переместит итератор за начало или конец буфера, перемещает его к началу или концу буфера). Значение возврата указывает, переместился ли итератор на позицию, доступную для разыменования; если итератор не переместился или переместился на конечный итератор, возвращается FALSE. Если count равно 0, функция ничего не делает и возвращает FALSE.

Параметры

iter

итератор

count

количество символов для перемещения

Возвращает

является ли iter перемещённым и доступным для разыменования

gtk_text_iter_forward_line ()

gboolean
gtk_text_iter_forward_line (GtkTextIter *iter);

Перемещает iter к началу следующей строки. Если итератор уже находится на последней строке буфера, перемещает итератор к концу текущей строки. Если после операции итератор находится в конце буфера и не может быть разыменован, возвращает FALSE. В противном случае возвращает TRUE.

Параметры

iter

итератор

Возвращает

можно ли разыменовать iter

gtk_text_iter_backward_line ()

gboolean
gtk_text_iter_backward_line (GtkTextIter *iter);

Перемещает iter к началу предыдущей строки. Возвращает TRUE, если iter можно переместить; т.е. если iter был в начале строки, эта функция возвращает FALSE. Поэтому если iter уже был в строке 0, но не в начале строки, iter перемещается в начало строки, и функция возвращает TRUE. (Обратите внимание, что это означает, что в цикле, вызывающем эту функцию, номер строки может не изменяться на каждой итерации, если ваша первая итерация находится на строке 0.)

Параметры

iter

итератор

Возвращает

был ли перемещён iter

gtk_text_iter_forward_lines ()

gboolean
gtk_text_iter_forward_lines (GtkTextIter *iter,
                             gint count);

Перемещает count строк вперед, если это возможно (если count перемещает итератор за начало или конец буфера, перемещает его к началу или концу буфера). Значение возврата указывает, переместился ли итератор на позицию, доступную для разыменования; если итератор не переместился или переместился на конечный итератор, возвращается FALSE. Если count равно 0, функция ничего не делает и возвращает FALSE. Если count отрицательно, перемещает назад на 0 - count строк.

Параметры

iter

a GtkTextIter

count

количество строк для перемещения вперёд

Возвращает

был ли перемещён и доступен для разыменования iter

gtk_text_iter_backward_lines ()

gboolean
gtk_text_iter_backward_lines (GtkTextIter *iter,
                              gint count);

Перемещает count строк назад, если это возможно (если count перемещает итератор за начало или конец буфера, перемещает его к началу или концу буфера). Значение возврата указывает, переместился ли итератор на позицию, доступную для разыменования; если итератор не переместился или переместился на конечный итератор, возвращается FALSE. Если count равно 0, функция ничего не делает и возвращает FALSE. Если count отрицательно, перемещает вперёд на 0 - count строк.

Параметры

iter

a GtkTextIter

count

количество строк для перемещения назад

Возвращает

был ли перемещён и доступен для разыменования iter

gtk_text_iter_forward_word_ends ()

gboolean
gtk_text_iter_forward_word_ends (GtkTextIter *iter,
                                 gint count);

Вызывает gtk_text_iter_forward_word_end() до count раз.

Параметры

iter

a GtkTextIter

count

количество раз для перемещения

Возвращает

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

gtk_text_iter_backward_word_starts ()

gboolean
gtk_text_iter_backward_word_starts (GtkTextIter *iter,
                                    gint count);

Вызывает gtk_text_iter_backward_word_start() до count раз.

Параметры

iter

a GtkTextIter

count

количество раз для перемещения

Возвращает

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

gtk_text_iter_forward_word_end ()

gboolean
gtk_text_iter_forward_word_end (GtkTextIter *iter);

Перемещает итератор вперёд до конца следующего слова. (Если iter находится в конце слова, перемещает вперёд к следующему концу слова.) Разбиение на слова определяется Pango и должно быть корректным для практически любого языка (если нет, то необходимо исправить алгоритмы разбиения Pango на слова).

Параметры

iter

a GtkTextIter

Возвращаемое значение

TRUE, если iter был перемещён и не является итератором конца текста

gtk_text_iter_backward_word_start ()

gboolean
gtk_text_iter_backward_word_start (GtkTextIter *iter);

Перемещает итератор назад к началу предыдущего слова. (Если iter находится в начале слова, перемещает назад к следующему началу слова.) Разбиение на слова определяется Pango и должно быть корректным для практически любого языка (если нет, то необходимо исправить алгоритмы разбиения Pango на слова).

Параметры

iter

a GtkTextIter

Возвращаемое значение

TRUE, если iter был перемещён и не является итератором конца текста

gtk_text_iter_forward_cursor_position ()

gboolean
gtk_text_iter_forward_cursor_position (GtkTextIter *iter);

Перемещает iter вперёд на одну позицию курсора. Позиции курсора — это (как нетрудно догадаться) позиции, где может отображаться курсор. Возможно, удивительно, но между всеми символами могут не быть позиции курсора. Наиболее распространённый пример для европейских языков — это последовательность возврата каретки/перевода строки. Для некоторых символов Юникода, например, буквы «a» с диакритическим знаком, она будет представляться двумя символами: сначала буква, а затем «комбинирующая метка», которая вызывает отображение диакритического знака; поэтому курсор не может перемещаться между этими двумя символами. См. также PangoLogAttr и функцию pango_break().

Параметры

iter

a GtkTextIter

Возвращаемое значение

TRUE, если мы переместились и новая позиция доступна для использования

gtk_text_iter_backward_cursor_position ()

gboolean
gtk_text_iter_backward_cursor_position
                               (GtkTextIter *iter);

Аналогично gtk_text_iter_forward_cursor_position(), но перемещает назад.

Параметры

iter

a GtkTextIter

Возвращаемое значение

TRUE, если мы переместились

gtk_text_iter_forward_cursor_positions ()

gboolean
gtk_text_iter_forward_cursor_positions
                               (GtkTextIter *iter,
                                gint count);

Перемещает итератор вперёд на указанное количество позиций курсора. Подробности см. в gtk_text_iter_forward_cursor_position().

Параметры

iter

a GtkTextIter

count

количество позиций для перемещения

Возвращаемое значение

TRUE, если мы переместились и новая позиция доступна для использования

gtk_text_iter_backward_cursor_positions ()

gboolean
gtk_text_iter_backward_cursor_positions
                               (GtkTextIter *iter,
                                gint count);

Перемещает итератор назад на указанное количество позиций курсора. Подробности см. в gtk_text_iter_forward_cursor_position().

Параметры

iter

a GtkTextIter

count

количество позиций для перемещения

Возвращаемое значение

TRUE, если мы переместились и новая позиция доступна для использования

gtk_text_iter_backward_sentence_start ()

gboolean
gtk_text_iter_backward_sentence_start (GtkTextIter *iter);

Перемещает итератор назад к началу предыдущей фразы. Если iter уже находится в начале фразы, перемещает к следующему началу фразы. Границы предложений определяются Pango и должны быть корректными для практически любого языка (если нет, то необходимо исправить алгоритмы определения границ текста Pango).

Параметры

iter

a GtkTextIter

Возвращаемое значение

TRUE, если iter был перемещён и не является итератором конца текста

gtk_text_iter_backward_sentence_starts ()

gboolean
gtk_text_iter_backward_sentence_starts
                               (GtkTextIter *iter,
                                gint count);

Вызывает gtk_text_iter_backward_sentence_start() до count раз или пока не вернёт FALSE. Если count отрицательное, перемещает вперёд вместо назад.

Параметры

iter

a GtkTextIter

count

количество предложений для перемещения

Возвращаемое значение

TRUE, если iter был перемещён и не является итератором конца текста

gtk_text_iter_forward_sentence_end ()

gboolean
gtk_text_iter_forward_sentence_end (GtkTextIter *iter);

Перемещает итератор вперёд к концу следующей фразы. (Если iter находится в конце фразы, перемещает к следующему концу фразы.) Границы предложений определяются Pango и должны быть корректными для практически любого языка (если нет, то необходимо исправить алгоритмы определения границ текста Pango).

Параметры

iter

a GtkTextIter

Возвращаемое значение

TRUE, если iter был перемещён и не является итератором конца текста

gtk_text_iter_forward_sentence_ends ()

gboolean
gtk_text_iter_forward_sentence_ends (GtkTextIter *iter,
                                     gint count);

Вызывает gtk_text_iter_forward_sentence_end() count раз (или пока gtk_text_iter_forward_sentence_end() не вернёт FALSE). Если count отрицательно, перемещается назад, а не вперёд.

Параметры

iter

a GtkTextIter

count

количество предложений для перемещения

Возвращаемое значение

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

gtk_text_iter_forward_visible_word_ends ()

gboolean
gtk_text_iter_forward_visible_word_ends
                               (GtkTextIter *iter,
                                gint count);

Вызывает gtk_text_iter_forward_visible_word_end() до count раз.

Параметры

iter

a GtkTextIter

count

количество раз для перемещения

Возвращаемое значение

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

Since: 2.4

gtk_text_iter_backward_visible_word_starts ()

gboolean
gtk_text_iter_backward_visible_word_starts
                               (GtkTextIter *iter,
                                gint count);

Вызывает gtk_text_iter_backward_visible_word_start() до count раз.

Параметры

iter

a GtkTextIter

count

количество раз для перемещения

Возвращаемое значение

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

Since: 2.4

gtk_text_iter_forward_visible_word_end ()

gboolean
gtk_text_iter_forward_visible_word_end
                               (GtkTextIter *iter);

Перемещается вперёд к следующему видимому концу слова. (Если iter в данный момент находится на конце слова, перемещается вперёд к следующему после него.) Разбивка слов определяется Pango и должна быть корректной для практически любого языка (если нет, то правильное исправление должно быть в алгоритмах разбиения слов Pango).

Параметры

iter

a GtkTextIter

Возвращаемое значение

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

Since: 2.4

gtk_text_iter_backward_visible_word_start ()

gboolean
gtk_text_iter_backward_visible_word_start
                               (GtkTextIter *iter);

Перемещается назад к предыдущему видимому началу слова. (Если iter в данный момент находится на начале слова, перемещается назад к следующему после него.) Разбивка слов определяется Pango и должна быть корректной для практически любого языка (если нет, то правильное исправление должно быть в алгоритмах разбиения слов Pango).

Параметры

iter

a GtkTextIter

Возвращаемое значение

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

Since: 2.4

gtk_text_iter_forward_visible_cursor_position ()

gboolean
gtk_text_iter_forward_visible_cursor_position
                               (GtkTextIter *iter);

Перемещает iter вперёд к следующей видимой позиции курсора. Смотрите gtk_text_iter_forward_cursor_position() для подробностей.

Параметры

iter

a GtkTextIter

Возвращаемое значение

TRUE, если мы переместились и новая позиция допустима для обращения

Since: 2.4

gtk_text_iter_backward_visible_cursor_position ()

gboolean
gtk_text_iter_backward_visible_cursor_position
                               (GtkTextIter *iter);

Перемещает iter назад к предыдущей видимой позиции курсора. Смотрите gtk_text_iter_backward_cursor_position() для подробностей.

Параметры

iter

a GtkTextIter

Возвращаемое значение

TRUE, если мы переместились и новая позиция допустима для обращения

Since: 2.4

gtk_text_iter_forward_visible_cursor_positions ()

gboolean
gtk_text_iter_forward_visible_cursor_positions
                               (GtkTextIter *iter,
                                gint count);

Перемещает до count видимых позиций курсора. Смотрите gtk_text_iter_forward_cursor_position() для подробностей.

Параметры

iter

a GtkTextIter

count

количество позиций для перемещения

Возвращаемое значение

TRUE, если мы переместились и новая позиция допустима для обращения

Since: 2.4

gtk_text_iter_backward_visible_cursor_positions ()

gboolean
gtk_text_iter_backward_visible_cursor_positions
                               (GtkTextIter *iter,
                                gint count);

Перемещает до count видимых позиций курсора. Смотрите gtk_text_iter_backward_cursor_position() для подробностей.

Параметры

iter

a GtkTextIter

count

количество позиций для перемещения

Возвращаемое значение

TRUE, если мы переместились и новая позиция допустима для обращения

Since: 2.4

gtk_text_iter_forward_visible_line ()

gboolean
gtk_text_iter_forward_visible_line (GtkTextIter *iter);

Перемещает iter к началу следующей видимой строки. Возвращает TRUE, если следующая строка существует, и FALSE, если iter просто была перемещена в конец буфера и теперь недоступна для разыменования, или если iter уже находится в конце буфера.

Параметры

iter

итератор

Возвращаемое значение

можно ли разыменовать iter

С: 2.8

gtk_text_iter_backward_visible_line ()

gboolean
gtk_text_iter_backward_visible_line (GtkTextIter *iter);

Перемещает iter к началу предыдущей видимой строки. Возвращает TRUE, если iter удалось переместить; т.е. если iter находился в позиции символа 0, эта функция возвращает FALSE. Следовательно, если iter уже находится на строке 0, но не в начале строки, iter перемещается к началу строки, и функция возвращает TRUE. (Обратите внимание, что это подразумевает, что в цикле, вызывающем эту функцию, номер строки может не меняться на каждой итерации, если ваша первая итерация находится на строке 0.)

Параметры

iter

итератор

Возвращаемое значение

было ли произведено перемещение iter

С: 2.8

gtk_text_iter_forward_visible_lines ()

gboolean
gtk_text_iter_forward_visible_lines (GtkTextIter *iter,
                                     gint count);

Перемещает count видимые строки вперед, если это возможно (если count переместится за начало или конец буфера, перемещается к началу или концу буфера). Значение возврата указывает, переместился ли итератор на доступную позицию; если итератор не переместился или переместился на конечный итератор, возвращается FALSE. Если count равно 0, функция ничего не делает и возвращает FALSE. Если count отрицательно, перемещается назад на 0 - count строк.

Параметры

iter

a GtkTextIter

count

количество строк для перемещения вперед

Возвращаемое значение

переместился ли iter и доступен ли он для разыменования

С: 2.8

gtk_text_iter_backward_visible_lines ()

gboolean
gtk_text_iter_backward_visible_lines (GtkTextIter *iter,
                                      gint count);

Перемещает count видимые строки назад, если это возможно (если count переместится за начало или конец буфера, перемещается к началу или концу буфера). Значение возврата указывает, переместился ли итератор на доступную позицию; если итератор не переместился или переместился на конечный итератор, возвращается FALSE. Если count равно 0, функция ничего не делает и возвращает FALSE. Если count отрицательно, перемещается вперед на 0 - count строк.

Параметры

iter

a GtkTextIter

count

количество строк для перемещения назад

Возвращаемое значение

переместился ли iter и доступен ли он для разыменования

С: 2.8

gtk_text_iter_set_offset ()

void
gtk_text_iter_set_offset (GtkTextIter *iter,
                          gint char_offset);

Устанавливает iter на указание на char_offset . char_offset считает с начала всего буфера текста, начиная с 0.

Параметры

iter

a GtkTextIter

char_offset

номер символа

gtk_text_iter_set_line ()

void
gtk_text_iter_set_line (GtkTextIter *iter,
                        gint line_number);

Перемещает итератор iter к началу строки line_number . Если line_number отрицательно или больше, чем количество строк в буфере, перемещает iter к началу последней строки в буфере.

Параметры

iter

a GtkTextIter

line_number

номер строки (считается с 0)

gtk_text_iter_set_line_offset ()

void
gtk_text_iter_set_line_offset (GtkTextIter *iter,
                               gint char_on_line);

Перемещает iter в строке до нового смещения по символам (а не байтам). Указанное смещение по символам должно быть меньше или равно количеству символов в строке; если равно, iter перемещается к началу следующей строки. Смотрите gtk_text_iter_set_line_index(), если у вас есть индекс байтов, а не смещение по символам.

Параметры

iter

a GtkTextIter

char_on_line

смещение по символам относительно начала текущей строки iter

gtk_text_iter_set_line_index ()

void
gtk_text_iter_set_line_index (GtkTextIter *iter,
                              gint byte_on_line);

То же, что и gtk_text_iter_set_line_offset(), но работает с индексом байтов. Указанный индекс байтов должен быть в начале символа, он не может быть посередине кодированного символа UTF-8.

Параметры

iter

a GtkTextIter

byte_on_line

индекс байта относительно начала текущей строки iter

gtk_text_iter_set_visible-line-index ()

void
gtk_text_iter_set_visible_line_index (GtkTextIter *iter,
                                      gint byte_on_line);

Аналогично gtk_text_iter_set_line_index(), но индекс находится в видимых байтах, т.е. текст с тегом, делающим его невидимым, не учитывается в индексе.

Параметры

iter

a GtkTextIter

byte_on_line

индекс байта

gtk_text_iter_set_visible_line_offset ()

void
gtk_text_iter_set_visible_line_offset (GtkTextIter *iter,
                                       gint char_on_line);

Подобно gtk_text_iter_set_line_offset(), но смещение выражается в видимых символах, т.е. текст с тегом, делающим его невидимым, не учитывается в смещении.

Параметры

iter

a GtkTextIter

char_on_line

смещение по символам на строке

gtk_text_iter_forward_to_end ()

void
gtk_text_iter_forward_to_end (GtkTextIter *iter);

Перемещает iter вперёд к «итератору конца», который указывает на позицию сразу после последнего допустимого символа в буфере. gtk_text_iter_get_char(), вызванный на итераторе конца, возвращает 0, что удобно для написания циклов.

Параметры

iter

a GtkTextIter

gtk_text_iter_forward_to_line_end ()

gboolean
gtk_text_iter_forward_to_line_end (GtkTextIter *iter);

Перемещает итератор к символам разделителей абзаца, которые могут быть символом новой строки, символом возврата каретки, последовательностью «возврат каретки/новая строка» или символом разделителя абзаца Юникода. Если итератор уже находится на символах разделителя абзаца, переходит к символам разделителя абзаца следующей строки. Если iter находится на последней строке буфера, которая не заканчивается символами разделителей абзаца, перемещается к итератору конца (конец последней строки) и возвращает FALSE.

Параметры

iter

a GtkTextIter

Возвращаемое значение

TRUE, если мы сдвинулись, и новое местоположение не является итератором конца

gtk_text_iter_forward_to_tag_toggle ()

gboolean
gtk_text_iter_forward_to_tag_toggle (GtkTextIter *iter,
                                     GtkTextTag *tag);

Перемещает итератор вперёд к следующему переключению (включение или выключение) тега GtkTextTag tag, или к следующему переключению любого тега, если tag является NULL. Если подходящие переключения тегов не найдены, возвращает FALSE, в противном случае TRUE. Не возвращает переключения, расположенные в позиции iter, а только переключения после iter. Устанавливает iter в позицию переключения или в конец буфера, если переключение не найдено.

Параметры

iter

a GtkTextIter

tag

a GtkTextTag или NULL.

[allow-none]

Возвращаемое значение

возвращает true, если после iter найден переключатель тега

gtk_text_iter_backward_to_tag_toggle ()

gboolean
gtk_text_iter_backward_to_tag_toggle (GtkTextIter *iter,
                                      GtkTextTag *tag);

Перемещает итератор назад к следующему переключению (включение или выключение) тега GtkTextTag tag, или к следующему переключению любого тега, если tag является NULL. Если подходящие переключения тегов не найдены, возвращает FALSE, в противном случае TRUE. Не возвращает переключения, расположенные в позиции iter, а только переключения перед iter. Устанавливает iter в позицию переключения или в начало буфера, если переключение не найдено.

Параметры

iter

a GtkTextIter

tag

a GtkTextTag или NULL.

[allow-none]

Возвращаемое значение

возвращает true, если перед iter найден переключатель тега

GtkTextCharPredicate ()

gboolean
(*GtkTextCharPredicate) (gunichar ch,
                         gpointer user_data);

gtk_text_iter_forward_find_char ()

gboolean
gtk_text_iter_forward_find_char (GtkTextIter *iter,
                                 GtkTextCharPredicate pred,
                                 gpointer user_data,
                                 const GtkTextIter *limit);

Перемещает iter, вызывая pred для каждого символа. Если pred возвращает TRUE, возвращает TRUE и прекращает поиск. Если pred никогда не возвращает TRUE, iter устанавливается в limit, если limit не является NULL, в противном случае в итератор конца.

Параметры

iter

a GtkTextIter

pred

функция, которая вызывается для каждого символа.

[scope call]

user_data

данные пользователя для pred

limit

предел поиска, или NULL для отсутствия предела.

[allow-none]

Возвращаемое значение

true, если совпадение найдено

gtk_text_iter_backward_find_char ()

gboolean
gtk_text_iter_backward_find_char (GtkTextIter *iter,
                                  GtkTextCharPredicate pred,
                                  gpointer user_data,
                                  const GtkTextIter *limit);

То же самое, что и gtk_text_iter_forward_find_char(), но происходит в обратном направлении от iter .

Параметры

iter

a GtkTextIter

pred

функция, которая вызывается для каждого символа.

[scope call]

user_data

данные пользователя для pred

limit

предел поиска или NULL для отсутствия.

[allow-none]

Возвращаемое значение

найден ли соответствие

gtk_text_iter_forward_search ()

gboolean
gtk_text_iter_forward_search (const GtkTextIter *iter,
                              const gchar *str,
                              GtkTextSearchFlags flags,
                              GtkTextIter *match_start,
                              GtkTextIter *match_end,
                              const GtkTextIter *limit);

Ищет вперёд str . Любое совпадение возвращается установкой match_start в первый символ совпадения и match_end в первый символ после совпадения. Поиск не будет продолжаться после limit . Обратите внимание, что поиск — это линейная или O(n) операция, поэтому вы можете использовать limit, чтобы избежать блокировки пользовательского интерфейса при больших буферах.

match_start никогда не будет установлена на GtkTextIter расположенную перед iter, даже если существует возможное match_end после или в iter.

Параметры

iter

начало поиска

str

строка поиска

flags

флаги, влияющие на способ поиска

match_start

место возврата начала совпадения или NULL.

[out caller-allocates][allow-none]

match_end

место возврата конца совпадения или NULL.

[out caller-allocates][allow-none]

limit

расположение последнего возможного match_end , или NULL для конца буфера.

[allow-none]

Возвращаемое значение

найден ли соответствие

gtk_text_iter_backward_search ()

gboolean
gtk_text_iter_backward_search (const GtkTextIter *iter,
                               const gchar *str,
                               GtkTextSearchFlags flags,
                               GtkTextIter *match_start,
                               GtkTextIter *match_end,
                               const GtkTextIter *limit);

То же самое, что и gtk_text_iter_forward_search(), но выполняется в обратном направлении.

match_end никогда не будет установлена на GtkTextIter расположенную после iter, даже если существует возможное match_start перед или в iter.

Параметры

iter

a GtkTextIter где начинается поиск

str

строка поиска

flags

маска битов флагов, влияющих на поиск

match_start

место возврата начала совпадения или NULL.

[out caller-allocates][allow-none]

match_end

место возврата конца совпадения или NULL.

[out caller-allocates][allow-none]

limit

расположение последнего возможного match_start , или NULL для начала буфера.

[allow-none]

Возвращаемое значение

найден ли соответствие

gtk_text_iter_equal ()

gboolean
gtk_text_iter_equal (const GtkTextIter *lhs,
                     const GtkTextIter *rhs);

Проверяет, равны ли два итератора, используя наиболее быстрый возможный механизм. Эта функция очень быстрая; ожидается, что она будет работать лучше, чем, например, получение смещения символа для каждого итератора и сравнение смещений самостоятельно. Кроме того, она немного быстрее, чем gtk_text_iter_compare().

Параметры

lhs

a GtkTextIter

rhs

другой GtkTextIter

Возвращаемое значение

TRUE если итераторы указывают на одно и то же место в буфере

gtk_text_iter_compare ()

gint
gtk_text_iter_compare (const GtkTextIter *lhs,
                       const GtkTextIter *rhs);

Функция в стиле qsort(), которая возвращает отрицательное значение, если lhs меньше, чем rhs, положительное, если lhs больше, чем rhs, и 0, если они равны. Порядок — в порядке смещения символов, т.е. первый символ в буфере меньше, чем второй символ в буфере.

Параметры

lhs

a GtkTextIter

rhs

another GtkTextIter

Возвращаемое значение

-1, если lhs меньше, чем rhs, 1, если lhs больше, 0, если они равны

gtk_text_iter_in_range ()

gboolean
gtk_text_iter_in_range (const GtkTextIter *iter,
                        const GtkTextIter *start,
                        const GtkTextIter *end);

Проверяет, попадает ли iter в диапазон [start , end ). start и end должны быть в порядке возрастания.

Параметры

iter

a GtkTextIter

start

начало диапазона

end

конец диапазона

Возвращаемое значение

TRUE, если iter находится в диапазоне

gtk_text_iter_order ()

void
gtk_text_iter_order (GtkTextIter *first,
                     GtkTextIter *second);

Меняет местами значения first и second, если second предшествует first в буфере. То есть, гарантирует, что first и second находятся в последовательности. Большинство функций буфера текста, принимающих диапазон, вызывают это автоматически от вашего имени, поэтому нет реальной причины вызывать его самостоятельно в этих случаях. Есть некоторые исключения, такие как gtk_text_iter_in_range(), которые ожидают предварительно отсортированный диапазон.

Параметры

first

a GtkTextIter

second

another GtkTextIter

Типы и значения

GtkTextIter

typedef struct {
  /* GtkTextIter is an opaque datatype; ignore all these fields.
   * Initialize the iter with gtk_text_buffer_get_iter_*
   * functions
   */
} GtkTextIter;

перечисление GtkTextSearchFlags

Флаги, влияющие на то, как выполняется поиск.

Если ни GTK_TEXT_SEARCH_VISIBLE_ONLY, ни GTK_TEXT_SEARCH_TEXT_ONLY не включены, совпадение должно быть точным; специальный символ 0xFFFC будет соответствовать встроенным pixbuf или дочерним виджетам.

Члены

GTK_TEXT_SEARCH_VISIBLE_ONLY

Производить поиск только по видимым данным. Совпадение поиска может содержать скрытый текст.

GTK_TEXT_SEARCH_TEXT_ONLY

Производить поиск только по тексту. Совпадение может содержать pixbuf или дочерние виджеты, смешанные внутри сопоставленного диапазона.

GTK_TEXT_SEARCH_CASE_INSENSITIVE

Текст будет сопоставлен независимо от его регистра.

© 2005–2020 The GNOME Project
Licensed under the GNU Lesser General Public License version 2.1 or later.
https://developer.gnome.org/gtk3/3.22/GtkTextIter.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API