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 | ||
other | another GtkTextIter |
Since: 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 |
Возвращает
байтовый индекс iter относительно начала строки
gtk_text_iter_get_visible_line_offset ()
gint
gtk_text_iter_get_visible_line_offset (const GtkTextIter *iter); Возвращает смещение в символах от начала строки до данного iter, не считая символы, невидимые из-за тегов с включённым флагом «невидимый».
Параметры
iter |
Возвращает
смещение в видимых символах от начала строки
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 может встречаться и в обычном тексте, поэтому это не надёжный показатель наличия в буфере pixbuf или виджета.
Параметры
start | итератор в начале диапазона | |
end | итератор в конце диапазона |
Возвращает
срез текста из буфера.
[перенос всего]
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 | итератор |
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 |
|
Возвращаемое значение
теги, включённые в данной точке.
[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 или | [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, или | [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, или | [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, или | [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 |
Возвращаемое значение
указывает, помечен ли iter тегом tag
gtk_text_iter_get_tags ()
GSList *
gtk_text_iter_get_tags (const GtkTextIter *iter); Возвращает список тегов, применимых к iter, в порядке возрастания приоритета (теги с более высоким приоритетом находятся последними). Теги GtkTextTag в списке не имеют добавленной ссылки, но вам нужно освободить сам список.
Параметры
iter |
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 находиться внутри редактируемой области, а не находится ли сам символ в этой области. Для обработки этого случая используйте gtk_text_iter_can_insert().
Параметры
iter | итератор | |
default_setting |
|
Возвращаемое значение
значение, указывающее, находится ли 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 |
|
Возвращаемое значение
значение, указывающее, будет ли вставленный текст в позиции iter редактируемым
gtk_text_iter_starts_word ()
gboolean
gtk_text_iter_starts_word (const GtkTextIter *iter); Определяет, начинается ли iter слово в естественном языке. Разбиение на слова определяется Pango и должно быть корректным для почти любого языка (если нет, необходимо исправить алгоритмы разбиения слов Pango).
Параметры
iter | итератор GtkTextIter |
Возвращаемое значение
TRUE если iter находится в начале слова
gtk_text_iter_ends-word ()
gboolean
gtk_text_iter_ends_word (const GtkTextIter *iter); Определяет, заканчивается ли iter словом в естественном языке. Разбиение на слова определяется Pango и должно быть корректным для почти любого языка (если нет, необходимо исправить алгоритмы разбиения слов Pango).
Параметры
iter | итератор 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 |
Возвращает
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 |
Возвращает
TRUE , если iter находится в начале предложения.
gtk_text_iter_ends_sentence ()
gboolean
gtk_text_iter_ends_sentence (const GtkTextIter *iter); Определяет, заканчивается ли iter предложение. Границы предложений определяются Pango и должны быть корректными практически для любого языка (если нет, то правильное исправление необходимо внести в алгоритмы определения границ текста Pango).
Параметры
iter |
Возвращает
TRUE , если iter находится в конце предложения.
gtk_text_iter_inside_sentence ()
gboolean
gtk_text_iter_inside_sentence (const GtkTextIter *iter); Определяет, находится ли iter внутри предложения (по сравнению с промежутком между двумя предложениями, например, после точки и перед первой буквой следующего предложения). Границы предложений определяются Pango и должны быть корректными для почти любого языка (если нет, правильное исправление необходимо внести в алгоритмы определения границ текста Pango).
Параметры
iter |
Возвращает
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 |
Возвращает
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.
[передача полной]
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 | ||
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 | ||
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 | ||
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 | ||
count | количество перемещений |
Возвращаемое значение
TRUE если iter переместился и не является конечным итератором
gtk_text_iter_forward_word_end ()
gboolean
gtk_text_iter_forward_word_end (GtkTextIter *iter); Перемещает итератор вперёд до следующего конца слова. (Если iter в данный момент находится на конце слова, перемещает вперёд к следующему за ним.) Разбиение на слова определяется Pango и должно быть корректным практически для любого языка (если нет, то исправление необходимо в алгоритмах разбиения на слова Pango).
Параметры
iter |
Возвращает
TRUE если iter перемещена и не является итератором конца
gtk_text_iter_backward_word_start ()
gboolean
gtk_text_iter_backward_word_start (GtkTextIter *iter); Перемещает итератор назад к началу предыдущего слова. (Если iter в данный момент находится на начале слова, перемещает назад к следующему за ним.) Разбиение на слова определяется Pango и должно быть корректным практически для любого языка (если нет, то исправление необходимо в алгоритмах разбиения на слова Pango).
Параметры
iter |
Возвращает
TRUE если iter перемещена и не является итератором конца
gtk_text_iter_forward_cursor_position ()
gboolean
gtk_text_iter_forward_cursor_position (GtkTextIter *iter); Перемещает iter вперёд на одну позицию курсора. Позиции курсора — это (неудивительно) позиции, где может находиться курсор. Возможно, неожиданно, что между всеми символами не обязательно есть позиция курсора. Наиболее распространённый пример для европейских языков — это последовательность возврата каретки/перевода строки. Для некоторых символов Юникода эквивалент, скажем, буквы «a» с диакритическим знаком, будет представлен двумя символами: сначала сама буква, затем «комбинирующий знак», который определяет отрисовку диакритического знака; поэтому курсор не может переместиться между этими двумя символами. См. также PangoLogAttr и pango_break() функцию.
Параметры
iter |
Возвращает
TRUE если перемещение произошло, и новая позиция доступна для обращения
gtk_text_iter_backward_cursor_position ()
gboolean
gtk_text_iter_backward_cursor_position
(GtkTextIter *iter); Аналогично gtk_text_iter_forward_cursor_position(), но перемещает назад.
Параметры
iter |
Возвращает
TRUE если перемещение произошло
gtk_text_iter_forward_cursor_positions ()
gboolean gtk_text_iter_forward_cursor_positions (GtkTextIter *iter,gint count);
Перемещает итератор до count позиций курсора. Подробности см. в gtk_text_iter_forward_cursor_position().
Параметры
iter | ||
count | количество позиций для перемещения |
Возвращает
TRUE если перемещение произошло и новая позиция доступна для обращения
gtk_text_iter_backward_cursor_positions ()
gboolean gtk_text_iter_backward_cursor_positions (GtkTextIter *iter,gint count);
Перемещает до count позиций курсора. Подробности см. в gtk_text_iter_forward_cursor_position().
Параметры
iter | ||
count | количество позиций для перемещения |
Возвращает
TRUE если мы переместились, и новая позиция может быть обработана
gtk_text_iter_backward_sentence_start ()
gboolean
gtk_text_iter_backward_sentence_start (GtkTextIter *iter); Перемещает назад к началу предыдущего предложения; если iter уже находится в начале предложения, перемещает назад к следующему. Границы предложений определяются Pango и должны быть корректны для почти любого языка (если нет, то правильное исправление должно быть внесено в алгоритмы определения границ текста Pango).
Параметры
iter |
Возвращает
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 | ||
count | количество предложений для перемещения |
Возвращает
TRUE если iter перемещена и не является итератором конца
gtk_text_iter_forward_sentence_end ()
gboolean
gtk_text_iter_forward_sentence_end (GtkTextIter *iter); Перемещает вперёд к концу следующего предложения. (Если iter находится в конце предложения, перемещает к следующему концу предложения.) Границы предложений определяются Pango и должны быть корректны для почти любого языка (если нет, то правильное исправление должно быть внесено в алгоритмы определения границ текста Pango).
Параметры
iter |
Возвращает
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 | ||
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 | ||
count | количество перемещений |
Возвращает
TRUE если iter перемещена и не является конечным итератором
С: 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 | ||
count | количество перемещений |
Возвращает
TRUE если iter перемещена и не является конечным итератором
С: 2.4
gtk_text_iter_forward_visible_word_end ()
gboolean
gtk_text_iter_forward_visible_word_end
(GtkTextIter *iter); Перемещает итератор вперёд к следующему видимому концу слова. (Если iter находится на конце слова, перемещает к следующему после него). Разбиение слов определяется Pango и должно быть корректным для практически любого языка (если нет, то нужно исправить алгоритмы разбиения слов в Pango).
Параметры
iter |
Возвращает
TRUE если iter перемещена и не является конечным итератором
С: 2.4
gtk_text_iter_backward_visible_word_start ()
gboolean
gtk_text_iter_backward_visible_word_start
(GtkTextIter *iter); Перемещает итератор назад к предыдущему видимому началу слова. (Если iter находится на начале слова, перемещает к следующему после него). Разбиение слов определяется Pango и должно быть корректным для практически любого языка (если нет, то нужно исправить алгоритмы разбиения слов в Pango).
Параметры
iter |
Возвращает
TRUE если iter перемещена и не является конечным итератором
С: 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 |
Возвращает
TRUE если мы переместились и новая позиция может быть обработана
С: 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 |
Возвращаемое значение
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 | ||
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 | ||
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 для обращения
Since: 2.8
gtk_text_iter_backward_visible_line ()
gboolean
gtk_text_iter_backward_visible_line (GtkTextIter *iter); Перемещает iter к началу предыдущей видимой строки. Возвращает TRUE , если iter можно было переместить; т.е. если iter находилась в начале символа, эта функция возвращает FALSE. Таким образом, если iter уже находилась в строке 0, но не в начале строки, iter перемещается к началу строки, и функция возвращает TRUE. (Обратите внимание, что это подразумевает, что в цикле, вызывающем эту функцию, номер строки может не меняться на каждой итерации, если ваша первая итерация находится в строке 0.)
Параметры
iter | итератор |
Возвращаемое значение
был ли iter перемещен
Since: 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 | ||
count | количество строк для перемещения вперёд |
Возвращаемое значение
является ли перемещение iter и доступна ли позиция
Since: 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 | ||
count | количество строк для перемещения назад |
Возвращаемое значение
является ли перемещение iter и доступна ли позиция
Since: 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 | ||
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 | ||
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 | ||
char_on_line | смещение символа относительно начала текущей строки |
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 | ||
byte_on_line | индекс байта относительно начала текущей строки |
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 | ||
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 | ||
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 |
gtk_text_iter_forward_to_line_end ()
gboolean
gtk_text_iter_forward_to_line_end (GtkTextIter *iter); Перемещает итератор к символам разделителя абзаца, которые будут либо символом новой строки, символом возврата каретки, последовательностью символ возврата каретки/новой строки, либо символом разделителя абзаца Unicode. Если итератор уже находится на символах разделителя абзаца, перемещается к символам разделителя абзаца следующей строки. Если iter находится на последней строке в буфере, которая не заканчивается символами разделителя абзаца, перемещается к конечному итератору (концу последней строки) и возвращает FALSE.
Параметры
iter |
Возвращаемое значение
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 | ||
tag | a GtkTextTag, или | [allow-none] |
Возвращаемое значение
указывает, нашли ли мы переключение тега после 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 | ||
tag | a GtkTextTag, или | [allow-none] |
Возвращаемое значение
указывает, нашли ли мы переключение тега перед 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 | ||
pred | функция, которая вызывается для каждого символа. | [scope call] |
user_data | данные пользователя для | |
limit | предел поиска или | [allow-none] |
Возвращаемое значение
указывает, был ли найден совпадающий элемент
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 | ||
pred | функция, которая вызывается для каждого символа. | [scope call] |
user_data | данные пользователя для | |
limit | предел поиска или | [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 | место возврата начала совпадения или | [out caller-allocates][allow-none] |
match_end | место возврата конца совпадения или | [out caller-allocates][allow-none] |
limit | местоположение последнего возможного | [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 | местоположение начала совпадения или | [out caller-allocates][allow-none] |
match_end | местоположение конца совпадения или | [out caller-allocates][allow-none] |
limit | местоположение последнего возможного | [allow-none] |
Возвращаемое значение
был ли найден результат
gtk_text_iter_equal ()
gboolean gtk_text_iter_equal (const GtkTextIter *lhs,const GtkTextIter *rhs);
Проверяет, равны ли два итератора, используя самый быстрый возможный механизм. Эта функция очень быстрая; вы можете ожидать, что она будет работать лучше, чем, например, получение смещения символа для каждого итератора и сравнение смещений самостоятельно. Кроме того, она немного быстрее, чем gtk_text_iter_compare().
Параметры
lhs | ||
rhs | another GtkTextIter |
Возвращаемое значение
TRUE, если итераторы указывают на одно и то же место в буфере
gtk_text_iter_compare ()
gint gtk_text_iter_compare (const GtkTextIter *lhs,const GtkTextIter *rhs);
Функция в стиле qsort(), которая возвращает отрицательное значение, если lhs меньше rhs, положительное, если lhs больше rhs, и 0, если они равны. Сортировка выполняется по смещению символов, т.е. первый символ в буфере меньше, чем второй символ в буфере.
Параметры
lhs | ||
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 | ||
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 | ||
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.24/GtkTextIter.html