Справочное описание GLib | ||||
---|---|---|---|---|
#include <glib.h>
enum GOptionError;
#define G_OPTION_ERROR
gboolean (*GOptionArgFunc) (const gchar *option_name,
const gchar *value,
gpointer data,
GError **error);
GOptionContext;
GOptionContext* g_option_context_new (const gchar *parameter_string);
void g_option_context_set_summary (GOptionContext *context,
const gchar *summary);
const gchar* g_option_context_get_summary (GOptionContext *context);
void g_option_context_set_description
(GOptionContext *context,
const gchar *description);
const gchar* g_option_context_get_description
(GOptionContext *context);
const gchar* (*GTranslateFunc) (const gchar *str,
gpointer data);
void g_option_context_set_translate_func
(GOptionContext *context,
GTranslateFunc func,
gpointer data,
GDestroyNotify destroy_notify);
void g_option_context_set_translation_domain
(GOptionContext *context,
const gchar *domain);
void g_option_context_free (GOptionContext *context);
gboolean g_option_context_parse (GOptionContext *context,
gint *argc,
gchar ***argv,
GError **error);
void g_option_context_set_help_enabled
(GOptionContext *context,
gboolean help_enabled);
gboolean g_option_context_get_help_enabled
(GOptionContext *context);
void g_option_context_set_ignore_unknown_options
(GOptionContext *context,
gboolean ignore_unknown);
gboolean g_option_context_get_ignore_unknown_options
(GOptionContext *context);
enum GOptionArg;
enum GOptionFlags;
#define G_OPTION_REMAINING
GOptionEntry;
void g_option_context_add_main_entries
(GOptionContext *context,
const GOptionEntry *entries,
const gchar *translation_domain);
GOptionGroup;
void g_option_context_add_group (GOptionContext *context,
GOptionGroup *group);
void g_option_context_set_main_group (GOptionContext *context,
GOptionGroup *group);
GOptionGroup* g_option_context_get_main_group
(GOptionContext *context);
GOptionGroup* g_option_group_new (const gchar *name,
const gchar *description,
const gchar *help_description,
gpointer user_data,
GDestroyNotify destroy);
void g_option_group_free (GOptionGroup *group);
void g_option_group_add_entries (GOptionGroup *group,
const GOptionEntry *entries);
gboolean (*GOptionParseFunc) (GOptionContext *context,
GOptionGroup *group,
gpointer data,
GError **error);
void g_option_group_set_parse_hooks (GOptionGroup *group,
GOptionParseFunc pre_parse_func,
GOptionParseFunc post_parse_func);
void (*GOptionErrorFunc) (GOptionContext *context,
GOptionGroup *group,
gpointer data,
GError **error);
void g_option_group_set_error_hook (GOptionGroup *group,
GOptionErrorFunc error_func);
void g_option_group_set_translate_func
(GOptionGroup *group,
GTranslateFunc func,
gpointer data,
GDestroyNotify destroy_notify);
void g_option_group_set_translation_domain
(GOptionGroup *group,
const gchar *domain);
Анализатор командной строки GOption предназначен для более простой замены библиотеки popt. Он поддерживает короткие и длинные опции командной строки, как показано в следующем примере:
testtreemodel -r 1 --max-size 20 --rand --display=:1.0 -vb -- file1 file2
Пример демонстрирует множество особенностей синтаксического анализатора командной строки GOption
Опции могут быть одиночной буквой с предустановленным одиночным тире. Множество коротких опций могут быть сгруппированы за одним тире.
Длинные опцией предустанавливаются двумя последовательными тире.
Опции могут иметь дополнительный аргумент, который может быть числом, строкой или именем файла. Для длинных опций, дополнительный аргумент может быть присоединён с помощью знака равенства сразу после названия опции.
Неопциональные аргументы возвращаются как сброшенные аргументы.
Аргумент состоящий исключительно из двух тире предотвращает дальнейший анализ, любые аргументы (даже которые начинаются с тире) возвращаются как сброшенные аргументы.
Другая важная особенность GOption в автоматической генерации приятно оформленного вывода справки.
Если это явно не выключено с помощью функции
g_option_context_set_help_enabled()
, GOption распознаёт
--help
, -?
, --help-all
и --help-
groupname
опции
(где groupname
это имя GOptionGroup)
и пишет текст, подобный показанному в следующем примере, в stdout.
Usage:
testtreemodel [OPTION...] - test tree model performance
Help Options:
-?, --help Показать опции справки
--help-all Показать все опции справки
--help-gtk Показать опции GTK+
Application Options:
-r, --repeats=N Среднее число повторений N
-m, --max-size=M Проверить до 2^M элементов
--display=DISPLAY X display для использования
-v, --verbose Подробности
-b, --beep Сигнал при выполнении
--rand Произвольные данные
Группы опций GOption находятся в GOptionGroups,
которые облегчают включение опций из многочисленных источников. Они позволяют приложениям собирать группы опций из используемых библиотек,
добавляя их к своему GOptionContext,
и анализируя все опции одним вызовом
g_option_context_parse()
.
Смотрите gtk_get_option_group()
для примера.
Если задекларированная опция является печатной строкой или именем файла, GOption позаботится о преобразовании в правильную кодировку; строки возвращаются в кодировке UTF-8, имена файлов в кодировке имён файлов GLib.
Вот полный пример настроек GOption для анализа командной строки приведенной в примере выше и выполнение вывода примера справки.
static gint repeats = 2;
static gint max_size = 8;
static gboolean verbose = FALSE;
static gboolean beep = FALSE;
static gboolean rand = FALSE;
static GOptionEntry entries[] =
{
{ "repeats", 'r', 0, G_OPTION_ARG_INT, &repeats, "Среднее число повторений N", "N" },
{ "max-size", 'm', 0, G_OPTION_ARG_INT, &max_size, "Проверка до 2^M элементов", "M" },
{ "verbose", 'v', 0, G_OPTION_ARG_NONE, &verbose, "Подробности", NULL },
{ "beep", 'b', 0, G_OPTION_ARG_NONE, &beep, "Сигнал при выполнениии", NULL },
{ "rand", 0, 0, G_OPTION_ARG_NONE, &rand, "Произовольные данные", NULL },
{ NULL }
};
int
main (int argc, char *argv[])
{
GError *error = NULL;
GOptionContext *context;
context = g_option_context_new ("- test tree model performance");
g_option_context_add_main_entries (context, entries, GETTEXT_PACKAGE);
g_option_context_add_group (context, gtk_get_option_group (TRUE));
g_option_context_parse (context, &argc, &argv, &error);
/* ... */
}
typedef enum
{
G_OPTION_ERROR_UNKNOWN_OPTION,
G_OPTION_ERROR_BAD_VALUE,
G_OPTION_ERROR_FAILED
} GOptionError;
Коды ошибок возвращаемые анализатором опций.
G_OPTION_ERROR_UNKNOWN_OPTION |
Опция неизвестна анализатору.
Эта ошибка будет сообщена только если анализатор небыл проинструктирован игнорировать неизвестные опции,
смотрите g_option_context_set_ignore_unknown_options() .
|
G_OPTION_ERROR_BAD_VALUE |
Значение небыло проанализировано. |
G_OPTION_ERROR_FAILED |
Функция GOptionArgFunc завершилась неудачно. |
#define G_OPTION_ERROR (g_option_error_quark ())
Домен ошибки для анализатора опций. Ошибки в этом домене из перечисления GOptionError. Смотрите GError для информации о доменах ошибок.
gboolean (*GOptionArgFunc) (const gchar *option_name,
const gchar *value,
gpointer data,
GError **error);
Тип функции для анализа как callback-функция для опции G_OPTION_ARG_CALLBACK
.
option_name : |
Имя анализируемой опции. Это может быть любая буква с предустановленным одиночным тире (для коротких имён) или два последовательных тире перед длинным именем. |
value : |
Значение для анализа. |
data : |
Пользовательские данные добавляемые в
GOptionGroup содержащую опции, которая была
создана с помощью g_option_group_new()
|
error : |
Расположение для возвращаемых ошибок.
Коды ошибок G_OPTION_ERROR_FAILED
предназначены для использования в GOptionArgFunc.
|
Возвращает : |
TRUE если опция была полностью проанализирована,
FALSE если произошла ошибка,
в этом случае error должна быть установлена с помощью g_set_error()
|
typedef struct _GOptionContext GOptionContext;
Структура GOptionContext определяет какие опции применяются анализатором опций командной строки. Структура содержит только закрытые поля и не должна использоваться непосредственно.
GOptionContext* g_option_context_new (const gchar *parameter_string);
Создаёт новый опциональный контекст.
parameter_string
может служить для множества целей.
Он может служить для добавления описания сброшенных аргументов, которые не проанализированы
GOptionContext,
обычно что-то вроде "FILES" или "FILE1 FILE2...". Если вы используете
G_OPTION_REMAINING для
сбора сброшенных параметров, GLib обработает это автоматически используя arg_description
соответсвующий GOptionEntry
в суммарном использовании.
Другое назначение может дать короткое описание функциональности программы,
например " - frob strings", которое отобразится в той же строке где и "использование".
Для длинных описаний функциональности программы, которые должны отображаться как параграф ниже линии описывающей использование программы,
используйте g_option_context_set_summary()
.
Помните что parameter_string
переводится
(смотрите g_option_context_set_translate_func()
).
parameter_string : |
строка которая отображается в первой линии вывода --help ,
после короткого описания использования
|
Возвращает : | вновь созданная GOptionContext,
которая должна быть освобождена с помощью
g_option_context_free()
после использования.
|
Начиная с версии 2.6
void g_option_context_set_summary (GOptionContext *context,
const gchar *summary);
Добавляет строку в отображаемый вывод --help
перед списком опций. Обычно это короткое описание функциональности программы.
Помните что короткое описание переводится
(смотрите g_option_context_set_translate_func()
).
context : |
GOptionContext |
summary : |
строка для отображения в выводе --help
перед списком опций, или NULL
|
Начиная с версии 2.12
const gchar* g_option_context_get_summary (GOptionContext *context);
Возвращает короткое описание. Смотрите g_option_context_set_summary()
.
context : |
GOptionContext |
Возвращает : | короткое описание |
Начиная с версии 2.12
void g_option_context_set_description
(GOptionContext *context,
const gchar *description);
Добавляет строку для отображения в выводе --help
после списка опций. Этот текст часто включает адрес для сообщения об ошибках.
Помните что краткое описание переводится
(смотрите g_option_context_set_translate_func()
).
context : |
GOptionContext |
description : |
строка для отображения в выводе --help
после списка опций, или NULL
|
Начиная с версии 2.12
const gchar* g_option_context_get_description
(GOptionContext *context);
Возвращает описание. Смотрите g_option_context_set_description()
.
context : |
GOptionContext |
Возвращает : | описание |
Начиная с версии 2.12
const gchar* (*GTranslateFunc) (const gchar *str,
gpointer data);
Тип функции которая используется для перевода видимых пользователем строк, для вывода --help
.
str : |
непереведённая строка |
data : |
пользовательские данные определяемые при установке функции, например
g_option_group_set_translate_func()
|
Возвращает : | переведённую строку для текущей локализации. Возвращаемой строкой владеет GLib и она не должна освобождаться. |
void g_option_context_set_translate_func
(GOptionContext *context,
GTranslateFunc func,
gpointer data,
GDestroyNotify destroy_notify);
Устанавливает функцию которая используется для перевода содержимого строк видимых пользователем,
для вывода --help
.
Если func
равен NULL
,
строки не переводятся.
Помните что группы опций имеют собственные функции перевода,
эта функция затрагивает только parameter_string
(смотрите g_option_context_nex()
),
краткое описание (смотрите g_option_context_set_summary()
) и описание
(смотрите g_option_context_set_description()
).
Если вы используете gettext()
, вам нужно только установить область перевода, смотрите g_context_group_set_translation_domain()
.
context : |
GOptionContext |
func : |
GTranslateFunc, или NULL
|
data : |
пользовательские данные помещаемые в func ,
или NULL
|
destroy_notify : |
функция которая вызывается для освобождения data ,
или NULL
|
Начиная с версии 2.12
void g_option_context_set_translation_domain
(GOptionContext *context,
const gchar *domain);
Удобная функция использующая
gettext()
для перевода видимых пользователем строк.
context : |
GOptionContext |
domain : |
используемая область |
Начиная с версии 2.12
void g_option_context_free (GOptionContext *context);
Освобождает контекст и все добавленные в него группы.
context : |
GOptionContext |
Начиная с версии 2.6
gboolean g_option_context_parse (GOptionContext *context,
gint *argc,
gchar ***argv,
GError **error);
Анализирует аргументы командной строки, распознавая опции которые были добавлены в context
.
Побочный эффект вызова этой функции в том, что будет вызвана g_set_prgname()
.
Если анализ полностью выполнен, любые анализируемые аргументы будут удалены из массива, а argc
и argv
соответственно обновятся. Опция '--' удаляется из argv
нет не анализируемых опций перед ней и после неё, или некоторые опции после неё начинаются с '-'.
В этом случае происходит ошибка, argc
и argv
остаются неизменёнными.
Если включена автоматическая поддержка --help
(смотрите g_option_context_set_help_enabled()
), а массив argv
содержит одну из распознаваемых опций справки,
эта функция выполнит вывод справки на stdout и вызовет exit (0)
.
context : |
GOptionContext |
argc : |
указатель на номер аргумента командной строки. |
argv : |
указатель на массив аргументов командной строки. |
error : |
расположение для возвращаемой ошибки |
Возвращает : | TRUE если анализ полностью выполнен,
FALSE если произошла ошибка
|
Начиная с версии 2.6
void g_option_context_set_help_enabled
(GOptionContext *context,
gboolean help_enabled);
Включает или выключает автоматическую генерацию вывода --help
.
По умолчанию, g_option_context_parse()
распознаёт --help
, -?
, --help-all
и --help-
groupname
и создаёт подходящий вывод на stdout.
context : |
GOptionContext |
help_enabled : |
TRUE для включения --help ,
FALSE для отключения
|
Начиная с версии 2.6
gboolean g_option_context_get_help_enabled
(GOptionContext *context);
Определяет включена ли автоматическая генерация --help
для context
.
Смотрите g_option_context_set_help_enabled()
.
context : |
GOptionContext |
Возвращает : | TRUE если автоматическая генерация справки включена.
|
Начиная с версии 2.6
void g_option_context_set_ignore_unknown_options
(GOptionContext *context,
gboolean ignore_unknown);
Устанавливает игнорировать неизвестные опции или нет. Если опция игнорируется, то она сбрасывается в массив argv
после анализа.
По умолчанию, g_option_context_parse()
воспринимает неизвестные опции как ошибки.
Эти настройки не затрагивают не опциональные аргументы (то есть аргументы которые начинаются не с тире). Но помните что GOption не может надёжно определить принадлежит ли не-опция к предыдущей неизвестной опции.
context : |
GOptionContext |
ignore_unknown : |
TRUE для игнорирования неизвестных опций,
FALSE
для производства ошибки при встрече неизвестной опции
|
Начиная с версии 2.6
gboolean g_option_context_get_ignore_unknown_options
(GOptionContext *context);
Определяет игнорируются неизвестные опции или нет.
Смотрите g_option_context_set_ignore_unknown_options()
.
context : |
GOptionContext |
Возвращает : | TRUE если неизвестные опции игнорируются.
|
Начиная с версии 2.6
typedef enum
{
G_OPTION_ARG_NONE,
G_OPTION_ARG_STRING,
G_OPTION_ARG_INT,
G_OPTION_ARG_CALLBACK,
G_OPTION_ARG_FILENAME,
G_OPTION_ARG_STRING_ARRAY,
G_OPTION_ARG_FILENAME_ARRAY,
G_OPTION_ARG_DOUBLE,
G_OPTION_ARG_INT64
} GOptionArg;
GOptionArg перечисляет значения определяющие какой тип
дополнительного параметра опции ожидается обнаружить. Если опции ожидает дополнительный параметр, он может быть определён несколькими
способами; с короткими опциями: -x arg
, с длинными опциями: --name arg
или комбинировано в одном аргументе: --name=arg
.
G_OPTION_ARG_NONE |
Нет дополнительного параметра. Это полезно для простых флагов. |
G_OPTION_ARG_STRING |
Опция принимает строковый параметр. |
G_OPTION_ARG_INT |
Опция принимает целочисленный параметр. |
G_OPTION_ARG_CALLBACK |
Опция обеспечивает callback-функцию для анализа дополнительного параметра. |
G_OPTION_ARG_FILENAME |
Опция принимает имя файла как параметр. |
G_OPTION_ARG_STRING_ARRAY |
Опция принимает строковый параметр, многократное использование опции собирается в строковый массив. |
G_OPTION_ARG_FILENAME_ARRAY |
Опция принимает имя файла как параметр, многократное использование опции собирается в строковый массив. |
G_OPTION_ARG_DOUBLE |
Опция принимает двойной параметр. Параметр может быть в формате пользовательской локализации или в "C" locale. Начиная с версии 2.12 |
G_OPTION_ARG_INT64 |
Опция принимает 64-битное целочисленное.
Как G_OPTION_ARG_INT
но для большего числа. Число может быть десятичным, шестнадцатиричным
(когда префикс 0x , например, 0xffffffff ).
Начиная с версии 2.12
|
typedef enum
{
G_OPTION_FLAG_HIDDEN = 1 << 0,
G_OPTION_FLAG_IN_MAIN = 1 << 1,
G_OPTION_FLAG_REVERSE = 1 << 2,
G_OPTION_FLAG_NO_ARG = 1 << 3,
G_OPTION_FLAG_FILENAME = 1 << 4,
G_OPTION_FLAG_OPTIONAL_ARG = 1 << 5,
G_OPTION_FLAG_NOALIAS = 1 << 6
} GOptionFlags;
Флаги которые модифицируют отдельные опции.
G_OPTION_FLAG_HIDDEN |
Опция не появляется в выводе --help .
|
G_OPTION_FLAG_IN_MAIN |
Опция появляется в основном разделе вывода --help , даже если она определена в группе.
|
G_OPTION_FLAG_REVERSE |
Для опции вида G_OPTION_ARG_NONE ,
этот флаг указывает что опция имеет обратный смысл.
|
G_OPTION_FLAG_NO_ARG |
Для опции вида G_OPTION_ARG_CALLBACK ,
этот флаг указывает что callback-функция не принимает аргументов
(как опция G_OPTION_ARG_NONE ).
Начиная с версии 2.8
|
G_OPTION_FLAG_FILENAME |
Для опции вида G_OPTION_ARG_CALLBACK ,
этот флаг указывает что аргумент должен быть помещён в callback-функцию в кодировке имён файлов GLib, а не в UTF-8.
Начиная с версии 2.8
|
G_OPTION_FLAG_OPTIONAL_ARG |
Для опции вида G_OPTION_ARG_CALLBACK ,
этот флаг указывает что аргумент является опциональным. Если нет аргумента, то данные для
GOptionParseFunc
будут установлены в значение NULL. Начиная с версии 2.8
|
G_OPTION_FLAG_NOALIAS |
Этот флаг выключает автоматическое разрешение противоречий префиксов имён длинных опций с groupname- ,
если есть конфликты. Эта опция должна использоваться только в ситуациях где псевдоним необходим для некоторого устаревшего интерфейса
командной строки. Использование этой опции небезопасно, если все все группы опций не находятся под вашим прямым контролем.
Начиная с версии 2.8.
|
#define G_OPTION_REMAINING ""
Если длинная опция в основной группе имеет это имя, она не обрабатывается как обычная опция.
Вместо этого она собирает все неопциональные аргументы которые в противном случае будут сброшены в argv
.
Опция должна быть типа
G_OPTION_ARG_STRING_ARRAY
или
G_OPTION_ARG_FILENAME_ARRAY
.
Использование G_OPTION_REMAINING,
вместо простого сканирования argv
для просмотра оставшихся параметров, имеет преимущество, так как
GOption заботится о необходимом перекодировании строк или имён файлов.
Начиная с версии 2.6
typedef struct {
const gchar *long_name;
gchar short_name;
gint flags;
GOptionArg arg;
gpointer arg_data;
const gchar *description;
const gchar *arg_description;
} GOptionEntry;
GOptionEntry определяет единственную опцию.
Для эффективности, она должна быть добавлена в
GOptionGroup с помощью
g_option_context_add_main_entries()
или g_option_group_add_entries()
.
const gchar *long_name ; |
Длинное имя опции может использоваться для определения в командной строке как --long_name .
Все опции должны иметь длинные имена. Для решения конфликтов, если множество групп опций содержат одинаковое длинное имя,
опцию также возможно определить как --groupname -long_name .
|
gchar short_name ; |
Если опция имеет короткое имя, она может быть определена в командной строке как -short_name .
short_name должен быть печатным ASCII символом не тире '-',
или нулём если опция не имеет короткого имени.
|
gint flags ; |
Флаги из GOptionFlags. |
GOptionArg arg ; |
Тип опции, как GOptionArg. |
gpointer arg_data ; |
Если тип arg это
G_OPTION_ARG_CALLBACK ,
тогда arg_data должен указывать на
GOptionArgFunc callback-функцию,
которая будет вызвана для обработки дополнительных параметров.
Иначе, arg_data это указатель на расположение для сохраняемого значения,
требуемый тип расположения зависит от типа arg :
|
const gchar *description ; |
описание для опции в выводе --help .
description переводится с помощью translate_func группы,
смотрите g_option_group_set_translation_domain() .
|
const gchar *arg_description ; |
метка-заполнитель для используемого дополнительного параметра анализируемой опции в выводе --help .
arg_description переводится используя translate_func
группы, смотрите g_option_group_set_translation_domain() .
|
void g_option_context_add_main_entries
(GOptionContext *context,
const GOptionEntry *entries,
const gchar *translation_domain);
Удобная функция которая создаёт основную группу если она не существует,
добавляет в неё entries
и устанавливает область перевода.
context : |
GOptionContext |
entries : |
NULL -завершённый массив
GOptionEntrys
|
translation_domain : |
область перевода используемая для перевода вывода --help
опций в entries с помощью
gettext() ,
или NULL
|
Начиная с версии 2.6
typedef struct _GOptionGroup GOptionGroup;
Структура GOptionGroup определяет опции в единственной группе. Структура имеет только закрытые поля и не должна использоваться непосредственно.
Все опции в группе используют совместно одну функцию перевода. Библиотеки которые необходимы для анализа опций командной строки обеспечат функцию для получения GOptionGroup содержащую эти опции, которую приложение может добавить в свой GOptionContext.
void g_option_context_add_group (GOptionContext *context,
GOptionGroup *group);
Добавляет GOptionGroup в
context
, так чтобы анализ context
распознал опции в группе. Помните что группа будет освобождена вместе с контекстом когда будет вызвана
g_option_context_free()
,
поэтому вы не должны освобождать группу самостоятельно после добавления её в контекст.
context : |
GOptionContext |
group : |
добавляемая группа |
Начиная с версии 2.6
void g_option_context_set_main_group (GOptionContext *context,
GOptionGroup *group);
Устанавливает GOptionGroup как основную группу
context
.
Это имеет тот же эффект как вызов g_option_context_add_group()
,
только разница в том, что опции в основной группе обрабатываются по другому когда генерируется вывод --help
.
context : |
GOptionContext |
group : |
группа для установки в качестве основной |
Начиная с версии 2.6
GOptionGroup* g_option_context_get_main_group
(GOptionContext *context);
Возвращает указатель на основную группу которая принадлежит к context
.
context : |
GOptionContext |
Возвращает : | основная группа для context , или
NULL
если context не имеет основной группы.
Помните что группа принадлежит context
и не должна изменяться или освобождаться.
|
Начиная с версии 2.6
GOptionGroup* g_option_group_new (const gchar *name,
const gchar *description,
const gchar *help_description,
gpointer user_data,
GDestroyNotify destroy);
Создаёт новую GOptionGroup.
name : |
имя для группы опции, оно используется для получения справки об опциях в этой группе с помощью
--help- name
|
description : |
описание для этой группы которое должно показываться в выводе --help .
Эта строка переводится используя область перевода или функцию перевода в группе.
|
help_description : |
описание для --help- name опции.
Эта строка переводится используя область перевода или функцию перевода в группе.
|
user_data : |
пользовательские данные которые будут помещены в обработчик перед и после анализа,
обработчик ошибок и callbacks-функции
G_OPTION_ARG_CALLBACK опций,
или NULL
|
destroy : |
функция для освобождения user_data ,
или NULL
|
Возвращает : | вновь созданная группа опций. Она должна быть добавлена в
GOptionContext
или освобождена с помощью
g_option_group_free() .
|
Начиная с версии 2.6
void g_option_group_free (GOptionGroup *group);
Освобождает GOptionGroup. Помните что вы не должны освобождать группы добавленные в GOptionContext.
group : |
GOptionGroup |
Начиная с версии 2.6
void g_option_group_add_entries (GOptionGroup *group,
const GOptionEntry *entries);
Добавляет опцию определённую в entries
к group
.
group : |
GOptionGroup |
entries : |
NULL -завершённый массив
GOptionEntrys
|
Начиная с версии 2.6
gboolean (*GOptionParseFunc) (GOptionContext *context,
GOptionGroup *group,
gpointer data,
GError **error);
Тип функции которая может быть вызвана перед и после анализа.
context : |
Активный GOptionContext |
group : |
группа с которой связана функция |
data : |
пользовательские данные добавляемые в GOptionGroup
содержащую опцию где она была создана с помощью
g_option_group_new()
|
error : |
расположение для возвращаемой ошибки |
Возвращает : |
TRUE если функция полностью выполнена,
FALSE если произошла ошибка,
в этом случае должна быть установлена error с помощью
g_set_error()
|
void g_option_group_set_parse_hooks (GOptionGroup *group,
GOptionParseFunc pre_parse_func,
GOptionParseFunc post_parse_func);
Связывает две функции с group
которые будут вызваны из
g_option_context_parse()
перед анализом первой опции и после анализа последней опции соответственно.
Помните что пользовательские данные помещаемые в pre_parse_func
и
post_parse_func
могут быть определены при создании группы с помощью
g_option_group_new()
.
group : |
GOptionGroup |
pre_parse_func : |
функция вызываемая перед анализом, или NULL
|
post_parse_func : |
функция вызываемая после анализа, или NULL
|
Начиная с версии 2.6
void (*GOptionErrorFunc) (GOptionContext *context,
GOptionGroup *group,
gpointer data,
GError **error);
Тип функции используемая как callback-функция когда происходит ошибка анализа.
context : |
Активный GOptionContext |
group : |
группа с которой связана функция |
data : |
пользовательские данные добавляемые в GOptionGroup содержащую опцию где она была создана с помощью g_option_group_new()
|
error : |
GError содержащая детали произошедшей ошибки анализа |
void g_option_group_set_error_hook (GOptionGroup *group,
GOptionErrorFunc error_func);
Связывает функцию с group
которая будет вызвана из
g_option_context_parse()
когда произойдёт ошибка.
Помните что пользовательские данные помещаемые в pre_parse_func
и
post_parse_func
могут быть определены при создании группы с помощью
g_option_group_new()
.
group : |
GOptionGroup |
error_func : |
функция вызываемая при возникновении ошибки |
Начиная с версии 2.6
void g_option_group_set_translate_func
(GOptionGroup *group,
GTranslateFunc func,
gpointer data,
GDestroyNotify destroy_notify);
Устанавливает функцию которая используется для перевода строк видимых пользователем,
для вывода --help
. Разные группы могут использовать разные
GTranslateFuncs.
Если func
это NULL
,
строки не переводятся.
Если вы используете gettext()
, вам нужно только установить область перевода, смотрите g_option_group_set_translation_domain()
.
group : |
GOptionGroup |
func : |
GTranslateFunc, или
NULL
|
data : |
пользовательские данные помещаемые в func ,
или NULL
|
destroy_notify : |
функция которая вызывается для освобождения data ,
или NULL
|
Начиная с версии 2.6
void g_option_group_set_translation_domain
(GOptionGroup *group,
const gchar *domain);
Удобная функция использующая gettext()
для перевода видимых пользователем строк.
group : |
GOptionGroup |
domain : |
используемая область |
Начиная с версии 2.6