GtkEntryCompletion
GtkEntryCompletion — Функциональность автодополнения для GtkEntry
Функции
Свойства
| GtkCellArea * | cell-area | Чтение / Запись / Только для создания |
| gboolean | inline-completion | Чтение / Запись |
| gboolean | inline-selection | Чтение / Запись |
| gint | minimum-key-length | Чтение / Запись |
| GtkTreeModel * | model | Чтение / Запись |
| gboolean | popup-completion | Чтение / Запись |
| gboolean | popup-set-width | Чтение / Запись |
| gboolean | popup-single-match | Чтение / Запись |
| gint | text-column | Чтение / Запись |
Сигналы
Типы и значения
| struct | GtkEntryCompletion |
Иерархия объектов
GObject ╰── GtkEntryCompletion
Реализованные интерфейсы
GtkEntryCompletion реализует GtkCellLayout и GtkBuildable.
Включаемые файлы
#include <gtk/gtk.h>
Описание
GtkEntryCompletion — вспомогательный объект, используемый совместно с GtkEntry для реализации функциональности автодополнения. Он реализует интерфейс GtkCellLayout, что позволяет пользователю добавлять дополнительные ячейки в GtkTreeView с совпадающими результатами автодополнения.
«Функциональность автодополнения» означает, что при изменении текста в поле ввода GtkEntryCompletion проверяет, какие строки в модели соответствуют текущему содержимому поля ввода, и отображает список совпадений. По умолчанию соответствие осуществляется путем сравнения текста ввода без учета регистра с текстовой колонкой модели (см. gtk_entry_completion_set_text_column()), но это можно переопределить с помощью пользовательской функции поиска соответствий (см. gtk_entry_completion_set_match_func()).
При выборе пользователем результата автодополнения содержимое поля ввода обновляется. По умолчанию содержимое поля ввода заменяется текстовой колонкой модели, но это можно переопределить, подключившись к сигналу “match-selected” и обновив поле ввода в обработчике сигнала. Обратите внимание, что из обработчика сигнала необходимо возвращать TRUE, чтобы подавить стандартное поведение.
Для добавления функциональности автодополнения в поле ввода используйте gtk_entry_set_completion().
В дополнение к обычным совпадениям автодополнения, которые будут вставлены в поле ввода при их выборе, GtkEntryCompletion также позволяет отображать «действия» в окне всплывающего списка. Их внешний вид похож на пункты меню, чтобы четко отличать их от строк автодополнения. Когда выбирается действие, испускается сигнал “action-activated”.
GtkEntryCompletion использует модель GtkTreeModelFilter, чтобы представить подмножество всей модели, которое в настоящее время соответствует условиям. Хотя сигналы GtkEntryCompletion “match-selected” и “cursor-on-match” принимают исходную модель и итератор, указывающий на эту модель, другие обратные вызовы и сигналы (например, GtkCellLayoutDataFuncs или “apply-attributes”) обычно принимают модель фильтра в качестве аргумента. Пока вы используете только gtk_tree_model_get(), это не повлияет на вас. Если по какой-либо причине вам нужна исходная модель, используйте gtk_tree_model_filter_get_model(). Не забудьте использовать gtk_tree_model_filter_convert_iter_to_child_iter() для получения соответствующего итератора.
Функции
GtkEntryCompletionMatchFunc ()
gboolean (*GtkEntryCompletionMatchFunc) (GtkEntryCompletion *completion,const gchar *key,GtkTreeIter *iter,gpointer user_data);
Функция, определяющая, соответствует ли строка, указанная параметром iter, заданному параметру key и должна ли она отображаться как возможная автодополнение для key. Обратите внимание, что key нормализована и приведена к нижнему регистру (см. g_utf8_normalize() и g_utf8_casefold()). Если это не подходит, функция соответствия имеет доступ к исходному ключу через gtk_entry_get_text (GTK_ENTRY (. gtk_entry_completion_get_entry()))
Параметры
completion | объект GtkEntryCompletion | |
key | строка для сравнения, нормализованная и приведённая к нижнему регистру | |
iter | GtkTreeIter, указывающая на строку для сравнения | |
user_data | пользовательские данные, переданные функции |
Возвращаемое значение
TRUE, если iter должна отображаться как возможная автодополнение для key
gtk_entry_completion_new ()
GtkEntryCompletion *
gtk_entry_completion_new (void); Создаёт новый объект GtkEntryCompletion.
Возвращаемое значение
Созданный объект GtkEntryCompletion
С: 2.4
gtk_entry_completion_new_with_area ()
GtkEntryCompletion *
gtk_entry_completion_new_with_area (GtkCellArea *area); Создаёт новый объект GtkEntryCompletion с использованием указанного area для выравнивания ячеек в базовом GtkTreeViewColumn выпадающего меню.
Параметры
area | объект GtkCellArea для выравнивания ячеек |
Возвращаемое значение
Созданный объект GtkEntryCompletion
С: 3.0
gtk_entry_completion_get_entry ()
GtkWidget *
gtk_entry_completion_get_entry (GtkEntryCompletion *completion); Возвращает поле, к которому прикреплён completion.
Параметры
completion | объект GtkEntryCompletion |
Возвращаемое значение
Поле, к которому прикреплён completion.
[transfer none]
С: 2.4
gtk_entry_completion_set_model ()
void gtk_entry_completion_set_model (GtkEntryCompletion *completion,GtkTreeModel *model);
Устанавливает модель для GtkEntryCompletion. Если у completion уже есть модель, она будет удалена перед установкой новой модели. Если модель NULL, то модель будет удалена.
Параметры
completion | объект GtkEntryCompletion | |
model | модель GtkTreeModel. | [allow-none] |
С: 2.4
gtk_entry_completion_get_model ()
GtkTreeModel *
gtk_entry_completion_get_model (GtkEntryCompletion *completion); Возвращает модель, используемую GtkEntryCompletion в качестве источника данных. Возвращает NULL, если модель не установлена.
Параметры
completion | объект GtkEntryCompletion |
Возвращаемое значение
Объект GtkTreeModel или NULL, если модель не используется.
[nullable][transfer none]
С: 2.4
gtk_entry_completion_set_match_func ()
void gtk_entry_completion_set_match_func (GtkEntryCompletion *completion,GtkEntryCompletionMatchFunc func,gpointer func_data,GDestroyNotify func_notify);
Устанавливает функцию соответствия для completion в func. Функция соответствия используется для определения, должна ли строка быть в списке автодополнения.
Параметры
completion | объект GtkEntryCompletion | |
func | функция GtkEntryCompletionMatchFunc | |
func_data | пользовательские данные для | |
func_notify | уведомление об уничтожении для |
С: 2.4
gtk_entry_completion_set_minimum_key_length ()
void gtk_entry_completion_set_minimum_key_length (GtkEntryCompletion *completion,gint length);
Требуется, чтобы длина ключа поиска для completion была не менее length. Это полезно для длинных списков, где автодополнение с небольшим ключом занимает много времени и приведёт к бессмысленным результатам (т.е., слишком большой набор данных).
Параметры
completion | объект GtkEntryCompletion | |
length | минимальная длина ключа для начала автодополнения |
С: 2.4
gtk_entry_completion_get_minimum_key_length ()
gint
gtk_entry_completion_get_minimum_key_length
(GtkEntryCompletion *completion); Возвращает минимальную длину ключа, установленную для completion.
Параметры
completion | объект GtkEntryCompletion |
Возвращаемое значение
Текущая минимальная длина ключа
С: 2.4
gtk_entry_completion_compute_prefix ()
gchar * gtk_entry_completion_compute_prefix (GtkEntryCompletion *completion,const char *key);
Вычисляет общее префикс, которым обладают все строки в completion, начинающиеся с key. Если ни одна строка не соответствует key, возвращается NULL. Обратите внимание, что для работы этой функции необходимо установить столбец текста, см. gtk_entry_completion_set_text_column() для получения подробностей.
Параметры
completion | завершение ввода | |
key | текст для завершения |
Возвращает
Общий префикс всех строк, начинающихся с key, или NULL, если ни одна строка не соответствует key.
[nullable][transfer full]
С: 3.4
gtk_entry_completion_complete ()
void
gtk_entry_completion_complete (GtkEntryCompletion *completion); Запрашивает операцию завершения, или, другими словами, перефильтрацию текущего списка с помощью текущего ключа. Вид списка завершений будет обновлен соответствующим образом.
Параметры
completion | завершение ввода GtkEntryCompletion |
С: 2.4
gtk_entry_completion_get_completion_prefix ()
const gchar *
gtk_entry_completion_get_completion_prefix
(GtkEntryCompletion *completion); Получить исходный текст, введённый пользователем, который инициировал завершение, или NULL, если текущей операции завершения нет.
Параметры
completion | завершение ввода GtkEntryCompletion |
Возвращает
префикс для текущего завершения
С: 2.12
gtk_entry_completion_insert_prefix ()
void
gtk_entry_completion_insert_prefix (GtkEntryCompletion *completion); Запрашивает вставку префикса.
Параметры
completion | завершение ввода GtkEntryCompletion |
С: 2.6
gtk_entry_completion_insert_action_text ()
void gtk_entry_completion_insert_action_text (GtkEntryCompletion *completion,gint index_,const gchar *text);
Вставляет действие в список элементов действий completion в позиции index_ с текстом text. Если требуется, чтобы элемент действия имел разметку, используйте gtk_entry_completion_insert_action_markup().
Обратите внимание, что index_ — это относительная позиция в списке действий, а позиция действия может измениться при удалении другого действия.
Параметры
completion | завершение ввода GtkEntryCompletion | |
index_ | индекс вставляемого элемента | |
text | текст вставляемого элемента |
С: 2.4
gtk_entry_completion_insert_action_markup ()
void gtk_entry_completion_insert_action_markup (GtkEntryCompletion *completion,gint index_,const gchar *markup);
Вставляет действие в список элементов действий completion в позиции index_ с разметкой markup.
Параметры
completion | завершение ввода GtkEntryCompletion | |
index_ | индекс вставляемого элемента | |
markup | разметка вставляемого элемента |
С: 2.4
gtk_entry_completion_delete_action ()
void gtk_entry_completion_delete_action (GtkEntryCompletion *completion,gint index_);
Удаляет действие в позиции index_ из списка действий completion.
Обратите внимание, что index_ — это относительная позиция, и позиция действия может измениться с момента её вставки.
Параметры
completion | завершение ввода GtkEntryCompletion | |
index_ | индекс удаляемого элемента |
С: 2.4
gtk_entry_completion_set_text_column ()
void gtk_entry_completion_set_text_column (GtkEntryCompletion *completion,gint column);
Функция-утилита для настройки наиболее часто используемого случая: список завершений только со строками. Эта функция настроит completion для отображения списка (и только) строк в списке завершений и для получения этих строк из column в модели completion.
Эта функция создает и добавляет GtkCellRendererText для выбранного столбца. Если нужно установить столбец текста, но не нужен элемент рендеринга ячейки, используйте g_object_set() для непосредственного задания свойства “text-column”.
Параметры
completion | завершение ввода GtkEntryCompletion | |
column | столбец в модели |
С: 2.4
gtk_entry_completion_get_text_column ()
gint
gtk_entry_completion_get_text_column (GtkEntryCompletion *completion); Возвращает столбец в модели completion для получения строк.
Параметры
completion | завершение ввода GtkEntryCompletion |
Возвращает
столбец, содержащий строки
С: 2.6
gtk_entry_completion_set_inline_completion ()
void gtk_entry_completion_set_inline_completion (GtkEntryCompletion *completion,gboolean inline_completion);
Устанавливает, должен ли автоматически вставляться общий префикс возможных завершений в поле ввода.
Параметры
completion | завершение ввода GtkEntryCompletion | |
inline_completion |
|
С: 2.6
gtk_entry_completion_get_inline_completion ()
gboolean
gtk_entry_completion_get_inline_completion
(GtkEntryCompletion *completion); Возвращает значение, указывающее, следует ли автоматически вставлять общее префиксное совпадение возможных дополнений в поле.
Параметры
completion | объект GtkEntryCompletion |
Возвращаемое значение
TRUE, если вставка дополнения включена
С: 2.6
gtk_entry_completion_set_inline_selection ()
void gtk_entry_completion_set_inline_selection (GtkEntryCompletion *completion,gboolean inline_selection);
Устанавливает возможность переключения между возможными дополнениями внутри поля.
Параметры
completion | объект GtkEntryCompletion | |
inline_selection |
|
С: 2.12
gtk_entry_completion_get_inline_selection ()
gboolean
gtk_entry_completion_get_inline_selection
(GtkEntryCompletion *completion); Возвращает TRUE, если включен режим вставки дополнения.
Параметры
completion | объект GtkEntryCompletion |
Возвращаемое значение
TRUE, если режим вставки дополнения включен
С: 2.12
gtk_entry_completion_set_popup_completion ()
void gtk_entry_completion_set_popup_completion (GtkEntryCompletion *completion,gboolean popup_completion);
Устанавливает отображение дополнений в всплывающем окне.
Параметры
completion | объект GtkEntryCompletion | |
popup_completion |
|
С: 2.6
gtk_entry_completion_get_popup_completion ()
gboolean
gtk_entry_completion_get_popup_completion
(GtkEntryCompletion *completion); Возвращает значение, указывающее, будут ли дополнения отображаться во всплывающем окне.
Параметры
completion | объект GtkEntryCompletion |
Возвращаемое значение
TRUE, если всплывающее окно отображения дополнений включено
С: 2.6
gtk_entry_completion_set_popup_set_width ()
void gtk_entry_completion_set_popup_set_width (GtkEntryCompletion *completion,gboolean popup_set_width);
Устанавливает, будет ли всплывающее окно дополнений изменять свою ширину, чтобы соответствовать ширине поля ввода.
Параметры
completion | объект GtkEntryCompletion | |
popup_set_width |
|
С: 2.8
gtk_entry_completion_get_popup_set_width ()
gboolean
gtk_entry_completion_get_popup_set_width
(GtkEntryCompletion *completion); Возвращает значение, указывающее, будет ли всплывающее окно дополнений изменять свою ширину, чтобы соответствовать ширине поля ввода.
Параметры
completion | объект GtkEntryCompletion |
Возвращаемое значение
TRUE, если ширина всплывающего окна будет соответствовать ширине поля ввода
С: 2.8
gtk_entry_completion_set_popup_single_match ()
void gtk_entry_completion_set_popup_single_match (GtkEntryCompletion *completion,gboolean popup_single_match);
Устанавливает, будет ли всплывающее окно дополнений отображаться, даже если существует только одно совпадение. Возможно, следует установить это значение в FALSE, если вы используете встроенное дополнение.
Параметры
completion | объект GtkEntryCompletion | |
popup_single_match |
|
С: 2.8
gtk_entry_completion_get_popup_single_match ()
gboolean
gtk_entry_completion_get_popup_single_match
(GtkEntryCompletion *completion); Возвращает значение, указывающее, будет ли всплывающее окно дополнений отображаться, даже если существует только одно совпадение.
Параметры
completion | объект GtkEntryCompletion |
Возвращаемое значение
TRUE, если всплывающее окно будет отображаться независимо от количества совпадений
С: 2.8
Типы и значения
struct GtkEntryCompletion
struct GtkEntryCompletion;
Подробное описание свойств
Свойство “cell-area”
“cell-area” GtkCellArea *
Объект GtkCellArea, используемый для компоновки элементов отображения ячеек в столбце treeview.
Если при создании завершения ввода с помощью gtk_entry_completion_new_with_area() область не указана, будет использоваться горизонтальная область GtkCellAreaBox.
Флаги: Чтение / Запись / Только для создания
С версии: 3.0
Свойство “inline-completion”
“inline-completion” gboolean
Определяет, должен ли общий префикс возможных завершений автоматически вставляться в поле ввода. Обратите внимание, что это требует установки столбца с текстом, даже если вы используете пользовательскую функцию соответствия.
Флаги: Чтение / Запись
Значение по умолчанию: ЛОЖЬ
С версии: 2.6
Свойство “inline-selection”
“inline-selection” gboolean
Определяет, будут ли возможные завершения в всплывающем окне отображаться в поле ввода при перемещении по ним.
Флаги: Чтение / Запись
Значение по умолчанию: ЛОЖЬ
С версии: 2.12
Свойство “minimum-key-length”
“minimum-key-length” gint
Минимальная длина ключа поиска для поиска соответствий.
Флаги: Чтение / Запись
Допустимые значения: >= 0
Значение по умолчанию: 1
Свойство “popup-completion”
“popup-completion” gboolean
Определяет, должны ли возможные завершения отображаться во всплывающем окне.
Флаги: Чтение / Запись
Значение по умолчанию: ИСТИНА
С версии: 2.6
Свойство “popup-set-width”
“popup-set-width” gboolean
Определяет, будет ли всплывающее окно с завершениями изменять свою ширину на ширину поля ввода.
Флаги: Чтение / Запись
Значение по умолчанию: ИСТИНА
С версии: 2.8
Свойство “popup-single-match”
“popup-single-match” gboolean
Определяет, будет ли всплывающее окно с завершениями отображаться для единственного возможного завершения. Вероятно, вам нужно установить это значение в FALSE, если вы используете встроенное завершение.
Флаги: Чтение / Запись
Значение по умолчанию: ИСТИНА
С версии: 2.8
Свойство “text-column”
“text-column” gint
Столбец модели, содержащий строки. Обратите внимание, что строки должны быть в кодировке UTF-8.
Флаги: Чтение / Запись
Допустимые значения: >= -1
Значение по умолчанию: -1
С версии: 2.6
Подробное описание сигналов
Сигнал “action-activated”
void user_function (GtkEntryCompletion *widget, gint index, gpointer user_data)
Издается при активации действия.
Параметры
widget | объект, получивший сигнал | |
index | индекс активированного действия | |
user_data | данные пользователя, заданные при подключении обработчика сигнала. |
Флаги: Run Last
С версии: 2.4
Сигнал “cursor-on-match”
gboolean user_function (GtkEntryCompletion *widget, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data)
Издается, когда совпадение из курсора находится на совпадении из списка. По умолчанию поведение заключается в замене содержимого поля вводом содержимым текстовой колонки в строке, на которую указывает iter.
Обратите внимание, что model — это модель, которая была передана в gtk_entry_completion_set_model().
Параметры
widget | объект, получивший сигнал | |
model | содержащий совпадения GtkTreeModel | |
iter | GtkTreeIter расположенная на выбранном совпадении | |
user_data | данные пользователя, заданные при подключении обработчика сигнала. |
Возвращаемое значение
TRUE, если сигнал был обработан
Флаги: Run Last
С версии: 2.12
Сигнал “insert-prefix”
gboolean user_function (GtkEntryCompletion *widget, gchar *prefix, gpointer user_data)
Издается при срабатывании инлайнового автозаполнения. По умолчанию поведение заключается в отображении всего префикса и выделении только что вставленной части.
Приложения могут подключиться к этому сигналу, чтобы вставить только меньшую часть prefix в поле ввода — например, поле ввода в GtkFileChooser вставляет только часть префикса до следующего '/'.
Параметры
widget | объект, получивший сигнал | |
prefix | общий префикс всех возможных дополнений | |
user_data | данные пользователя, заданные при подключении обработчика сигнала. |
Возвращаемое значение
TRUE, если сигнал был обработан
Флаги: Run Last
С версии: 2.6
Сигнал “match-selected”
gboolean user_function (GtkEntryCompletion *widget, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data)
Издается при выборе совпадения из списка. По умолчанию поведение заключается в замене содержимого поля ввода содержимым текстовой колонки в строке, на которую указывает iter.
Обратите внимание, что model — это модель, которая была передана в gtk_entry_completion_set_model().
Параметры
widget | объект, получивший сигнал | |
model | содержащий совпадения GtkTreeModel | |
iter | GtkTreeIter расположенная на выбранном совпадении | |
user_data | данные пользователя, заданные при подключении обработчика сигнала. |
Возвращаемое значение
TRUE, если сигнал был обработан
Флаги: Run Last
С версии: 2.4
Сигнал “no-matches”
void user_function (GtkEntryCompletion *widget, gpointer user_data)
Издается, когда модель фильтра имеет ноль строк в методе completion_complete. (Другими словами, когда у GtkEntryCompletion нет предложений)
Параметры
widget | объект, получивший сигнал | |
user_data | данные пользователя, заданные при подключении обработчика сигнала. |
Флаги: Run Last
С версии: 3.14
© 2005–2020 The GNOME Project
Licensed under the GNU Lesser General Public License version 2.1 or later.
https://developer.gnome.org/gtk3/3.22/GtkEntryCompletion.html