blob: 0d1f7e53a71609c10dedfe9d718224b6bc191a89 [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>Boxed 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-Enumeration-and-Flag-Types.html" title="Enumeration and Flag Types">
<link rel="next" href="gobject-Generic-values.html" title="Generic values">
<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-Enumeration-and-Flag-Types.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-Generic-values.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-Boxed-Types.synopsis" class="shortcut">Top</a>
 | 
<a href="#gobject-Boxed-Types.description" class="shortcut">Description</a>
</td></tr>
</table>
<div class="refentry" title="Boxed Types">
<a name="gobject-Boxed-Types"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="gobject-Boxed-Types.top_of_page"></a>Boxed Types</span></h2>
<p>Boxed Types — A mechanism to wrap opaque C structures registered
by the type system</p>
</td>
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsynopsisdiv" title="Synopsis">
<a name="gobject-Boxed-Types.synopsis"></a><h2>Synopsis</h2>
<pre class="synopsis">
#include &lt;glib-object.h&gt;
<a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="returnvalue">gpointer</span></a> (<a class="link" href="gobject-Boxed-Types.html#GBoxedCopyFunc" title="GBoxedCopyFunc ()">*GBoxedCopyFunc</a>) (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> boxed</code></em>);
<span class="returnvalue">void</span> (<a class="link" href="gobject-Boxed-Types.html#GBoxedFreeFunc" title="GBoxedFreeFunc ()">*GBoxedFreeFunc</a>) (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> boxed</code></em>);
<a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="returnvalue">gpointer</span></a> <a class="link" href="gobject-Boxed-Types.html#g-boxed-copy" title="g_boxed_copy ()">g_boxed_copy</a> (<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> boxed_type</code></em>,
<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gconstpointer"><span class="type">gconstpointer</span></a> src_boxed</code></em>);
<span class="returnvalue">void</span> <a class="link" href="gobject-Boxed-Types.html#g-boxed-free" title="g_boxed_free ()">g_boxed_free</a> (<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> boxed_type</code></em>,
<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> boxed</code></em>);
<a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="returnvalue">GType</span></a> <a class="link" href="gobject-Boxed-Types.html#g-boxed-type-register-static" title="g_boxed_type_register_static ()">g_boxed_type_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><a class="link" href="gobject-Boxed-Types.html#GBoxedCopyFunc" title="GBoxedCopyFunc ()"><span class="type">GBoxedCopyFunc</span></a> boxed_copy</code></em>,
<em class="parameter"><code><a class="link" href="gobject-Boxed-Types.html#GBoxedFreeFunc" title="GBoxedFreeFunc ()"><span class="type">GBoxedFreeFunc</span></a> boxed_free</code></em>);
<a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="returnvalue">GType</span></a> <a class="link" href="gobject-Boxed-Types.html#g-pointer-type-register-static" title="g_pointer_type_register_static ()">g_pointer_type_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>);
#define <a class="link" href="gobject-Boxed-Types.html#G-TYPE-HASH-TABLE:CAPS" title="G_TYPE_HASH_TABLE">G_TYPE_HASH_TABLE</a>
#define <a class="link" href="gobject-Boxed-Types.html#G-TYPE-DATE:CAPS" title="G_TYPE_DATE">G_TYPE_DATE</a>
#define <a class="link" href="gobject-Boxed-Types.html#G-TYPE-GSTRING:CAPS" title="G_TYPE_GSTRING">G_TYPE_GSTRING</a>
#define <a class="link" href="gobject-Boxed-Types.html#G-TYPE-STRV:CAPS" title="G_TYPE_STRV">G_TYPE_STRV</a>
#define <a class="link" href="gobject-Boxed-Types.html#G-TYPE-REGEX:CAPS" title="G_TYPE_REGEX">G_TYPE_REGEX</a>
#define <a class="link" href="gobject-Boxed-Types.html#G-TYPE-ARRAY:CAPS" title="G_TYPE_ARRAY">G_TYPE_ARRAY</a>
#define <a class="link" href="gobject-Boxed-Types.html#G-TYPE-BYTE-ARRAY:CAPS" title="G_TYPE_BYTE_ARRAY">G_TYPE_BYTE_ARRAY</a>
#define <a class="link" href="gobject-Boxed-Types.html#G-TYPE-PTR-ARRAY:CAPS" title="G_TYPE_PTR_ARRAY">G_TYPE_PTR_ARRAY</a>
#define <a class="link" href="gobject-Boxed-Types.html#G-TYPE-VARIANT:CAPS" title="G_TYPE_VARIANT">G_TYPE_VARIANT</a>
#define <a class="link" href="gobject-Boxed-Types.html#G-TYPE-VARIANT-TYPE:CAPS" title="G_TYPE_VARIANT_TYPE">G_TYPE_VARIANT_TYPE</a>
typedef <a class="link" href="gobject-Boxed-Types.html#GStrv" title="GStrv">GStrv</a>;
</pre>
</div>
<div class="refsect1" title="Description">
<a name="gobject-Boxed-Types.description"></a><h2>Description</h2>
<p>
GBoxed is a generic wrapper mechanism for arbitrary C structures. The only
thing the type system needs to know about the structures is how to copy and
free them, beyond that they are treated as opaque chunks of memory.
</p>
<p>
Boxed types are useful for simple value-holder structures like rectangles or
points. They can also be used for wrapping structures defined in non-GObject
based libraries.
</p>
</div>
<div class="refsect1" title="Details">
<a name="gobject-Boxed-Types.details"></a><h2>Details</h2>
<div class="refsect2" title="GBoxedCopyFunc ()">
<a name="GBoxedCopyFunc"></a><h3>GBoxedCopyFunc ()</h3>
<pre class="programlisting"><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="returnvalue">gpointer</span></a> (*GBoxedCopyFunc) (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> boxed</code></em>);</pre>
<p>
This function is provided by the user and should produce a copy of the passed
in boxed structure.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>boxed</code></em> :</span></p></td>
<td>The boxed structure to be copied.
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> The newly created copy of the boxed structure.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="GBoxedFreeFunc ()">
<a name="GBoxedFreeFunc"></a><h3>GBoxedFreeFunc ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> (*GBoxedFreeFunc) (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> boxed</code></em>);</pre>
<p>
This function is provided by the user and should free the boxed
structure passed.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>boxed</code></em> :</span></p></td>
<td>The boxed structure to be freed.
</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="g_boxed_copy ()">
<a name="g-boxed-copy"></a><h3>g_boxed_copy ()</h3>
<pre class="programlisting"><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="returnvalue">gpointer</span></a> g_boxed_copy (<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> boxed_type</code></em>,
<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gconstpointer"><span class="type">gconstpointer</span></a> src_boxed</code></em>);</pre>
<p>
Provide a copy of a boxed structure <em class="parameter"><code>src_boxed</code></em> which is of type <em class="parameter"><code>boxed_type</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>boxed_type</code></em> :</span></p></td>
<td>The type of <em class="parameter"><code>src_boxed</code></em>.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>src_boxed</code></em> :</span></p></td>
<td>The boxed structure to be copied.
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> The newly created copy of the boxed structure.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="g_boxed_free ()">
<a name="g-boxed-free"></a><h3>g_boxed_free ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> g_boxed_free (<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> boxed_type</code></em>,
<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> boxed</code></em>);</pre>
<p>
Free the boxed structure <em class="parameter"><code>boxed</code></em> which is of type <em class="parameter"><code>boxed_type</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>boxed_type</code></em> :</span></p></td>
<td>The type of <em class="parameter"><code>boxed</code></em>.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>boxed</code></em> :</span></p></td>
<td>The boxed structure to be freed.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="g_boxed_type_register_static ()">
<a name="g-boxed-type-register-static"></a><h3>g_boxed_type_register_static ()</h3>
<pre class="programlisting"><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="returnvalue">GType</span></a> g_boxed_type_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><a class="link" href="gobject-Boxed-Types.html#GBoxedCopyFunc" title="GBoxedCopyFunc ()"><span class="type">GBoxedCopyFunc</span></a> boxed_copy</code></em>,
<em class="parameter"><code><a class="link" href="gobject-Boxed-Types.html#GBoxedFreeFunc" title="GBoxedFreeFunc ()"><span class="type">GBoxedFreeFunc</span></a> boxed_free</code></em>);</pre>
<p>
This function creates a new <a class="link" href="gobject-Type-Information.html#G-TYPE-BOXED:CAPS" title="G_TYPE_BOXED"><code class="literal">G_TYPE_BOXED</code></a> derived type id for a new
boxed type with name <em class="parameter"><code>name</code></em>. Boxed type handling functions have to be
provided to copy and free opaque boxed structures of this type.
</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>Name of the new boxed type.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>boxed_copy</code></em> :</span></p></td>
<td>Boxed structure copy function.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>boxed_free</code></em> :</span></p></td>
<td>Boxed structure free function.
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> New <a class="link" href="gobject-Type-Information.html#G-TYPE-BOXED:CAPS" title="G_TYPE_BOXED"><code class="literal">G_TYPE_BOXED</code></a> derived type id for <em class="parameter"><code>name</code></em>.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="g_pointer_type_register_static ()">
<a name="g-pointer-type-register-static"></a><h3>g_pointer_type_register_static ()</h3>
<pre class="programlisting"><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="returnvalue">GType</span></a> g_pointer_type_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>);</pre>
<p>
Creates a new <a class="link" href="gobject-Type-Information.html#G-TYPE-POINTER:CAPS" title="G_TYPE_POINTER"><code class="literal">G_TYPE_POINTER</code></a> derived type id for a new
pointer type with name <em class="parameter"><code>name</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>name</code></em> :</span></p></td>
<td>the name of the new pointer type.
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> a new <a class="link" href="gobject-Type-Information.html#G-TYPE-POINTER:CAPS" title="G_TYPE_POINTER"><code class="literal">G_TYPE_POINTER</code></a> derived type id for <em class="parameter"><code>name</code></em>.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="G_TYPE_HASH_TABLE">
<a name="G-TYPE-HASH-TABLE:CAPS"></a><h3>G_TYPE_HASH_TABLE</h3>
<pre class="programlisting">#define G_TYPE_HASH_TABLE (g_hash_table_get_type ())
</pre>
<p>
The <a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> for a boxed type holding a <a href="./../glib/glib/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a> reference.
</p>
<p class="since">Since 2.10</p>
</div>
<hr>
<div class="refsect2" title="G_TYPE_DATE">
<a name="G-TYPE-DATE:CAPS"></a><h3>G_TYPE_DATE</h3>
<pre class="programlisting">#define G_TYPE_DATE (g_date_get_type ())
</pre>
<p>
The <a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> for <a href="./../glib/glib/glib-Date-and-Time-Functions.html#GDate"><span class="type">GDate</span></a>.
</p>
</div>
<hr>
<div class="refsect2" title="G_TYPE_GSTRING">
<a name="G-TYPE-GSTRING:CAPS"></a><h3>G_TYPE_GSTRING</h3>
<pre class="programlisting">#define G_TYPE_GSTRING (g_gstring_get_type ())
</pre>
<p>
The <a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> for <a href="./../glib/glib/glib-Strings.html#GString"><span class="type">GString</span></a>.
</p>
</div>
<hr>
<div class="refsect2" title="G_TYPE_STRV">
<a name="G-TYPE-STRV:CAPS"></a><h3>G_TYPE_STRV</h3>
<pre class="programlisting">#define G_TYPE_STRV (g_strv_get_type ())
</pre>
<p>
The <a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> for a boxed type holding a <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>-terminated array of strings.
</p>
<p>
The code fragments in the following example show the use of a property of
type <a class="link" href="gobject-Boxed-Types.html#G-TYPE-STRV:CAPS" title="G_TYPE_STRV"><span class="type">G_TYPE_STRV</span></a> with <a class="link" href="gobject-The-Base-Object-Type.html#g-object-class-install-property" title="g_object_class_install_property ()"><code class="function">g_object_class_install_property()</code></a>, <a class="link" href="gobject-The-Base-Object-Type.html#g-object-set" title="g_object_set ()"><code class="function">g_object_set()</code></a>
and <a class="link" href="gobject-The-Base-Object-Type.html#g-object-get" title="g_object_get ()"><code class="function">g_object_get()</code></a>.
</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
15
16
17</pre></td>
<td class="listing_code"><pre class="programlisting"><span class="function"><a href="gobject-The-Base-Object-Type.html#g-object-class-install-property">g_object_class_install_property</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">object_class</span><span class="symbol">,</span>
<span class="normal"> PROP_AUTHORS</span><span class="symbol">,</span>
<span class="normal"> </span><span class="function"><a href="gobject-Standard-Parameter-and-Value-Types.html#g-param-spec-boxed">g_param_spec_boxed</a></span><span class="normal"> </span><span class="symbol">(</span><span class="string">"authors"</span><span class="symbol">,</span>
<span class="normal"> </span><span class="function">_</span><span class="symbol">(</span><span class="string">"Authors"</span><span class="symbol">),</span>
<span class="normal"> </span><span class="function">_</span><span class="symbol">(</span><span class="string">"List of authors"</span><span class="symbol">),</span>
<span class="normal"> <a href="gobject-Boxed-Types.html#G-TYPE-STRV:CAPS">G_TYPE_STRV</a></span><span class="symbol">,</span>
<span class="normal"> <a href="gobject-GParamSpec.html#G-PARAM-READWRITE:CAPS">G_PARAM_READWRITE</a></span><span class="symbol">));</span>
<span class="normal"><a href="./../glib/glib/glib-Basic-Types.html#gchar">gchar</a> </span><span class="symbol">*</span><span class="normal">authors</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="string">"Owen"</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"Tim"</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="symbol">;</span>
<span class="function"><a href="gobject-The-Base-Object-Type.html#g-object-set">g_object_set</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">obj</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"authors"</span><span class="symbol">,</span><span class="normal"> authors</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-Basic-Types.html#gchar">gchar</a> </span><span class="symbol">*</span><span class="normal">writers</span><span class="symbol">[];</span>
<span class="function"><a href="gobject-The-Base-Object-Type.html#g-object-get">g_object_get</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">obj</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"authors"</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">&amp;</span><span class="normal">writers</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="comment">// do something with writers</span>
<span class="function"><a href="./../glib/glib/glib-String-Utility-Functions.html#g-strfreev">g_strfreev</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">writers</span><span class="symbol">);</span></pre></td>
</tr>
</tbody>
</table>
</div>
<p>
</p>
<p class="since">Since 2.4</p>
</div>
<hr>
<div class="refsect2" title="G_TYPE_REGEX">
<a name="G-TYPE-REGEX:CAPS"></a><h3>G_TYPE_REGEX</h3>
<pre class="programlisting">#define G_TYPE_REGEX (g_regex_get_type ())
</pre>
<p>
The <a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> for a boxed type holding a <a href="./../glib/glib/glib-Perl-compatible-regular-expressions.html#GRegex"><span class="type">GRegex</span></a> reference.
</p>
<p class="since">Since 2.14</p>
</div>
<hr>
<div class="refsect2" title="G_TYPE_ARRAY">
<a name="G-TYPE-ARRAY:CAPS"></a><h3>G_TYPE_ARRAY</h3>
<pre class="programlisting">#define G_TYPE_ARRAY (g_array_get_type ())
</pre>
<p>
The <a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> for a boxed type holding a <a href="./../glib/glib/glib-Arrays.html#GArray"><span class="type">GArray</span></a> reference.
</p>
<p class="since">Since 2.22</p>
</div>
<hr>
<div class="refsect2" title="G_TYPE_BYTE_ARRAY">
<a name="G-TYPE-BYTE-ARRAY:CAPS"></a><h3>G_TYPE_BYTE_ARRAY</h3>
<pre class="programlisting">#define G_TYPE_BYTE_ARRAY (g_byte_array_get_type ())
</pre>
<p>
The <a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> for a boxed type holding a <a href="./../glib/glib/glib-Byte-Arrays.html#GByteArray"><span class="type">GByteArray</span></a> reference.
</p>
<p class="since">Since 2.22</p>
</div>
<hr>
<div class="refsect2" title="G_TYPE_PTR_ARRAY">
<a name="G-TYPE-PTR-ARRAY:CAPS"></a><h3>G_TYPE_PTR_ARRAY</h3>
<pre class="programlisting">#define G_TYPE_PTR_ARRAY (g_ptr_array_get_type ())
</pre>
<p>
The <a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> for a boxed type holding a <a href="./../glib/glib/glib-Pointer-Arrays.html#GPtrArray"><span class="type">GPtrArray</span></a> reference.
</p>
<p class="since">Since 2.22</p>
</div>
<hr>
<div class="refsect2" title="G_TYPE_VARIANT">
<a name="G-TYPE-VARIANT:CAPS"></a><h3>G_TYPE_VARIANT</h3>
<pre class="programlisting">#define G_TYPE_VARIANT (g_variant_get_gtype ())
</pre>
<p>
The <a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> for a boxed type holding a <a href="./../glib/glib/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> reference.
</p>
<p class="since">Since 2.24</p>
</div>
<hr>
<div class="refsect2" title="G_TYPE_VARIANT_TYPE">
<a name="G-TYPE-VARIANT-TYPE:CAPS"></a><h3>G_TYPE_VARIANT_TYPE</h3>
<pre class="programlisting">#define G_TYPE_VARIANT_TYPE (g_variant_type_get_gtype ())
</pre>
<p>
The <a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> for a boxed type holding a <a href="./../glib/glib/glib-GVariantType.html#GVariantType"><span class="type">GVariantType</span></a>.
</p>
<p class="since">Since 2.24</p>
</div>
<hr>
<div class="refsect2" title="GStrv">
<a name="GStrv"></a><h3>GStrv</h3>
<pre class="programlisting">typedef gchar** GStrv;
</pre>
<p>
A C representable type name for <a class="link" href="gobject-Boxed-Types.html#G-TYPE-STRV:CAPS" title="G_TYPE_STRV"><span class="type">G_TYPE_STRV</span></a>.
</p>
</div>
</div>
<div class="refsect1" title="See Also">
<a name="gobject-Boxed-Types.see-also"></a><h2>See Also</h2>
<a class="link" href="gobject-Standard-Parameter-and-Value-Types.html#GParamSpecBoxed" title="GParamSpecBoxed"><span class="type">GParamSpecBoxed</span></a>, <a class="link" href="gobject-Standard-Parameter-and-Value-Types.html#g-param-spec-boxed" title="g_param_spec_boxed ()"><code class="function">g_param_spec_boxed()</code></a>
</div>
</div>
<div class="footer">
<hr>
Generated by GTK-Doc V1.14</div>
</body>
</html>