diff options
author | Stefan Kost <stefkost@src.gnome.org> | 2008-06-21 11:27:45 +0000 |
---|---|---|
committer | Stefan Kost <stefkost@src.gnome.org> | 2008-06-21 11:27:45 +0000 |
commit | 672caa1a5138523516e76160de94ea2452eeada7 (patch) | |
tree | d5e983227fb432eb7adc425182867fedbe483851 /gobject/genums.c | |
parent | 86a0f779f68f31452d3293bfddcbe8fd249ab5ab (diff) |
Migrating docs.
* docs/reference/gobject/tmpl/enumerations_flags.sgml:
* gobject/genums.c:
* gobject/genums.h:
Migrating docs.
svn path=/trunk/; revision=7066
Diffstat (limited to 'gobject/genums.c')
-rw-r--r-- | gobject/genums.c | 148 |
1 files changed, 148 insertions, 0 deletions
diff --git a/gobject/genums.c b/gobject/genums.c index f5d2115b0..4c826a1bd 100644 --- a/gobject/genums.c +++ b/gobject/genums.c @@ -16,6 +16,24 @@ * Free Software Foundation, Inc., 59 Temple Place, Suite 330, * Boston, MA 02111-1307, USA. */ +/** + * SECTION:Enums and Flags + * @Short_description: Enumeration and flags types + * @See_also:#GParamSpecEnum, #GParamSpecFlags, g_param_spec_enum(), g_param_spec_flags(), + * <link linkend="glib-mkenums">glib-mkenums</link> + * + * The GLib type system provides fundamental types for enumeration and flags types. (Flags types + * are like enumerations, but allow their values to be combined by bitwise or). A registered + * enumeration or flags type associates a name and a nickname with each allowed value, and + * the methods g_enum_get_value_by_name(), g_enum_get_value_by_nick(), g_flags_get_value_by_name() + * and g_flags_get_value_by_nick() can look up values by their name or nickname. + * When an enumeration or flags type is registered with the GLib type system, it can + * be used as value type for object properties, using g_param_spec_enum() or + * g_param_spec_flags(). + * + * GObject ships with a utility called <link linkend="glib-mkenums">glib-mkenums</link> that can + * construct suitable type registration functions from C enumeration definitions. + */ /* * MT safe @@ -138,6 +156,22 @@ value_flags_enum_lcopy_value (const GValue *value, return NULL; } +/** + * g_enum_register_static: + * @name: A nul-terminated string used as the name of the new type. + * @const_static_values: An array of #GEnumValue structs for the possible + * enumeration values. The array is terminated by a struct with all + * members being 0. GObject keeps a reference to the data, so it cannot + * be stack-allocated. + * + * Registers a new static enumeration type with the name @name. + * + * It is normally more convenient to let <link linkend="glib-mkenums">glib-mkenums</link> + * generate a my_enum_get_type() function from a usual C enumeration definition + * than to write one yourself using g_enum_register_static(). + * + * Returns: The new type identifier. + */ GType g_enum_register_static (const gchar *name, const GEnumValue *const_static_values) @@ -166,6 +200,21 @@ g_enum_register_static (const gchar *name, return type; } +/** + * g_flags_register_static: + * @name: A nul-terminated string used as the name of the new type. + * @const_static_values: An array of #GFlagsValue structs for the possible + * flags values. The array is terminated by a struct with all members being 0. + * GObject keeps a reference to the data, so it cannot be stack-allocated. + * + * Registers a new static flags type with the name @name. + * + * It is normally more convenient to let <link linkend="glib-mkenums">glib-mkenums</link> + * generate a my_flags_get_type() function from a usual C enumeration definition + * than to write one yourself using g_flags_register_static(). + * + * Returns: The new type identifier. + */ GType g_flags_register_static (const gchar *name, const GFlagsValue *const_static_values) @@ -194,6 +243,34 @@ g_flags_register_static (const gchar *name, return type; } +/** + * g_enum_complete_type_info: + * @g_enum_type: the type identifier of the type being completed + * @info: the #GTypeInfo struct to be filled in + * @const_values: An array of #GEnumValue structs for the possible + * enumeration values. The array is terminated by a struct with all + * members being 0. + * + * This function is meant to be called from the complete_type_info() function + * of a #GTypePlugin implementation, as in the following example: + * + * |[ + * 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); + * } + * ]| + */ void g_enum_complete_type_info (GType g_enum_type, GTypeInfo *info, @@ -211,6 +288,18 @@ g_enum_complete_type_info (GType g_enum_type, info->class_data = const_values; } +/** + * g_flags_complete_type_info: + * @g_flags_type: the type identifier of the type being completed + * @info: the #GTypeInfo struct to be filled in + * @const_values: An array of #GFlagsValue structs for the possible + * enumeration values. The array is terminated by a struct with all + * members being 0. + * + * This function is meant to be called from the complete_type_info() function + * of a #GTypePlugin implementation, see the example for + * g_enum_complete_type_info() above. + */ void g_flags_complete_type_info (GType g_flags_type, GTypeInfo *info, @@ -276,6 +365,16 @@ g_flags_class_init (GFlagsClass *class, } } +/** + * g_enum_get_value_by_name: + * @enum_class: a #GEnumClass + * @name: the name to look up + * + * Looks up a #GEnumValue by name. + * + * Returns: the #GEnumValue with name @name, or %NULL if the enumeration doesn' + * t have a member with that name + */ GEnumValue* g_enum_get_value_by_name (GEnumClass *enum_class, const gchar *name) @@ -295,6 +394,16 @@ g_enum_get_value_by_name (GEnumClass *enum_class, return NULL; } +/** + * g_flags_get_value_by_name: + * @flags_class: a #GFlagsClass + * @name: the name to look up + * + * Looks up a #GFlagsValue by name. + * + * Returns: the #GFlagsValue with name @name, or %NULL if there is no flag with + * that name + */ GFlagsValue* g_flags_get_value_by_name (GFlagsClass *flags_class, const gchar *name) @@ -314,6 +423,16 @@ g_flags_get_value_by_name (GFlagsClass *flags_class, return NULL; } +/** + * g_enum_get_value_by_nick: + * @enum_class: a #GEnumClass + * @nick: the nickname to look up + * + * Looks up a #GEnumValue by nickname. + * + * Returns: the #GEnumValue with nickname @nick, or %NULL if the enumeration doesn' + * t have a member with that nickname + */ GEnumValue* g_enum_get_value_by_nick (GEnumClass *enum_class, const gchar *nick) @@ -333,6 +452,16 @@ g_enum_get_value_by_nick (GEnumClass *enum_class, return NULL; } +/** + * g_flags_get_value_by_nick: + * @flags_class: a #GFlagsClass + * @nick: the nickname to look up + * + * Looks up a #GFlagsValue by nickname. + * + * Returns: the #GFlagsValue with nickname @nick, or %NULL if there is no flag + * with that nickname + */ GFlagsValue* g_flags_get_value_by_nick (GFlagsClass *flags_class, const gchar *nick) @@ -352,6 +481,16 @@ g_flags_get_value_by_nick (GFlagsClass *flags_class, return NULL; } +/** + * g_enum_get_value: + * @enum_class: a #GEnumClass + * @value: the value to look up + * + * Returns the #GEnumValue for a value. + * + * Returns: the #GEnumValue for @value, or %NULL if @value is not + * a member of the enumeration + */ GEnumValue* g_enum_get_value (GEnumClass *enum_class, gint value) @@ -370,6 +509,15 @@ g_enum_get_value (GEnumClass *enum_class, return NULL; } +/** + * g_flags_get_first_value: + * @flags_class: a #GFlagsClass + * @value: the value + * + * Returns the first #GFlagsValue which is set in @value. + * + * Returns: the first #GFlagsValue which is set in @value, or %NULL if none is set + */ GFlagsValue* g_flags_get_first_value (GFlagsClass *flags_class, guint value) |