Prev

Up

Home

GTK+ Reference Manual

Next

Top  |  Description  |  Object Hierarchy  |  Implemented Interfaces  |  Properties  |  Signals

GtkEntryCompletion

GtkEntryCompletion Функциональные возможности завершения для GtkEntry

Краткое описание

#include <gtk/gtk.h> GtkEntryCompletion; gboolean (*GtkEntryCompletionMatchFunc) (GtkEntryCompletion *completion, const gchar *key, GtkTreeIter *iter, gpointer user_data); GtkEntryCompletion* gtk_entry_completion_new (void); GtkWidget* gtk_entry_completion_get_entry (GtkEntryCompletion *completion); void gtk_entry_completion_set_model (GtkEntryCompletion *completion, GtkTreeModel *model); GtkTreeModel* gtk_entry_completion_get_model (GtkEntryCompletion *completion); void gtk_entry_completion_set_match_func (GtkEntryCompletion *completion, GtkEntryCompletionMatchFunc func, gpointer func_data, GDestroyNotify func_notify); void gtk_entry_completion_set_minimum_key_length (GtkEntryCompletion *completion, gint length); gint gtk_entry_completion_get_minimum_key_length (GtkEntryCompletion *completion); void gtk_entry_completion_complete (GtkEntryCompletion *completion); void gtk_entry_completion_insert_prefix (GtkEntryCompletion *completion); void gtk_entry_completion_insert_action_text (GtkEntryCompletion *completion, gint index_, const gchar *text); void gtk_entry_completion_insert_action_markup (GtkEntryCompletion *completion, gint index_, const gchar *markup); void gtk_entry_completion_delete_action (GtkEntryCompletion *completion, gint index_); void gtk_entry_completion_set_text_column (GtkEntryCompletion *completion, gint column); gint gtk_entry_completion_get_text_column (GtkEntryCompletion *completion); void gtk_entry_completion_set_inline_completion (GtkEntryCompletion *completion, gboolean inline_completion); gboolean gtk_entry_completion_get_inline_completion (GtkEntryCompletion *completion); void gtk_entry_completion_set_popup_completion (GtkEntryCompletion *completion, gboolean popup_completion); gboolean gtk_entry_completion_get_popup_completion (GtkEntryCompletion *completion); void gtk_entry_completion_set_popup_set_width (GtkEntryCompletion *completion, gboolean popup_set_width); gboolean gtk_entry_completion_get_popup_set_width (GtkEntryCompletion *completion); void gtk_entry_completion_set_popup_single_match (GtkEntryCompletion *completion, gboolean popup_single_match); gboolean gtk_entry_completion_get_popup_single_match (GtkEntryCompletion *completion);

Иерархия объектов

GObject +----GtkEntryCompletion

Осуществляемый интерфейс

GtkEntryCompletion осуществляет GtkCellLayout.

Свойства

"inline-completion" gboolean : Read / Write "minimum-key-length" gint : Read / Write "model" GtkTreeModel : Read / Write "popup-completion" gboolean : Read / Write "popup-set-width" gboolean : Read / Write "popup-single-match" gboolean : Read / Write "text-column" gint : Read / Write

Сигналы

"action-activated" void user_function (GtkEntryCompletion *widget, gint index, gpointer user_data) : Run last "insert-prefix" gboolean user_function (GtkEntryCompletion *widget, gchar *prefix, gpointer user_data) : Run last "match-selected" gboolean user_function (GtkEntryCompletion *widget, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) : Run last

Описание

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

"Completion functionality" означает что когда пользователь изменяет текст ввода, GtkEntryCompletion проверяет какие строки в соответствуют модели текущемго содержимого ввода и отображают список соответствий. По умолчанию, соответствие выполняется сравнивая текст ввода без учета регистра с текстом графы модели (смотрите gtk_entry_completion_set_text_column()), но это может быть отменено с помощью настройки функции соответствия (смотрите gtk_entry_completion_set_match_func()).

Когда пользователь выделяет завершение, содержимое ввода обновляется. По умолчанию, содержимое ввода заменяется текстом графы модели, но это может быть изменено подключением сигнала ::match-selected и обновлением ввода в обработчике сигнала. Помните, вы должны вернуть TRUE из обработчика сигнала чтобы подавить поведение по умолчанию.

Для добавления завершающей функциональности ввода используйте gtk_entry_set_completion().

В дополнение к обычному соответствующему завершению, которое вставляется в вод когда происходит выделение, GtkEntryCompletion также позволяет отображать "actions" во всплывающем окне. Их внешний вид похож на пункты меню, для явного отличия от строк завершения. Когда действие выбрано, издаётся сигнал ::action-activated.

Детали

GtkEntryCompletion

typedef struct _GtkEntryCompletion GtkEntryCompletion;

Структура GtkEntryCompletion содержит только закрытые данные.


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_get_entry ()

GtkWidget*  gtk_entry_completion_get_entry  (GtkEntryCompletion *completion);

Получает ввод к которому должно быть прикреплено завершение completion.

completion :

GtkEntryCompletion.

Возвращает:

Получает ввод к которому должно быть прикреплено завершение completion.

Начиная с версии 2.4


gtk_entry_completion_set_model ()

void gtk_entry_completion_set_model (GtkEntryCompletion *completion, GtkTreeModel *model);

Устанавливает модель для GtkEntryCompletion. Если completion уже имеет модель, она будет удалена перед установкой новой модели. Если модель NULL, то когда просто удаляется существующая.

completion :

GtkEntryCompletion.

model :

GtkTreeModel.

Начиная с версии 2.4


gtk_entry_completion_get_model ()

GtkTreeModel* gtk_entry_completion_get_model (GtkEntryCompletion *completion);

Находит модель GtkEntryCompletion используемую как исходные данные. Возвращает NULL если модель не установлена.

completion :

GtkEntryCompletion.

Возвращает:

GtkTreeModel, или NULL если в текущий момент не используется.

Начиная с версии 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_complete ()

void        gtk_entry_completion_complete   (GtkEntryCompletion *completion);

Запрашивает операцию завершения, или другими словами пере-фильтрацию текущемго списка с завершениями, используя текущий ключ. Вид списка будет соответственно обновлён.

completion :

GtkEntryCompletion.

Начиная с версии 2.4


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's в позицию index_ с текстом text. Если вы хотите отметить элемент действия, используйте gtk_entry_completion_insert_action_markup().

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's в позицию 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's.

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_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, если вы используете inline completion.

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

Детали свойств

Свойство "inline-completion"

  "inline-completion"    gboolean              : Read / Write

Определяет должен ли обычный префикс возможного завершения появляться автоматически во вводе. Помните, требуется установка текста столбца (text-column), даже если вы используете функцию обычного соответствия.

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

Начиная с версии 2.6


Свойство "minimum-key-length"

  "minimum-key-length"   gint                  : Read / Write

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

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

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


Свойство "model"

  "model"                GtkTreeModel          : Read / Write

Модель в которой происходит поиск соответствий.


Свойство "popup-completion"

  "popup-completion"     gboolean              : Read / Write

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

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

Начиная с версии 2.6


Свойство "popup-set-width"

  "popup-set-width"      gboolean              : Read / Write

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

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

Начиная с версии 2.8


Свойство "popup-single-match"

  "popup-single-match"   gboolean              : Read / Write

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

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

Начиная с версии 2.8


Свойство "text-column"

  "text-column"          gint                  : Read / Write

Столб модели которая содержит строки.

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

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

Начиная с версии 2.6

Детали сигналов

Сигнал "action-activated"

void user_function (GtkEntryCompletion *widget, gint index, gpointer user_data) : Run last

Издаётся при активации действия.

widget :

объект получающий сигнал.

index :

позиция активизированного действия.

user_data :

Пользовательские данные устанавливаемые при подключении обработчика сигнала.

Начиная с версии 2.4


Сигнал "insert-prefix"

gboolean user_function (GtkEntryCompletion *widget, gchar *prefix, gpointer user_data) : Run last

Издаётся когда переключается авто дополнение ввода. По умолчанию создаётся ввод отображающий весь префикс и выделение вновь вставленной части.

Приложения могут подключать этот сигнал чтобы вставить только меньшую часть prefix во ввод например, ввод используемый в GtkFileChooser вставляет только часть префикса до следующего '/'.

widget :

объект получающий сигнал.

prefix :

Основной префикс всех возможных завершений

user_data :

Пользовательские данные устанавливаемые при подключении обработчика сигнала.

Возвращает:

TRUE если сигнал был обработан

Начиная с версии 2.6


Сигнал "match-selected"

gboolean user_function (GtkEntryCompletion *widget, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) : Run last

Издаётся когда соответствие из списка выбрано. По умолчанию переписывает содержимое ввода содержимым строки столбца на которую указывает iter.

widget :

объект получающий сигнал.

model :

GtkTreeModel содержащая соответствия

iter :

GtkTreeIter позиционируемое выбранным соответствием

user_data :

Пользовательские данные устанавливаемые при подключении обработчика сигнала.

Возвращает:

TRUE если сигнал был обработан

Начиная с версии 2.4