| |
Справочное описание GObject | ||||
---|---|---|---|---|
#include <glib-object.h> GEnumClass; GFlagsClass; #define G_ENUM_CLASS_TYPE (class) #define G_ENUM_CLASS_TYPE_NAME (class) #define G_TYPE_IS_ENUM (type) #define G_ENUM_CLASS (class) #define G_IS_ENUM_CLASS (class) #define G_TYPE_IS_FLAGS (type) #define G_FLAGS_CLASS (class) #define G_IS_FLAGS_CLASS (class) #define G_FLAGS_CLASS_TYPE (class) #define G_FLAGS_CLASS_TYPE_NAME (class) GEnumValue; GFlagsValue; GEnumValue* g_enum_get_value (GEnumClass *enum_class, gint value); GEnumValue* g_enum_get_value_by_name (GEnumClass *enum_class, const gchar *name); GEnumValue* g_enum_get_value_by_nick (GEnumClass *enum_class, const gchar *nick); GFlagsValue* g_flags_get_first_value (GFlagsClass *flags_class, guint value); GFlagsValue* g_flags_get_value_by_name (GFlagsClass *flags_class, const gchar *name); GFlagsValue* g_flags_get_value_by_nick (GFlagsClass *flags_class, const gchar *nick); GType g_enum_register_static (const gchar *name, const GEnumValue *const _static_values); GType g_flags_register_static (const gchar *name, const GFlagsValue *const _static_values); void g_enum_complete_type_info (GType g_enum_type, GTypeInfo *info, const GEnumValue *const _values); void g_flags_complete_type_info (GType g_flags_type, GTypeInfo *info, const GFlagsValue *const _values);
Система типов GLib обеспечивает базовые типы для перечислений и типовых флажков.
(Типовые флаги похожи на перечисления, но позволяют поразрядное комбинирование своих значений).
Регистрация перечисления или типовых флажков связывает имя и псевдоним с каждым возможным значением, а методы
g_enum_get_value_by_name()
,
g_enum_get_value_by_nick()
,
g_flags_get_value_by_name()
и g_flags_get_value_by_nick()
могут находить значение по их имени или псевдониму. Когда перечисление или типовые флаги зарегистрированы системой типов GLib,
они могут использоваться как типовое значение для свойств объекта, используя
g_param_spec_enum()
или
g_param_spec_flags()
.
GObject устанавливается с помощью утилиты называемой glib-mkenums которая может конструировать подходящий тип регистрационных функций из определённых C перечислений.
typedef struct { GTypeClass g_type_class; gint minimum; gint maximum; guint n_values; GEnumValue *values; } GEnumClass;
Класс типового перечисления содержит информацию о возможных значениях.
GTypeClass
g_type_class ; |
родительский класс |
gint
minimum ; |
минимально-возможное значение. |
gint
maximum ; |
максимально-возможное значение. |
guint
n_values ; |
количество возможных значений. |
GEnumValue *values ; |
массив структур GEnumValue описывающих индивидуальные значения. |
typedef struct { GTypeClass g_type_class; guint mask; guint n_values; GFlagsValue *values; } GFlagsClass;
Класс типовых флажков содержит информацию об их возможных значениях.
GTypeClass g_type_class ; |
родительский класс |
guint
mask ; |
маска покрывающая возможные значения. |
guint
n_values ; |
количество возможных значений. |
GFlagsValue *values ; |
массив структур GFlagsValue описывающих индивидуальные значения. |
#define G_ENUM_CLASS_TYPE(class) (G_TYPE_FROM_CLASS (class))
Возвращает идентификатор типа из полученной структуры GEnumClass.
class : |
GEnumClass |
#define G_ENUM_CLASS_TYPE_NAME(class) (g_type_name (G_ENUM_CLASS_TYPE (class)))
Возвращает статичное имя типа полученное из сструктуры GEnumClass.
class : |
GEnumClass |
#define G_TYPE_IS_ENUM(type) (G_TYPE_FUNDAMENTAL (type) == G_TYPE_ENUM)
Возвращает является ли type
"is a" G_TYPE_ENUM
.
type : |
GType ID. |
#define G_ENUM_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), G_TYPE_ENUM, GEnumClass))
Приводит производную структуру GEnumClass в структуру GEnumClass.
class : |
допустимая GEnumClass |
#define G_IS_ENUM_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), G_TYPE_ENUM))
Проверяет является ли class
"is a" допустимой структурой
GEnumClass типа
G_TYPE_ENUM
или производной.
class : |
GEnumClass |
#define G_TYPE_IS_FLAGS(type) (G_TYPE_FUNDAMENTAL (type) == G_TYPE_FLAGS)
Возвращает является ли type
"is a" G_TYPE_FLAGS
.
type : |
GType ID. |
#define G_FLAGS_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), G_TYPE_FLAGS, GFlagsClass))
Приводит производную структуру GFlagsClass в структуру GFlagsClass.
class : |
допустимая GFlagsClass |
#define G_IS_FLAGS_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), G_TYPE_FLAGS))
Проверяет является ли class
"is a" допустимой структурой
GFlagsClass типа
G_TYPE_FLAGS
или производной.
class : |
GFlagsClass |
#define G_FLAGS_CLASS_TYPE(class) (G_TYPE_FROM_CLASS (class))
Возвращает идентификатор типа из полученной сструктуры GFlagsClass.
class : |
GFlagsClass |
#define G_FLAGS_CLASS_TYPE_NAME(class) (g_type_name (G_FLAGS_CLASS_TYPE (class)))
Возвращает статичное имя из полученной сструктуры GFlagsClass.
class : |
GFlagsClass |
typedef struct { gint value; const gchar *value_name; const gchar *value_nick; } GEnumValue;
Структура содержащая единственное значение перечисления, его имя, и его псевдоним.
typedef struct { guint value; const gchar *value_name; const gchar *value_nick; } GFlagsValue;
Структура содержащая единственное значение флажка, его имя, и его псевдоним.
GEnumValue* g_enum_get_value (GEnumClass *enum_class, gint value);
Возвращает GEnumValue для значения.
enum_class : |
GEnumClass |
value : |
значение для поиска |
Возвращает : | GEnumValue для
value , или
NULL если
value не член перечисления
|
GEnumValue* g_enum_get_value_by_name (GEnumClass *enum_class, const gchar *name);
Находит GEnumValue по имени.
enum_class : |
GEnumClass |
name : |
имя для поиска |
Возвращает : | GEnumValue с именем
name , или
NULL
если перечисление не имеет член с таким именем
|
GEnumValue* g_enum_get_value_by_nick (GEnumClass *enum_class, const gchar *nick);
Находит GEnumValue по псевдониму.
enum_class : |
GEnumClass |
nick : |
псевдоним для поиска |
Возвращает : | GEnumValue с псевдонимом
nick , или
NULL
если перечисление не имеет член с таким псевдонимом
|
GFlagsValue* g_flags_get_first_value (GFlagsClass *flags_class, guint value);
Возвращает первое GFlagsValue
которое устанавливается в value
.
flags_class : |
GFlagsClass |
value : |
значение |
Возвращает : | первое GFlagsValue
которое установлено в value , или
NULL если не установлено
|
GFlagsValue* g_flags_get_value_by_name (GFlagsClass *flags_class, const gchar *name);
Находит GFlagsValue по имени.
flags_class : |
GFlagsClass |
name : |
имя для поиска |
Возвращает : | GFlagsValue с именем
name , или
NULL если нет флага с таким именем
|
GFlagsValue* g_flags_get_value_by_nick (GFlagsClass *flags_class, const gchar *nick);
Находит GFlagsValue по псевдониму.
flags_class : |
GFlagsClass |
nick : |
псевдоним для поиска |
Возвращает : | GFlagsValue с псевдонимом
nick , или
NULL если нет флага стаким псевдонимом
|
GType g_enum_register_static (const gchar *name, const GEnumValue *const _static_values);
Регистрирует новый статичный тип перечисления с именем name
.
Обычно более удобно позволить glib-mkenums сгенирировать
функцию my_enum_get_type()
из обычного определения перечисления C, чем самостоятельно писать используя
g_enum_register_static()
.
name : |
Nul-завершённая строка используемая как имя нового типа. |
_static_values : |
|
Возвращает : | Идентификатор нового типа. |
GType g_flags_register_static (const gchar *name, const GFlagsValue *const _static_values);
Регистрирует новый статичный флаговый тип с именем name
.
Обычно более удобно позволить glib-mkenums сгенирировать
функцию my_flags_get_type()
из обычного определения перечисления C, чем самостоятельно писать используя
g_flags_register_static()
.
name : |
Nul-завершённая строка используемая как имя нового типа. |
_static_values : |
|
Возвращает : | Идентификатор нового типа. |
void g_enum_complete_type_info (GType g_enum_type, GTypeInfo *info, const GEnumValue *const _values);
Эта функция предназначена для вызова из функции complete_type_info()
реализации
GTypePlugin, как показано в следующем примере:
static void my_enum_complete_type_info (GTypePlugin *plugin, GType g_type, GTypeInfo *info, GTypeValueTable *value_table) { static const GEnumValue values[] = { { MY_ENUM_FOO, "MY_ENUM_FOO", "foo" }, { MY_ENUM_BAR, "MY_ENUM_BAR", "bar" }, { 0, NULL, NULL } }; g_enum_complete_type_info (type, info, values); }
g_enum_type : |
типовой идентификатор заполняемого типа |
info : |
Структура GTypeInfo для заполнения |
_values : |
void g_flags_complete_type_info (GType g_flags_type, GTypeInfo *info, const GFlagsValue *const _values);
Эта функция предназначена для вызова из функции complete_type_info()
реализации
GTypePlugin, смотрите пример для
g_enumeration_complete_type_info()
выше.
g_flags_type : |
типовой идентификатор заполняемого типа |
info : |
Структура GTypeInfo для заполнения |
_values : |
GParamSpecEnum, GParamSpecFlags, g_param_spec_enum()
, g_param_spec_flags()
,
glib-mkenums
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |