blob: 61b451bf23d29cd16c096f0c38c8470f42fd0ee9 [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Enumeration and Flag Types</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="index.html" title="GObject Reference Manual">
<link rel="up" href="rn01.html" title="API Reference">
<link rel="prev" href="gobject-The-Base-Object-Type.html" title="The Base Object Type">
<link rel="next" href="gobject-Boxed-Types.html" title="Boxed Types">
<meta name="generator" content="GTK-Doc V1.14 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
<tr valign="middle">
<td><a accesskey="p" href="gobject-The-Base-Object-Type.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
<td><a accesskey="u" href="rn01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
<th width="100%" align="center">GObject Reference Manual</th>
<td><a accesskey="n" href="gobject-Boxed-Types.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
</tr>
<tr><td colspan="5" class="shortcuts">
<a href="#gobject-Enumeration-and-Flag-Types.synopsis" class="shortcut">Top</a>
 | 
<a href="#gobject-Enumeration-and-Flag-Types.description" class="shortcut">Description</a>
</td></tr>
</table>
<div class="refentry" title="Enumeration and Flag Types">
<a name="gobject-Enumeration-and-Flag-Types"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="gobject-Enumeration-and-Flag-Types.top_of_page"></a>Enumeration and Flag Types</span></h2>
<p>Enumeration and Flag Types — Enumeration and flags types</p>
</td>
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsynopsisdiv" title="Synopsis">
<a name="gobject-Enumeration-and-Flag-Types.synopsis"></a><h2>Synopsis</h2>
<pre class="synopsis">
#include &lt;glib-object.h&gt;
<a class="link" href="gobject-Enumeration-and-Flag-Types.html#GEnumClass" title="GEnumClass">GEnumClass</a>;
<a class="link" href="gobject-Enumeration-and-Flag-Types.html#GFlagsClass" title="GFlagsClass">GFlagsClass</a>;
#define <a class="link" href="gobject-Enumeration-and-Flag-Types.html#G-ENUM-CLASS-TYPE:CAPS" title="G_ENUM_CLASS_TYPE()">G_ENUM_CLASS_TYPE</a> (class)
#define <a class="link" href="gobject-Enumeration-and-Flag-Types.html#G-ENUM-CLASS-TYPE-NAME:CAPS" title="G_ENUM_CLASS_TYPE_NAME()">G_ENUM_CLASS_TYPE_NAME</a> (class)
#define <a class="link" href="gobject-Enumeration-and-Flag-Types.html#G-TYPE-IS-ENUM:CAPS" title="G_TYPE_IS_ENUM()">G_TYPE_IS_ENUM</a> (type)
#define <a class="link" href="gobject-Enumeration-and-Flag-Types.html#G-ENUM-CLASS:CAPS" title="G_ENUM_CLASS()">G_ENUM_CLASS</a> (class)
#define <a class="link" href="gobject-Enumeration-and-Flag-Types.html#G-IS-ENUM-CLASS:CAPS" title="G_IS_ENUM_CLASS()">G_IS_ENUM_CLASS</a> (class)
#define <a class="link" href="gobject-Enumeration-and-Flag-Types.html#G-TYPE-IS-FLAGS:CAPS" title="G_TYPE_IS_FLAGS()">G_TYPE_IS_FLAGS</a> (type)
#define <a class="link" href="gobject-Enumeration-and-Flag-Types.html#G-FLAGS-CLASS:CAPS" title="G_FLAGS_CLASS()">G_FLAGS_CLASS</a> (class)
#define <a class="link" href="gobject-Enumeration-and-Flag-Types.html#G-IS-FLAGS-CLASS:CAPS" title="G_IS_FLAGS_CLASS()">G_IS_FLAGS_CLASS</a> (class)
#define <a class="link" href="gobject-Enumeration-and-Flag-Types.html#G-FLAGS-CLASS-TYPE:CAPS" title="G_FLAGS_CLASS_TYPE()">G_FLAGS_CLASS_TYPE</a> (class)
#define <a class="link" href="gobject-Enumeration-and-Flag-Types.html#G-FLAGS-CLASS-TYPE-NAME:CAPS" title="G_FLAGS_CLASS_TYPE_NAME()">G_FLAGS_CLASS_TYPE_NAME</a> (class)
<a class="link" href="gobject-Enumeration-and-Flag-Types.html#GEnumValue" title="GEnumValue">GEnumValue</a>;
<a class="link" href="gobject-Enumeration-and-Flag-Types.html#GFlagsValue" title="GFlagsValue">GFlagsValue</a>;
<a class="link" href="gobject-Enumeration-and-Flag-Types.html#GEnumValue" title="GEnumValue"><span class="returnvalue">GEnumValue</span></a>* <a class="link" href="gobject-Enumeration-and-Flag-Types.html#g-enum-get-value" title="g_enum_get_value ()">g_enum_get_value</a> (<em class="parameter"><code><a class="link" href="gobject-Enumeration-and-Flag-Types.html#GEnumClass" title="GEnumClass"><span class="type">GEnumClass</span></a> *enum_class</code></em>,
<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> value</code></em>);
<a class="link" href="gobject-Enumeration-and-Flag-Types.html#GEnumValue" title="GEnumValue"><span class="returnvalue">GEnumValue</span></a>* <a class="link" href="gobject-Enumeration-and-Flag-Types.html#g-enum-get-value-by-name" title="g_enum_get_value_by_name ()">g_enum_get_value_by_name</a> (<em class="parameter"><code><a class="link" href="gobject-Enumeration-and-Flag-Types.html#GEnumClass" title="GEnumClass"><span class="type">GEnumClass</span></a> *enum_class</code></em>,
<em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);
<a class="link" href="gobject-Enumeration-and-Flag-Types.html#GEnumValue" title="GEnumValue"><span class="returnvalue">GEnumValue</span></a>* <a class="link" href="gobject-Enumeration-and-Flag-Types.html#g-enum-get-value-by-nick" title="g_enum_get_value_by_nick ()">g_enum_get_value_by_nick</a> (<em class="parameter"><code><a class="link" href="gobject-Enumeration-and-Flag-Types.html#GEnumClass" title="GEnumClass"><span class="type">GEnumClass</span></a> *enum_class</code></em>,
<em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *nick</code></em>);
<a class="link" href="gobject-Enumeration-and-Flag-Types.html#GFlagsValue" title="GFlagsValue"><span class="returnvalue">GFlagsValue</span></a>* <a class="link" href="gobject-Enumeration-and-Flag-Types.html#g-flags-get-first-value" title="g_flags_get_first_value ()">g_flags_get_first_value</a> (<em class="parameter"><code><a class="link" href="gobject-Enumeration-and-Flag-Types.html#GFlagsClass" title="GFlagsClass"><span class="type">GFlagsClass</span></a> *flags_class</code></em>,
<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> value</code></em>);
<a class="link" href="gobject-Enumeration-and-Flag-Types.html#GFlagsValue" title="GFlagsValue"><span class="returnvalue">GFlagsValue</span></a>* <a class="link" href="gobject-Enumeration-and-Flag-Types.html#g-flags-get-value-by-name" title="g_flags_get_value_by_name ()">g_flags_get_value_by_name</a> (<em class="parameter"><code><a class="link" href="gobject-Enumeration-and-Flag-Types.html#GFlagsClass" title="GFlagsClass"><span class="type">GFlagsClass</span></a> *flags_class</code></em>,
<em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);
<a class="link" href="gobject-Enumeration-and-Flag-Types.html#GFlagsValue" title="GFlagsValue"><span class="returnvalue">GFlagsValue</span></a>* <a class="link" href="gobject-Enumeration-and-Flag-Types.html#g-flags-get-value-by-nick" title="g_flags_get_value_by_nick ()">g_flags_get_value_by_nick</a> (<em class="parameter"><code><a class="link" href="gobject-Enumeration-and-Flag-Types.html#GFlagsClass" title="GFlagsClass"><span class="type">GFlagsClass</span></a> *flags_class</code></em>,
<em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *nick</code></em>);
<a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="returnvalue">GType</span></a> <a class="link" href="gobject-Enumeration-and-Flag-Types.html#g-enum-register-static" title="g_enum_register_static ()">g_enum_register_static</a> (<em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
<em class="parameter"><code>const <a class="link" href="gobject-Enumeration-and-Flag-Types.html#GEnumValue" title="GEnumValue"><span class="type">GEnumValue</span></a> *const_static_values</code></em>);
<a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="returnvalue">GType</span></a> <a class="link" href="gobject-Enumeration-and-Flag-Types.html#g-flags-register-static" title="g_flags_register_static ()">g_flags_register_static</a> (<em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
<em class="parameter"><code>const <a class="link" href="gobject-Enumeration-and-Flag-Types.html#GFlagsValue" title="GFlagsValue"><span class="type">GFlagsValue</span></a> *const_static_values</code></em>);
<span class="returnvalue">void</span> <a class="link" href="gobject-Enumeration-and-Flag-Types.html#g-enum-complete-type-info" title="g_enum_complete_type_info ()">g_enum_complete_type_info</a> (<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> g_enum_type</code></em>,
<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GTypeInfo" title="GTypeInfo"><span class="type">GTypeInfo</span></a> *info</code></em>,
<em class="parameter"><code>const <a class="link" href="gobject-Enumeration-and-Flag-Types.html#GEnumValue" title="GEnumValue"><span class="type">GEnumValue</span></a> *const_values</code></em>);
<span class="returnvalue">void</span> <a class="link" href="gobject-Enumeration-and-Flag-Types.html#g-flags-complete-type-info" title="g_flags_complete_type_info ()">g_flags_complete_type_info</a> (<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> g_flags_type</code></em>,
<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GTypeInfo" title="GTypeInfo"><span class="type">GTypeInfo</span></a> *info</code></em>,
<em class="parameter"><code>const <a class="link" href="gobject-Enumeration-and-Flag-Types.html#GFlagsValue" title="GFlagsValue"><span class="type">GFlagsValue</span></a> *const_values</code></em>);
</pre>
</div>
<div class="refsect1" title="Description">
<a name="gobject-Enumeration-and-Flag-Types.description"></a><h2>Description</h2>
<p>
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 <a class="link" href="gobject-Enumeration-and-Flag-Types.html#g-enum-get-value-by-name" title="g_enum_get_value_by_name ()"><code class="function">g_enum_get_value_by_name()</code></a>,
<a class="link" href="gobject-Enumeration-and-Flag-Types.html#g-enum-get-value-by-nick" title="g_enum_get_value_by_nick ()"><code class="function">g_enum_get_value_by_nick()</code></a>, <a class="link" href="gobject-Enumeration-and-Flag-Types.html#g-flags-get-value-by-name" title="g_flags_get_value_by_name ()"><code class="function">g_flags_get_value_by_name()</code></a> and
<a class="link" href="gobject-Enumeration-and-Flag-Types.html#g-flags-get-value-by-nick" title="g_flags_get_value_by_nick ()"><code class="function">g_flags_get_value_by_nick()</code></a> 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 <a class="link" href="gobject-Standard-Parameter-and-Value-Types.html#g-param-spec-enum" title="g_param_spec_enum ()"><code class="function">g_param_spec_enum()</code></a> or <a class="link" href="gobject-Standard-Parameter-and-Value-Types.html#g-param-spec-flags" title="g_param_spec_flags ()"><code class="function">g_param_spec_flags()</code></a>.
</p>
<p>
GObject ships with a utility called <a href="glib-mkenums.html">glib-mkenums</a> that can construct
suitable type registration functions from C enumeration
definitions.
</p>
</div>
<div class="refsect1" title="Details">
<a name="gobject-Enumeration-and-Flag-Types.details"></a><h2>Details</h2>
<div class="refsect2" title="GEnumClass">
<a name="GEnumClass"></a><h3>GEnumClass</h3>
<pre class="programlisting">typedef struct {
GTypeClass g_type_class;
gint minimum;
gint maximum;
guint n_values;
GEnumValue *values;
} GEnumClass;
</pre>
<p>
The class of an enumeration type holds information about its
possible values.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><a class="link" href="gobject-Type-Information.html#GTypeClass" title="GTypeClass"><span class="type">GTypeClass</span></a> <em class="structfield"><code><a name="GEnumClass.g-type-class"></a>g_type_class</code></em>;</span></p></td>
<td>the parent class
</td>
</tr>
<tr>
<td><p><span class="term"><a href="./../glib/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GEnumClass.minimum"></a>minimum</code></em>;</span></p></td>
<td>the smallest possible value.
</td>
</tr>
<tr>
<td><p><span class="term"><a href="./../glib/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GEnumClass.maximum"></a>maximum</code></em>;</span></p></td>
<td>the largest possible value.
</td>
</tr>
<tr>
<td><p><span class="term"><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GEnumClass.n-values"></a>n_values</code></em>;</span></p></td>
<td>the number of possible values.
</td>
</tr>
<tr>
<td><p><span class="term"><a class="link" href="gobject-Enumeration-and-Flag-Types.html#GEnumValue" title="GEnumValue"><span class="type">GEnumValue</span></a> *<em class="structfield"><code><a name="GEnumClass.values"></a>values</code></em>;</span></p></td>
<td>an array of <a class="link" href="gobject-Enumeration-and-Flag-Types.html#GEnumValue" title="GEnumValue"><span class="type">GEnumValue</span></a> structs describing the
individual values.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="GFlagsClass">
<a name="GFlagsClass"></a><h3>GFlagsClass</h3>
<pre class="programlisting">typedef struct {
GTypeClass g_type_class;
guint mask;
guint n_values;
GFlagsValue *values;
} GFlagsClass;
</pre>
<p>
The class of a flags type holds information about its
possible values.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><a class="link" href="gobject-Type-Information.html#GTypeClass" title="GTypeClass"><span class="type">GTypeClass</span></a> <em class="structfield"><code><a name="GFlagsClass.g-type-class"></a>g_type_class</code></em>;</span></p></td>
<td>the parent class
</td>
</tr>
<tr>
<td><p><span class="term"><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GFlagsClass.mask"></a>mask</code></em>;</span></p></td>
<td>a mask covering all possible values.
</td>
</tr>
<tr>
<td><p><span class="term"><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GFlagsClass.n-values"></a>n_values</code></em>;</span></p></td>
<td>the number of possible values.
</td>
</tr>
<tr>
<td><p><span class="term"><a class="link" href="gobject-Enumeration-and-Flag-Types.html#GFlagsValue" title="GFlagsValue"><span class="type">GFlagsValue</span></a> *<em class="structfield"><code><a name="GFlagsClass.values"></a>values</code></em>;</span></p></td>
<td>an array of <a class="link" href="gobject-Enumeration-and-Flag-Types.html#GFlagsValue" title="GFlagsValue"><span class="type">GFlagsValue</span></a> structs describing the
individual values.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="G_ENUM_CLASS_TYPE()">
<a name="G-ENUM-CLASS-TYPE:CAPS"></a><h3>G_ENUM_CLASS_TYPE()</h3>
<pre class="programlisting">#define G_ENUM_CLASS_TYPE(class) (G_TYPE_FROM_CLASS (class))
</pre>
<p>
Get the type identifier from a given <a class="link" href="gobject-Enumeration-and-Flag-Types.html#GEnumClass" title="GEnumClass"><span class="type">GEnumClass</span></a> structure.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>class</code></em> :</span></p></td>
<td>a <a class="link" href="gobject-Enumeration-and-Flag-Types.html#GEnumClass" title="GEnumClass"><span class="type">GEnumClass</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> the <a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="G_ENUM_CLASS_TYPE_NAME()">
<a name="G-ENUM-CLASS-TYPE-NAME:CAPS"></a><h3>G_ENUM_CLASS_TYPE_NAME()</h3>
<pre class="programlisting">#define G_ENUM_CLASS_TYPE_NAME(class) (g_type_name (G_ENUM_CLASS_TYPE (class)))
</pre>
<p>
Get the static type name from a given <a class="link" href="gobject-Enumeration-and-Flag-Types.html#GEnumClass" title="GEnumClass"><span class="type">GEnumClass</span></a> structure.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>class</code></em> :</span></p></td>
<td>a <a class="link" href="gobject-Enumeration-and-Flag-Types.html#GEnumClass" title="GEnumClass"><span class="type">GEnumClass</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> the type name.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="G_TYPE_IS_ENUM()">
<a name="G-TYPE-IS-ENUM:CAPS"></a><h3>G_TYPE_IS_ENUM()</h3>
<pre class="programlisting">#define G_TYPE_IS_ENUM(type) (G_TYPE_FUNDAMENTAL (type) == G_TYPE_ENUM)
</pre>
<p>
Checks whether <em class="parameter"><code>type</code></em> "is a" <a class="link" href="gobject-Type-Information.html#G-TYPE-ENUM:CAPS" title="G_TYPE_ENUM"><code class="literal">G_TYPE_ENUM</code></a>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
<td>a <a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> ID.
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> <a href="./../glib/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>type</code></em> "is a" <a class="link" href="gobject-Type-Information.html#G-TYPE-ENUM:CAPS" title="G_TYPE_ENUM"><code class="literal">G_TYPE_ENUM</code></a>.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="G_ENUM_CLASS()">
<a name="G-ENUM-CLASS:CAPS"></a><h3>G_ENUM_CLASS()</h3>
<pre class="programlisting">#define G_ENUM_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), G_TYPE_ENUM, GEnumClass))
</pre>
<p>
Casts a derived <a class="link" href="gobject-Enumeration-and-Flag-Types.html#GEnumClass" title="GEnumClass"><span class="type">GEnumClass</span></a> structure into a <a class="link" href="gobject-Enumeration-and-Flag-Types.html#GEnumClass" title="GEnumClass"><span class="type">GEnumClass</span></a> structure.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>class</code></em> :</span></p></td>
<td>a valid <a class="link" href="gobject-Enumeration-and-Flag-Types.html#GEnumClass" title="GEnumClass"><span class="type">GEnumClass</span></a>
</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="G_IS_ENUM_CLASS()">
<a name="G-IS-ENUM-CLASS:CAPS"></a><h3>G_IS_ENUM_CLASS()</h3>
<pre class="programlisting">#define G_IS_ENUM_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), G_TYPE_ENUM))
</pre>
<p>
Checks whether <em class="parameter"><code>class</code></em> "is a" valid <a class="link" href="gobject-Enumeration-and-Flag-Types.html#GEnumClass" title="GEnumClass"><span class="type">GEnumClass</span></a> structure of type <a class="link" href="gobject-Type-Information.html#G-TYPE-ENUM:CAPS" title="G_TYPE_ENUM"><code class="literal">G_TYPE_ENUM</code></a>
or derived.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>class</code></em> :</span></p></td>
<td>a <a class="link" href="gobject-Enumeration-and-Flag-Types.html#GEnumClass" title="GEnumClass"><span class="type">GEnumClass</span></a>
</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="G_TYPE_IS_FLAGS()">
<a name="G-TYPE-IS-FLAGS:CAPS"></a><h3>G_TYPE_IS_FLAGS()</h3>
<pre class="programlisting">#define G_TYPE_IS_FLAGS(type) (G_TYPE_FUNDAMENTAL (type) == G_TYPE_FLAGS)
</pre>
<p>
Checks whether <em class="parameter"><code>type</code></em> "is a" <a class="link" href="gobject-Type-Information.html#G-TYPE-FLAGS:CAPS" title="G_TYPE_FLAGS"><code class="literal">G_TYPE_FLAGS</code></a>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
<td>a <a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> ID.
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> <a href="./../glib/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>type</code></em> "is a" <a class="link" href="gobject-Type-Information.html#G-TYPE-FLAGS:CAPS" title="G_TYPE_FLAGS"><code class="literal">G_TYPE_FLAGS</code></a>.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="G_FLAGS_CLASS()">
<a name="G-FLAGS-CLASS:CAPS"></a><h3>G_FLAGS_CLASS()</h3>
<pre class="programlisting">#define G_FLAGS_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), G_TYPE_FLAGS, GFlagsClass))
</pre>
<p>
Casts a derived <a class="link" href="gobject-Enumeration-and-Flag-Types.html#GFlagsClass" title="GFlagsClass"><span class="type">GFlagsClass</span></a> structure into a <a class="link" href="gobject-Enumeration-and-Flag-Types.html#GFlagsClass" title="GFlagsClass"><span class="type">GFlagsClass</span></a> structure.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>class</code></em> :</span></p></td>
<td>a valid <a class="link" href="gobject-Enumeration-and-Flag-Types.html#GFlagsClass" title="GFlagsClass"><span class="type">GFlagsClass</span></a>
</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="G_IS_FLAGS_CLASS()">
<a name="G-IS-FLAGS-CLASS:CAPS"></a><h3>G_IS_FLAGS_CLASS()</h3>
<pre class="programlisting">#define G_IS_FLAGS_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), G_TYPE_FLAGS))
</pre>
<p>
Checks whether <em class="parameter"><code>class</code></em> "is a" valid <a class="link" href="gobject-Enumeration-and-Flag-Types.html#GFlagsClass" title="GFlagsClass"><span class="type">GFlagsClass</span></a> structure of type <a class="link" href="gobject-Type-Information.html#G-TYPE-FLAGS:CAPS" title="G_TYPE_FLAGS"><code class="literal">G_TYPE_FLAGS</code></a>
or derived.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>class</code></em> :</span></p></td>
<td>a <a class="link" href="gobject-Enumeration-and-Flag-Types.html#GFlagsClass" title="GFlagsClass"><span class="type">GFlagsClass</span></a>
</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="G_FLAGS_CLASS_TYPE()">
<a name="G-FLAGS-CLASS-TYPE:CAPS"></a><h3>G_FLAGS_CLASS_TYPE()</h3>
<pre class="programlisting">#define G_FLAGS_CLASS_TYPE(class) (G_TYPE_FROM_CLASS (class))
</pre>
<p>
Get the type identifier from a given <a class="link" href="gobject-Enumeration-and-Flag-Types.html#GFlagsClass" title="GFlagsClass"><span class="type">GFlagsClass</span></a> structure.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>class</code></em> :</span></p></td>
<td>a <a class="link" href="gobject-Enumeration-and-Flag-Types.html#GFlagsClass" title="GFlagsClass"><span class="type">GFlagsClass</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> the <a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="G_FLAGS_CLASS_TYPE_NAME()">
<a name="G-FLAGS-CLASS-TYPE-NAME:CAPS"></a><h3>G_FLAGS_CLASS_TYPE_NAME()</h3>
<pre class="programlisting">#define G_FLAGS_CLASS_TYPE_NAME(class) (g_type_name (G_FLAGS_CLASS_TYPE (class)))
</pre>
<p>
Get the static type name from a given <a class="link" href="gobject-Enumeration-and-Flag-Types.html#GFlagsClass" title="GFlagsClass"><span class="type">GFlagsClass</span></a> structure.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>class</code></em> :</span></p></td>
<td>a <a class="link" href="gobject-Enumeration-and-Flag-Types.html#GFlagsClass" title="GFlagsClass"><span class="type">GFlagsClass</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> the type name.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="GEnumValue">
<a name="GEnumValue"></a><h3>GEnumValue</h3>
<pre class="programlisting">typedef struct {
gint value;
const gchar *value_name;
const gchar *value_nick;
} GEnumValue;
</pre>
<p>
A structure which contains a single enum value, its name, and its
nickname.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><a href="./../glib/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GEnumValue.value"></a>value</code></em>;</span></p></td>
<td>the enum value
</td>
</tr>
<tr>
<td><p><span class="term">const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GEnumValue.value-name"></a>value_name</code></em>;</span></p></td>
<td>the name of the value
</td>
</tr>
<tr>
<td><p><span class="term">const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GEnumValue.value-nick"></a>value_nick</code></em>;</span></p></td>
<td>the nickname of the value
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="GFlagsValue">
<a name="GFlagsValue"></a><h3>GFlagsValue</h3>
<pre class="programlisting">typedef struct {
guint value;
const gchar *value_name;
const gchar *value_nick;
} GFlagsValue;
</pre>
<p>
A structure which contains a single flags value, its name, and its
nickname.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GFlagsValue.value"></a>value</code></em>;</span></p></td>
<td>the flags value
</td>
</tr>
<tr>
<td><p><span class="term">const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GFlagsValue.value-name"></a>value_name</code></em>;</span></p></td>
<td>the name of the value
</td>
</tr>
<tr>
<td><p><span class="term">const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GFlagsValue.value-nick"></a>value_nick</code></em>;</span></p></td>
<td>the nickname of the value
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="g_enum_get_value ()">
<a name="g-enum-get-value"></a><h3>g_enum_get_value ()</h3>
<pre class="programlisting"><a class="link" href="gobject-Enumeration-and-Flag-Types.html#GEnumValue" title="GEnumValue"><span class="returnvalue">GEnumValue</span></a>* g_enum_get_value (<em class="parameter"><code><a class="link" href="gobject-Enumeration-and-Flag-Types.html#GEnumClass" title="GEnumClass"><span class="type">GEnumClass</span></a> *enum_class</code></em>,
<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> value</code></em>);</pre>
<p>
Returns the <a class="link" href="gobject-Enumeration-and-Flag-Types.html#GEnumValue" title="GEnumValue"><span class="type">GEnumValue</span></a> for a value.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>enum_class</code></em> :</span></p></td>
<td>a <a class="link" href="gobject-Enumeration-and-Flag-Types.html#GEnumClass" title="GEnumClass"><span class="type">GEnumClass</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
<td>the value to look up
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> the <a class="link" href="gobject-Enumeration-and-Flag-Types.html#GEnumValue" title="GEnumValue"><span class="type">GEnumValue</span></a> for <em class="parameter"><code>value</code></em>, or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if <em class="parameter"><code>value</code></em> is not a
member of the enumeration
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="g_enum_get_value_by_name ()">
<a name="g-enum-get-value-by-name"></a><h3>g_enum_get_value_by_name ()</h3>
<pre class="programlisting"><a class="link" href="gobject-Enumeration-and-Flag-Types.html#GEnumValue" title="GEnumValue"><span class="returnvalue">GEnumValue</span></a>* g_enum_get_value_by_name (<em class="parameter"><code><a class="link" href="gobject-Enumeration-and-Flag-Types.html#GEnumClass" title="GEnumClass"><span class="type">GEnumClass</span></a> *enum_class</code></em>,
<em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);</pre>
<p>
Looks up a <a class="link" href="gobject-Enumeration-and-Flag-Types.html#GEnumValue" title="GEnumValue"><span class="type">GEnumValue</span></a> by name.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>enum_class</code></em> :</span></p></td>
<td>a <a class="link" href="gobject-Enumeration-and-Flag-Types.html#GEnumClass" title="GEnumClass"><span class="type">GEnumClass</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
<td>the name to look up
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> the <a class="link" href="gobject-Enumeration-and-Flag-Types.html#GEnumValue" title="GEnumValue"><span class="type">GEnumValue</span></a> with name <em class="parameter"><code>name</code></em>, or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the
enumeration doesn't have a member with that name
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="g_enum_get_value_by_nick ()">
<a name="g-enum-get-value-by-nick"></a><h3>g_enum_get_value_by_nick ()</h3>
<pre class="programlisting"><a class="link" href="gobject-Enumeration-and-Flag-Types.html#GEnumValue" title="GEnumValue"><span class="returnvalue">GEnumValue</span></a>* g_enum_get_value_by_nick (<em class="parameter"><code><a class="link" href="gobject-Enumeration-and-Flag-Types.html#GEnumClass" title="GEnumClass"><span class="type">GEnumClass</span></a> *enum_class</code></em>,
<em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *nick</code></em>);</pre>
<p>
Looks up a <a class="link" href="gobject-Enumeration-and-Flag-Types.html#GEnumValue" title="GEnumValue"><span class="type">GEnumValue</span></a> by nickname.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>enum_class</code></em> :</span></p></td>
<td>a <a class="link" href="gobject-Enumeration-and-Flag-Types.html#GEnumClass" title="GEnumClass"><span class="type">GEnumClass</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>nick</code></em> :</span></p></td>
<td>the nickname to look up
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> the <a class="link" href="gobject-Enumeration-and-Flag-Types.html#GEnumValue" title="GEnumValue"><span class="type">GEnumValue</span></a> with nickname <em class="parameter"><code>nick</code></em>, or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the
enumeration doesn't have a member with that nickname
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="g_flags_get_first_value ()">
<a name="g-flags-get-first-value"></a><h3>g_flags_get_first_value ()</h3>
<pre class="programlisting"><a class="link" href="gobject-Enumeration-and-Flag-Types.html#GFlagsValue" title="GFlagsValue"><span class="returnvalue">GFlagsValue</span></a>* g_flags_get_first_value (<em class="parameter"><code><a class="link" href="gobject-Enumeration-and-Flag-Types.html#GFlagsClass" title="GFlagsClass"><span class="type">GFlagsClass</span></a> *flags_class</code></em>,
<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> value</code></em>);</pre>
<p>
Returns the first <a class="link" href="gobject-Enumeration-and-Flag-Types.html#GFlagsValue" title="GFlagsValue"><span class="type">GFlagsValue</span></a> which is set in <em class="parameter"><code>value</code></em>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>flags_class</code></em> :</span></p></td>
<td>a <a class="link" href="gobject-Enumeration-and-Flag-Types.html#GFlagsClass" title="GFlagsClass"><span class="type">GFlagsClass</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
<td>the value
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> the first <a class="link" href="gobject-Enumeration-and-Flag-Types.html#GFlagsValue" title="GFlagsValue"><span class="type">GFlagsValue</span></a> which is set in <em class="parameter"><code>value</code></em>, or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if
none is set
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="g_flags_get_value_by_name ()">
<a name="g-flags-get-value-by-name"></a><h3>g_flags_get_value_by_name ()</h3>
<pre class="programlisting"><a class="link" href="gobject-Enumeration-and-Flag-Types.html#GFlagsValue" title="GFlagsValue"><span class="returnvalue">GFlagsValue</span></a>* g_flags_get_value_by_name (<em class="parameter"><code><a class="link" href="gobject-Enumeration-and-Flag-Types.html#GFlagsClass" title="GFlagsClass"><span class="type">GFlagsClass</span></a> *flags_class</code></em>,
<em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);</pre>
<p>
Looks up a <a class="link" href="gobject-Enumeration-and-Flag-Types.html#GFlagsValue" title="GFlagsValue"><span class="type">GFlagsValue</span></a> by name.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>flags_class</code></em> :</span></p></td>
<td>a <a class="link" href="gobject-Enumeration-and-Flag-Types.html#GFlagsClass" title="GFlagsClass"><span class="type">GFlagsClass</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
<td>the name to look up
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> the <a class="link" href="gobject-Enumeration-and-Flag-Types.html#GFlagsValue" title="GFlagsValue"><span class="type">GFlagsValue</span></a> with name <em class="parameter"><code>name</code></em>, or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if there is no
flag with that name
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="g_flags_get_value_by_nick ()">
<a name="g-flags-get-value-by-nick"></a><h3>g_flags_get_value_by_nick ()</h3>
<pre class="programlisting"><a class="link" href="gobject-Enumeration-and-Flag-Types.html#GFlagsValue" title="GFlagsValue"><span class="returnvalue">GFlagsValue</span></a>* g_flags_get_value_by_nick (<em class="parameter"><code><a class="link" href="gobject-Enumeration-and-Flag-Types.html#GFlagsClass" title="GFlagsClass"><span class="type">GFlagsClass</span></a> *flags_class</code></em>,
<em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *nick</code></em>);</pre>
<p>
Looks up a <a class="link" href="gobject-Enumeration-and-Flag-Types.html#GFlagsValue" title="GFlagsValue"><span class="type">GFlagsValue</span></a> by nickname.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>flags_class</code></em> :</span></p></td>
<td>a <a class="link" href="gobject-Enumeration-and-Flag-Types.html#GFlagsClass" title="GFlagsClass"><span class="type">GFlagsClass</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>nick</code></em> :</span></p></td>
<td>the nickname to look up
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> the <a class="link" href="gobject-Enumeration-and-Flag-Types.html#GFlagsValue" title="GFlagsValue"><span class="type">GFlagsValue</span></a> with nickname <em class="parameter"><code>nick</code></em>, or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if there is
no flag with that nickname
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="g_enum_register_static ()">
<a name="g-enum-register-static"></a><h3>g_enum_register_static ()</h3>
<pre class="programlisting"><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="returnvalue">GType</span></a> g_enum_register_static (<em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
<em class="parameter"><code>const <a class="link" href="gobject-Enumeration-and-Flag-Types.html#GEnumValue" title="GEnumValue"><span class="type">GEnumValue</span></a> *const_static_values</code></em>);</pre>
<p>
Registers a new static enumeration type with the name <em class="parameter"><code>name</code></em>.
</p>
<p>
It is normally more convenient to let <a href="glib-mkenums.html">glib-mkenums</a> generate a
<code class="function">my_enum_get_type()</code> function from a usual C enumeration definition
than to write one yourself using <a class="link" href="gobject-Enumeration-and-Flag-Types.html#g-enum-register-static" title="g_enum_register_static ()"><code class="function">g_enum_register_static()</code></a>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
<td>A nul-terminated string used as the name of the new type.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>const_static_values</code></em> :</span></p></td>
<td>An array of <a class="link" href="gobject-Enumeration-and-Flag-Types.html#GEnumValue" title="GEnumValue"><span class="type">GEnumValue</span></a> 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.
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> The new type identifier.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="g_flags_register_static ()">
<a name="g-flags-register-static"></a><h3>g_flags_register_static ()</h3>
<pre class="programlisting"><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="returnvalue">GType</span></a> g_flags_register_static (<em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
<em class="parameter"><code>const <a class="link" href="gobject-Enumeration-and-Flag-Types.html#GFlagsValue" title="GFlagsValue"><span class="type">GFlagsValue</span></a> *const_static_values</code></em>);</pre>
<p>
Registers a new static flags type with the name <em class="parameter"><code>name</code></em>.
</p>
<p>
It is normally more convenient to let <a href="glib-mkenums.html">glib-mkenums</a> generate a
<code class="function">my_flags_get_type()</code> function from a usual C enumeration definition
than to write one yourself using <a class="link" href="gobject-Enumeration-and-Flag-Types.html#g-flags-register-static" title="g_flags_register_static ()"><code class="function">g_flags_register_static()</code></a>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
<td>A nul-terminated string used as the name of the new type.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>const_static_values</code></em> :</span></p></td>
<td>An array of <a class="link" href="gobject-Enumeration-and-Flag-Types.html#GFlagsValue" title="GFlagsValue"><span class="type">GFlagsValue</span></a> 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.
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> The new type identifier.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="g_enum_complete_type_info ()">
<a name="g-enum-complete-type-info"></a><h3>g_enum_complete_type_info ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> g_enum_complete_type_info (<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> g_enum_type</code></em>,
<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GTypeInfo" title="GTypeInfo"><span class="type">GTypeInfo</span></a> *info</code></em>,
<em class="parameter"><code>const <a class="link" href="gobject-Enumeration-and-Flag-Types.html#GEnumValue" title="GEnumValue"><span class="type">GEnumValue</span></a> *const_values</code></em>);</pre>
<p>
This function is meant to be called from the <code class="function">complete_type_info()</code>
function of a <a class="link" href="GTypePlugin.html" title="GTypePlugin"><span class="type">GTypePlugin</span></a> implementation, as in the following
example:
</p>
<p>
</p>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td class="listing_lines" align="right"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14</pre></td>
<td class="listing_code"><pre class="programlisting"><span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
<span class="function">my_enum_complete_type_info</span><span class="normal"> </span><span class="symbol">(</span><span class="normal"><a href="GTypePlugin.html">GTypePlugin</a> </span><span class="symbol">*</span><span class="normal">plugin</span><span class="symbol">,</span>
<span class="normal"> <a href="gobject-Type-Information.html#GType">GType</a> g_type</span><span class="symbol">,</span>
<span class="normal"> <a href="gobject-Type-Information.html#GTypeInfo">GTypeInfo</a> </span><span class="symbol">*</span><span class="normal">info</span><span class="symbol">,</span>
<span class="normal"> <a href="gobject-Type-Information.html#GTypeValueTable">GTypeValueTable</a> </span><span class="symbol">*</span><span class="normal">value_table</span><span class="symbol">)</span>
<span class="cbracket">{</span>
<span class="normal"> </span><span class="keyword">static</span><span class="normal"> </span><span class="keyword">const</span><span class="normal"> <a href="gobject-Enumeration-and-Flag-Types.html#GEnumValue">GEnumValue</a> values</span><span class="symbol">[]</span><span class="normal"> </span><span class="symbol">=</span><span class="normal"> </span><span class="cbracket">{</span>
<span class="normal"> </span><span class="cbracket">{</span><span class="normal"> MY_ENUM_FOO</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"MY_ENUM_FOO"</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"foo"</span><span class="normal"> </span><span class="cbracket">}</span><span class="symbol">,</span>
<span class="normal"> </span><span class="cbracket">{</span><span class="normal"> MY_ENUM_BAR</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"MY_ENUM_BAR"</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"bar"</span><span class="normal"> </span><span class="cbracket">}</span><span class="symbol">,</span>
<span class="normal"> </span><span class="cbracket">{</span><span class="normal"> </span><span class="number">0</span><span class="symbol">,</span><span class="normal"> <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">,</span><span class="normal"> <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS">NULL</a> </span><span class="cbracket">}</span>
<span class="normal"> </span><span class="cbracket">}</span><span class="symbol">;</span>
<span class="normal"> </span><span class="function"><a href="gobject-Enumeration-and-Flag-Types.html#g-enum-complete-type-info">g_enum_complete_type_info</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">type</span><span class="symbol">,</span><span class="normal"> info</span><span class="symbol">,</span><span class="normal"> values</span><span class="symbol">);</span>
<span class="cbracket">}</span></pre></td>
</tr>
</tbody>
</table>
</div>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>g_enum_type</code></em> :</span></p></td>
<td>the type identifier of the type being completed
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
<td>the <a class="link" href="gobject-Type-Information.html#GTypeInfo" title="GTypeInfo"><span class="type">GTypeInfo</span></a> struct to be filled in
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>const_values</code></em> :</span></p></td>
<td>An array of <a class="link" href="gobject-Enumeration-and-Flag-Types.html#GEnumValue" title="GEnumValue"><span class="type">GEnumValue</span></a> structs for the possible
enumeration values. The array is terminated by a struct with all
members being 0.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="g_flags_complete_type_info ()">
<a name="g-flags-complete-type-info"></a><h3>g_flags_complete_type_info ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> g_flags_complete_type_info (<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> g_flags_type</code></em>,
<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GTypeInfo" title="GTypeInfo"><span class="type">GTypeInfo</span></a> *info</code></em>,
<em class="parameter"><code>const <a class="link" href="gobject-Enumeration-and-Flag-Types.html#GFlagsValue" title="GFlagsValue"><span class="type">GFlagsValue</span></a> *const_values</code></em>);</pre>
<p>
This function is meant to be called from the <code class="function">complete_type_info()</code>
function of a <a class="link" href="GTypePlugin.html" title="GTypePlugin"><span class="type">GTypePlugin</span></a> implementation, see the example for
<a class="link" href="gobject-Enumeration-and-Flag-Types.html#g-enum-complete-type-info" title="g_enum_complete_type_info ()"><code class="function">g_enum_complete_type_info()</code></a> above.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>g_flags_type</code></em> :</span></p></td>
<td>the type identifier of the type being completed
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
<td>the <a class="link" href="gobject-Type-Information.html#GTypeInfo" title="GTypeInfo"><span class="type">GTypeInfo</span></a> struct to be filled in
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>const_values</code></em> :</span></p></td>
<td>An array of <a class="link" href="gobject-Enumeration-and-Flag-Types.html#GFlagsValue" title="GFlagsValue"><span class="type">GFlagsValue</span></a> structs for the possible
enumeration values. The array is terminated by a struct with all
members being 0.
</td>
</tr>
</tbody>
</table></div>
</div>
</div>
<div class="refsect1" title="See Also">
<a name="gobject-Enumeration-and-Flag-Types.see-also"></a><h2>See Also</h2>
<a class="link" href="gobject-Standard-Parameter-and-Value-Types.html#GParamSpecEnum" title="GParamSpecEnum"><span class="type">GParamSpecEnum</span></a>, <a class="link" href="gobject-Standard-Parameter-and-Value-Types.html#GParamSpecFlags" title="GParamSpecFlags"><span class="type">GParamSpecFlags</span></a>, <a class="link" href="gobject-Standard-Parameter-and-Value-Types.html#g-param-spec-enum" title="g_param_spec_enum ()"><code class="function">g_param_spec_enum()</code></a>,
<a class="link" href="gobject-Standard-Parameter-and-Value-Types.html#g-param-spec-flags" title="g_param_spec_flags ()"><code class="function">g_param_spec_flags()</code></a>
</div>
</div>
<div class="footer">
<hr>
Generated by GTK-Doc V1.14</div>
</body>
</html>