Spec-Zone.ru › GTK 3.24

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 Чтение/Запись
int minimum-key-length Чтение/Запись
GtkTreeModel * model Чтение/Запись
gboolean popup-completion Чтение/Запись
gboolean popup-set-width Чтение/Запись
gboolean popup-single-match Чтение/Запись
int 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 уже установлена модель, она будет удалена перед установкой новой. Если model равна 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, используемый для размещения элементов отображения ячеек в столбце дерева.

Если при создании дополнения ввода с помощью gtk_entry_completion_new_with_area() область не указана, будет использована горизонтальная область GtkCellAreaBox.

Владелец: GtkEntryCompletion

Флаги: Чтение / Запись / Только для создания

С: 3.0

Свойство “inline-completion”

  “inline-completion”        gboolean

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

Владелец: GtkEntryCompletion

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

Значение по умолчанию: FALSE

С: 2.6

Свойство “inline-selection”

  “inline-selection”         gboolean

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

Владелец: GtkEntryCompletion

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

Значение по умолчанию: FALSE

С: 2.12

Свойство “minimum-key-length”

  “minimum-key-length”       int

Минимальная длина ключа поиска для поиска совпадений.

Владелец: GtkEntryCompletion

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

Допустимые значения: >= 0

Значение по умолчанию: 1

Свойство “model”

  “model”                    GtkTreeModel *

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

Владелец: GtkEntryCompletion

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

Свойство “popup-completion”

  “popup-completion”         gboolean

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

Владелец: GtkEntryCompletion

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

Значение по умолчанию: TRUE

С: 2.6

Свойство “popup-set-width”

  “popup-set-width”          gboolean

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

Владелец: GtkEntryCompletion

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

Значение по умолчанию: TRUE

С: 2.8

Свойство “popup-single-match”

  “popup-single-match”       gboolean

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

Владелец: GtkEntryCompletion

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

Значение по умолчанию: TRUE

С: 2.8

Свойство “text-column”

  “text-column”              int

Столбец модели, содержащий строки. Обратите внимание, что строки должны быть в формате UTF-8.

Владелец: GtkEntryCompletion

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

Допустимые значения: >= -1

Значение по умолчанию: -1

С: 2.6

Подробное описание сигналов

Сигнал “action-activated”

void
user_function (GtkEntryCompletion *widget,
               int                 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,
               char               *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.24/GtkEntryCompletion.html

Spec-Zone.ru

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