Tizen 2.1 base
[platform/upstream/glib2.0.git] / docs / reference / gobject / html / gobject-Closures.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2 <html>
3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5 <title>Closures</title>
6 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
7 <link rel="home" href="index.html" title="GObject Reference Manual">
8 <link rel="up" href="rn01.html" title="API Reference">
9 <link rel="prev" href="gobject-Signals.html" title="Signals">
10 <link rel="next" href="gobject-Value-arrays.html" title="Value arrays">
11 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
12 <link rel="stylesheet" href="style.css" type="text/css">
13 </head>
14 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
15 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
16 <tr valign="middle">
17 <td><a accesskey="p" href="gobject-Signals.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
18 <td><a accesskey="u" href="rn01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
19 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
20 <th width="100%" align="center">GObject Reference Manual</th>
21 <td><a accesskey="n" href="gobject-Value-arrays.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
22 </tr>
23 <tr><td colspan="5" class="shortcuts">
24 <a href="#gobject-Closures.synopsis" class="shortcut">Top</a>
25                    | 
26                   <a href="#gobject-Closures.description" class="shortcut">Description</a>
27 </td></tr>
28 </table>
29 <div class="refentry">
30 <a name="gobject-Closures"></a><div class="titlepage"></div>
31 <div class="refnamediv"><table width="100%"><tr>
32 <td valign="top">
33 <h2><span class="refentrytitle"><a name="gobject-Closures.top_of_page"></a>Closures</span></h2>
34 <p>Closures — Functions as first-class objects</p>
35 </td>
36 <td valign="top" align="right"></td>
37 </tr></table></div>
38 <div class="refsynopsisdiv">
39 <a name="gobject-Closures.synopsis"></a><h2>Synopsis</h2>
40 <pre class="synopsis">
41 #include &lt;glib-object.h&gt;
42
43 #define             <a class="link" href="gobject-Closures.html#G-CLOSURE-NEEDS-MARSHAL:CAPS" title="G_CLOSURE_NEEDS_MARSHAL()">G_CLOSURE_NEEDS_MARSHAL</a>             (closure)
44 #define             <a class="link" href="gobject-Closures.html#G-CLOSURE-N-NOTIFIERS:CAPS" title="G_CLOSURE_N_NOTIFIERS()">G_CLOSURE_N_NOTIFIERS</a>               (cl)
45 #define             <a class="link" href="gobject-Closures.html#G-CCLOSURE-SWAP-DATA:CAPS" title="G_CCLOSURE_SWAP_DATA()">G_CCLOSURE_SWAP_DATA</a>                (cclosure)
46 #define             <a class="link" href="gobject-Closures.html#G-CALLBACK:CAPS" title="G_CALLBACK()">G_CALLBACK</a>                          (f)
47 <span class="returnvalue">void</span>                (<a class="link" href="gobject-Closures.html#GCallback" title="GCallback ()">*GCallback</a>)                        (<em class="parameter"><code><span class="type">void</span></code></em>);
48 struct              <a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure">GClosure</a>;
49 #define             <a class="link" href="gobject-Closures.html#G-TYPE-CLOSURE:CAPS" title="G_TYPE_CLOSURE">G_TYPE_CLOSURE</a>
50 struct              <a class="link" href="gobject-Closures.html#GCClosure" title="struct GCClosure">GCClosure</a>;
51 <span class="returnvalue">void</span>                (<a class="link" href="gobject-Closures.html#GClosureMarshal" title="GClosureMarshal ()">*GClosureMarshal</a>)                  (<em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> *closure</code></em>,
52                                                          <em class="parameter"><code><a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *return_value</code></em>,
53                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_param_values</code></em>,
54                                                          <em class="parameter"><code>const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *param_values</code></em>,
55                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> invocation_hint</code></em>,
56                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> marshal_data</code></em>);
57 <span class="returnvalue">void</span>                (<a class="link" href="gobject-Closures.html#GClosureNotify" title="GClosureNotify ()">*GClosureNotify</a>)                   (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
58                                                          <em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> *closure</code></em>);
59 <a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="returnvalue">GClosure</span></a> *          <a class="link" href="gobject-Closures.html#g-cclosure-new" title="g_cclosure_new ()">g_cclosure_new</a>                      (<em class="parameter"><code><a class="link" href="gobject-Closures.html#GCallback" title="GCallback ()"><span class="type">GCallback</span></a> callback_func</code></em>,
60                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
61                                                          <em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosureNotify" title="GClosureNotify ()"><span class="type">GClosureNotify</span></a> destroy_data</code></em>);
62 <a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="returnvalue">GClosure</span></a> *          <a class="link" href="gobject-Closures.html#g-cclosure-new-swap" title="g_cclosure_new_swap ()">g_cclosure_new_swap</a>                 (<em class="parameter"><code><a class="link" href="gobject-Closures.html#GCallback" title="GCallback ()"><span class="type">GCallback</span></a> callback_func</code></em>,
63                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
64                                                          <em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosureNotify" title="GClosureNotify ()"><span class="type">GClosureNotify</span></a> destroy_data</code></em>);
65 <a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="returnvalue">GClosure</span></a> *          <a class="link" href="gobject-Closures.html#g-cclosure-new-object" title="g_cclosure_new_object ()">g_cclosure_new_object</a>               (<em class="parameter"><code><a class="link" href="gobject-Closures.html#GCallback" title="GCallback ()"><span class="type">GCallback</span></a> callback_func</code></em>,
66                                                          <em class="parameter"><code><a class="link" href="gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>);
67 <a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="returnvalue">GClosure</span></a> *          <a class="link" href="gobject-Closures.html#g-cclosure-new-object-swap" title="g_cclosure_new_object_swap ()">g_cclosure_new_object_swap</a>          (<em class="parameter"><code><a class="link" href="gobject-Closures.html#GCallback" title="GCallback ()"><span class="type">GCallback</span></a> callback_func</code></em>,
68                                                          <em class="parameter"><code><a class="link" href="gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>);
69 <span class="returnvalue">void</span>                <a class="link" href="gobject-Closures.html#g-cclosure-marshal-generic" title="g_cclosure_marshal_generic ()">g_cclosure_marshal_generic</a>          (<em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> *closure</code></em>,
70                                                          <em class="parameter"><code><a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *return_gvalue</code></em>,
71                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_param_values</code></em>,
72                                                          <em class="parameter"><code>const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *param_values</code></em>,
73                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> invocation_hint</code></em>,
74                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> marshal_data</code></em>);
75 <a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="returnvalue">GClosure</span></a> *          <a class="link" href="gobject-Closures.html#g-closure-new-object" title="g_closure_new_object ()">g_closure_new_object</a>                (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> sizeof_closure</code></em>,
76                                                          <em class="parameter"><code><a class="link" href="gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>);
77 <a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="returnvalue">GClosure</span></a> *          <a class="link" href="gobject-Closures.html#g-closure-ref" title="g_closure_ref ()">g_closure_ref</a>                       (<em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> *closure</code></em>);
78 <span class="returnvalue">void</span>                <a class="link" href="gobject-Closures.html#g-closure-sink" title="g_closure_sink ()">g_closure_sink</a>                      (<em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> *closure</code></em>);
79 <span class="returnvalue">void</span>                <a class="link" href="gobject-Closures.html#g-closure-unref" title="g_closure_unref ()">g_closure_unref</a>                     (<em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> *closure</code></em>);
80 <span class="returnvalue">void</span>                <a class="link" href="gobject-Closures.html#g-closure-invoke" title="g_closure_invoke ()">g_closure_invoke</a>                    (<em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> *closure</code></em>,
81                                                          <em class="parameter"><code><a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *return_value</code></em>,
82                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_param_values</code></em>,
83                                                          <em class="parameter"><code>const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *param_values</code></em>,
84                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> invocation_hint</code></em>);
85 <span class="returnvalue">void</span>                <a class="link" href="gobject-Closures.html#g-closure-invalidate" title="g_closure_invalidate ()">g_closure_invalidate</a>                (<em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> *closure</code></em>);
86 <span class="returnvalue">void</span>                <a class="link" href="gobject-Closures.html#g-closure-add-finalize-notifier" title="g_closure_add_finalize_notifier ()">g_closure_add_finalize_notifier</a>     (<em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> *closure</code></em>,
87                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> notify_data</code></em>,
88                                                          <em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosureNotify" title="GClosureNotify ()"><span class="type">GClosureNotify</span></a> notify_func</code></em>);
89 <span class="returnvalue">void</span>                <a class="link" href="gobject-Closures.html#g-closure-add-invalidate-notifier" title="g_closure_add_invalidate_notifier ()">g_closure_add_invalidate_notifier</a>   (<em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> *closure</code></em>,
90                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> notify_data</code></em>,
91                                                          <em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosureNotify" title="GClosureNotify ()"><span class="type">GClosureNotify</span></a> notify_func</code></em>);
92 <span class="returnvalue">void</span>                <a class="link" href="gobject-Closures.html#g-closure-remove-finalize-notifier" title="g_closure_remove_finalize_notifier ()">g_closure_remove_finalize_notifier</a>  (<em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> *closure</code></em>,
93                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> notify_data</code></em>,
94                                                          <em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosureNotify" title="GClosureNotify ()"><span class="type">GClosureNotify</span></a> notify_func</code></em>);
95 <span class="returnvalue">void</span>                <a class="link" href="gobject-Closures.html#g-closure-remove-invalidate-notifier" title="g_closure_remove_invalidate_notifier ()">g_closure_remove_invalidate_notifier</a>
96                                                         (<em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> *closure</code></em>,
97                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> notify_data</code></em>,
98                                                          <em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosureNotify" title="GClosureNotify ()"><span class="type">GClosureNotify</span></a> notify_func</code></em>);
99 <a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="returnvalue">GClosure</span></a> *          <a class="link" href="gobject-Closures.html#g-closure-new-simple" title="g_closure_new_simple ()">g_closure_new_simple</a>                (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> sizeof_closure</code></em>,
100                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>);
101 <span class="returnvalue">void</span>                <a class="link" href="gobject-Closures.html#g-closure-set-marshal" title="g_closure_set_marshal ()">g_closure_set_marshal</a>               (<em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> *closure</code></em>,
102                                                          <em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosureMarshal" title="GClosureMarshal ()"><span class="type">GClosureMarshal</span></a> marshal</code></em>);
103 <span class="returnvalue">void</span>                <a class="link" href="gobject-Closures.html#g-closure-add-marshal-guards" title="g_closure_add_marshal_guards ()">g_closure_add_marshal_guards</a>        (<em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> *closure</code></em>,
104                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> pre_marshal_data</code></em>,
105                                                          <em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosureNotify" title="GClosureNotify ()"><span class="type">GClosureNotify</span></a> pre_marshal_notify</code></em>,
106                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> post_marshal_data</code></em>,
107                                                          <em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosureNotify" title="GClosureNotify ()"><span class="type">GClosureNotify</span></a> post_marshal_notify</code></em>);
108 <span class="returnvalue">void</span>                <a class="link" href="gobject-Closures.html#g-closure-set-meta-marshal" title="g_closure_set_meta_marshal ()">g_closure_set_meta_marshal</a>          (<em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> *closure</code></em>,
109                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> marshal_data</code></em>,
110                                                          <em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosureMarshal" title="GClosureMarshal ()"><span class="type">GClosureMarshal</span></a> meta_marshal</code></em>);
111 <span class="returnvalue">void</span>                <a class="link" href="gobject-Closures.html#g-source-set-closure" title="g_source_set_closure ()">g_source_set_closure</a>                (<em class="parameter"><code><a href="./../glib/glib/glib-The-Main-Event-Loop.html#GSource"><span class="type">GSource</span></a> *source</code></em>,
112                                                          <em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> *closure</code></em>);
113 <span class="returnvalue">void</span>                <a class="link" href="gobject-Closures.html#g-source-set-dummy-callback" title="g_source_set_dummy_callback ()">g_source_set_dummy_callback</a>         (<em class="parameter"><code><a href="./../glib/glib/glib-The-Main-Event-Loop.html#GSource"><span class="type">GSource</span></a> *source</code></em>);
114
115 <span class="returnvalue">void</span>                <a class="link" href="gobject-Closures.html#g-cclosure-marshal-VOID--VOID" title="g_cclosure_marshal_VOID__VOID ()">g_cclosure_marshal_VOID__VOID</a>       (<em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> *closure</code></em>,
116                                                          <em class="parameter"><code><a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *return_value</code></em>,
117                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_param_values</code></em>,
118                                                          <em class="parameter"><code>const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *param_values</code></em>,
119                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> invocation_hint</code></em>,
120                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> marshal_data</code></em>);
121 <span class="returnvalue">void</span>                <a class="link" href="gobject-Closures.html#g-cclosure-marshal-VOID--BOOLEAN" title="g_cclosure_marshal_VOID__BOOLEAN ()">g_cclosure_marshal_VOID__BOOLEAN</a>    (<em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> *closure</code></em>,
122                                                          <em class="parameter"><code><a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *return_value</code></em>,
123                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_param_values</code></em>,
124                                                          <em class="parameter"><code>const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *param_values</code></em>,
125                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> invocation_hint</code></em>,
126                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> marshal_data</code></em>);
127 <span class="returnvalue">void</span>                <a class="link" href="gobject-Closures.html#g-cclosure-marshal-VOID--CHAR" title="g_cclosure_marshal_VOID__CHAR ()">g_cclosure_marshal_VOID__CHAR</a>       (<em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> *closure</code></em>,
128                                                          <em class="parameter"><code><a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *return_value</code></em>,
129                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_param_values</code></em>,
130                                                          <em class="parameter"><code>const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *param_values</code></em>,
131                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> invocation_hint</code></em>,
132                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> marshal_data</code></em>);
133 <span class="returnvalue">void</span>                <a class="link" href="gobject-Closures.html#g-cclosure-marshal-VOID--UCHAR" title="g_cclosure_marshal_VOID__UCHAR ()">g_cclosure_marshal_VOID__UCHAR</a>      (<em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> *closure</code></em>,
134                                                          <em class="parameter"><code><a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *return_value</code></em>,
135                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_param_values</code></em>,
136                                                          <em class="parameter"><code>const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *param_values</code></em>,
137                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> invocation_hint</code></em>,
138                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> marshal_data</code></em>);
139 <span class="returnvalue">void</span>                <a class="link" href="gobject-Closures.html#g-cclosure-marshal-VOID--INT" title="g_cclosure_marshal_VOID__INT ()">g_cclosure_marshal_VOID__INT</a>        (<em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> *closure</code></em>,
140                                                          <em class="parameter"><code><a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *return_value</code></em>,
141                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_param_values</code></em>,
142                                                          <em class="parameter"><code>const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *param_values</code></em>,
143                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> invocation_hint</code></em>,
144                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> marshal_data</code></em>);
145 <span class="returnvalue">void</span>                <a class="link" href="gobject-Closures.html#g-cclosure-marshal-VOID--UINT" title="g_cclosure_marshal_VOID__UINT ()">g_cclosure_marshal_VOID__UINT</a>       (<em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> *closure</code></em>,
146                                                          <em class="parameter"><code><a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *return_value</code></em>,
147                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_param_values</code></em>,
148                                                          <em class="parameter"><code>const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *param_values</code></em>,
149                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> invocation_hint</code></em>,
150                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> marshal_data</code></em>);
151 <span class="returnvalue">void</span>                <a class="link" href="gobject-Closures.html#g-cclosure-marshal-VOID--LONG" title="g_cclosure_marshal_VOID__LONG ()">g_cclosure_marshal_VOID__LONG</a>       (<em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> *closure</code></em>,
152                                                          <em class="parameter"><code><a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *return_value</code></em>,
153                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_param_values</code></em>,
154                                                          <em class="parameter"><code>const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *param_values</code></em>,
155                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> invocation_hint</code></em>,
156                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> marshal_data</code></em>);
157 <span class="returnvalue">void</span>                <a class="link" href="gobject-Closures.html#g-cclosure-marshal-VOID--ULONG" title="g_cclosure_marshal_VOID__ULONG ()">g_cclosure_marshal_VOID__ULONG</a>      (<em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> *closure</code></em>,
158                                                          <em class="parameter"><code><a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *return_value</code></em>,
159                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_param_values</code></em>,
160                                                          <em class="parameter"><code>const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *param_values</code></em>,
161                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> invocation_hint</code></em>,
162                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> marshal_data</code></em>);
163 <span class="returnvalue">void</span>                <a class="link" href="gobject-Closures.html#g-cclosure-marshal-VOID--ENUM" title="g_cclosure_marshal_VOID__ENUM ()">g_cclosure_marshal_VOID__ENUM</a>       (<em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> *closure</code></em>,
164                                                          <em class="parameter"><code><a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *return_value</code></em>,
165                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_param_values</code></em>,
166                                                          <em class="parameter"><code>const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *param_values</code></em>,
167                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> invocation_hint</code></em>,
168                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> marshal_data</code></em>);
169 <span class="returnvalue">void</span>                <a class="link" href="gobject-Closures.html#g-cclosure-marshal-VOID--FLAGS" title="g_cclosure_marshal_VOID__FLAGS ()">g_cclosure_marshal_VOID__FLAGS</a>      (<em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> *closure</code></em>,
170                                                          <em class="parameter"><code><a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *return_value</code></em>,
171                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_param_values</code></em>,
172                                                          <em class="parameter"><code>const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *param_values</code></em>,
173                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> invocation_hint</code></em>,
174                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> marshal_data</code></em>);
175 <span class="returnvalue">void</span>                <a class="link" href="gobject-Closures.html#g-cclosure-marshal-VOID--FLOAT" title="g_cclosure_marshal_VOID__FLOAT ()">g_cclosure_marshal_VOID__FLOAT</a>      (<em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> *closure</code></em>,
176                                                          <em class="parameter"><code><a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *return_value</code></em>,
177                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_param_values</code></em>,
178                                                          <em class="parameter"><code>const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *param_values</code></em>,
179                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> invocation_hint</code></em>,
180                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> marshal_data</code></em>);
181 <span class="returnvalue">void</span>                <a class="link" href="gobject-Closures.html#g-cclosure-marshal-VOID--DOUBLE" title="g_cclosure_marshal_VOID__DOUBLE ()">g_cclosure_marshal_VOID__DOUBLE</a>     (<em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> *closure</code></em>,
182                                                          <em class="parameter"><code><a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *return_value</code></em>,
183                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_param_values</code></em>,
184                                                          <em class="parameter"><code>const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *param_values</code></em>,
185                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> invocation_hint</code></em>,
186                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> marshal_data</code></em>);
187 <span class="returnvalue">void</span>                <a class="link" href="gobject-Closures.html#g-cclosure-marshal-VOID--STRING" title="g_cclosure_marshal_VOID__STRING ()">g_cclosure_marshal_VOID__STRING</a>     (<em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> *closure</code></em>,
188                                                          <em class="parameter"><code><a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *return_value</code></em>,
189                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_param_values</code></em>,
190                                                          <em class="parameter"><code>const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *param_values</code></em>,
191                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> invocation_hint</code></em>,
192                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> marshal_data</code></em>);
193 <span class="returnvalue">void</span>                <a class="link" href="gobject-Closures.html#g-cclosure-marshal-VOID--PARAM" title="g_cclosure_marshal_VOID__PARAM ()">g_cclosure_marshal_VOID__PARAM</a>      (<em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> *closure</code></em>,
194                                                          <em class="parameter"><code><a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *return_value</code></em>,
195                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_param_values</code></em>,
196                                                          <em class="parameter"><code>const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *param_values</code></em>,
197                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> invocation_hint</code></em>,
198                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> marshal_data</code></em>);
199 <span class="returnvalue">void</span>                <a class="link" href="gobject-Closures.html#g-cclosure-marshal-VOID--BOXED" title="g_cclosure_marshal_VOID__BOXED ()">g_cclosure_marshal_VOID__BOXED</a>      (<em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> *closure</code></em>,
200                                                          <em class="parameter"><code><a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *return_value</code></em>,
201                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_param_values</code></em>,
202                                                          <em class="parameter"><code>const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *param_values</code></em>,
203                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> invocation_hint</code></em>,
204                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> marshal_data</code></em>);
205 <span class="returnvalue">void</span>                <a class="link" href="gobject-Closures.html#g-cclosure-marshal-VOID--POINTER" title="g_cclosure_marshal_VOID__POINTER ()">g_cclosure_marshal_VOID__POINTER</a>    (<em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> *closure</code></em>,
206                                                          <em class="parameter"><code><a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *return_value</code></em>,
207                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_param_values</code></em>,
208                                                          <em class="parameter"><code>const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *param_values</code></em>,
209                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> invocation_hint</code></em>,
210                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> marshal_data</code></em>);
211 <span class="returnvalue">void</span>                <a class="link" href="gobject-Closures.html#g-cclosure-marshal-VOID--OBJECT" title="g_cclosure_marshal_VOID__OBJECT ()">g_cclosure_marshal_VOID__OBJECT</a>     (<em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> *closure</code></em>,
212                                                          <em class="parameter"><code><a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *return_value</code></em>,
213                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_param_values</code></em>,
214                                                          <em class="parameter"><code>const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *param_values</code></em>,
215                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> invocation_hint</code></em>,
216                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> marshal_data</code></em>);
217 <span class="returnvalue">void</span>                <a class="link" href="gobject-Closures.html#g-cclosure-marshal-VOID--VARIANT" title="g_cclosure_marshal_VOID__VARIANT ()">g_cclosure_marshal_VOID__VARIANT</a>    (<em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> *closure</code></em>,
218                                                          <em class="parameter"><code><a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *return_value</code></em>,
219                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_param_values</code></em>,
220                                                          <em class="parameter"><code>const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *param_values</code></em>,
221                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> invocation_hint</code></em>,
222                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> marshal_data</code></em>);
223 <span class="returnvalue">void</span>                <a class="link" href="gobject-Closures.html#g-cclosure-marshal-STRING--OBJECT-POINTER" title="g_cclosure_marshal_STRING__OBJECT_POINTER ()">g_cclosure_marshal_STRING__OBJECT_POINTER</a>
224                                                         (<em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> *closure</code></em>,
225                                                          <em class="parameter"><code><a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *return_value</code></em>,
226                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_param_values</code></em>,
227                                                          <em class="parameter"><code>const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *param_values</code></em>,
228                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> invocation_hint</code></em>,
229                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> marshal_data</code></em>);
230 <span class="returnvalue">void</span>                <a class="link" href="gobject-Closures.html#g-cclosure-marshal-VOID--UINT-POINTER" title="g_cclosure_marshal_VOID__UINT_POINTER ()">g_cclosure_marshal_VOID__UINT_POINTER</a>
231                                                         (<em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> *closure</code></em>,
232                                                          <em class="parameter"><code><a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *return_value</code></em>,
233                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_param_values</code></em>,
234                                                          <em class="parameter"><code>const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *param_values</code></em>,
235                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> invocation_hint</code></em>,
236                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> marshal_data</code></em>);
237 <span class="returnvalue">void</span>                <a class="link" href="gobject-Closures.html#g-cclosure-marshal-BOOLEAN--FLAGS" title="g_cclosure_marshal_BOOLEAN__FLAGS ()">g_cclosure_marshal_BOOLEAN__FLAGS</a>   (<em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> *closure</code></em>,
238                                                          <em class="parameter"><code><a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *return_value</code></em>,
239                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_param_values</code></em>,
240                                                          <em class="parameter"><code>const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *param_values</code></em>,
241                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> invocation_hint</code></em>,
242                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> marshal_data</code></em>);
243 #define             <a class="link" href="gobject-Closures.html#g-cclosure-marshal-BOOL--FLAGS" title="g_cclosure_marshal_BOOL__FLAGS">g_cclosure_marshal_BOOL__FLAGS</a>
244 <span class="returnvalue">void</span>                <a class="link" href="gobject-Closures.html#g-cclosure-marshal-BOOLEAN--BOXED-BOXED" title="g_cclosure_marshal_BOOLEAN__BOXED_BOXED ()">g_cclosure_marshal_BOOLEAN__BOXED_BOXED</a>
245                                                         (<em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> *closure</code></em>,
246                                                          <em class="parameter"><code><a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *return_value</code></em>,
247                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_param_values</code></em>,
248                                                          <em class="parameter"><code>const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *param_values</code></em>,
249                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> invocation_hint</code></em>,
250                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> marshal_data</code></em>);
251 #define             <a class="link" href="gobject-Closures.html#g-cclosure-marshal-BOOL--BOXED-BOXED" title="g_cclosure_marshal_BOOL__BOXED_BOXED">g_cclosure_marshal_BOOL__BOXED_BOXED</a>
252 </pre>
253 </div>
254 <div class="refsect1">
255 <a name="gobject-Closures.description"></a><h2>Description</h2>
256 <p>
257 A <a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> represents a callback supplied by the programmer. It
258 will generally comprise a function of some kind and a marshaller
259 used to call it. It is the reponsibility of the marshaller to
260 convert the arguments for the invocation from <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a>s into
261 a suitable form, perform the callback on the converted arguments,
262 and transform the return value back into a <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a>.
263 </p>
264 <p>
265 In the case of C programs, a closure usually just holds a pointer
266 to a function and maybe a data argument, and the marshaller
267 converts between <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> and native C types. The GObject
268 library provides the <a class="link" href="gobject-Closures.html#GCClosure" title="struct GCClosure"><span class="type">GCClosure</span></a> type for this purpose. Bindings for
269 other languages need marshallers which convert between <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a>s and suitable representations in the runtime of the language in
270 order to use functions written in that languages as callbacks.
271 </p>
272 <p>
273 Within GObject, closures play an important role in the
274 implementation of signals. When a signal is registered, the
275 <em class="parameter"><code>c_marshaller</code></em> argument to <a class="link" href="gobject-Signals.html#g-signal-new" title="g_signal_new ()"><code class="function">g_signal_new()</code></a> specifies the default C
276 marshaller for any closure which is connected to this
277 signal. GObject provides a number of C marshallers for this
278 purpose, see the g_cclosure_marshal_*() functions. Additional C
279 marshallers can be generated with the <a href="glib-genmarshal.html">glib-genmarshal</a> utility.  Closures
280 can be explicitly connected to signals with
281 <a class="link" href="gobject-Signals.html#g-signal-connect-closure" title="g_signal_connect_closure ()"><code class="function">g_signal_connect_closure()</code></a>, but it usually more convenient to let
282 GObject create a closure automatically by using one of the
283 g_signal_connect_*() functions which take a callback function/user
284 data pair.
285 </p>
286 <p>
287 Using closures has a number of important advantages over a simple
288 callback function/data pointer combination:
289 </p>
290 <div class="itemizedlist"><ul class="itemizedlist" type="disc">
291 <li class="listitem"><p>
292 Closures allow the callee to get the types of the callback parameters,
293 which means that language bindings don't have to write individual glue
294 for each callback type.
295 </p></li>
296 <li class="listitem"><p>
297 The reference counting of <a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> makes it easy to handle reentrancy
298 right; if a callback is removed while it is being invoked, the closure
299 and its parameters won't be freed until the invocation finishes.
300 </p></li>
301 <li class="listitem"><p>
302 <a class="link" href="gobject-Closures.html#g-closure-invalidate" title="g_closure_invalidate ()"><code class="function">g_closure_invalidate()</code></a> and invalidation notifiers allow callbacks to be
303 automatically removed when the objects they point to go away.
304 </p></li>
305 </ul></div>
306 <p>
307 </p>
308 </div>
309 <div class="refsect1">
310 <a name="gobject-Closures.details"></a><h2>Details</h2>
311 <div class="refsect2">
312 <a name="G-CLOSURE-NEEDS-MARSHAL:CAPS"></a><h3>G_CLOSURE_NEEDS_MARSHAL()</h3>
313 <pre class="programlisting">#define G_CLOSURE_NEEDS_MARSHAL(closure) (((GClosure*) (closure))-&gt;marshal == NULL)
314 </pre>
315 <p>
316 Check if the closure still needs a marshaller. See <a class="link" href="gobject-Closures.html#g-closure-set-marshal" title="g_closure_set_marshal ()"><code class="function">g_closure_set_marshal()</code></a>.
317 </p>
318 <div class="variablelist"><table border="0">
319 <col align="left" valign="top">
320 <tbody>
321 <tr>
322 <td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td>
323 <td>a <a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a>
324 </td>
325 </tr>
326 <tr>
327 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
328 <td>
329 <a href="./../glib/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if a <a class="link" href="gobject-Closures.html#GClosureMarshal" title="GClosureMarshal ()"><span class="type">GClosureMarshal</span></a> marshaller has not yet been set on
330 <em class="parameter"><code>closure</code></em>.</td>
331 </tr>
332 </tbody>
333 </table></div>
334 </div>
335 <hr>
336 <div class="refsect2">
337 <a name="G-CLOSURE-N-NOTIFIERS:CAPS"></a><h3>G_CLOSURE_N_NOTIFIERS()</h3>
338 <pre class="programlisting">#define             G_CLOSURE_N_NOTIFIERS(cl)</pre>
339 <p>
340 Get the total number of notifiers connected with the closure <em class="parameter"><code>cl</code></em>. 
341 The count includes the meta marshaller, the finalize and invalidate notifiers 
342 and the marshal guards. Note that each guard counts as two notifiers. 
343 See <a class="link" href="gobject-Closures.html#g-closure-set-meta-marshal" title="g_closure_set_meta_marshal ()"><code class="function">g_closure_set_meta_marshal()</code></a>, <a class="link" href="gobject-Closures.html#g-closure-add-finalize-notifier" title="g_closure_add_finalize_notifier ()"><code class="function">g_closure_add_finalize_notifier()</code></a>,
344 <a class="link" href="gobject-Closures.html#g-closure-add-invalidate-notifier" title="g_closure_add_invalidate_notifier ()"><code class="function">g_closure_add_invalidate_notifier()</code></a> and <a class="link" href="gobject-Closures.html#g-closure-add-marshal-guards" title="g_closure_add_marshal_guards ()"><code class="function">g_closure_add_marshal_guards()</code></a>.
345 </p>
346 <div class="variablelist"><table border="0">
347 <col align="left" valign="top">
348 <tbody>
349 <tr>
350 <td><p><span class="term"><em class="parameter"><code>cl</code></em> :</span></p></td>
351 <td>a <a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a>
352 </td>
353 </tr>
354 <tr>
355 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
356 <td>number of notifiers</td>
357 </tr>
358 </tbody>
359 </table></div>
360 </div>
361 <hr>
362 <div class="refsect2">
363 <a name="G-CCLOSURE-SWAP-DATA:CAPS"></a><h3>G_CCLOSURE_SWAP_DATA()</h3>
364 <pre class="programlisting">#define G_CCLOSURE_SWAP_DATA(cclosure)      (((GClosure*) (cclosure))-&gt;derivative_flag)
365 </pre>
366 <p>
367 Checks whether the user data of the <a class="link" href="gobject-Closures.html#GCClosure" title="struct GCClosure"><span class="type">GCClosure</span></a> should be passed as the
368 first parameter to the callback. See <a class="link" href="gobject-Closures.html#g-cclosure-new-swap" title="g_cclosure_new_swap ()"><code class="function">g_cclosure_new_swap()</code></a>.
369 </p>
370 <div class="variablelist"><table border="0">
371 <col align="left" valign="top">
372 <tbody>
373 <tr>
374 <td><p><span class="term"><em class="parameter"><code>cclosure</code></em> :</span></p></td>
375 <td>a <a class="link" href="gobject-Closures.html#GCClosure" title="struct GCClosure"><span class="type">GCClosure</span></a>
376 </td>
377 </tr>
378 <tr>
379 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
380 <td>
381 <a href="./../glib/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if data has to be swapped.</td>
382 </tr>
383 </tbody>
384 </table></div>
385 </div>
386 <hr>
387 <div class="refsect2">
388 <a name="G-CALLBACK:CAPS"></a><h3>G_CALLBACK()</h3>
389 <pre class="programlisting">#define G_CALLBACK(f)                       ((GCallback) (f))
390 </pre>
391 <p>
392 Cast a function pointer to a <a class="link" href="gobject-Closures.html#GCallback" title="GCallback ()"><span class="type">GCallback</span></a>.
393 </p>
394 <div class="variablelist"><table border="0">
395 <col align="left" valign="top">
396 <tbody><tr>
397 <td><p><span class="term"><em class="parameter"><code>f</code></em> :</span></p></td>
398 <td>a function pointer.</td>
399 </tr></tbody>
400 </table></div>
401 </div>
402 <hr>
403 <div class="refsect2">
404 <a name="GCallback"></a><h3>GCallback ()</h3>
405 <pre class="programlisting"><span class="returnvalue">void</span>                (*GCallback)                        (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
406 <p>
407 The type used for callback functions in structure definitions and function 
408 signatures. This doesn't mean that all callback functions must take no 
409 parameters and return void. The required signature of a callback function 
410 is determined by the context in which is used (e.g. the signal to which it 
411 is connected). Use <a class="link" href="gobject-Closures.html#G-CALLBACK:CAPS" title="G_CALLBACK()"><code class="function">G_CALLBACK()</code></a> to cast the callback function to a <a class="link" href="gobject-Closures.html#GCallback" title="GCallback ()"><span class="type">GCallback</span></a>.
412 </p>
413 </div>
414 <hr>
415 <div class="refsect2">
416 <a name="GClosure"></a><h3>struct GClosure</h3>
417 <pre class="programlisting">struct GClosure {
418   volatile              guint    in_marshal : 1;
419   volatile              guint    is_invalid : 1;
420 };
421 </pre>
422 <p>
423 A <a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> represents a callback supplied by the programmer.
424 </p>
425 <div class="variablelist"><table border="0">
426 <col align="left" valign="top">
427 <tbody>
428 <tr>
429 <td><p><span class="term">volatile               <a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GClosure.in-marshal"></a>in_marshal</code></em> : 1;</span></p></td>
430 <td>Indicates whether the closure is currently being invoked with
431 <a class="link" href="gobject-Closures.html#g-closure-invoke" title="g_closure_invoke ()"><code class="function">g_closure_invoke()</code></a>
432 </td>
433 </tr>
434 <tr>
435 <td><p><span class="term">volatile               <a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GClosure.is-invalid"></a>is_invalid</code></em> : 1;</span></p></td>
436 <td>Indicates whether the closure has been invalidated by
437 <a class="link" href="gobject-Closures.html#g-closure-invalidate" title="g_closure_invalidate ()"><code class="function">g_closure_invalidate()</code></a>
438 </td>
439 </tr>
440 </tbody>
441 </table></div>
442 </div>
443 <hr>
444 <div class="refsect2">
445 <a name="G-TYPE-CLOSURE:CAPS"></a><h3>G_TYPE_CLOSURE</h3>
446 <pre class="programlisting">#define G_TYPE_CLOSURE (g_closure_get_type ())
447 </pre>
448 <p>
449 The <a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> for <a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a>.
450 </p>
451 </div>
452 <hr>
453 <div class="refsect2">
454 <a name="GCClosure"></a><h3>struct GCClosure</h3>
455 <pre class="programlisting">struct GCClosure {
456   GClosure closure;
457   gpointer callback;
458 };
459 </pre>
460 <p>
461 A <a class="link" href="gobject-Closures.html#GCClosure" title="struct GCClosure"><span class="type">GCClosure</span></a> is a specialization of <a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> for C function callbacks.
462 </p>
463 <div class="variablelist"><table border="0">
464 <col align="left" valign="top">
465 <tbody>
466 <tr>
467 <td><p><span class="term"><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> <em class="structfield"><code><a name="GCClosure.closure"></a>closure</code></em>;</span></p></td>
468 <td>the <a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a>
469 </td>
470 </tr>
471 <tr>
472 <td><p><span class="term"><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> <em class="structfield"><code><a name="GCClosure.callback"></a>callback</code></em>;</span></p></td>
473 <td>the callback function</td>
474 </tr>
475 </tbody>
476 </table></div>
477 </div>
478 <hr>
479 <div class="refsect2">
480 <a name="GClosureMarshal"></a><h3>GClosureMarshal ()</h3>
481 <pre class="programlisting"><span class="returnvalue">void</span>                (*GClosureMarshal)                  (<em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> *closure</code></em>,
482                                                          <em class="parameter"><code><a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *return_value</code></em>,
483                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_param_values</code></em>,
484                                                          <em class="parameter"><code>const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *param_values</code></em>,
485                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> invocation_hint</code></em>,
486                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> marshal_data</code></em>);</pre>
487 <p>
488 The type used for marshaller functions.
489 </p>
490 <div class="variablelist"><table border="0">
491 <col align="left" valign="top">
492 <tbody>
493 <tr>
494 <td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td>
495 <td>the <a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> to which the marshaller belongs</td>
496 </tr>
497 <tr>
498 <td><p><span class="term"><em class="parameter"><code>return_value</code></em> :</span></p></td>
499 <td>a <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> to store the return
500 value. May be <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the callback of <em class="parameter"><code>closure</code></em> doesn't return a
501 value. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
502 </td>
503 </tr>
504 <tr>
505 <td><p><span class="term"><em class="parameter"><code>n_param_values</code></em> :</span></p></td>
506 <td>the length of the <em class="parameter"><code>param_values</code></em> array</td>
507 </tr>
508 <tr>
509 <td><p><span class="term"><em class="parameter"><code>param_values</code></em> :</span></p></td>
510 <td>an array of
511 <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a>s holding the arguments on which to invoke the
512 callback of <em class="parameter"><code>closure</code></em>. <span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=n_param_values]</span>
513 </td>
514 </tr>
515 <tr>
516 <td><p><span class="term"><em class="parameter"><code>invocation_hint</code></em> :</span></p></td>
517 <td>the invocation hint given as the
518 last argument to <a class="link" href="gobject-Closures.html#g-closure-invoke" title="g_closure_invoke ()"><code class="function">g_closure_invoke()</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
519 </td>
520 </tr>
521 <tr>
522 <td><p><span class="term"><em class="parameter"><code>marshal_data</code></em> :</span></p></td>
523 <td>additional data specified when
524 registering the marshaller, see <a class="link" href="gobject-Closures.html#g-closure-set-marshal" title="g_closure_set_marshal ()"><code class="function">g_closure_set_marshal()</code></a> and
525 <a class="link" href="gobject-Closures.html#g-closure-set-meta-marshal" title="g_closure_set_meta_marshal ()"><code class="function">g_closure_set_meta_marshal()</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
526 </td>
527 </tr>
528 </tbody>
529 </table></div>
530 </div>
531 <hr>
532 <div class="refsect2">
533 <a name="GClosureNotify"></a><h3>GClosureNotify ()</h3>
534 <pre class="programlisting"><span class="returnvalue">void</span>                (*GClosureNotify)                   (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
535                                                          <em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> *closure</code></em>);</pre>
536 <p>
537 The type used for the various notification callbacks which can be registered
538 on closures.
539 </p>
540 <div class="variablelist"><table border="0">
541 <col align="left" valign="top">
542 <tbody>
543 <tr>
544 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
545 <td>data specified when registering the notification callback</td>
546 </tr>
547 <tr>
548 <td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td>
549 <td>the <a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> on which the notification is emitted</td>
550 </tr>
551 </tbody>
552 </table></div>
553 </div>
554 <hr>
555 <div class="refsect2">
556 <a name="g-cclosure-new"></a><h3>g_cclosure_new ()</h3>
557 <pre class="programlisting"><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="returnvalue">GClosure</span></a> *          g_cclosure_new                      (<em class="parameter"><code><a class="link" href="gobject-Closures.html#GCallback" title="GCallback ()"><span class="type">GCallback</span></a> callback_func</code></em>,
558                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
559                                                          <em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosureNotify" title="GClosureNotify ()"><span class="type">GClosureNotify</span></a> destroy_data</code></em>);</pre>
560 <p>
561 Creates a new closure which invokes <em class="parameter"><code>callback_func</code></em> with <em class="parameter"><code>user_data</code></em> as
562 the last parameter.
563 </p>
564 <div class="variablelist"><table border="0">
565 <col align="left" valign="top">
566 <tbody>
567 <tr>
568 <td><p><span class="term"><em class="parameter"><code>callback_func</code></em> :</span></p></td>
569 <td>the function to invoke</td>
570 </tr>
571 <tr>
572 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
573 <td>user data to pass to <em class="parameter"><code>callback_func</code></em>
574 </td>
575 </tr>
576 <tr>
577 <td><p><span class="term"><em class="parameter"><code>destroy_data</code></em> :</span></p></td>
578 <td>destroy notify to be called when <em class="parameter"><code>user_data</code></em> is no longer used</td>
579 </tr>
580 <tr>
581 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
582 <td>a new <a class="link" href="gobject-Closures.html#GCClosure" title="struct GCClosure"><span class="type">GCClosure</span></a>
583 </td>
584 </tr>
585 </tbody>
586 </table></div>
587 </div>
588 <hr>
589 <div class="refsect2">
590 <a name="g-cclosure-new-swap"></a><h3>g_cclosure_new_swap ()</h3>
591 <pre class="programlisting"><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="returnvalue">GClosure</span></a> *          g_cclosure_new_swap                 (<em class="parameter"><code><a class="link" href="gobject-Closures.html#GCallback" title="GCallback ()"><span class="type">GCallback</span></a> callback_func</code></em>,
592                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
593                                                          <em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosureNotify" title="GClosureNotify ()"><span class="type">GClosureNotify</span></a> destroy_data</code></em>);</pre>
594 <p>
595 Creates a new closure which invokes <em class="parameter"><code>callback_func</code></em> with <em class="parameter"><code>user_data</code></em> as
596 the first parameter.
597 </p>
598 <div class="variablelist"><table border="0">
599 <col align="left" valign="top">
600 <tbody>
601 <tr>
602 <td><p><span class="term"><em class="parameter"><code>callback_func</code></em> :</span></p></td>
603 <td>the function to invoke</td>
604 </tr>
605 <tr>
606 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
607 <td>user data to pass to <em class="parameter"><code>callback_func</code></em>
608 </td>
609 </tr>
610 <tr>
611 <td><p><span class="term"><em class="parameter"><code>destroy_data</code></em> :</span></p></td>
612 <td>destroy notify to be called when <em class="parameter"><code>user_data</code></em> is no longer used</td>
613 </tr>
614 <tr>
615 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
616 <td>a new <a class="link" href="gobject-Closures.html#GCClosure" title="struct GCClosure"><span class="type">GCClosure</span></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
617 </td>
618 </tr>
619 </tbody>
620 </table></div>
621 </div>
622 <hr>
623 <div class="refsect2">
624 <a name="g-cclosure-new-object"></a><h3>g_cclosure_new_object ()</h3>
625 <pre class="programlisting"><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="returnvalue">GClosure</span></a> *          g_cclosure_new_object               (<em class="parameter"><code><a class="link" href="gobject-Closures.html#GCallback" title="GCallback ()"><span class="type">GCallback</span></a> callback_func</code></em>,
626                                                          <em class="parameter"><code><a class="link" href="gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>);</pre>
627 <p>
628 A variant of <a class="link" href="gobject-Closures.html#g-cclosure-new" title="g_cclosure_new ()"><code class="function">g_cclosure_new()</code></a> which uses <em class="parameter"><code>object</code></em> as <em class="parameter"><code>user_data</code></em> and
629 calls <a class="link" href="gobject-The-Base-Object-Type.html#g-object-watch-closure" title="g_object_watch_closure ()"><code class="function">g_object_watch_closure()</code></a> on <em class="parameter"><code>object</code></em> and the created
630 closure. This function is useful when you have a callback closely
631 associated with a <a class="link" href="gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a>, and want the callback to no longer run
632 after the object is is freed.
633 </p>
634 <div class="variablelist"><table border="0">
635 <col align="left" valign="top">
636 <tbody>
637 <tr>
638 <td><p><span class="term"><em class="parameter"><code>callback_func</code></em> :</span></p></td>
639 <td>the function to invoke</td>
640 </tr>
641 <tr>
642 <td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
643 <td>a <a class="link" href="gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> pointer to pass to <em class="parameter"><code>callback_func</code></em>
644 </td>
645 </tr>
646 <tr>
647 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
648 <td>a new <a class="link" href="gobject-Closures.html#GCClosure" title="struct GCClosure"><span class="type">GCClosure</span></a>
649 </td>
650 </tr>
651 </tbody>
652 </table></div>
653 </div>
654 <hr>
655 <div class="refsect2">
656 <a name="g-cclosure-new-object-swap"></a><h3>g_cclosure_new_object_swap ()</h3>
657 <pre class="programlisting"><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="returnvalue">GClosure</span></a> *          g_cclosure_new_object_swap          (<em class="parameter"><code><a class="link" href="gobject-Closures.html#GCallback" title="GCallback ()"><span class="type">GCallback</span></a> callback_func</code></em>,
658                                                          <em class="parameter"><code><a class="link" href="gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>);</pre>
659 <p>
660 A variant of <a class="link" href="gobject-Closures.html#g-cclosure-new-swap" title="g_cclosure_new_swap ()"><code class="function">g_cclosure_new_swap()</code></a> which uses <em class="parameter"><code>object</code></em> as <em class="parameter"><code>user_data</code></em>
661 and calls <a class="link" href="gobject-The-Base-Object-Type.html#g-object-watch-closure" title="g_object_watch_closure ()"><code class="function">g_object_watch_closure()</code></a> on <em class="parameter"><code>object</code></em> and the created
662 closure. This function is useful when you have a callback closely
663 associated with a <a class="link" href="gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a>, and want the callback to no longer run
664 after the object is is freed.
665 </p>
666 <div class="variablelist"><table border="0">
667 <col align="left" valign="top">
668 <tbody>
669 <tr>
670 <td><p><span class="term"><em class="parameter"><code>callback_func</code></em> :</span></p></td>
671 <td>the function to invoke</td>
672 </tr>
673 <tr>
674 <td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
675 <td>a <a class="link" href="gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> pointer to pass to <em class="parameter"><code>callback_func</code></em>
676 </td>
677 </tr>
678 <tr>
679 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
680 <td>a new <a class="link" href="gobject-Closures.html#GCClosure" title="struct GCClosure"><span class="type">GCClosure</span></a>
681 </td>
682 </tr>
683 </tbody>
684 </table></div>
685 </div>
686 <hr>
687 <div class="refsect2">
688 <a name="g-cclosure-marshal-generic"></a><h3>g_cclosure_marshal_generic ()</h3>
689 <pre class="programlisting"><span class="returnvalue">void</span>                g_cclosure_marshal_generic          (<em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> *closure</code></em>,
690                                                          <em class="parameter"><code><a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *return_gvalue</code></em>,
691                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_param_values</code></em>,
692                                                          <em class="parameter"><code>const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *param_values</code></em>,
693                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> invocation_hint</code></em>,
694                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> marshal_data</code></em>);</pre>
695 <p>
696 A generic marshaller function implemented via <a class="ulink" href="http://sourceware.org/libffi/" target="_top">libffi</a>.
697 </p>
698 <div class="variablelist"><table border="0">
699 <col align="left" valign="top">
700 <tbody>
701 <tr>
702 <td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td>
703 <td>A <a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a>.</td>
704 </tr>
705 <tr>
706 <td><p><span class="term"><em class="parameter"><code>return_gvalue</code></em> :</span></p></td>
707 <td>A <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> to store the return value. May be <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
708 if the callback of closure doesn't return a value.</td>
709 </tr>
710 <tr>
711 <td><p><span class="term"><em class="parameter"><code>n_param_values</code></em> :</span></p></td>
712 <td>The length of the <em class="parameter"><code>param_values</code></em> array.</td>
713 </tr>
714 <tr>
715 <td><p><span class="term"><em class="parameter"><code>param_values</code></em> :</span></p></td>
716 <td>An array of <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a>s holding the arguments
717 on which to invoke the callback of closure.</td>
718 </tr>
719 <tr>
720 <td><p><span class="term"><em class="parameter"><code>invocation_hint</code></em> :</span></p></td>
721 <td>The invocation hint given as the last argument to
722 <a class="link" href="gobject-Closures.html#g-closure-invoke" title="g_closure_invoke ()"><code class="function">g_closure_invoke()</code></a>.</td>
723 </tr>
724 <tr>
725 <td><p><span class="term"><em class="parameter"><code>marshal_data</code></em> :</span></p></td>
726 <td>Additional data specified when registering the
727 marshaller, see <a class="link" href="gobject-Closures.html#g-closure-set-marshal" title="g_closure_set_marshal ()"><code class="function">g_closure_set_marshal()</code></a> and
728 <a class="link" href="gobject-Closures.html#g-closure-set-meta-marshal" title="g_closure_set_meta_marshal ()"><code class="function">g_closure_set_meta_marshal()</code></a>
729 </td>
730 </tr>
731 </tbody>
732 </table></div>
733 <p class="since">Since 2.30</p>
734 </div>
735 <hr>
736 <div class="refsect2">
737 <a name="g-closure-new-object"></a><h3>g_closure_new_object ()</h3>
738 <pre class="programlisting"><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="returnvalue">GClosure</span></a> *          g_closure_new_object                (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> sizeof_closure</code></em>,
739                                                          <em class="parameter"><code><a class="link" href="gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>);</pre>
740 <p>
741 A variant of <a class="link" href="gobject-Closures.html#g-closure-new-simple" title="g_closure_new_simple ()"><code class="function">g_closure_new_simple()</code></a> which stores <em class="parameter"><code>object</code></em> in the
742 <em class="parameter"><code>data</code></em> field of the closure and calls <a class="link" href="gobject-The-Base-Object-Type.html#g-object-watch-closure" title="g_object_watch_closure ()"><code class="function">g_object_watch_closure()</code></a> on
743 <em class="parameter"><code>object</code></em> and the created closure. This function is mainly useful
744 when implementing new types of closures.
745 </p>
746 <div class="variablelist"><table border="0">
747 <col align="left" valign="top">
748 <tbody>
749 <tr>
750 <td><p><span class="term"><em class="parameter"><code>sizeof_closure</code></em> :</span></p></td>
751 <td>the size of the structure to allocate, must be at least
752 <code class="literal">sizeof (GClosure)</code>
753 </td>
754 </tr>
755 <tr>
756 <td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
757 <td>a <a class="link" href="gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> pointer to store in the <em class="parameter"><code>data</code></em> field of the newly
758 allocated <a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a>
759 </td>
760 </tr>
761 <tr>
762 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
763 <td>a newly allocated <a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
764 </td>
765 </tr>
766 </tbody>
767 </table></div>
768 </div>
769 <hr>
770 <div class="refsect2">
771 <a name="g-closure-ref"></a><h3>g_closure_ref ()</h3>
772 <pre class="programlisting"><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="returnvalue">GClosure</span></a> *          g_closure_ref                       (<em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> *closure</code></em>);</pre>
773 <p>
774 Increments the reference count on a closure to force it staying
775 alive while the caller holds a pointer to it.
776 </p>
777 <div class="variablelist"><table border="0">
778 <col align="left" valign="top">
779 <tbody>
780 <tr>
781 <td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td>
782 <td>
783 <a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> to increment the reference count on</td>
784 </tr>
785 <tr>
786 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
787 <td>The <em class="parameter"><code>closure</code></em> passed in, for convenience. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
788 </td>
789 </tr>
790 </tbody>
791 </table></div>
792 </div>
793 <hr>
794 <div class="refsect2">
795 <a name="g-closure-sink"></a><h3>g_closure_sink ()</h3>
796 <pre class="programlisting"><span class="returnvalue">void</span>                g_closure_sink                      (<em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> *closure</code></em>);</pre>
797 <p>
798 Takes over the initial ownership of a closure.  Each closure is
799 initially created in a <em class="firstterm">floating</em> state, which
800 means that the initial reference count is not owned by any caller.
801 <a class="link" href="gobject-Closures.html#g-closure-sink" title="g_closure_sink ()"><code class="function">g_closure_sink()</code></a> checks to see if the object is still floating, and
802 if so, unsets the floating state and decreases the reference
803 count. If the closure is not floating, <a class="link" href="gobject-Closures.html#g-closure-sink" title="g_closure_sink ()"><code class="function">g_closure_sink()</code></a> does
804 nothing. The reason for the existence of the floating state is to
805 prevent cumbersome code sequences like:
806 </p>
807 <div class="informalexample">
808   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
809     <tbody>
810       <tr>
811         <td class="listing_lines" align="right"><pre>1
812 2
813 3</pre></td>
814         <td class="listing_code"><pre class="programlisting"><span class="normal">closure </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="gobject-Closures.html#g-cclosure-new">g_cclosure_new</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">cb_func</span><span class="symbol">,</span><span class="normal"> cb_data</span><span class="symbol">);</span>
815 <span class="function"><a href="gobject-Closures.html#g-source-set-closure">g_source_set_closure</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">source</span><span class="symbol">,</span><span class="normal"> closure</span><span class="symbol">);</span>
816 <span class="function"><a href="gobject-Closures.html#g-closure-unref">g_closure_unref</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">closure</span><span class="symbol">);</span><span class="normal"> </span><span class="comment">// XXX GObject doesn't really need this</span></pre></td>
817       </tr>
818     </tbody>
819   </table>
820 </div>
821
822 <p>
823 Because <a class="link" href="gobject-Closures.html#g-source-set-closure" title="g_source_set_closure ()"><code class="function">g_source_set_closure()</code></a> (and similar functions) take ownership of the
824 initial reference count, if it is unowned, we instead can write:
825 </p>
826 <div class="informalexample">
827   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
828     <tbody>
829       <tr>
830         <td class="listing_lines" align="right"><pre>1</pre></td>
831         <td class="listing_code"><pre class="programlisting"><span class="function"><a href="gobject-Closures.html#g-source-set-closure">g_source_set_closure</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">source</span><span class="symbol">,</span><span class="normal"> </span><span class="function"><a href="gobject-Closures.html#g-cclosure-new">g_cclosure_new</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">cb_func</span><span class="symbol">,</span><span class="normal"> cb_data</span><span class="symbol">));</span></pre></td>
832       </tr>
833     </tbody>
834   </table>
835 </div>
836
837 <p>
838 </p>
839 <p>
840 Generally, this function is used together with <a class="link" href="gobject-Closures.html#g-closure-ref" title="g_closure_ref ()"><code class="function">g_closure_ref()</code></a>. Ane example
841 of storing a closure for later notification looks like:
842 </p>
843 <div class="informalexample">
844   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
845     <tbody>
846       <tr>
847         <td class="listing_lines" align="right"><pre>1
848 2
849 3
850 4
851 5
852 6
853 7
854 8
855 9
856 10
857 11
858 12
859 13</pre></td>
860         <td class="listing_code"><pre class="programlisting"><span class="keyword">static</span><span class="normal"> </span><span class="usertype">GClosure</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">notify_closure </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>
861 <span class="type">void</span>
862 <span class="function">foo_notify_set_closure</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">GClosure</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">closure</span><span class="symbol">)</span>
863 <span class="cbracket">{</span>
864 <span class="normal">  </span><span class="keyword">if</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">notify_closure</span><span class="symbol">)</span>
865 <span class="normal">    </span><span class="function"><a href="gobject-Closures.html#g-closure-unref">g_closure_unref</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">notify_closure</span><span class="symbol">);</span>
866 <span class="normal">  notify_closure </span><span class="symbol">=</span><span class="normal"> closure</span><span class="symbol">;</span>
867 <span class="normal">  </span><span class="keyword">if</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">notify_closure</span><span class="symbol">)</span>
868 <span class="normal">    </span><span class="cbracket">{</span>
869 <span class="normal">      </span><span class="function"><a href="gobject-Closures.html#g-closure-ref">g_closure_ref</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">notify_closure</span><span class="symbol">);</span>
870 <span class="normal">      </span><span class="function"><a href="gobject-Closures.html#g-closure-sink">g_closure_sink</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">notify_closure</span><span class="symbol">);</span>
871 <span class="normal">    </span><span class="cbracket">}</span>
872 <span class="cbracket">}</span></pre></td>
873       </tr>
874     </tbody>
875   </table>
876 </div>
877
878 <p>
879 </p>
880 <p>
881 Because <a class="link" href="gobject-Closures.html#g-closure-sink" title="g_closure_sink ()"><code class="function">g_closure_sink()</code></a> may decrement the reference count of a closure
882 (if it hasn't been called on <em class="parameter"><code>closure</code></em> yet) just like <a class="link" href="gobject-Closures.html#g-closure-unref" title="g_closure_unref ()"><code class="function">g_closure_unref()</code></a>,
883 <a class="link" href="gobject-Closures.html#g-closure-ref" title="g_closure_ref ()"><code class="function">g_closure_ref()</code></a> should be called prior to this function.
884 </p>
885 <div class="variablelist"><table border="0">
886 <col align="left" valign="top">
887 <tbody><tr>
888 <td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td>
889 <td>
890 <a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> to decrement the initial reference count on, if it's
891 still being held</td>
892 </tr></tbody>
893 </table></div>
894 </div>
895 <hr>
896 <div class="refsect2">
897 <a name="g-closure-unref"></a><h3>g_closure_unref ()</h3>
898 <pre class="programlisting"><span class="returnvalue">void</span>                g_closure_unref                     (<em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> *closure</code></em>);</pre>
899 <p>
900 Decrements the reference count of a closure after it was previously
901 incremented by the same caller. If no other callers are using the
902 closure, then the closure will be destroyed and freed.
903 </p>
904 <div class="variablelist"><table border="0">
905 <col align="left" valign="top">
906 <tbody><tr>
907 <td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td>
908 <td>
909 <a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> to decrement the reference count on</td>
910 </tr></tbody>
911 </table></div>
912 </div>
913 <hr>
914 <div class="refsect2">
915 <a name="g-closure-invoke"></a><h3>g_closure_invoke ()</h3>
916 <pre class="programlisting"><span class="returnvalue">void</span>                g_closure_invoke                    (<em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> *closure</code></em>,
917                                                          <em class="parameter"><code><a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *return_value</code></em>,
918                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_param_values</code></em>,
919                                                          <em class="parameter"><code>const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *param_values</code></em>,
920                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> invocation_hint</code></em>);</pre>
921 <p>
922 Invokes the closure, i.e. executes the callback represented by the <em class="parameter"><code>closure</code></em>.
923 </p>
924 <div class="variablelist"><table border="0">
925 <col align="left" valign="top">
926 <tbody>
927 <tr>
928 <td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td>
929 <td>a <a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a>
930 </td>
931 </tr>
932 <tr>
933 <td><p><span class="term"><em class="parameter"><code>return_value</code></em> :</span></p></td>
934 <td>a <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> to store the return
935 value. May be <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the callback of <em class="parameter"><code>closure</code></em>
936 doesn't return a value. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
937 </td>
938 </tr>
939 <tr>
940 <td><p><span class="term"><em class="parameter"><code>n_param_values</code></em> :</span></p></td>
941 <td>the length of the <em class="parameter"><code>param_values</code></em> array</td>
942 </tr>
943 <tr>
944 <td><p><span class="term"><em class="parameter"><code>param_values</code></em> :</span></p></td>
945 <td>an array of
946 <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a>s holding the arguments on which to
947 invoke the callback of <em class="parameter"><code>closure</code></em>. <span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=n_param_values]</span>
948 </td>
949 </tr>
950 <tr>
951 <td><p><span class="term"><em class="parameter"><code>invocation_hint</code></em> :</span></p></td>
952 <td>a context-dependent invocation hint. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
953 </td>
954 </tr>
955 </tbody>
956 </table></div>
957 </div>
958 <hr>
959 <div class="refsect2">
960 <a name="g-closure-invalidate"></a><h3>g_closure_invalidate ()</h3>
961 <pre class="programlisting"><span class="returnvalue">void</span>                g_closure_invalidate                (<em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> *closure</code></em>);</pre>
962 <p>
963 Sets a flag on the closure to indicate that its calling
964 environment has become invalid, and thus causes any future
965 invocations of <a class="link" href="gobject-Closures.html#g-closure-invoke" title="g_closure_invoke ()"><code class="function">g_closure_invoke()</code></a> on this <em class="parameter"><code>closure</code></em> to be
966 ignored. Also, invalidation notifiers installed on the closure will
967 be called at this point. Note that unless you are holding a
968 reference to the closure yourself, the invalidation notifiers may
969 unref the closure and cause it to be destroyed, so if you need to
970 access the closure after calling <a class="link" href="gobject-Closures.html#g-closure-invalidate" title="g_closure_invalidate ()"><code class="function">g_closure_invalidate()</code></a>, make sure
971 that you've previously called <a class="link" href="gobject-Closures.html#g-closure-ref" title="g_closure_ref ()"><code class="function">g_closure_ref()</code></a>.
972 </p>
973 <p>
974 Note that <a class="link" href="gobject-Closures.html#g-closure-invalidate" title="g_closure_invalidate ()"><code class="function">g_closure_invalidate()</code></a> will also be called when the
975 reference count of a closure drops to zero (unless it has already
976 been invalidated before).
977 </p>
978 <div class="variablelist"><table border="0">
979 <col align="left" valign="top">
980 <tbody><tr>
981 <td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td>
982 <td>GClosure to invalidate</td>
983 </tr></tbody>
984 </table></div>
985 </div>
986 <hr>
987 <div class="refsect2">
988 <a name="g-closure-add-finalize-notifier"></a><h3>g_closure_add_finalize_notifier ()</h3>
989 <pre class="programlisting"><span class="returnvalue">void</span>                g_closure_add_finalize_notifier     (<em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> *closure</code></em>,
990                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> notify_data</code></em>,
991                                                          <em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosureNotify" title="GClosureNotify ()"><span class="type">GClosureNotify</span></a> notify_func</code></em>);</pre>
992 <p>
993 Registers a finalization notifier which will be called when the
994 reference count of <em class="parameter"><code>closure</code></em> goes down to 0. Multiple finalization
995 notifiers on a single closure are invoked in unspecified order. If
996 a single call to <a class="link" href="gobject-Closures.html#g-closure-unref" title="g_closure_unref ()"><code class="function">g_closure_unref()</code></a> results in the closure being
997 both invalidated and finalized, then the invalidate notifiers will
998 be run before the finalize notifiers.
999 </p>
1000 <div class="variablelist"><table border="0">
1001 <col align="left" valign="top">
1002 <tbody>
1003 <tr>
1004 <td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td>
1005 <td>a <a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a>
1006 </td>
1007 </tr>
1008 <tr>
1009 <td><p><span class="term"><em class="parameter"><code>notify_data</code></em> :</span></p></td>
1010 <td>data to pass to <em class="parameter"><code>notify_func</code></em>
1011 </td>
1012 </tr>
1013 <tr>
1014 <td><p><span class="term"><em class="parameter"><code>notify_func</code></em> :</span></p></td>
1015 <td>the callback function to register</td>
1016 </tr>
1017 </tbody>
1018 </table></div>
1019 </div>
1020 <hr>
1021 <div class="refsect2">
1022 <a name="g-closure-add-invalidate-notifier"></a><h3>g_closure_add_invalidate_notifier ()</h3>
1023 <pre class="programlisting"><span class="returnvalue">void</span>                g_closure_add_invalidate_notifier   (<em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> *closure</code></em>,
1024                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> notify_data</code></em>,
1025                                                          <em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosureNotify" title="GClosureNotify ()"><span class="type">GClosureNotify</span></a> notify_func</code></em>);</pre>
1026 <p>
1027 Registers an invalidation notifier which will be called when the
1028 <em class="parameter"><code>closure</code></em> is invalidated with <a class="link" href="gobject-Closures.html#g-closure-invalidate" title="g_closure_invalidate ()"><code class="function">g_closure_invalidate()</code></a>. Invalidation
1029 notifiers are invoked before finalization notifiers, in an
1030 unspecified order.
1031 </p>
1032 <div class="variablelist"><table border="0">
1033 <col align="left" valign="top">
1034 <tbody>
1035 <tr>
1036 <td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td>
1037 <td>a <a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a>
1038 </td>
1039 </tr>
1040 <tr>
1041 <td><p><span class="term"><em class="parameter"><code>notify_data</code></em> :</span></p></td>
1042 <td>data to pass to <em class="parameter"><code>notify_func</code></em>
1043 </td>
1044 </tr>
1045 <tr>
1046 <td><p><span class="term"><em class="parameter"><code>notify_func</code></em> :</span></p></td>
1047 <td>the callback function to register</td>
1048 </tr>
1049 </tbody>
1050 </table></div>
1051 </div>
1052 <hr>
1053 <div class="refsect2">
1054 <a name="g-closure-remove-finalize-notifier"></a><h3>g_closure_remove_finalize_notifier ()</h3>
1055 <pre class="programlisting"><span class="returnvalue">void</span>                g_closure_remove_finalize_notifier  (<em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> *closure</code></em>,
1056                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> notify_data</code></em>,
1057                                                          <em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosureNotify" title="GClosureNotify ()"><span class="type">GClosureNotify</span></a> notify_func</code></em>);</pre>
1058 <p>
1059 Removes a finalization notifier.
1060 </p>
1061 <p>
1062 Notice that notifiers are automatically removed after they are run.
1063 </p>
1064 <div class="variablelist"><table border="0">
1065 <col align="left" valign="top">
1066 <tbody>
1067 <tr>
1068 <td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td>
1069 <td>a <a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a>
1070 </td>
1071 </tr>
1072 <tr>
1073 <td><p><span class="term"><em class="parameter"><code>notify_data</code></em> :</span></p></td>
1074 <td>data which was passed to <a class="link" href="gobject-Closures.html#g-closure-add-finalize-notifier" title="g_closure_add_finalize_notifier ()"><code class="function">g_closure_add_finalize_notifier()</code></a>
1075 when registering <em class="parameter"><code>notify_func</code></em>
1076 </td>
1077 </tr>
1078 <tr>
1079 <td><p><span class="term"><em class="parameter"><code>notify_func</code></em> :</span></p></td>
1080 <td>the callback function to remove</td>
1081 </tr>
1082 </tbody>
1083 </table></div>
1084 </div>
1085 <hr>
1086 <div class="refsect2">
1087 <a name="g-closure-remove-invalidate-notifier"></a><h3>g_closure_remove_invalidate_notifier ()</h3>
1088 <pre class="programlisting"><span class="returnvalue">void</span>                g_closure_remove_invalidate_notifier
1089                                                         (<em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> *closure</code></em>,
1090                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> notify_data</code></em>,
1091                                                          <em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosureNotify" title="GClosureNotify ()"><span class="type">GClosureNotify</span></a> notify_func</code></em>);</pre>
1092 <p>
1093 Removes an invalidation notifier.
1094 </p>
1095 <p>
1096 Notice that notifiers are automatically removed after they are run.
1097 </p>
1098 <div class="variablelist"><table border="0">
1099 <col align="left" valign="top">
1100 <tbody>
1101 <tr>
1102 <td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td>
1103 <td>a <a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a>
1104 </td>
1105 </tr>
1106 <tr>
1107 <td><p><span class="term"><em class="parameter"><code>notify_data</code></em> :</span></p></td>
1108 <td>data which was passed to <a class="link" href="gobject-Closures.html#g-closure-add-invalidate-notifier" title="g_closure_add_invalidate_notifier ()"><code class="function">g_closure_add_invalidate_notifier()</code></a>
1109 when registering <em class="parameter"><code>notify_func</code></em>
1110 </td>
1111 </tr>
1112 <tr>
1113 <td><p><span class="term"><em class="parameter"><code>notify_func</code></em> :</span></p></td>
1114 <td>the callback function to remove</td>
1115 </tr>
1116 </tbody>
1117 </table></div>
1118 </div>
1119 <hr>
1120 <div class="refsect2">
1121 <a name="g-closure-new-simple"></a><h3>g_closure_new_simple ()</h3>
1122 <pre class="programlisting"><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="returnvalue">GClosure</span></a> *          g_closure_new_simple                (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> sizeof_closure</code></em>,
1123                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>);</pre>
1124 <p>
1125 Allocates a struct of the given size and initializes the initial
1126 part as a <a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a>. This function is mainly useful when
1127 implementing new types of closures.
1128 </p>
1129 <p>
1130 </p>
1131 <div class="informalexample">
1132   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
1133     <tbody>
1134       <tr>
1135         <td class="listing_lines" align="right"><pre>1
1136 2
1137 3
1138 4
1139 5
1140 6
1141 7
1142 8
1143 9
1144 10
1145 11
1146 12
1147 13
1148 14
1149 15
1150 16
1151 17
1152 18
1153 19
1154 20
1155 21
1156 22
1157 23
1158 24
1159 25
1160 26
1161 27
1162 28
1163 29
1164 30</pre></td>
1165         <td class="listing_code"><pre class="programlisting"><span class="keyword">typedef</span><span class="normal"> </span><span class="keyword">struct</span><span class="normal"> </span><span class="classname">_MyClosure</span><span class="normal"> MyClosure</span><span class="symbol">;</span>
1166 <span class="keyword">struct</span><span class="normal"> </span><span class="classname">_MyClosure</span>
1167 <span class="cbracket">{</span>
1168 <span class="normal">  </span><span class="usertype">GClosure</span><span class="normal"> closure</span><span class="symbol">;</span>
1169 <span class="normal">  </span><span class="comment">// extra data goes here</span>
1170 <span class="cbracket">}</span><span class="symbol">;</span>
1171
1172 <span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
1173 <span class="function">my_closure_finalize</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">gpointer</span><span class="normal">  notify_data</span><span class="symbol">,</span>
1174 <span class="normal">                     </span><span class="usertype">GClosure</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">closure</span><span class="symbol">)</span>
1175 <span class="cbracket">{</span>
1176 <span class="normal">  </span><span class="usertype">MyClosure</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">my_closure </span><span class="symbol">=</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">MyClosure </span><span class="symbol">*)</span><span class="normal">closure</span><span class="symbol">;</span>
1177
1178 <span class="normal">  </span><span class="comment">// free extra data here</span>
1179 <span class="cbracket">}</span>
1180
1181 <span class="usertype">MyClosure</span><span class="normal"> </span><span class="symbol">*</span><span class="function">my_closure_new</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">gpointer</span><span class="normal"> data</span><span class="symbol">)</span>
1182 <span class="cbracket">{</span>
1183 <span class="normal">  </span><span class="usertype">GClosure</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">closure</span><span class="symbol">;</span>
1184 <span class="normal">  </span><span class="usertype">MyClosure</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">my_closure</span><span class="symbol">;</span>
1185
1186 <span class="normal">  closure </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="gobject-Closures.html#g-closure-new-simple">g_closure_new_simple</a></span><span class="normal"> </span><span class="symbol">(</span><span class="keyword">sizeof</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">MyClosure</span><span class="symbol">),</span><span class="normal"> data</span><span class="symbol">);</span>
1187 <span class="normal">  my_closure </span><span class="symbol">=</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">MyClosure </span><span class="symbol">*)</span><span class="normal"> closure</span><span class="symbol">;</span>
1188
1189 <span class="normal">  </span><span class="comment">// initialize extra data here</span>
1190
1191 <span class="normal">  </span><span class="function"><a href="gobject-Closures.html#g-closure-add-finalize-notifier">g_closure_add_finalize_notifier</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">closure</span><span class="symbol">,</span><span class="normal"> notify_data</span><span class="symbol">,</span>
1192 <span class="normal">                                   my_closure_finalize</span><span class="symbol">);</span>
1193 <span class="normal">  </span><span class="keyword">return</span><span class="normal"> my_closure</span><span class="symbol">;</span>
1194 <span class="cbracket">}</span></pre></td>
1195       </tr>
1196     </tbody>
1197   </table>
1198 </div>
1199
1200 <p>
1201 </p>
1202 <div class="variablelist"><table border="0">
1203 <col align="left" valign="top">
1204 <tbody>
1205 <tr>
1206 <td><p><span class="term"><em class="parameter"><code>sizeof_closure</code></em> :</span></p></td>
1207 <td>the size of the structure to allocate, must be at least
1208 <code class="literal">sizeof (GClosure)</code>
1209 </td>
1210 </tr>
1211 <tr>
1212 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
1213 <td>data to store in the <em class="parameter"><code>data</code></em> field of the newly allocated <a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a>
1214 </td>
1215 </tr>
1216 <tr>
1217 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1218 <td>a newly allocated <a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
1219 </td>
1220 </tr>
1221 </tbody>
1222 </table></div>
1223 </div>
1224 <hr>
1225 <div class="refsect2">
1226 <a name="g-closure-set-marshal"></a><h3>g_closure_set_marshal ()</h3>
1227 <pre class="programlisting"><span class="returnvalue">void</span>                g_closure_set_marshal               (<em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> *closure</code></em>,
1228                                                          <em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosureMarshal" title="GClosureMarshal ()"><span class="type">GClosureMarshal</span></a> marshal</code></em>);</pre>
1229 <p>
1230 Sets the marshaller of <em class="parameter"><code>closure</code></em>. The <code class="literal">marshal_data</code>
1231 of <em class="parameter"><code>marshal</code></em> provides a way for a meta marshaller to provide additional
1232 information to the marshaller. (See <a class="link" href="gobject-Closures.html#g-closure-set-meta-marshal" title="g_closure_set_meta_marshal ()"><code class="function">g_closure_set_meta_marshal()</code></a>.) For
1233 GObject's C predefined marshallers (the g_cclosure_marshal_*()
1234 functions), what it provides is a callback function to use instead of
1235 <em class="parameter"><code>closure-&gt;callback</code></em>.
1236 </p>
1237 <div class="variablelist"><table border="0">
1238 <col align="left" valign="top">
1239 <tbody>
1240 <tr>
1241 <td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td>
1242 <td>a <a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a>
1243 </td>
1244 </tr>
1245 <tr>
1246 <td><p><span class="term"><em class="parameter"><code>marshal</code></em> :</span></p></td>
1247 <td>a <a class="link" href="gobject-Closures.html#GClosureMarshal" title="GClosureMarshal ()"><span class="type">GClosureMarshal</span></a> function</td>
1248 </tr>
1249 </tbody>
1250 </table></div>
1251 </div>
1252 <hr>
1253 <div class="refsect2">
1254 <a name="g-closure-add-marshal-guards"></a><h3>g_closure_add_marshal_guards ()</h3>
1255 <pre class="programlisting"><span class="returnvalue">void</span>                g_closure_add_marshal_guards        (<em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> *closure</code></em>,
1256                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> pre_marshal_data</code></em>,
1257                                                          <em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosureNotify" title="GClosureNotify ()"><span class="type">GClosureNotify</span></a> pre_marshal_notify</code></em>,
1258                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> post_marshal_data</code></em>,
1259                                                          <em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosureNotify" title="GClosureNotify ()"><span class="type">GClosureNotify</span></a> post_marshal_notify</code></em>);</pre>
1260 <p>
1261 Adds a pair of notifiers which get invoked before and after the
1262 closure callback, respectively. This is typically used to protect
1263 the extra arguments for the duration of the callback. See
1264 <a class="link" href="gobject-The-Base-Object-Type.html#g-object-watch-closure" title="g_object_watch_closure ()"><code class="function">g_object_watch_closure()</code></a> for an example of marshal guards.
1265 </p>
1266 <div class="variablelist"><table border="0">
1267 <col align="left" valign="top">
1268 <tbody>
1269 <tr>
1270 <td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td>
1271 <td>a <a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a>
1272 </td>
1273 </tr>
1274 <tr>
1275 <td><p><span class="term"><em class="parameter"><code>pre_marshal_data</code></em> :</span></p></td>
1276 <td>data to pass to <em class="parameter"><code>pre_marshal_notify</code></em>
1277 </td>
1278 </tr>
1279 <tr>
1280 <td><p><span class="term"><em class="parameter"><code>pre_marshal_notify</code></em> :</span></p></td>
1281 <td>a function to call before the closure callback</td>
1282 </tr>
1283 <tr>
1284 <td><p><span class="term"><em class="parameter"><code>post_marshal_data</code></em> :</span></p></td>
1285 <td>data to pass to <em class="parameter"><code>post_marshal_notify</code></em>
1286 </td>
1287 </tr>
1288 <tr>
1289 <td><p><span class="term"><em class="parameter"><code>post_marshal_notify</code></em> :</span></p></td>
1290 <td>a function to call after the closure callback</td>
1291 </tr>
1292 </tbody>
1293 </table></div>
1294 </div>
1295 <hr>
1296 <div class="refsect2">
1297 <a name="g-closure-set-meta-marshal"></a><h3>g_closure_set_meta_marshal ()</h3>
1298 <pre class="programlisting"><span class="returnvalue">void</span>                g_closure_set_meta_marshal          (<em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> *closure</code></em>,
1299                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> marshal_data</code></em>,
1300                                                          <em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosureMarshal" title="GClosureMarshal ()"><span class="type">GClosureMarshal</span></a> meta_marshal</code></em>);</pre>
1301 <p>
1302 Sets the meta marshaller of <em class="parameter"><code>closure</code></em>.  A meta marshaller wraps
1303 <em class="parameter"><code>closure-&gt;marshal</code></em> and modifies the way it is called in some
1304 fashion. The most common use of this facility is for C callbacks.
1305 The same marshallers (generated by <a href="glib-genmarshal.html">glib-genmarshal</a>) are used
1306 everywhere, but the way that we get the callback function
1307 differs. In most cases we want to use <em class="parameter"><code>closure-&gt;callback</code></em>, but in
1308 other cases we want to use some different technique to retrieve the
1309 callback function.
1310 </p>
1311 <p>
1312 For example, class closures for signals (see
1313 <a class="link" href="gobject-Signals.html#g-signal-type-cclosure-new" title="g_signal_type_cclosure_new ()"><code class="function">g_signal_type_cclosure_new()</code></a>) retrieve the callback function from a
1314 fixed offset in the class structure.  The meta marshaller retrieves
1315 the right callback and passes it to the marshaller as the
1316 <em class="parameter"><code>marshal_data</code></em> argument.
1317 </p>
1318 <div class="variablelist"><table border="0">
1319 <col align="left" valign="top">
1320 <tbody>
1321 <tr>
1322 <td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td>
1323 <td>a <a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a>
1324 </td>
1325 </tr>
1326 <tr>
1327 <td><p><span class="term"><em class="parameter"><code>marshal_data</code></em> :</span></p></td>
1328 <td>context-dependent data to pass to <em class="parameter"><code>meta_marshal</code></em>
1329 </td>
1330 </tr>
1331 <tr>
1332 <td><p><span class="term"><em class="parameter"><code>meta_marshal</code></em> :</span></p></td>
1333 <td>a <a class="link" href="gobject-Closures.html#GClosureMarshal" title="GClosureMarshal ()"><span class="type">GClosureMarshal</span></a> function</td>
1334 </tr>
1335 </tbody>
1336 </table></div>
1337 </div>
1338 <hr>
1339 <div class="refsect2">
1340 <a name="g-source-set-closure"></a><h3>g_source_set_closure ()</h3>
1341 <pre class="programlisting"><span class="returnvalue">void</span>                g_source_set_closure                (<em class="parameter"><code><a href="./../glib/glib/glib-The-Main-Event-Loop.html#GSource"><span class="type">GSource</span></a> *source</code></em>,
1342                                                          <em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> *closure</code></em>);</pre>
1343 <p>
1344 Set the callback for a source as a <a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a>.
1345 </p>
1346 <p>
1347 If the source is not one of the standard GLib types, the <em class="parameter"><code>closure_callback</code></em>
1348 and <em class="parameter"><code>closure_marshal</code></em> fields of the <a href="./../glib/glib/glib-The-Main-Event-Loop.html#GSourceFuncs"><span class="type">GSourceFuncs</span></a> structure must have been
1349 filled in with pointers to appropriate functions.
1350 </p>
1351 <div class="variablelist"><table border="0">
1352 <col align="left" valign="top">
1353 <tbody>
1354 <tr>
1355 <td><p><span class="term"><em class="parameter"><code>source</code></em> :</span></p></td>
1356 <td>the source</td>
1357 </tr>
1358 <tr>
1359 <td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td>
1360 <td>a <a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a>
1361 </td>
1362 </tr>
1363 </tbody>
1364 </table></div>
1365 </div>
1366 <hr>
1367 <div class="refsect2">
1368 <a name="g-source-set-dummy-callback"></a><h3>g_source_set_dummy_callback ()</h3>
1369 <pre class="programlisting"><span class="returnvalue">void</span>                g_source_set_dummy_callback         (<em class="parameter"><code><a href="./../glib/glib/glib-The-Main-Event-Loop.html#GSource"><span class="type">GSource</span></a> *source</code></em>);</pre>
1370 <p>
1371 Sets a dummy callback for <em class="parameter"><code>source</code></em>. The callback will do nothing, and
1372 if the source expects a <a href="./../glib/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> return value, it will return <a href="./../glib/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>.
1373 (If the source expects any other type of return value, it will return
1374 a 0/<a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> value; whatever <a class="link" href="gobject-Generic-values.html#g-value-init" title="g_value_init ()"><code class="function">g_value_init()</code></a> initializes a <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> to for
1375 that type.)
1376 </p>
1377 <p>
1378 If the source is not one of the standard GLib types, the
1379 <em class="parameter"><code>closure_callback</code></em> and <em class="parameter"><code>closure_marshal</code></em> fields of the <a href="./../glib/glib/glib-The-Main-Event-Loop.html#GSourceFuncs"><span class="type">GSourceFuncs</span></a>
1380 structure must have been filled in with pointers to appropriate
1381 functions.
1382 </p>
1383 <div class="variablelist"><table border="0">
1384 <col align="left" valign="top">
1385 <tbody><tr>
1386 <td><p><span class="term"><em class="parameter"><code>source</code></em> :</span></p></td>
1387 <td>the source</td>
1388 </tr></tbody>
1389 </table></div>
1390 </div>
1391 <hr>
1392 <div class="refsect2">
1393 <a name="g-cclosure-marshal-VOID--VOID"></a><h3>g_cclosure_marshal_VOID__VOID ()</h3>
1394 <pre class="programlisting"><span class="returnvalue">void</span>                g_cclosure_marshal_VOID__VOID       (<em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> *closure</code></em>,
1395                                                          <em class="parameter"><code><a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *return_value</code></em>,
1396                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_param_values</code></em>,
1397                                                          <em class="parameter"><code>const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *param_values</code></em>,
1398                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> invocation_hint</code></em>,
1399                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> marshal_data</code></em>);</pre>
1400 <p>
1401 A marshaller for a <a class="link" href="gobject-Closures.html#GCClosure" title="struct GCClosure"><span class="type">GCClosure</span></a> with a callback of type
1402 <code class="literal">void (*callback) (gpointer instance, gpointer user_data)</code>.
1403 </p>
1404 <div class="variablelist"><table border="0">
1405 <col align="left" valign="top">
1406 <tbody>
1407 <tr>
1408 <td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td>
1409 <td>the <a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> to which the marshaller belongs</td>
1410 </tr>
1411 <tr>
1412 <td><p><span class="term"><em class="parameter"><code>return_value</code></em> :</span></p></td>
1413 <td>ignored</td>
1414 </tr>
1415 <tr>
1416 <td><p><span class="term"><em class="parameter"><code>n_param_values</code></em> :</span></p></td>
1417 <td>1</td>
1418 </tr>
1419 <tr>
1420 <td><p><span class="term"><em class="parameter"><code>param_values</code></em> :</span></p></td>
1421 <td>a <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> array holding only the instance</td>
1422 </tr>
1423 <tr>
1424 <td><p><span class="term"><em class="parameter"><code>invocation_hint</code></em> :</span></p></td>
1425 <td>the invocation hint given as the last argument
1426 to <a class="link" href="gobject-Closures.html#g-closure-invoke" title="g_closure_invoke ()"><code class="function">g_closure_invoke()</code></a>
1427 </td>
1428 </tr>
1429 <tr>
1430 <td><p><span class="term"><em class="parameter"><code>marshal_data</code></em> :</span></p></td>
1431 <td>additional data specified when registering the marshaller</td>
1432 </tr>
1433 </tbody>
1434 </table></div>
1435 </div>
1436 <hr>
1437 <div class="refsect2">
1438 <a name="g-cclosure-marshal-VOID--BOOLEAN"></a><h3>g_cclosure_marshal_VOID__BOOLEAN ()</h3>
1439 <pre class="programlisting"><span class="returnvalue">void</span>                g_cclosure_marshal_VOID__BOOLEAN    (<em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> *closure</code></em>,
1440                                                          <em class="parameter"><code><a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *return_value</code></em>,
1441                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_param_values</code></em>,
1442                                                          <em class="parameter"><code>const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *param_values</code></em>,
1443                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> invocation_hint</code></em>,
1444                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> marshal_data</code></em>);</pre>
1445 <p>
1446 A marshaller for a <a class="link" href="gobject-Closures.html#GCClosure" title="struct GCClosure"><span class="type">GCClosure</span></a> with a callback of type
1447 <code class="literal">void (*callback) (gpointer instance, gboolean arg1, gpointer user_data)</code>.
1448 </p>
1449 <div class="variablelist"><table border="0">
1450 <col align="left" valign="top">
1451 <tbody>
1452 <tr>
1453 <td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td>
1454 <td>the <a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> to which the marshaller belongs</td>
1455 </tr>
1456 <tr>
1457 <td><p><span class="term"><em class="parameter"><code>return_value</code></em> :</span></p></td>
1458 <td>ignored</td>
1459 </tr>
1460 <tr>
1461 <td><p><span class="term"><em class="parameter"><code>n_param_values</code></em> :</span></p></td>
1462 <td>2</td>
1463 </tr>
1464 <tr>
1465 <td><p><span class="term"><em class="parameter"><code>param_values</code></em> :</span></p></td>
1466 <td>a <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> array holding the instance and the <a href="./../glib/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> parameter</td>
1467 </tr>
1468 <tr>
1469 <td><p><span class="term"><em class="parameter"><code>invocation_hint</code></em> :</span></p></td>
1470 <td>the invocation hint given as the last argument
1471 to <a class="link" href="gobject-Closures.html#g-closure-invoke" title="g_closure_invoke ()"><code class="function">g_closure_invoke()</code></a>
1472 </td>
1473 </tr>
1474 <tr>
1475 <td><p><span class="term"><em class="parameter"><code>marshal_data</code></em> :</span></p></td>
1476 <td>additional data specified when registering the marshaller</td>
1477 </tr>
1478 </tbody>
1479 </table></div>
1480 </div>
1481 <hr>
1482 <div class="refsect2">
1483 <a name="g-cclosure-marshal-VOID--CHAR"></a><h3>g_cclosure_marshal_VOID__CHAR ()</h3>
1484 <pre class="programlisting"><span class="returnvalue">void</span>                g_cclosure_marshal_VOID__CHAR       (<em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> *closure</code></em>,
1485                                                          <em class="parameter"><code><a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *return_value</code></em>,
1486                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_param_values</code></em>,
1487                                                          <em class="parameter"><code>const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *param_values</code></em>,
1488                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> invocation_hint</code></em>,
1489                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> marshal_data</code></em>);</pre>
1490 <p>
1491 A marshaller for a <a class="link" href="gobject-Closures.html#GCClosure" title="struct GCClosure"><span class="type">GCClosure</span></a> with a callback of type
1492 <code class="literal">void (*callback) (gpointer instance, gchar arg1, gpointer user_data)</code>.
1493 </p>
1494 <div class="variablelist"><table border="0">
1495 <col align="left" valign="top">
1496 <tbody>
1497 <tr>
1498 <td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td>
1499 <td>the <a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> to which the marshaller belongs</td>
1500 </tr>
1501 <tr>
1502 <td><p><span class="term"><em class="parameter"><code>return_value</code></em> :</span></p></td>
1503 <td>ignored</td>
1504 </tr>
1505 <tr>
1506 <td><p><span class="term"><em class="parameter"><code>n_param_values</code></em> :</span></p></td>
1507 <td>2</td>
1508 </tr>
1509 <tr>
1510 <td><p><span class="term"><em class="parameter"><code>param_values</code></em> :</span></p></td>
1511 <td>a <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> array holding the instance and the <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> parameter</td>
1512 </tr>
1513 <tr>
1514 <td><p><span class="term"><em class="parameter"><code>invocation_hint</code></em> :</span></p></td>
1515 <td>the invocation hint given as the last argument
1516 to <a class="link" href="gobject-Closures.html#g-closure-invoke" title="g_closure_invoke ()"><code class="function">g_closure_invoke()</code></a>
1517 </td>
1518 </tr>
1519 <tr>
1520 <td><p><span class="term"><em class="parameter"><code>marshal_data</code></em> :</span></p></td>
1521 <td>additional data specified when registering the marshaller</td>
1522 </tr>
1523 </tbody>
1524 </table></div>
1525 </div>
1526 <hr>
1527 <div class="refsect2">
1528 <a name="g-cclosure-marshal-VOID--UCHAR"></a><h3>g_cclosure_marshal_VOID__UCHAR ()</h3>
1529 <pre class="programlisting"><span class="returnvalue">void</span>                g_cclosure_marshal_VOID__UCHAR      (<em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> *closure</code></em>,
1530                                                          <em class="parameter"><code><a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *return_value</code></em>,
1531                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_param_values</code></em>,
1532                                                          <em class="parameter"><code>const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *param_values</code></em>,
1533                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> invocation_hint</code></em>,
1534                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> marshal_data</code></em>);</pre>
1535 <p>
1536 A marshaller for a <a class="link" href="gobject-Closures.html#GCClosure" title="struct GCClosure"><span class="type">GCClosure</span></a> with a callback of type
1537 <code class="literal">void (*callback) (gpointer instance, guchar arg1, gpointer user_data)</code>.
1538 </p>
1539 <div class="variablelist"><table border="0">
1540 <col align="left" valign="top">
1541 <tbody>
1542 <tr>
1543 <td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td>
1544 <td>the <a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> to which the marshaller belongs</td>
1545 </tr>
1546 <tr>
1547 <td><p><span class="term"><em class="parameter"><code>return_value</code></em> :</span></p></td>
1548 <td>ignored</td>
1549 </tr>
1550 <tr>
1551 <td><p><span class="term"><em class="parameter"><code>n_param_values</code></em> :</span></p></td>
1552 <td>2</td>
1553 </tr>
1554 <tr>
1555 <td><p><span class="term"><em class="parameter"><code>param_values</code></em> :</span></p></td>
1556 <td>a <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> array holding the instance and the <a href="./../glib/glib/glib-Basic-Types.html#guchar"><span class="type">guchar</span></a> parameter</td>
1557 </tr>
1558 <tr>
1559 <td><p><span class="term"><em class="parameter"><code>invocation_hint</code></em> :</span></p></td>
1560 <td>the invocation hint given as the last argument
1561 to <a class="link" href="gobject-Closures.html#g-closure-invoke" title="g_closure_invoke ()"><code class="function">g_closure_invoke()</code></a>
1562 </td>
1563 </tr>
1564 <tr>
1565 <td><p><span class="term"><em class="parameter"><code>marshal_data</code></em> :</span></p></td>
1566 <td>additional data specified when registering the marshaller</td>
1567 </tr>
1568 </tbody>
1569 </table></div>
1570 </div>
1571 <hr>
1572 <div class="refsect2">
1573 <a name="g-cclosure-marshal-VOID--INT"></a><h3>g_cclosure_marshal_VOID__INT ()</h3>
1574 <pre class="programlisting"><span class="returnvalue">void</span>                g_cclosure_marshal_VOID__INT        (<em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> *closure</code></em>,
1575                                                          <em class="parameter"><code><a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *return_value</code></em>,
1576                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_param_values</code></em>,
1577                                                          <em class="parameter"><code>const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *param_values</code></em>,
1578                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> invocation_hint</code></em>,
1579                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> marshal_data</code></em>);</pre>
1580 <p>
1581 A marshaller for a <a class="link" href="gobject-Closures.html#GCClosure" title="struct GCClosure"><span class="type">GCClosure</span></a> with a callback of type
1582 <code class="literal">void (*callback) (gpointer instance, gint arg1, gpointer user_data)</code>.
1583 </p>
1584 <div class="variablelist"><table border="0">
1585 <col align="left" valign="top">
1586 <tbody>
1587 <tr>
1588 <td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td>
1589 <td>the <a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> to which the marshaller belongs</td>
1590 </tr>
1591 <tr>
1592 <td><p><span class="term"><em class="parameter"><code>return_value</code></em> :</span></p></td>
1593 <td>ignored</td>
1594 </tr>
1595 <tr>
1596 <td><p><span class="term"><em class="parameter"><code>n_param_values</code></em> :</span></p></td>
1597 <td>2</td>
1598 </tr>
1599 <tr>
1600 <td><p><span class="term"><em class="parameter"><code>param_values</code></em> :</span></p></td>
1601 <td>a <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> array holding the instance and the <a href="./../glib/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> parameter</td>
1602 </tr>
1603 <tr>
1604 <td><p><span class="term"><em class="parameter"><code>invocation_hint</code></em> :</span></p></td>
1605 <td>the invocation hint given as the last argument
1606 to <a class="link" href="gobject-Closures.html#g-closure-invoke" title="g_closure_invoke ()"><code class="function">g_closure_invoke()</code></a>
1607 </td>
1608 </tr>
1609 <tr>
1610 <td><p><span class="term"><em class="parameter"><code>marshal_data</code></em> :</span></p></td>
1611 <td>additional data specified when registering the marshaller</td>
1612 </tr>
1613 </tbody>
1614 </table></div>
1615 </div>
1616 <hr>
1617 <div class="refsect2">
1618 <a name="g-cclosure-marshal-VOID--UINT"></a><h3>g_cclosure_marshal_VOID__UINT ()</h3>
1619 <pre class="programlisting"><span class="returnvalue">void</span>                g_cclosure_marshal_VOID__UINT       (<em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> *closure</code></em>,
1620                                                          <em class="parameter"><code><a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *return_value</code></em>,
1621                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_param_values</code></em>,
1622                                                          <em class="parameter"><code>const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *param_values</code></em>,
1623                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> invocation_hint</code></em>,
1624                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> marshal_data</code></em>);</pre>
1625 <p>
1626 A marshaller for a <a class="link" href="gobject-Closures.html#GCClosure" title="struct GCClosure"><span class="type">GCClosure</span></a> with a callback of type
1627 <code class="literal">void (*callback) (gpointer instance, guint arg1, gpointer user_data)</code>.
1628 </p>
1629 <div class="variablelist"><table border="0">
1630 <col align="left" valign="top">
1631 <tbody>
1632 <tr>
1633 <td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td>
1634 <td>the <a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> to which the marshaller belongs</td>
1635 </tr>
1636 <tr>
1637 <td><p><span class="term"><em class="parameter"><code>return_value</code></em> :</span></p></td>
1638 <td>ignored</td>
1639 </tr>
1640 <tr>
1641 <td><p><span class="term"><em class="parameter"><code>n_param_values</code></em> :</span></p></td>
1642 <td>2</td>
1643 </tr>
1644 <tr>
1645 <td><p><span class="term"><em class="parameter"><code>param_values</code></em> :</span></p></td>
1646 <td>a <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> array holding the instance and the <a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> parameter</td>
1647 </tr>
1648 <tr>
1649 <td><p><span class="term"><em class="parameter"><code>invocation_hint</code></em> :</span></p></td>
1650 <td>the invocation hint given as the last argument
1651 to <a class="link" href="gobject-Closures.html#g-closure-invoke" title="g_closure_invoke ()"><code class="function">g_closure_invoke()</code></a>
1652 </td>
1653 </tr>
1654 <tr>
1655 <td><p><span class="term"><em class="parameter"><code>marshal_data</code></em> :</span></p></td>
1656 <td>additional data specified when registering the marshaller</td>
1657 </tr>
1658 </tbody>
1659 </table></div>
1660 </div>
1661 <hr>
1662 <div class="refsect2">
1663 <a name="g-cclosure-marshal-VOID--LONG"></a><h3>g_cclosure_marshal_VOID__LONG ()</h3>
1664 <pre class="programlisting"><span class="returnvalue">void</span>                g_cclosure_marshal_VOID__LONG       (<em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> *closure</code></em>,
1665                                                          <em class="parameter"><code><a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *return_value</code></em>,
1666                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_param_values</code></em>,
1667                                                          <em class="parameter"><code>const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *param_values</code></em>,
1668                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> invocation_hint</code></em>,
1669                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> marshal_data</code></em>);</pre>
1670 <p>
1671 A marshaller for a <a class="link" href="gobject-Closures.html#GCClosure" title="struct GCClosure"><span class="type">GCClosure</span></a> with a callback of type
1672 <code class="literal">void (*callback) (gpointer instance, glong arg1, gpointer user_data)</code>.
1673 </p>
1674 <div class="variablelist"><table border="0">
1675 <col align="left" valign="top">
1676 <tbody>
1677 <tr>
1678 <td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td>
1679 <td>the <a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> to which the marshaller belongs</td>
1680 </tr>
1681 <tr>
1682 <td><p><span class="term"><em class="parameter"><code>return_value</code></em> :</span></p></td>
1683 <td>ignored</td>
1684 </tr>
1685 <tr>
1686 <td><p><span class="term"><em class="parameter"><code>n_param_values</code></em> :</span></p></td>
1687 <td>2</td>
1688 </tr>
1689 <tr>
1690 <td><p><span class="term"><em class="parameter"><code>param_values</code></em> :</span></p></td>
1691 <td>a <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> array holding the instance and the <a href="./../glib/glib/glib-Basic-Types.html#glong"><span class="type">glong</span></a> parameter</td>
1692 </tr>
1693 <tr>
1694 <td><p><span class="term"><em class="parameter"><code>invocation_hint</code></em> :</span></p></td>
1695 <td>the invocation hint given as the last argument
1696 to <a class="link" href="gobject-Closures.html#g-closure-invoke" title="g_closure_invoke ()"><code class="function">g_closure_invoke()</code></a>
1697 </td>
1698 </tr>
1699 <tr>
1700 <td><p><span class="term"><em class="parameter"><code>marshal_data</code></em> :</span></p></td>
1701 <td>additional data specified when registering the marshaller</td>
1702 </tr>
1703 </tbody>
1704 </table></div>
1705 </div>
1706 <hr>
1707 <div class="refsect2">
1708 <a name="g-cclosure-marshal-VOID--ULONG"></a><h3>g_cclosure_marshal_VOID__ULONG ()</h3>
1709 <pre class="programlisting"><span class="returnvalue">void</span>                g_cclosure_marshal_VOID__ULONG      (<em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> *closure</code></em>,
1710                                                          <em class="parameter"><code><a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *return_value</code></em>,
1711                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_param_values</code></em>,
1712                                                          <em class="parameter"><code>const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *param_values</code></em>,
1713                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> invocation_hint</code></em>,
1714                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> marshal_data</code></em>);</pre>
1715 <p>
1716 A marshaller for a <a class="link" href="gobject-Closures.html#GCClosure" title="struct GCClosure"><span class="type">GCClosure</span></a> with a callback of type
1717 <code class="literal">void (*callback) (gpointer instance, gulong arg1, gpointer user_data)</code>.
1718 </p>
1719 <div class="variablelist"><table border="0">
1720 <col align="left" valign="top">
1721 <tbody>
1722 <tr>
1723 <td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td>
1724 <td>the <a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> to which the marshaller belongs</td>
1725 </tr>
1726 <tr>
1727 <td><p><span class="term"><em class="parameter"><code>return_value</code></em> :</span></p></td>
1728 <td>ignored</td>
1729 </tr>
1730 <tr>
1731 <td><p><span class="term"><em class="parameter"><code>n_param_values</code></em> :</span></p></td>
1732 <td>2</td>
1733 </tr>
1734 <tr>
1735 <td><p><span class="term"><em class="parameter"><code>param_values</code></em> :</span></p></td>
1736 <td>a <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> array holding the instance and the <a href="./../glib/glib/glib-Basic-Types.html#gulong"><span class="type">gulong</span></a> parameter</td>
1737 </tr>
1738 <tr>
1739 <td><p><span class="term"><em class="parameter"><code>invocation_hint</code></em> :</span></p></td>
1740 <td>the invocation hint given as the last argument
1741 to <a class="link" href="gobject-Closures.html#g-closure-invoke" title="g_closure_invoke ()"><code class="function">g_closure_invoke()</code></a>
1742 </td>
1743 </tr>
1744 <tr>
1745 <td><p><span class="term"><em class="parameter"><code>marshal_data</code></em> :</span></p></td>
1746 <td>additional data specified when registering the marshaller</td>
1747 </tr>
1748 </tbody>
1749 </table></div>
1750 </div>
1751 <hr>
1752 <div class="refsect2">
1753 <a name="g-cclosure-marshal-VOID--ENUM"></a><h3>g_cclosure_marshal_VOID__ENUM ()</h3>
1754 <pre class="programlisting"><span class="returnvalue">void</span>                g_cclosure_marshal_VOID__ENUM       (<em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> *closure</code></em>,
1755                                                          <em class="parameter"><code><a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *return_value</code></em>,
1756                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_param_values</code></em>,
1757                                                          <em class="parameter"><code>const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *param_values</code></em>,
1758                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> invocation_hint</code></em>,
1759                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> marshal_data</code></em>);</pre>
1760 <p>
1761 A marshaller for a <a class="link" href="gobject-Closures.html#GCClosure" title="struct GCClosure"><span class="type">GCClosure</span></a> with a callback of type
1762 <code class="literal">void (*callback) (gpointer instance, gint arg1, gpointer user_data)</code> where the <a href="./../glib/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> parameter denotes an enumeration type..
1763 </p>
1764 <div class="variablelist"><table border="0">
1765 <col align="left" valign="top">
1766 <tbody>
1767 <tr>
1768 <td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td>
1769 <td>the <a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> to which the marshaller belongs</td>
1770 </tr>
1771 <tr>
1772 <td><p><span class="term"><em class="parameter"><code>return_value</code></em> :</span></p></td>
1773 <td>ignored</td>
1774 </tr>
1775 <tr>
1776 <td><p><span class="term"><em class="parameter"><code>n_param_values</code></em> :</span></p></td>
1777 <td>2</td>
1778 </tr>
1779 <tr>
1780 <td><p><span class="term"><em class="parameter"><code>param_values</code></em> :</span></p></td>
1781 <td>a <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> array holding the instance and the enumeration parameter</td>
1782 </tr>
1783 <tr>
1784 <td><p><span class="term"><em class="parameter"><code>invocation_hint</code></em> :</span></p></td>
1785 <td>the invocation hint given as the last argument
1786 to <a class="link" href="gobject-Closures.html#g-closure-invoke" title="g_closure_invoke ()"><code class="function">g_closure_invoke()</code></a>
1787 </td>
1788 </tr>
1789 <tr>
1790 <td><p><span class="term"><em class="parameter"><code>marshal_data</code></em> :</span></p></td>
1791 <td>additional data specified when registering the marshaller</td>
1792 </tr>
1793 </tbody>
1794 </table></div>
1795 </div>
1796 <hr>
1797 <div class="refsect2">
1798 <a name="g-cclosure-marshal-VOID--FLAGS"></a><h3>g_cclosure_marshal_VOID__FLAGS ()</h3>
1799 <pre class="programlisting"><span class="returnvalue">void</span>                g_cclosure_marshal_VOID__FLAGS      (<em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> *closure</code></em>,
1800                                                          <em class="parameter"><code><a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *return_value</code></em>,
1801                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_param_values</code></em>,
1802                                                          <em class="parameter"><code>const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *param_values</code></em>,
1803                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> invocation_hint</code></em>,
1804                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> marshal_data</code></em>);</pre>
1805 <p>
1806 A marshaller for a <a class="link" href="gobject-Closures.html#GCClosure" title="struct GCClosure"><span class="type">GCClosure</span></a> with a callback of type
1807 <code class="literal">void (*callback) (gpointer instance, gint arg1, gpointer user_data)</code> where the <a href="./../glib/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> parameter denotes a flags type.
1808 </p>
1809 <div class="variablelist"><table border="0">
1810 <col align="left" valign="top">
1811 <tbody>
1812 <tr>
1813 <td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td>
1814 <td>the <a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> to which the marshaller belongs</td>
1815 </tr>
1816 <tr>
1817 <td><p><span class="term"><em class="parameter"><code>return_value</code></em> :</span></p></td>
1818 <td>ignored</td>
1819 </tr>
1820 <tr>
1821 <td><p><span class="term"><em class="parameter"><code>n_param_values</code></em> :</span></p></td>
1822 <td>2</td>
1823 </tr>
1824 <tr>
1825 <td><p><span class="term"><em class="parameter"><code>param_values</code></em> :</span></p></td>
1826 <td>a <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> array holding the instance and the flags parameter</td>
1827 </tr>
1828 <tr>
1829 <td><p><span class="term"><em class="parameter"><code>invocation_hint</code></em> :</span></p></td>
1830 <td>the invocation hint given as the last argument
1831 to <a class="link" href="gobject-Closures.html#g-closure-invoke" title="g_closure_invoke ()"><code class="function">g_closure_invoke()</code></a>
1832 </td>
1833 </tr>
1834 <tr>
1835 <td><p><span class="term"><em class="parameter"><code>marshal_data</code></em> :</span></p></td>
1836 <td>additional data specified when registering the marshaller</td>
1837 </tr>
1838 </tbody>
1839 </table></div>
1840 </div>
1841 <hr>
1842 <div class="refsect2">
1843 <a name="g-cclosure-marshal-VOID--FLOAT"></a><h3>g_cclosure_marshal_VOID__FLOAT ()</h3>
1844 <pre class="programlisting"><span class="returnvalue">void</span>                g_cclosure_marshal_VOID__FLOAT      (<em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> *closure</code></em>,
1845                                                          <em class="parameter"><code><a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *return_value</code></em>,
1846                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_param_values</code></em>,
1847                                                          <em class="parameter"><code>const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *param_values</code></em>,
1848                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> invocation_hint</code></em>,
1849                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> marshal_data</code></em>);</pre>
1850 <p>
1851 A marshaller for a <a class="link" href="gobject-Closures.html#GCClosure" title="struct GCClosure"><span class="type">GCClosure</span></a> with a callback of type
1852 <code class="literal">void (*callback) (gpointer instance, gfloat arg1, gpointer user_data)</code>.
1853 </p>
1854 <div class="variablelist"><table border="0">
1855 <col align="left" valign="top">
1856 <tbody>
1857 <tr>
1858 <td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td>
1859 <td>the <a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> to which the marshaller belongs</td>
1860 </tr>
1861 <tr>
1862 <td><p><span class="term"><em class="parameter"><code>return_value</code></em> :</span></p></td>
1863 <td>ignored</td>
1864 </tr>
1865 <tr>
1866 <td><p><span class="term"><em class="parameter"><code>n_param_values</code></em> :</span></p></td>
1867 <td>2</td>
1868 </tr>
1869 <tr>
1870 <td><p><span class="term"><em class="parameter"><code>param_values</code></em> :</span></p></td>
1871 <td>a <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> array holding the instance and the <a href="./../glib/glib/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> parameter</td>
1872 </tr>
1873 <tr>
1874 <td><p><span class="term"><em class="parameter"><code>invocation_hint</code></em> :</span></p></td>
1875 <td>the invocation hint given as the last argument
1876 to <a class="link" href="gobject-Closures.html#g-closure-invoke" title="g_closure_invoke ()"><code class="function">g_closure_invoke()</code></a>
1877 </td>
1878 </tr>
1879 <tr>
1880 <td><p><span class="term"><em class="parameter"><code>marshal_data</code></em> :</span></p></td>
1881 <td>additional data specified when registering the marshaller</td>
1882 </tr>
1883 </tbody>
1884 </table></div>
1885 </div>
1886 <hr>
1887 <div class="refsect2">
1888 <a name="g-cclosure-marshal-VOID--DOUBLE"></a><h3>g_cclosure_marshal_VOID__DOUBLE ()</h3>
1889 <pre class="programlisting"><span class="returnvalue">void</span>                g_cclosure_marshal_VOID__DOUBLE     (<em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> *closure</code></em>,
1890                                                          <em class="parameter"><code><a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *return_value</code></em>,
1891                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_param_values</code></em>,
1892                                                          <em class="parameter"><code>const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *param_values</code></em>,
1893                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> invocation_hint</code></em>,
1894                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> marshal_data</code></em>);</pre>
1895 <p>
1896 A marshaller for a <a class="link" href="gobject-Closures.html#GCClosure" title="struct GCClosure"><span class="type">GCClosure</span></a> with a callback of type
1897 <code class="literal">void (*callback) (gpointer instance, gdouble arg1, gpointer user_data)</code>.
1898 </p>
1899 <div class="variablelist"><table border="0">
1900 <col align="left" valign="top">
1901 <tbody>
1902 <tr>
1903 <td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td>
1904 <td>the <a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> to which the marshaller belongs</td>
1905 </tr>
1906 <tr>
1907 <td><p><span class="term"><em class="parameter"><code>return_value</code></em> :</span></p></td>
1908 <td>ignored</td>
1909 </tr>
1910 <tr>
1911 <td><p><span class="term"><em class="parameter"><code>n_param_values</code></em> :</span></p></td>
1912 <td>2</td>
1913 </tr>
1914 <tr>
1915 <td><p><span class="term"><em class="parameter"><code>param_values</code></em> :</span></p></td>
1916 <td>a <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> array holding the instance and the <a href="./../glib/glib/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> parameter</td>
1917 </tr>
1918 <tr>
1919 <td><p><span class="term"><em class="parameter"><code>invocation_hint</code></em> :</span></p></td>
1920 <td>the invocation hint given as the last argument
1921 to <a class="link" href="gobject-Closures.html#g-closure-invoke" title="g_closure_invoke ()"><code class="function">g_closure_invoke()</code></a>
1922 </td>
1923 </tr>
1924 <tr>
1925 <td><p><span class="term"><em class="parameter"><code>marshal_data</code></em> :</span></p></td>
1926 <td>additional data specified when registering the marshaller</td>
1927 </tr>
1928 </tbody>
1929 </table></div>
1930 </div>
1931 <hr>
1932 <div class="refsect2">
1933 <a name="g-cclosure-marshal-VOID--STRING"></a><h3>g_cclosure_marshal_VOID__STRING ()</h3>
1934 <pre class="programlisting"><span class="returnvalue">void</span>                g_cclosure_marshal_VOID__STRING     (<em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> *closure</code></em>,
1935                                                          <em class="parameter"><code><a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *return_value</code></em>,
1936                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_param_values</code></em>,
1937                                                          <em class="parameter"><code>const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *param_values</code></em>,
1938                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> invocation_hint</code></em>,
1939                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> marshal_data</code></em>);</pre>
1940 <p>
1941 A marshaller for a <a class="link" href="gobject-Closures.html#GCClosure" title="struct GCClosure"><span class="type">GCClosure</span></a> with a callback of type
1942 <code class="literal">void (*callback) (gpointer instance, const gchar *arg1, gpointer user_data)</code>.
1943 </p>
1944 <div class="variablelist"><table border="0">
1945 <col align="left" valign="top">
1946 <tbody>
1947 <tr>
1948 <td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td>
1949 <td>the <a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> to which the marshaller belongs</td>
1950 </tr>
1951 <tr>
1952 <td><p><span class="term"><em class="parameter"><code>return_value</code></em> :</span></p></td>
1953 <td>ignored</td>
1954 </tr>
1955 <tr>
1956 <td><p><span class="term"><em class="parameter"><code>n_param_values</code></em> :</span></p></td>
1957 <td>2</td>
1958 </tr>
1959 <tr>
1960 <td><p><span class="term"><em class="parameter"><code>param_values</code></em> :</span></p></td>
1961 <td>a <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> array holding the instance and the <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* parameter</td>
1962 </tr>
1963 <tr>
1964 <td><p><span class="term"><em class="parameter"><code>invocation_hint</code></em> :</span></p></td>
1965 <td>the invocation hint given as the last argument
1966 to <a class="link" href="gobject-Closures.html#g-closure-invoke" title="g_closure_invoke ()"><code class="function">g_closure_invoke()</code></a>
1967 </td>
1968 </tr>
1969 <tr>
1970 <td><p><span class="term"><em class="parameter"><code>marshal_data</code></em> :</span></p></td>
1971 <td>additional data specified when registering the marshaller</td>
1972 </tr>
1973 </tbody>
1974 </table></div>
1975 </div>
1976 <hr>
1977 <div class="refsect2">
1978 <a name="g-cclosure-marshal-VOID--PARAM"></a><h3>g_cclosure_marshal_VOID__PARAM ()</h3>
1979 <pre class="programlisting"><span class="returnvalue">void</span>                g_cclosure_marshal_VOID__PARAM      (<em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> *closure</code></em>,
1980                                                          <em class="parameter"><code><a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *return_value</code></em>,
1981                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_param_values</code></em>,
1982                                                          <em class="parameter"><code>const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *param_values</code></em>,
1983                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> invocation_hint</code></em>,
1984                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> marshal_data</code></em>);</pre>
1985 <p>
1986 A marshaller for a <a class="link" href="gobject-Closures.html#GCClosure" title="struct GCClosure"><span class="type">GCClosure</span></a> with a callback of type
1987 <code class="literal">void (*callback) (gpointer instance, GParamSpec *arg1, gpointer user_data)</code>.
1988 </p>
1989 <div class="variablelist"><table border="0">
1990 <col align="left" valign="top">
1991 <tbody>
1992 <tr>
1993 <td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td>
1994 <td>the <a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> to which the marshaller belongs</td>
1995 </tr>
1996 <tr>
1997 <td><p><span class="term"><em class="parameter"><code>return_value</code></em> :</span></p></td>
1998 <td>ignored</td>
1999 </tr>
2000 <tr>
2001 <td><p><span class="term"><em class="parameter"><code>n_param_values</code></em> :</span></p></td>
2002 <td>2</td>
2003 </tr>
2004 <tr>
2005 <td><p><span class="term"><em class="parameter"><code>param_values</code></em> :</span></p></td>
2006 <td>a <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> array holding the instance and the <a class="link" href="gobject-GParamSpec.html#GParamSpec" title="struct GParamSpec"><span class="type">GParamSpec</span></a>* parameter</td>
2007 </tr>
2008 <tr>
2009 <td><p><span class="term"><em class="parameter"><code>invocation_hint</code></em> :</span></p></td>
2010 <td>the invocation hint given as the last argument
2011 to <a class="link" href="gobject-Closures.html#g-closure-invoke" title="g_closure_invoke ()"><code class="function">g_closure_invoke()</code></a>
2012 </td>
2013 </tr>
2014 <tr>
2015 <td><p><span class="term"><em class="parameter"><code>marshal_data</code></em> :</span></p></td>
2016 <td>additional data specified when registering the marshaller</td>
2017 </tr>
2018 </tbody>
2019 </table></div>
2020 </div>
2021 <hr>
2022 <div class="refsect2">
2023 <a name="g-cclosure-marshal-VOID--BOXED"></a><h3>g_cclosure_marshal_VOID__BOXED ()</h3>
2024 <pre class="programlisting"><span class="returnvalue">void</span>                g_cclosure_marshal_VOID__BOXED      (<em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> *closure</code></em>,
2025                                                          <em class="parameter"><code><a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *return_value</code></em>,
2026                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_param_values</code></em>,
2027                                                          <em class="parameter"><code>const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *param_values</code></em>,
2028                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> invocation_hint</code></em>,
2029                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> marshal_data</code></em>);</pre>
2030 <p>
2031 A marshaller for a <a class="link" href="gobject-Closures.html#GCClosure" title="struct GCClosure"><span class="type">GCClosure</span></a> with a callback of type
2032 <code class="literal">void (*callback) (gpointer instance, GBoxed *arg1, gpointer user_data)</code>.
2033 </p>
2034 <div class="variablelist"><table border="0">
2035 <col align="left" valign="top">
2036 <tbody>
2037 <tr>
2038 <td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td>
2039 <td>the <a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> to which the marshaller belongs</td>
2040 </tr>
2041 <tr>
2042 <td><p><span class="term"><em class="parameter"><code>return_value</code></em> :</span></p></td>
2043 <td>ignored</td>
2044 </tr>
2045 <tr>
2046 <td><p><span class="term"><em class="parameter"><code>n_param_values</code></em> :</span></p></td>
2047 <td>2</td>
2048 </tr>
2049 <tr>
2050 <td><p><span class="term"><em class="parameter"><code>param_values</code></em> :</span></p></td>
2051 <td>a <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> array holding the instance and the <span class="type">GBoxed</span>* parameter</td>
2052 </tr>
2053 <tr>
2054 <td><p><span class="term"><em class="parameter"><code>invocation_hint</code></em> :</span></p></td>
2055 <td>the invocation hint given as the last argument
2056 to <a class="link" href="gobject-Closures.html#g-closure-invoke" title="g_closure_invoke ()"><code class="function">g_closure_invoke()</code></a>
2057 </td>
2058 </tr>
2059 <tr>
2060 <td><p><span class="term"><em class="parameter"><code>marshal_data</code></em> :</span></p></td>
2061 <td>additional data specified when registering the marshaller</td>
2062 </tr>
2063 </tbody>
2064 </table></div>
2065 </div>
2066 <hr>
2067 <div class="refsect2">
2068 <a name="g-cclosure-marshal-VOID--POINTER"></a><h3>g_cclosure_marshal_VOID__POINTER ()</h3>
2069 <pre class="programlisting"><span class="returnvalue">void</span>                g_cclosure_marshal_VOID__POINTER    (<em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> *closure</code></em>,
2070                                                          <em class="parameter"><code><a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *return_value</code></em>,
2071                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_param_values</code></em>,
2072                                                          <em class="parameter"><code>const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *param_values</code></em>,
2073                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> invocation_hint</code></em>,
2074                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> marshal_data</code></em>);</pre>
2075 <p>
2076 A marshaller for a <a class="link" href="gobject-Closures.html#GCClosure" title="struct GCClosure"><span class="type">GCClosure</span></a> with a callback of type
2077 <code class="literal">void (*callback) (gpointer instance, gpointer arg1, gpointer user_data)</code>.
2078 </p>
2079 <div class="variablelist"><table border="0">
2080 <col align="left" valign="top">
2081 <tbody>
2082 <tr>
2083 <td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td>
2084 <td>the <a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> to which the marshaller belongs</td>
2085 </tr>
2086 <tr>
2087 <td><p><span class="term"><em class="parameter"><code>return_value</code></em> :</span></p></td>
2088 <td>ignored</td>
2089 </tr>
2090 <tr>
2091 <td><p><span class="term"><em class="parameter"><code>n_param_values</code></em> :</span></p></td>
2092 <td>2</td>
2093 </tr>
2094 <tr>
2095 <td><p><span class="term"><em class="parameter"><code>param_values</code></em> :</span></p></td>
2096 <td>a <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> array holding the instance and the <a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> parameter</td>
2097 </tr>
2098 <tr>
2099 <td><p><span class="term"><em class="parameter"><code>invocation_hint</code></em> :</span></p></td>
2100 <td>the invocation hint given as the last argument
2101 to <a class="link" href="gobject-Closures.html#g-closure-invoke" title="g_closure_invoke ()"><code class="function">g_closure_invoke()</code></a>
2102 </td>
2103 </tr>
2104 <tr>
2105 <td><p><span class="term"><em class="parameter"><code>marshal_data</code></em> :</span></p></td>
2106 <td>additional data specified when registering the marshaller</td>
2107 </tr>
2108 </tbody>
2109 </table></div>
2110 </div>
2111 <hr>
2112 <div class="refsect2">
2113 <a name="g-cclosure-marshal-VOID--OBJECT"></a><h3>g_cclosure_marshal_VOID__OBJECT ()</h3>
2114 <pre class="programlisting"><span class="returnvalue">void</span>                g_cclosure_marshal_VOID__OBJECT     (<em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> *closure</code></em>,
2115                                                          <em class="parameter"><code><a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *return_value</code></em>,
2116                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_param_values</code></em>,
2117                                                          <em class="parameter"><code>const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *param_values</code></em>,
2118                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> invocation_hint</code></em>,
2119                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> marshal_data</code></em>);</pre>
2120 <p>
2121 A marshaller for a <a class="link" href="gobject-Closures.html#GCClosure" title="struct GCClosure"><span class="type">GCClosure</span></a> with a callback of type
2122 <code class="literal">void (*callback) (gpointer instance, GObject *arg1, gpointer user_data)</code>.
2123 </p>
2124 <div class="variablelist"><table border="0">
2125 <col align="left" valign="top">
2126 <tbody>
2127 <tr>
2128 <td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td>
2129 <td>the <a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> to which the marshaller belongs</td>
2130 </tr>
2131 <tr>
2132 <td><p><span class="term"><em class="parameter"><code>return_value</code></em> :</span></p></td>
2133 <td>ignored</td>
2134 </tr>
2135 <tr>
2136 <td><p><span class="term"><em class="parameter"><code>n_param_values</code></em> :</span></p></td>
2137 <td>2</td>
2138 </tr>
2139 <tr>
2140 <td><p><span class="term"><em class="parameter"><code>param_values</code></em> :</span></p></td>
2141 <td>a <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> array holding the instance and the <a class="link" href="gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a>* parameter</td>
2142 </tr>
2143 <tr>
2144 <td><p><span class="term"><em class="parameter"><code>invocation_hint</code></em> :</span></p></td>
2145 <td>the invocation hint given as the last argument
2146 to <a class="link" href="gobject-Closures.html#g-closure-invoke" title="g_closure_invoke ()"><code class="function">g_closure_invoke()</code></a>
2147 </td>
2148 </tr>
2149 <tr>
2150 <td><p><span class="term"><em class="parameter"><code>marshal_data</code></em> :</span></p></td>
2151 <td>additional data specified when registering the marshaller</td>
2152 </tr>
2153 </tbody>
2154 </table></div>
2155 </div>
2156 <hr>
2157 <div class="refsect2">
2158 <a name="g-cclosure-marshal-VOID--VARIANT"></a><h3>g_cclosure_marshal_VOID__VARIANT ()</h3>
2159 <pre class="programlisting"><span class="returnvalue">void</span>                g_cclosure_marshal_VOID__VARIANT    (<em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> *closure</code></em>,
2160                                                          <em class="parameter"><code><a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *return_value</code></em>,
2161                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_param_values</code></em>,
2162                                                          <em class="parameter"><code>const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *param_values</code></em>,
2163                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> invocation_hint</code></em>,
2164                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> marshal_data</code></em>);</pre>
2165 <p>
2166 A marshaller for a <a class="link" href="gobject-Closures.html#GCClosure" title="struct GCClosure"><span class="type">GCClosure</span></a> with a callback of type
2167 <code class="literal">void (*callback) (gpointer instance, GVariant *arg1, gpointer user_data)</code>.
2168 </p>
2169 <div class="variablelist"><table border="0">
2170 <col align="left" valign="top">
2171 <tbody>
2172 <tr>
2173 <td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td>
2174 <td>the <a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> to which the marshaller belongs</td>
2175 </tr>
2176 <tr>
2177 <td><p><span class="term"><em class="parameter"><code>return_value</code></em> :</span></p></td>
2178 <td>ignored</td>
2179 </tr>
2180 <tr>
2181 <td><p><span class="term"><em class="parameter"><code>n_param_values</code></em> :</span></p></td>
2182 <td>2</td>
2183 </tr>
2184 <tr>
2185 <td><p><span class="term"><em class="parameter"><code>param_values</code></em> :</span></p></td>
2186 <td>a <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> array holding the instance and the <a href="./../glib/glib/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a>* parameter</td>
2187 </tr>
2188 <tr>
2189 <td><p><span class="term"><em class="parameter"><code>invocation_hint</code></em> :</span></p></td>
2190 <td>the invocation hint given as the last argument
2191 to <a class="link" href="gobject-Closures.html#g-closure-invoke" title="g_closure_invoke ()"><code class="function">g_closure_invoke()</code></a>
2192 </td>
2193 </tr>
2194 <tr>
2195 <td><p><span class="term"><em class="parameter"><code>marshal_data</code></em> :</span></p></td>
2196 <td>additional data specified when registering the marshaller</td>
2197 </tr>
2198 </tbody>
2199 </table></div>
2200 <p class="since">Since 2.26</p>
2201 </div>
2202 <hr>
2203 <div class="refsect2">
2204 <a name="g-cclosure-marshal-STRING--OBJECT-POINTER"></a><h3>g_cclosure_marshal_STRING__OBJECT_POINTER ()</h3>
2205 <pre class="programlisting"><span class="returnvalue">void</span>                g_cclosure_marshal_STRING__OBJECT_POINTER
2206                                                         (<em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> *closure</code></em>,
2207                                                          <em class="parameter"><code><a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *return_value</code></em>,
2208                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_param_values</code></em>,
2209                                                          <em class="parameter"><code>const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *param_values</code></em>,
2210                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> invocation_hint</code></em>,
2211                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> marshal_data</code></em>);</pre>
2212 <p>
2213 A marshaller for a <a class="link" href="gobject-Closures.html#GCClosure" title="struct GCClosure"><span class="type">GCClosure</span></a> with a callback of type
2214 <code class="literal">gchar* (*callback) (gpointer instance, GObject *arg1, gpointer arg2, gpointer user_data)</code>.
2215 </p>
2216 <div class="variablelist"><table border="0">
2217 <col align="left" valign="top">
2218 <tbody>
2219 <tr>
2220 <td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td>
2221 <td>the <a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> to which the marshaller belongs</td>
2222 </tr>
2223 <tr>
2224 <td><p><span class="term"><em class="parameter"><code>return_value</code></em> :</span></p></td>
2225 <td>a <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a>, which can store the returned string</td>
2226 </tr>
2227 <tr>
2228 <td><p><span class="term"><em class="parameter"><code>n_param_values</code></em> :</span></p></td>
2229 <td>3</td>
2230 </tr>
2231 <tr>
2232 <td><p><span class="term"><em class="parameter"><code>param_values</code></em> :</span></p></td>
2233 <td>a <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> array holding instance, arg1 and arg2</td>
2234 </tr>
2235 <tr>
2236 <td><p><span class="term"><em class="parameter"><code>invocation_hint</code></em> :</span></p></td>
2237 <td>the invocation hint given as the last argument
2238 to <a class="link" href="gobject-Closures.html#g-closure-invoke" title="g_closure_invoke ()"><code class="function">g_closure_invoke()</code></a>
2239 </td>
2240 </tr>
2241 <tr>
2242 <td><p><span class="term"><em class="parameter"><code>marshal_data</code></em> :</span></p></td>
2243 <td>additional data specified when registering the marshaller</td>
2244 </tr>
2245 </tbody>
2246 </table></div>
2247 </div>
2248 <hr>
2249 <div class="refsect2">
2250 <a name="g-cclosure-marshal-VOID--UINT-POINTER"></a><h3>g_cclosure_marshal_VOID__UINT_POINTER ()</h3>
2251 <pre class="programlisting"><span class="returnvalue">void</span>                g_cclosure_marshal_VOID__UINT_POINTER
2252                                                         (<em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> *closure</code></em>,
2253                                                          <em class="parameter"><code><a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *return_value</code></em>,
2254                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_param_values</code></em>,
2255                                                          <em class="parameter"><code>const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *param_values</code></em>,
2256                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> invocation_hint</code></em>,
2257                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> marshal_data</code></em>);</pre>
2258 <p>
2259 A marshaller for a <a class="link" href="gobject-Closures.html#GCClosure" title="struct GCClosure"><span class="type">GCClosure</span></a> with a callback of type
2260 <code class="literal">void (*callback) (gpointer instance, guint arg1, gpointer arg2, gpointer user_data)</code>.
2261 </p>
2262 <div class="variablelist"><table border="0">
2263 <col align="left" valign="top">
2264 <tbody>
2265 <tr>
2266 <td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td>
2267 <td>the <a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> to which the marshaller belongs</td>
2268 </tr>
2269 <tr>
2270 <td><p><span class="term"><em class="parameter"><code>return_value</code></em> :</span></p></td>
2271 <td>ignored</td>
2272 </tr>
2273 <tr>
2274 <td><p><span class="term"><em class="parameter"><code>n_param_values</code></em> :</span></p></td>
2275 <td>3</td>
2276 </tr>
2277 <tr>
2278 <td><p><span class="term"><em class="parameter"><code>param_values</code></em> :</span></p></td>
2279 <td>a <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> array holding instance, arg1 and arg2</td>
2280 </tr>
2281 <tr>
2282 <td><p><span class="term"><em class="parameter"><code>invocation_hint</code></em> :</span></p></td>
2283 <td>the invocation hint given as the last argument
2284 to <a class="link" href="gobject-Closures.html#g-closure-invoke" title="g_closure_invoke ()"><code class="function">g_closure_invoke()</code></a>
2285 </td>
2286 </tr>
2287 <tr>
2288 <td><p><span class="term"><em class="parameter"><code>marshal_data</code></em> :</span></p></td>
2289 <td>additional data specified when registering the marshaller</td>
2290 </tr>
2291 </tbody>
2292 </table></div>
2293 </div>
2294 <hr>
2295 <div class="refsect2">
2296 <a name="g-cclosure-marshal-BOOLEAN--FLAGS"></a><h3>g_cclosure_marshal_BOOLEAN__FLAGS ()</h3>
2297 <pre class="programlisting"><span class="returnvalue">void</span>                g_cclosure_marshal_BOOLEAN__FLAGS   (<em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> *closure</code></em>,
2298                                                          <em class="parameter"><code><a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *return_value</code></em>,
2299                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_param_values</code></em>,
2300                                                          <em class="parameter"><code>const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *param_values</code></em>,
2301                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> invocation_hint</code></em>,
2302                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> marshal_data</code></em>);</pre>
2303 <p>
2304 A marshaller for a <a class="link" href="gobject-Closures.html#GCClosure" title="struct GCClosure"><span class="type">GCClosure</span></a> with a callback of type
2305 <code class="literal">gboolean (*callback) (gpointer instance, gint arg1, gpointer user_data)</code> where the <a href="./../glib/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> parameter
2306 denotes a flags type.
2307 </p>
2308 <div class="variablelist"><table border="0">
2309 <col align="left" valign="top">
2310 <tbody>
2311 <tr>
2312 <td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td>
2313 <td>the <a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> to which the marshaller belongs</td>
2314 </tr>
2315 <tr>
2316 <td><p><span class="term"><em class="parameter"><code>return_value</code></em> :</span></p></td>
2317 <td>a <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> which can store the returned <a href="./../glib/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>
2318 </td>
2319 </tr>
2320 <tr>
2321 <td><p><span class="term"><em class="parameter"><code>n_param_values</code></em> :</span></p></td>
2322 <td>2</td>
2323 </tr>
2324 <tr>
2325 <td><p><span class="term"><em class="parameter"><code>param_values</code></em> :</span></p></td>
2326 <td>a <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> array holding instance and arg1</td>
2327 </tr>
2328 <tr>
2329 <td><p><span class="term"><em class="parameter"><code>invocation_hint</code></em> :</span></p></td>
2330 <td>the invocation hint given as the last argument
2331 to <a class="link" href="gobject-Closures.html#g-closure-invoke" title="g_closure_invoke ()"><code class="function">g_closure_invoke()</code></a>
2332 </td>
2333 </tr>
2334 <tr>
2335 <td><p><span class="term"><em class="parameter"><code>marshal_data</code></em> :</span></p></td>
2336 <td>additional data specified when registering the marshaller</td>
2337 </tr>
2338 </tbody>
2339 </table></div>
2340 </div>
2341 <hr>
2342 <div class="refsect2">
2343 <a name="g-cclosure-marshal-BOOL--FLAGS"></a><h3>g_cclosure_marshal_BOOL__FLAGS</h3>
2344 <pre class="programlisting">#define             g_cclosure_marshal_BOOL__FLAGS</pre>
2345 <p>
2346 Another name for <a class="link" href="gobject-Closures.html#g-cclosure-marshal-BOOLEAN--FLAGS" title="g_cclosure_marshal_BOOLEAN__FLAGS ()"><code class="function">g_cclosure_marshal_BOOLEAN__FLAGS()</code></a>.
2347 </p>
2348 </div>
2349 <hr>
2350 <div class="refsect2">
2351 <a name="g-cclosure-marshal-BOOLEAN--BOXED-BOXED"></a><h3>g_cclosure_marshal_BOOLEAN__BOXED_BOXED ()</h3>
2352 <pre class="programlisting"><span class="returnvalue">void</span>                g_cclosure_marshal_BOOLEAN__BOXED_BOXED
2353                                                         (<em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="struct GClosure"><span class="type">GClosure</span></a> *closure</code></em>,
2354                                                          <em class="parameter"><code><a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *return_value</code></em>,
2355                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_param_values</code></em>,
2356                                                          <em class="parameter"><code>const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *param_values</code></em>,
2357                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> invocation_hint</code></em>,
2358                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> marshal_data</code></em>);</pre>
2359 </div>
2360 <hr>
2361 <div class="refsect2">
2362 <a name="g-cclosure-marshal-BOOL--BOXED-BOXED"></a><h3>g_cclosure_marshal_BOOL__BOXED_BOXED</h3>
2363 <pre class="programlisting">#define             g_cclosure_marshal_BOOL__BOXED_BOXED</pre>
2364 </div>
2365 </div>
2366 </div>
2367 <div class="footer">
2368 <hr>
2369           Generated by GTK-Doc V1.18</div>
2370 </body>
2371 </html>