Spec-Zone.ru › GTK 3.22

GtkEntryCompletion

GtkEntryCompletion — Функциональность автодополнения для GtkEntry

Функции

gboolean (*GtkEntryCompletionMatchFunc) ()
GtkEntryCompletion * gtk_entry_completion_new ()
GtkEntryCompletion * gtk_entry_completion_new_with_area ()
GtkWidget * gtk_entry_completion_get_entry ()
void gtk_entry_completion_set_model ()
GtkTreeModel * gtk_entry_completion_get_model ()
void gtk_entry_completion_set_match_func ()
void gtk_entry_completion_set_minimum_key_length ()
gint gtk_entry_completion_get_minimum_key_length ()
gchar * gtk_entry_completion_compute_prefix ()
void gtk_entry_completion_complete ()
const gchar * gtk_entry_completion_get_completion_prefix ()
void gtk_entry_completion_insert_prefix ()
void gtk_entry_completion_insert_action_text ()
void gtk_entry_completion_insert_action_markup ()
void gtk_entry_completion_delete_action ()
void gtk_entry_completion_set_text_column ()
gint gtk_entry_completion_get_text_column ()
void gtk_entry_completion_set_inline_completion ()
gboolean gtk_entry_completion_get_inline_completion ()
void gtk_entry_completion_set_inline_selection ()
gboolean gtk_entry_completion_get_inline_selection ()
void gtk_entry_completion_set_popup_completion ()
gboolean gtk_entry_completion_get_popup_completion ()
void gtk_entry_completion_set_popup_set_width ()
gboolean gtk_entry_completion_get_popup_set_width ()
void gtk_entry_completion_set_popup_single_match ()
gboolean gtk_entry_completion_get_popup_single_match ()

Свойства

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 Чтение / Запись

Сигналы

void action-activated Выполнить последним
gboolean cursor-on-match Выполнить последним
gboolean insert-prefix Выполнить последним
gboolean match-selected Выполнить последним
void no-matches Выполнить последним

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

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

пользовательские данные, переданные функции gtk_entry_completion_set_match_func()

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

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

func_notify

уведомление об уничтожении для func_data.

С: 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

столбец в модели completion для получения строк

С: 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

TRUE для включения встроенного завершения

С: 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

TRUE для вставки дополнения

С: 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

TRUE для отображения дополнений во всплывающем окне

С: 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

TRUE для соответствия ширины всплывающего окна ширине поля ввода

С: 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

TRUE, если всплывающее окно должно отображаться даже для одного совпадения

С: 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

Свойство “model”

  “model”                    GtkTreeModel *

Модель для поиска соответствий.

Флаги: Чтение / Запись

Свойство “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

Spec-Zone.ru

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