Enums and Flags
Перечисления и типовые флажки
Краткое описание
#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 перечислений.
Детали
GEnumClass
Класс типового перечисления содержит информацию о возможных значениях.
GTypeClass g_type_class;
родительский класс
gint minimum;
минимально-возможное значение.
gint maximum;
максимально-возможное значение.
guint n_values;
количество возможных значений.
GEnumValue *values;
массив структур GEnumValue описывающих индивидуальные значения.
GFlagsClass
Класс типовых флажков содержит информацию об их возможных значениях.
GTypeClass g_type_class;
родительский класс
guint mask;
маска покрывающая возможные значения.
guint n_values;
количество возможных значений.
GFlagsValue *values;
массив структур GFlagsValue описывающих индивидуальные значения.
G_ENUM_CLASS_TYPE()
Возвращает идентификатор типа из полученной структуры GEnumClass.
class :
G_ENUM_CLASS_TYPE_NAME()
Возвращает статичное имя типа полученное из сструктуры GEnumClass.
class :
G_TYPE_IS_ENUM()
Возвращает является ли type "is a" G_TYPE_ENUM.
type :
GType ID.
G_ENUM_CLASS()
Приводит производную структуру GEnumClass в структуру GEnumClass.
class :
допустимая GEnumClass
G_IS_ENUM_CLASS()
Проверяет является ли class "is a" допустимой структурой GEnumClass типа G_TYPE_ENUM или производной.
class :
G_TYPE_IS_FLAGS()
Возвращает является ли type "is a" G_TYPE_FLAGS.
type :
GType ID.
G_FLAGS_CLASS()
Приводит производную структуру GFlagsClass в структуру GFlagsClass.
class :
допустимая GFlagsClass
G_IS_FLAGS_CLASS()
Проверяет является ли class "is a" допустимой структурой GFlagsClass типа G_TYPE_FLAGS или производной.
class :
G_FLAGS_CLASS_TYPE()
Возвращает идентификатор типа из полученной сструктуры GFlagsClass.
class :
G_FLAGS_CLASS_TYPE_NAME()
Возвращает статичное имя из полученной сструктуры GFlagsClass.
class :
GEnumValue
Структура содержащая единственное значение перечисления, его имя, и его псевдоним.
GFlagsValue
Структура содержащая единственное значение флажка, его имя, и его псевдоним.
g_enum_get_value ()
Возвращает GEnumValue для значения.
enum_class :
value :
значение для поиска
Возвращает :
GEnumValue для value, или NULL если value не член перечисления
g_enum_get_value_by_name ()
Находит GEnumValue по имени.
enum_class :
name :
имя для поиска
Возвращает :
GEnumValue с именем name, или NULL если перечисление не имеет член с таким именем
g_enum_get_value_by_nick ()
Находит GEnumValue по псевдониму.
enum_class :
nick :
псевдоним для поиска
Возвращает :
GEnumValue с псевдонимом nick, или NULL если перечисление не имеет член с таким псевдонимом
g_flags_get_first_value ()
Возвращает первое GFlagsValue которое устанавливается в value.
flags_class :
value :
значение
Возвращает :
первое GFlagsValue которое установлено в value, или NULL если не установлено
g_flags_get_value_by_name ()
Находит GFlagsValue по имени.
flags_class :
name :
имя для поиска
Возвращает :
GFlagsValue с именем name, или NULL если нет флага с таким именем
g_flags_get_value_by_nick ()
Находит GFlagsValue по псевдониму.
flags_class :
nick :
псевдоним для поиска
Возвращает :
GFlagsValue с псевдонимом nick, или NULL если нет флага стаким псевдонимом
g_enum_register_static ()
Регистрирует новый статичный тип перечисления с именем name.
Обычно более удобно позволить glib-mkenums сгенирировать функцию my_enum_get_type() из обычного определения перечисления C, чем самостоятельно писать используяg_enum_register_static().
name :
Nul-завершённая строка используемая как имя нового типа.
_static_values :
Возвращает :
Идентификатор нового типа.
g_flags_register_static ()
Регистрирует новый статичный флаговый тип с именем name.
Обычно более удобно позволить glib-mkenums сгенирировать функцию my_flags_get_type() из обычного определения перечисления C, чем самостоятельно писать используяg_flags_register_static().
name :
Nul-завершённая строка используемая как имя нового типа.
_static_values :
Возвращает :
Идентификатор нового типа.
g_enum_complete_type_info ()
Эта функция предназначена для вызова из функции complete_type_info() реализации GTypePlugin, как показано в следующем примере:
g_enum_type :
типовой идентификатор заполняемого типа
info :
Структура GTypeInfo для заполнения
_values :
g_flags_complete_type_info ()
Эта функция предназначена для вызова из функции complete_type_info() реализации GTypePlugin, смотрите пример для g_enumeration_complete_type_info() выше.
g_flags_type :
типовой идентификатор заполняемого типа
info :
Структура GTypeInfo для заполнения
_values :
Last updated
Was this helpful?