gtktextiter
gtktextiter — итератор текстового буфера
|
|
краткое описание
#include <gtk/gtk.h>
gtktextiter;
gtktextbuffer* gtk_text_iter_get_buffer (const gtktextiter *iter);
gtktextiter* gtk_text_iter_copy (const gtktextiter *iter);
void gtk_text_iter_free (gtktextiter *iter);
gint gtk_text_iter_get_offset (const gtktextiter *iter);
gint gtk_text_iter_get_line (const gtktextiter *iter);
gint gtk_text_iter_get_line_offset (const gtktextiter *iter);
gint gtk_text_iter_get_line_index (const gtktextiter *iter);
gint gtk_text_iter_get_visible_line_index
(const gtktextiter *iter);
gint gtk_text_iter_get_visible_line_offset
(const gtktextiter *iter);
gunichar gtk_text_iter_get_char (const gtktextiter *iter);
gchar* gtk_text_iter_get_slice (const gtktextiter *start,
const gtktextiter *end);
gchar* gtk_text_iter_get_text (const gtktextiter *start,
const gtktextiter *end);
gchar* gtk_text_iter_get_visible_slice (const gtktextiter *start,
const gtktextiter *end);
gchar* gtk_text_iter_get_visible_text (const gtktextiter *start,
const gtktextiter *end);
gdkpixbuf* gtk_text_iter_get_pixbuf (const gtktextiter *iter);
gslist* gtk_text_iter_get_marks (const gtktextiter *iter);
gslist* gtk_text_iter_get_toggled_tags (const gtktextiter *iter,
gboolean toggled_on);
gtktextchildanchor* gtk_text_iter_get_child_anchor
(const gtktextiter *iter);
gboolean gtk_text_iter_begins_tag (const gtktextiter *iter,
gtktexttag *tag);
gboolean gtk_text_iter_ends_tag (const gtktextiter *iter,
gtktexttag *tag);
gboolean gtk_text_iter_toggles_tag (const gtktextiter *iter,
gtktexttag *tag);
gboolean gtk_text_iter_has_tag (const gtktextiter *iter,
gtktexttag *tag);
gslist* gtk_text_iter_get_tags (const gtktextiter *iter);
gboolean gtk_text_iter_editable (const gtktextiter *iter,
gboolean default_setting);
gboolean gtk_text_iter_can_insert (const gtktextiter *iter,
gboolean default_editability);
gboolean gtk_text_iter_starts_word (const gtktextiter *iter);
gboolean gtk_text_iter_ends_word (const gtktextiter *iter);
gboolean gtk_text_iter_inside_word (const gtktextiter *iter);
gboolean gtk_text_iter_starts_line (const gtktextiter *iter);
gboolean gtk_text_iter_ends_line (const gtktextiter *iter);
gboolean gtk_text_iter_starts_sentence (const gtktextiter *iter);
gboolean gtk_text_iter_ends_sentence (const gtktextiter *iter);
gboolean gtk_text_iter_inside_sentence (const gtktextiter *iter);
gboolean gtk_text_iter_is_cursor_position
(const gtktextiter *iter);
gint gtk_text_iter_get_chars_in_line (const gtktextiter *iter);
gint gtk_text_iter_get_bytes_in_line (const gtktextiter *iter);
gboolean gtk_text_iter_get_attributes (const gtktextiter *iter,
gtktextattributes *values);
pangolanguage* gtk_text_iter_get_language (const gtktextiter *iter);
gboolean gtk_text_iter_is_end (const gtktextiter *iter);
gboolean gtk_text_iter_is_start (const gtktextiter *iter);
gboolean gtk_text_iter_forward_char (gtktextiter *iter);
gboolean gtk_text_iter_backward_char (gtktextiter *iter);
gboolean gtk_text_iter_forward_chars (gtktextiter *iter,
gint count);
gboolean gtk_text_iter_backward_chars (gtktextiter *iter,
gint count);
gboolean gtk_text_iter_forward_line (gtktextiter *iter);
gboolean gtk_text_iter_backward_line (gtktextiter *iter);
gboolean gtk_text_iter_forward_lines (gtktextiter *iter,
gint count);
gboolean gtk_text_iter_backward_lines (gtktextiter *iter,
gint count);
gboolean gtk_text_iter_forward_word_ends (gtktextiter *iter,
gint count);
gboolean gtk_text_iter_backward_word_starts
(gtktextiter *iter,
gint count);
gboolean gtk_text_iter_forward_word_end (gtktextiter *iter);
gboolean gtk_text_iter_backward_word_start
(gtktextiter *iter);
gboolean gtk_text_iter_forward_cursor_position
(gtktextiter *iter);
gboolean gtk_text_iter_backward_cursor_position
(gtktextiter *iter);
gboolean gtk_text_iter_forward_cursor_positions
(gtktextiter *iter,
gint count);
gboolean gtk_text_iter_backward_cursor_positions
(gtktextiter *iter,
gint count);
gboolean gtk_text_iter_backward_sentence_start
(gtktextiter *iter);
gboolean gtk_text_iter_backward_sentence_starts
(gtktextiter *iter,
gint count);
gboolean gtk_text_iter_forward_sentence_end
(gtktextiter *iter);
gboolean gtk_text_iter_forward_sentence_ends
(gtktextiter *iter,
gint count);
gboolean gtk_text_iter_forward_visible_word_ends
(gtktextiter *iter,
gint count);
gboolean gtk_text_iter_backward_visible_word_starts
(gtktextiter *iter,
gint count);
gboolean gtk_text_iter_forward_visible_word_end
(gtktextiter *iter);
gboolean gtk_text_iter_backward_visible_word_start
(gtktextiter *iter);
gboolean gtk_text_iter_forward_visible_cursor_position
(gtktextiter *iter);
gboolean gtk_text_iter_backward_visible_cursor_position
(gtktextiter *iter);
gboolean gtk_text_iter_forward_visible_cursor_positions
(gtktextiter *iter,
gint count);
gboolean gtk_text_iter_backward_visible_cursor_positions
(gtktextiter *iter,
gint count);
gboolean gtk_text_iter_forward_visible_line
(gtktextiter *iter);
gboolean gtk_text_iter_backward_visible_line
(gtktextiter *iter);
gboolean gtk_text_iter_forward_visible_lines
(gtktextiter *iter,
gint count);
gboolean gtk_text_iter_backward_visible_lines
(gtktextiter *iter,
gint count);
void gtk_text_iter_set_offset (gtktextiter *iter,
gint char_offset);
void gtk_text_iter_set_line (gtktextiter *iter,
gint line_number);
void gtk_text_iter_set_line_offset (gtktextiter *iter,
gint char_on_line);
void gtk_text_iter_set_line_index (gtktextiter *iter,
gint byte_on_line);
void gtk_text_iter_set_visible_line_index
(gtktextiter *iter,
gint byte_on_line);
void gtk_text_iter_set_visible_line_offset
(gtktextiter *iter,
gint char_on_line);
void gtk_text_iter_forward_to_end (gtktextiter *iter);
gboolean gtk_text_iter_forward_to_line_end
(gtktextiter *iter);
gboolean gtk_text_iter_forward_to_tag_toggle
(gtktextiter *iter,
gtktexttag *tag);
gboolean gtk_text_iter_backward_to_tag_toggle
(gtktextiter *iter,
gtktexttag *tag);
gboolean (*gtktextcharpredicate) (gunichar ch,
gpointer user_data);
gboolean gtk_text_iter_forward_find_char (gtktextiter *iter,
gtktextcharpredicate pred,
gpointer user_data,
const gtktextiter *limit);
gboolean gtk_text_iter_backward_find_char
(gtktextiter *iter,
gtktextcharpredicate pred,
gpointer user_data,
const gtktextiter *limit);
enum gtktextsearchflags;
gboolean gtk_text_iter_forward_search (const gtktextiter *iter,
const gchar *str,
gtktextsearchflags flags,
gtktextiter *match_start,
gtktextiter *match_end,
const gtktextiter *limit);
gboolean gtk_text_iter_backward_search (const gtktextiter *iter,
const gchar *str,
gtktextsearchflags flags,
gtktextiter *match_start,
gtktextiter *match_end,
const gtktextiter *limit);
gboolean gtk_text_iter_equal (const gtktextiter *lhs,
const gtktextiter *rhs);
gint gtk_text_iter_compare (const gtktextiter *lhs,
const gtktextiter *rhs);
gboolean gtk_text_iter_in_range (const gtktextiter *iter,
const gtktextiter *start,
const gtktextiter *end);
void gtk_text_iter_order (gtktextiter *first,
gtktextiter *second);
описание
для начала вы можете прочесть text
widget conceptual overview который даёт краткий
обзор обо всех объектах и типах данных
связанных с текстовыми виджетами и как
они взаимодействуют.
детали
gtktextiter
typedef struct {
/* gtktextiter это непрозрачный datatype; все эти поля игнорируются.
* инициализируется итер с помощью gtk_text_buffer_get_iter_*
* функции
*/
} gtktextiter;
gtk_text_iter_get_buffer ()
gtktextbuffer* gtk_text_iter_get_buffer (const gtktextiter *iter);
возвращает gtktextbuffer с
которым связан итератор.
iter :
|
итератор
|
возвращает :
|
буфер
|
gtk_text_iter_copy ()
gtktextiter* gtk_text_iter_copy (const gtktextiter *iter);
создаёт динамически размещаемую копию
итератора. эта функция бесполезна для
приложений, потому что итераторы могут
быть скопированы простым присвоением
(gtktextiter i = j; ). эту функцию используют
языковые привязки.
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 , не считая
байт являющиеся невидимыми из-за тэгов
с включенным флажком "invisible".
iter :
|
gtktextiter
|
возвращает :
|
указатель байта iter
относительно начала строки
|
gtk_text_iter_get_visible_line_offset ()
gint gtk_text_iter_get_visible_line_offset
(const gtktextiter *iter);
возвращает смещение в символах с начала
строки до данного iter , не
считая символы являющиеся невидимыми
из-за тэгов с включенным флажком
"invisible".
iter :
|
gtktextiter
|
возвращает :
|
смещение в видимых символах с начала
строки
|
gtk_text_iter_get_char ()
gunichar gtk_text_iter_get_char (const gtktextiter *iter);
возвращает unicode символ данного итератора.
(эквивалент для оператора * в c++ итераторе.)
если элемент этого итератора не символьный
элемент, такой как встроенное в буфер
изображение, возвращается unicode "unknown"
символ 0xfffc. если вызвать в конце итератор,
вернётся ноль; ноль недопустимый символ
unicode. таким образом вы можете написать
цикл который заканчивается когда
gtk_text_iter_get_char()
возвращает 0.
iter :
|
итератор
|
возвращает :
|
unicode символ, или 0 если iter
не определяем
|
gtk_text_iter_get_slice ()
gchar* gtk_text_iter_get_slice (const gtktextiter *start,
const gtktextiter *end);
возвращает текст из данного диапазона.
"slice" это массив символов в кодировке
utf-8, включая unicode "unknown" символ 0xfffc
для элемента итератора в буфере без
символа, такой как изображение. поскольку
изображение закодировано в буфере,
байты и символы смещения в возвращаемом
массиве будут соответствовать байтам
смещения в текстовом буфере. помните,
0xfffc может находиться также в обычном
тексте, поэтому это не надёжный индикатор
изображения или виджета в буфере.
start :
|
итератор начала диапазона
|
end :
|
итератор конца диапазона
|
возвращает :
|
часть текста из буфера
|
gtk_text_iter_get_text ()
gchar* gtk_text_iter_get_text (const gtktextiter *start,
const gtktextiter *end);
возвращает текст text в данном
диапазоне. если диапазон содержит не
текстовые элементы такие как изображения,
символы и байты смещения в возвращённой
строке не будут соответствовать символам
и байтам смещения в буфере. если вам
нужно соответствующее смещение, смотрите
gtk_text_iter_get_slice() .
start :
|
итератор начала диапазона
|
end :
|
итератор конца диапазона
|
возвращает :
|
массив символов из буфера
|
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
с включенным атрибутом "invisible".
start :
|
итератор начала диапазона
|
end :
|
итератор конца диапазона
|
возвращает :
|
часть текста из буфера
|
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 с
включенным атрибутом "invisible".
start :
|
итератор начала диапазона
|
end :
|
итератор конца диапазона
|
возвращает :
|
строка содержащая видимый текст в
диапазоне
|
gtk_text_iter_get_pixbuf ()
gdkpixbuf* gtk_text_iter_get_pixbuf (const gtktextiter *iter);
если элемент итератора iter
изображение, возвращается изображение
(без добавления новой ссылки). иначе
возвращается null .
iter :
|
итератор
|
возвращает :
|
изображение iter
|
gtk_text_iter_get_marks ()
gslist* gtk_text_iter_get_marks (const gtktextiter *iter);
возвращает список всех gtktextmark
в этом расположении. поскольку маркеры
неповторимы (они не занимают "space"
в буфере, они просто маркеры между
повторяющимися расположениями), множество
маркеров может существовать в одном
месте. возвращаемый список не находится
ни в каком значимом порядке.
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
для включения тэгов
|
возвращает :
|
тэги включаемые этим указателем
|
gtk_text_iter_get_child_anchor ()
gtktextchildanchor* gtk_text_iter_get_child_anchor
(const gtktextiter *iter);
если размещение iter содержит
дочерний якорь, возвращается якорь (без
добавления ссылок). иначе возвращается
null .
iter :
|
итератор
|
возвращает :
|
якорь итератора iter
|
gtk_text_iter_begins_tag ()
gboolean gtk_text_iter_begins_tag (const gtktextiter *iter,
gtktexttag *tag);
возвращает true
если tag включен в этой точке.
если tag равен null ,
возвращается true
если любой тэг включен в данном указателе.
помните что gtk_text_iter_begins_tag()
возвращает true
если iter это начало диапазона
тэгов; gtk_text_iter_has_tag()
укажет вам входит ли итератор в диапазон
тэгов.
iter :
|
итератор
|
tag :
|
gtktexttag, или null
|
возвращает :
|
начинает ли 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 это конец диапазона
тэгов; gtk_text_iter_has_tag()
укажет вам входит ли итератор в диапазон
тэгов.
iter :
|
итератор
|
tag :
|
gtktexttag, или null
|
возвращает :
|
заканчивает ли iter диапазон
тэгов с tag
|
gtk_text_iter_toggles_tag ()
gboolean gtk_text_iter_toggles_tag (const gtktextiter *iter,
gtktexttag *tag);
это эквивалент (gtk_text_iter_begins_tag()
|| gtk_text_iter_ends_tag() ),
то есть она сообщает вам применяется
ли iter к диапазону с tag
с начала или с конца.
iter :
|
итератор
|
tag :
|
gtktexttag, или null
|
возвращает :
|
включен или выключен tag
в iter
|
gtk_text_iter_has_tag ()
gboolean gtk_text_iter_has_tag (const gtktextiter *iter,
gtktexttag *tag);
возвращает true
если iter внутри диапазона
tag .
iter :
|
итератор
|
tag :
|
gtktexttag
|
возвращает :
|
скреплен ли iter с tag
|
gtk_text_iter_get_tags ()
gslist* gtk_text_iter_get_tags (const gtktextiter *iter);
возвращает список тэгов которые
применяются к iter , в порядке
возрастающего приоритета (тэг с высшим
приоритетом последний). gtktexttag
в списке не имеет добавленных ссылок,
но вы можете освободить список
самостоятельно.
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 :
|
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).
gtk_text_iter_ends_word ()
gboolean gtk_text_iter_ends_word (const gtktextiter *iter);
определяет заканчивает ли iter
слово нормального языка. прерывания
слов определены в pango и должны быть
правильны почти для всех языков (если
нет, исправления должны быть зафиксированы
в алгоритме прерывания слов в pango).
gtk_text_iter_inside_word ()
gboolean gtk_text_iter_inside_word (const gtktextiter *iter);
определяет находится ли iter
внутри слова нормального языка (в
противоположность сказанного о размещении
его внутри некоторого пробела). прерывания
слов определены в pango и должны быть
правильны почти для всех языков (если
нет, исправления должны быть зафиксированы
в алгоритме прерывания слов в pango).
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).
gtk_text_iter_ends_sentence ()
gboolean gtk_text_iter_ends_sentence (const gtktextiter *iter);
определяет является ли iter
концом предложения. границы предложения
определены в pango и должны быть корректны
почти для всех языков (если нет, исправления
должны быть зафиксированы в алгоритме
текстовых границ pango).
gtk_text_iter_inside_sentence ()
gboolean gtk_text_iter_inside_sentence (const gtktextiter *iter);
определяет находится ли iter
внутри предложения (в противоположность
между двух предложений, например после
точки и перед первым символом следующего
предложения). границы предложения
определены в pango и должны быть корректны
почти для всех языков (если нет, исправления
должны быть зафиксированы в алгоритме
текстовых границ pango).
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 :
|
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 .
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 в начало
следующей строки. возвращает true
если перемещение выполнено и false
если iter был просто перемещен
в конец буфера и он не переносим, или
iter уже находится в конце
буфера.
iter :
|
итератор
|
возвращает :
|
может ли iter быть перенесен
|
gtk_text_iter_backward_line ()
gboolean gtk_text_iter_backward_line (gtktextiter *iter);
перемещает iter в начало
предыдущей строки. возвращает true
если iter может быть перемещен;
то есть если iter символ
смещения 0, эта функция вернет 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 :
|
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 :
|
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 :
|
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 :
|
gtktextiter
|
count :
|
количество перемещений
|
возвращает :
|
true
если iter перемещаем и не
является конечным
|
gtk_text_iter_forward_word_end ()
gboolean gtk_text_iter_forward_word_end (gtktextiter *iter);
перемещение вперёд в конец следующего
слова. (если iter текущий конец
слова, перемещается вперёд к следующему
после этого.) прерывания слов определены
в pango и должны быть правильны почти для
всех языков (если нет, исправления должны
быть зафиксированы в алгоритме прерывания
слов в pango).
iter :
|
gtktextiter
|
возвращает :
|
true
если iter перемещаем и не
является конечным
|
gtk_text_iter_backward_word_start ()
gboolean gtk_text_iter_backward_word_start
(gtktextiter *iter);
перемещение назад to the previous word start. (если
iter текущеме начало слова,
перемещается к следующему после него.)
прерывания слов определены в pango и должны
быть правильны почти для всех языков
(если нет, исправления должны быть
зафиксированы в алгоритме прерывания
слов в pango).
iter :
|
gtktextiter
|
возвращает :
|
true
если iter перемещаем и не
является конечным
|
gtk_text_iter_forward_cursor_position ()
gboolean gtk_text_iter_forward_cursor_position
(gtktextiter *iter);
перемещает iter вперёд на
одну позицию курсора. возможно странно,
но не может быть позицией курсора между
любыми символами. самым обычным примером
для европейских языков был бы перевод
каретки/символ новой строки предложения.
для некоторых символов unicode, эквивалент
скажем строчной "a" с отметкой
ударения будет представлен как два
символа, сначала прописная потом
"combining mark" которая представляет
ударение; таким образом курсор не может
находится между двумя этими символами.
смотрите также структуру pangologattr
и pango_break()
функцию.
iter :
|
gtktextiter
|
возвращает :
|
true
если перемещен и новая позиция
переносима
|
gtk_text_iter_backward_cursor_position ()
gboolean gtk_text_iter_backward_cursor_position
(gtktextiter *iter);
как gtk_text_iter_forward_cursor_position() ,
но перемещение назад.
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 :
|
gtktextiter
|
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 :
|
gtktextiter
|
count :
|
количество позиций для перемещения
|
возвращает :
|
true
если перемещен и новая позиция
переносима
|
gtk_text_iter_backward_sentence_start ()
gboolean gtk_text_iter_backward_sentence_start
(gtktextiter *iter);
перемещение назад к предыдущему началу
предложения; если iter уже в
начале предложения, перемещение назад
к следующему. прерывания слов определены
в pango и должны быть правильны почти для
всех языков (если нет, исправления должны
быть зафиксированы в алгоритме прерывания
слов в pango).
iter :
|
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 :
|
gtktextiter
|
count :
|
количество предложений для перемещения
|
возвращает :
|
true
если iter перемещаем и не
является конечным
|
gtk_text_iter_forward_sentence_end ()
gboolean gtk_text_iter_forward_sentence_end
(gtktextiter *iter);
перемещение вперёд в конец следующего
предложения. (если iter уже
конец предложения, перемещение к
следующему концу предложения.) прерывания
слов определены в pango и должны быть
правильны почти для всех языков (если
нет, исправления должны быть зафиксированы
в алгоритме прерывания слов в pango).
iter :
|
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 :
|
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 :
|
gtktextiter
|
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 :
|
gtktextiter
|
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 :
|
gtktextiter
|
возвращает :
|
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 :
|
gtktextiter
|
возвращает :
|
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 :
|
gtktextiter
|
возвращает :
|
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 :
|
gtktextiter
|
возвращает :
|
true
если перемещен и новая позиция
переносима
|
начиная с версии 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 :
|
gtktextiter
|
count :
|
количество позиций для перемещения
|
возвращает :
|
true
если перемещен и новая позиция
переносима
|
начиная с версии 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 :
|
gtktextiter
|
count :
|
количество позиций для перемещения
|
возвращает :
|
true
если перемещен и новая позиция
переносима
|
начиная с версии 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 :
|
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 :
|
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.
gtk_text_iter_set_line ()
void gtk_text_iter_set_line (gtktextiter *iter,
gint line_number);
перемещение итератора iter
в начало строки line_number . если
line_number отрицательное или
меньше числа строк в буфере, перемещает
iter в начало последней строки
буфера.
iter :
|
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 :
|
gtktextiter
|
char_on_line :
|
символьное смещение относительно
начала текущемй строки iter 's
|
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 :
|
gtktextiter
|
byte_on_line :
|
индекс байт относительно начала
текущемй строки iter 's
|
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() ,
но индекс видимых байт, то есть текст с
тэгами невидимости не попадает в индекс.
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() ,
но смещение в видимых символах, то есть
текст с тэгами невидимости не попадает
в смещение.
gtk_text_iter_forward_to_end ()
void gtk_text_iter_forward_to_end (gtktextiter *iter);
перемещение iter вперёд к
"end iterator", который указывает последний
допустимый символ буфера.
gtk_text_iter_get_char()
вызывает конечный итератор возвращая
0, это удобно для написания циклов.
gtk_text_iter_forward_to_line_end ()
gboolean gtk_text_iter_forward_to_line_end
(gtktextiter *iter);
перемещение итератора в точку символа
разделителя параграфов, который будет
или символом новой строки, возвратом
каретки, последовательность возврат
каретки/символ новой строки, или unicode
символ разделитель параграфов. если
итератор уже символ разделитель
параграфов, перемещение в символ
разделитель следующей строки. если iter
это последняя строка в буфере, которая
заканчивается не разделителем параграфов,
перемещает в конечный итератор (конец
последней строки) и возвращает false .
iter :
|
gtktextiter
|
возвращает :
|
true
если перемещен и новое размещение не
конечный итератор
|
gtk_text_iter_forward_to_tag_toggle ()
gboolean gtk_text_iter_forward_to_tag_toggle
(gtktextiter *iter,
gtktexttag *tag);
перемещение вперёд к следующему флагу
(on или off) gtktexttag tag ,
или следующему флагу любого тэга если
tag это null .
если нет найденных флажков тэгов,
возвращает false ,
иначе true .
не возвращает флаги расположенные в
iter , только после iter .
устанавливает iter в расположение
флага, или в конец буфера если нет
найденного флага.
gtk_text_iter_backward_to_tag_toggle ()
gboolean gtk_text_iter_backward_to_tag_toggle
(gtktextiter *iter,
gtktexttag *tag);
перемещение назад к следующему флагу
(on или off) gtktexttag tag ,
или следующему флагу любого тэга если
tag это null .
если нет найденных флажков тэгов,
возвращает false ,
иначе true .
не возвращает флаги расположенные в
iter , только перед iter .
устанавливает iter в расположение
флага, или в начало буфера если нет
найденного флага.
gtktextcharpredicate ()
gboolean (*gtktextcharpredicate) (gunichar ch,
gpointer user_data);
ch :
|
|
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 :
|
gtktextiter
|
pred :
|
функция вызываемая для каждого
символа
|
user_data :
|
пользовательские данные для pred
|
limit :
|
лимит поиска, или null
|
возвращает :
|
найдено ли соответствие
|
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 :
|
gtktextiter
|
pred :
|
функция вызываемая для каждого
символа
|
user_data :
|
пользовательские данные для pred
|
limit :
|
лимит поиска, или null
|
возвращает :
|
найдено ли соответствие
|
enum gtktextsearchflags
typedef enum {
gtk_text_search_visible_only = 1 << 0,
gtk_text_search_text_only = 1 << 1
/* возможные планы на будущее: search_case_insensitive, search_regexp */
} gtktextsearchflags;
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 чтобы избежать блокировки
вашего ui на больших буферах.
если gtk_text_search_visible_only флаг установлен,
соответствие может вставить невидимый
текст в промежутки str . то есть
str будет подпоследовательностью
возможно не смежных соответствий
диапазона. точно так же, если вы определите
gtk_text_search_text_only, соответствие может
перемешаться с изображениями или
дочерними виджетами внутри диапазона
соответствий. если эти флаги не получены,
соответствие должно быть точным;
специальный символ 0xfffc в str
будет соответствовать включению
изображения или дочерних виджетов.
iter :
|
начало поиска
|
str :
|
строка поиска
|
flags :
|
флаг влияющий на выполнение поиска
|
match_start :
|
место для хранения возвращаемого
значения начала соответствия, или
null
|
match_end :
|
место для хранения возвращаемого
значения конца соответствия, или null
|
limit :
|
граница поиска, или null
для границы буфера
|
возвращает :
|
найдены ли соответствия
|
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() ,
но перемещение назад.
iter :
|
gtktextiter где начинается
поиск
|
str :
|
строка поиска
|
flags :
|
битовая маска флажков влияющих на
поиск
|
match_start :
|
место для хранения возвращаемого
значения начала соответствия, или
null
|
match_end :
|
место для хранения возвращаемого
значения конца соответствия, или null
|
limit :
|
последнее возможное match_start ,
или null
для начала буфера
|
возвращает :
|
найдены ли соответствия
|
gtk_text_iter_equal ()
gboolean gtk_text_iter_equal (const gtktextiter *lhs,
const gtktextiter *rhs);
проверяет эквивалентность двух
итераторов, используя самый быстрый
механизм. эта функция очень быстрая;
она быстрее чем получение символов
смещения для каждого итератора и
самостоятельное их сравнение. кроме
того, она намного быстрее
gtk_text_iter_compare() .
gtk_text_iter_compare ()
gint gtk_text_iter_compare (const gtktextiter *lhs,
const gtktextiter *rhs);
qsort() -стиль функция возвращающая
отрицательное если lhs меньше
rhs , положительное если lhs
больше rhs , а 0 если они
эквивалентны. сортирует символы смещения
по порядку, то есть первый символ в буфере
меньше второго.
lhs :
|
gtktextiter
|
rhs :
|
другой 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 :
|
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() ,
которые требуют предварительно
отсортированный диапазон.
|