Справочное описание GLib | ||||
---|---|---|---|---|
Automatic String CompletionAutomatic String Completion — Поддержка для автоматического завершения используя группу целевых строк. |
#include <glib.h>
GCompletion;
GCompletion* g_completion_new (GCompletionFunc func);
gchar* (*GCompletionFunc) (gpointer );
void g_completion_add_items (GCompletion *cmp,
GList *items);
void g_completion_remove_items (GCompletion *cmp,
GList *items);
void g_completion_clear_items (GCompletion *cmp);
GList* g_completion_complete (GCompletion *cmp,
const gchar *prefix,
gchar **new_prefix);
GList* g_completion_complete_utf8 (GCompletion *cmp,
const gchar *prefix,
gchar **new_prefix);
void g_completion_set_compare (GCompletion *cmp,
GCompletionStrncmpFunc strncmp_func);
gint (*GCompletionStrncmpFunc) (const gchar *s1,
const gchar *s2,
gsize n);
void g_completion_free (GCompletion *cmp);
GCompletion обеспечивает поддержку автоматического завершения строки используя любую группу целевых строк. Это обычно используется для завершения имён файлов как в обычных оболочках UNIX.
GCompletion создаётся используя
g_completion_new()
.
Целевые элементы добавляются и удаляются с помощью
g_completion_add_items()
,
g_completion_remove_items()
и
g_completion_clear_items()
.
Попытка завершения запрашивается с помощью
g_completion_complete()
или
g_completion_complete_utf8()
.
GCompletion освобождается с помощью g_completion_free()
когда больше не нужна.
Завершающими элементами могут быть просто строки (например имена файлов),
или указателями на произвольные структуры данных. Если используются структуры данных вы должны обеспечить
GCompletionFunc в
g_completion_new()
,
которая находит элементы строк в структуре данных.
Вы можете изменять способ сравнения строк устанавливая разные
GCompletionStrncmpFunc в g_completion_set_compare()
.
typedef struct {
GList* items;
GCompletionFunc func;
gchar* prefix;
GList* cache;
GCompletionStrncmpFunc strncmp_func;
} GCompletion;
Структура данных используемая для автоматического завершения.
GList *items ; |
список целевых элементов (строки или структуры данных). |
GCompletionFunc func ; |
функция вызываемая для получения строки связанной с целевым элементом.
Может быть NULL если целевые элементы являются строками.
|
gchar *prefix ; |
последний префикс помещаемый в
g_completion_complete() или
g_completion_complete_utf8() .
|
GList *cache ; |
список элементов который начинается с prefix .
|
GCompletionStrncmpFunc strncmp_func ; |
функция используемая для сравнения строк.
Используйте
g_completion_set_compare() для изменения этой функции.
|
GCompletion* g_completion_new (GCompletionFunc func);
Создаёт новую GCompletion.
func : |
функция вызываемая для возврата строки представляющей элемент в
GCompletion, или
NULL если строки будут использоваться как элементы
GCompletion.
|
Возвращает : | новая структура GCompletion. |
gchar* (*GCompletionFunc) (gpointer );
Определяет тип функции помещаемой в g_completion_new()
.
Она должна возвращать строку соответствующую полученному целевому элементу.
Используется когда вы используете структуры данных как элементы
GCompletion.
Param1 : |
завершающий элемент. |
Возвращает : | строка соответствующая элементу. |
void g_completion_add_items (GCompletion *cmp,
GList *items);
Добавляет элементы в GCompletion.
cmp : |
GCompletion. |
items : |
список добавляемых элементов. |
void g_completion_remove_items (GCompletion *cmp,
GList *items);
Удаляет элементы из GCompletion.
cmp : |
GCompletion. |
items : |
элементы для удаления. |
void g_completion_clear_items (GCompletion *cmp);
Удаляет все элементы для удаления GCompletion.
cmp : |
GCompletion. |
GList* g_completion_complete (GCompletion *cmp,
const gchar *prefix,
gchar **new_prefix);
Пытается завершить строку prefix
используя целевые элементы
GCompletion.
cmp : |
GCompletion. |
prefix : |
строковый префикс, обычно печатается пользователем, который сравнивается с каждым элементом структуры. |
new_prefix : |
если не-NULL ,
возвращает самый длинный префикс который является основой для всех элементов соответствующих
prefix , или NULL
если нет элементов соответствующих prefix .
Эта строка должна освобождаться когда больше не нужна.
|
Возвращает : | список элементов строки которых начинаются с prefix .
Не должно изменяться.
|
GList* g_completion_complete_utf8 (GCompletion *cmp,
const gchar *prefix,
gchar **new_prefix);
Пытается завершить строку prefix
используя целевые элементы
GCompletion.
В отличие от g_completion_complete()
,
эта функция возвращает самый длинный prefix который является допустимой строкой UTF-8, опуская возможные общие части символа.
Вы должны использовать эту функцию вместо g_completion_complete()
если ваши элементы являются строками UTF-8.
cmp : |
the GCompletion |
prefix : |
строка префикс, обычно используется пользователем, которая сравнивается с каждым элементом |
new_prefix : |
если не-NULL ,
возвращает самый длинный префикс который является основой для всех элементов соответствующих
prefix , или
NULL если нет элементов соответствующих prefix .
Эта строка должна освобождаться когда больше не нужна.
|
Возвращает : | список элементов строки которых начинаются с prefix .
Не должен меняться.
|
Начиная с версии 2.4
void g_completion_set_compare (GCompletion *cmp,
GCompletionStrncmpFunc strncmp_func);
Устанавливает функцию используемую для сравнения строк. По умолчанию строки сравниваются функцией strncmp()
.
cmp : |
GCompletion. |
strncmp_func : |
функция сравнения строк. |
gint (*GCompletionStrncmpFunc) (const gchar *s1,
const gchar *s2,
gsize n);
Определяет тип функции помещаемой в g_completion_set_compare()
.
Используется когда вы используете строки как элементы GCompletion.
s1 : |
строка для сравнения с s2 .
|
s2 : |
строка для сравнения с s1 .
|
n : |
максимальное количество байт для сравнения. |
Возвращает : | целочисленное меньше, равное, или больше нуля если первые найденные
n байт s1 , соответственно меньше, равны,
или больше чем первые n байт s2 .
|
void g_completion_free (GCompletion *cmp);
Освобождает всю память используемую для GCompletion.
cmp : |
GCompletion. |