gobject-Closures.html   [plain text]


<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Closures</title><meta name="generator" content="DocBook XSL Stylesheets V1.65.1"><link rel="home" href="index.html" title="GObject Reference Manual"><link rel="up" href="rn01.html" title="API Reference"><link rel="previous" href="gobject-Signals.html" title="Signals"><link rel="next" href="gobject-Value-arrays.html" title="Value arrays"><link rel="preface" href="pr01.html" title="Introduction"><link rel="reference" href="rn01.html" title="API Reference"><link rel="refentry" href="gobject-Type-Information.html" title="GType"><link rel="refentry" href="GTypePlugin.html" title="GTypePlugin"><link rel="refentry" href="GTypeModule.html" title="GTypeModule"><link rel="refentry" href="gobject-The-Base-Object-Type.html" title="GObject"><link rel="refentry" href="gobject-Enumeration-and-Flag-Types.html" title="Enums and Flags"><link rel="refentry" href="gobject-Boxed-Types.html" title="GBoxed"><link rel="refentry" href="gobject-Generic-values.html" title="Generic Values"><link rel="refentry" href="gobject-Standard-Parameter-and-Value-Types.html" title="Parameters and Values"><link rel="refentry" href="gobject-Varargs-Value-Collection.html" title="Varargs Value Collection"><link rel="refentry" href="gobject-GParamSpec.html" title="GParamSpec"><link rel="refentry" href="gobject-Signals.html" title="Signals"><link rel="refentry" href="gobject-Closures.html" title="Closures"><link rel="refentry" href="gobject-Value-arrays.html" title="Value arrays"><link rel="reference" href="rn02.html" title="Tools Reference"><link rel="refentry" href="glib-mkenums.html" title="glib-mkenums"><link rel="refentry" href="glib-genmarshal.html" title="glib-genmarshal"><link rel="refentry" href="gobject-query.html" title="gobject-query"><link rel="index" href="ix01.html" title="Index"><link rel="section" href="gobject-Closures.html#id2896464" title="Description"><link rel="section" href="gobject-Closures.html#id2896639" title="Details"><meta name="generator" content="GTK-Doc V1.2 (XML mode)"><link rel="stylesheet" href="style.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="gobject-Signals.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td><td><a accesskey="u" href="rn01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td><td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td><th width="100%" align="center">GObject Reference Manual</th><td><a accesskey="n" href="gobject-Value-arrays.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td></tr></table><div class="refentry" lang="en"><a name="gobject-Closures"></a><div class="titlepage"><div></div><div></div></div><div class="refnamediv"><h2><span class="refentrytitle">Closures</span></h2><p>Closures &#8212; Functions as first-class objects</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">

#include &lt;glib-object.h&gt;


#define     <a href="gobject-Closures.html#G-CLOSURE-NEEDS-MARSHAL-CAPS">G_CLOSURE_NEEDS_MARSHAL</a>         (closure)
#define     <a href="gobject-Closures.html#G-CLOSURE-N-NOTIFIERS-CAPS">G_CLOSURE_N_NOTIFIERS</a>           (cl)
#define     <a href="gobject-Closures.html#G-CCLOSURE-SWAP-DATA-CAPS">G_CCLOSURE_SWAP_DATA</a>            (cclosure)
#define     <a href="gobject-Closures.html#G-CALLBACK-CAPS">G_CALLBACK</a>                      (f)
void        (<a href="gobject-Closures.html#GCallback">*GCallback</a>)                    (void);
struct      <a href="gobject-Closures.html#GClosure">GClosure</a>;
#define     <a href="gobject-Closures.html#G-TYPE-CLOSURE-CAPS">G_TYPE_CLOSURE</a>
struct      <a href="gobject-Closures.html#GCClosure">GCClosure</a>;
void        (<a href="gobject-Closures.html#GClosureMarshal">*GClosureMarshal</a>)              (<a href="gobject-Closures.html#GClosure">GClosure</a> *closure,
                                             <a href="gobject-Generic-values.html#GValue">GValue</a> *return_value,
                                             <a
href="../glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
                                             const <a href="gobject-Generic-values.html#GValue">GValue</a> *param_values,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);
void        (<a href="gobject-Closures.html#GClosureNotify">*GClosureNotify</a>)               (<a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> data,
                                             <a href="gobject-Closures.html#GClosure">GClosure</a> *closure);
<a href="gobject-Closures.html#GClosure">GClosure</a>*   <a href="gobject-Closures.html#g-cclosure-new">g_cclosure_new</a>                  (<a href="gobject-Closures.html#GCallback">GCallback</a> callback_func,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> user_data,
                                             <a href="gobject-Closures.html#GClosureNotify">GClosureNotify</a> destroy_data);
<a href="gobject-Closures.html#GClosure">GClosure</a>*   <a href="gobject-Closures.html#g-cclosure-new-swap">g_cclosure_new_swap</a>             (<a href="gobject-Closures.html#GCallback">GCallback</a> callback_func,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> user_data,
                                             <a href="gobject-Closures.html#GClosureNotify">GClosureNotify</a> destroy_data);
<a href="gobject-Closures.html#GClosure">GClosure</a>*   <a href="gobject-Closures.html#g-cclosure-new-object">g_cclosure_new_object</a>           (<a href="gobject-Closures.html#GCallback">GCallback</a> callback_func,
                                             <a href="gobject-The-Base-Object-Type.html#GObject">GObject</a> *object);
<a href="gobject-Closures.html#GClosure">GClosure</a>*   <a href="gobject-Closures.html#g-cclosure-new-object-swap">g_cclosure_new_object_swap</a>      (<a href="gobject-Closures.html#GCallback">GCallback</a> callback_func,
                                             <a href="gobject-The-Base-Object-Type.html#GObject">GObject</a> *object);
<a href="gobject-Closures.html#GClosure">GClosure</a>*   <a href="gobject-Closures.html#g-closure-new-object">g_closure_new_object</a>            (<a
href="../glib/glib-Basic-Types.html#guint"
>guint</a> sizeof_closure,
                                             <a href="gobject-The-Base-Object-Type.html#GObject">GObject</a> *object);
<a href="gobject-Closures.html#GClosure">GClosure</a>*   <a href="gobject-Closures.html#g-closure-ref">g_closure_ref</a>                   (<a href="gobject-Closures.html#GClosure">GClosure</a> *closure);
void        <a href="gobject-Closures.html#g-closure-sink">g_closure_sink</a>                  (<a href="gobject-Closures.html#GClosure">GClosure</a> *closure);
void        <a href="gobject-Closures.html#g-closure-unref">g_closure_unref</a>                 (<a href="gobject-Closures.html#GClosure">GClosure</a> *closure);
void        <a href="gobject-Closures.html#g-closure-invoke">g_closure_invoke</a>                (<a href="gobject-Closures.html#GClosure">GClosure</a> *closure,
                                             <a href="gobject-Generic-values.html#GValue">GValue</a> *return_value,
                                             <a
href="../glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
                                             const <a href="gobject-Generic-values.html#GValue">GValue</a> *param_values,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint);
void        <a href="gobject-Closures.html#g-closure-invalidate">g_closure_invalidate</a>            (<a href="gobject-Closures.html#GClosure">GClosure</a> *closure);
void        <a href="gobject-Closures.html#g-closure-add-finalize-notifier">g_closure_add_finalize_notifier</a> (<a href="gobject-Closures.html#GClosure">GClosure</a> *closure,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> notify_data,
                                             <a href="gobject-Closures.html#GClosureNotify">GClosureNotify</a> notify_func);
void        <a href="gobject-Closures.html#g-closure-add-invalidate-notifier">g_closure_add_invalidate_notifier</a>
                                            (<a href="gobject-Closures.html#GClosure">GClosure</a> *closure,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> notify_data,
                                             <a href="gobject-Closures.html#GClosureNotify">GClosureNotify</a> notify_func);
void        <a href="gobject-Closures.html#g-closure-remove-finalize-notifier">g_closure_remove_finalize_notifier</a>
                                            (<a href="gobject-Closures.html#GClosure">GClosure</a> *closure,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> notify_data,
                                             <a href="gobject-Closures.html#GClosureNotify">GClosureNotify</a> notify_func);
void        <a href="gobject-Closures.html#g-closure-remove-invalidate-notifier">g_closure_remove_invalidate_notifier</a>
                                            (<a href="gobject-Closures.html#GClosure">GClosure</a> *closure,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> notify_data,
                                             <a href="gobject-Closures.html#GClosureNotify">GClosureNotify</a> notify_func);
<a href="gobject-Closures.html#GClosure">GClosure</a>*   <a href="gobject-Closures.html#g-closure-new-simple">g_closure_new_simple</a>            (<a
href="../glib/glib-Basic-Types.html#guint"
>guint</a> sizeof_closure,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> data);
void        <a href="gobject-Closures.html#g-closure-set-marshal">g_closure_set_marshal</a>           (<a href="gobject-Closures.html#GClosure">GClosure</a> *closure,
                                             <a href="gobject-Closures.html#GClosureMarshal">GClosureMarshal</a> marshal);
void        <a href="gobject-Closures.html#g-closure-add-marshal-guards">g_closure_add_marshal_guards</a>    (<a href="gobject-Closures.html#GClosure">GClosure</a> *closure,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> pre_marshal_data,
                                             <a href="gobject-Closures.html#GClosureNotify">GClosureNotify</a> pre_marshal_notify,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> post_marshal_data,
                                             <a href="gobject-Closures.html#GClosureNotify">GClosureNotify</a> post_marshal_notify);
void        <a href="gobject-Closures.html#g-closure-set-meta-marshal">g_closure_set_meta_marshal</a>      (<a href="gobject-Closures.html#GClosure">GClosure</a> *closure,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data,
                                             <a href="gobject-Closures.html#GClosureMarshal">GClosureMarshal</a> meta_marshal);
void        <a href="gobject-Closures.html#g-source-set-closure">g_source_set_closure</a>            (<a
href="../glib/glib-The-Main-Event-Loop.html#GSource"
>GSource</a> *source,
                                             <a href="gobject-Closures.html#GClosure">GClosure</a> *closure);
#define     <a href="gobject-Closures.html#G-TYPE-IO-CHANNEL-CAPS">G_TYPE_IO_CHANNEL</a>
#define     <a href="gobject-Closures.html#G-TYPE-IO-CONDITION-CAPS">G_TYPE_IO_CONDITION</a>

void        <a href="gobject-Closures.html#g-cclosure-marshal-VOID--VOID">g_cclosure_marshal_VOID__VOID</a>   (<a href="gobject-Closures.html#GClosure">GClosure</a> *closure,
                                             <a href="gobject-Generic-values.html#GValue">GValue</a> *return_value,
                                             <a
href="../glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
                                             const <a href="gobject-Generic-values.html#GValue">GValue</a> *param_values,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);
void        <a href="gobject-Closures.html#g-cclosure-marshal-VOID--BOOLEAN">g_cclosure_marshal_VOID__BOOLEAN</a>
                                            (<a href="gobject-Closures.html#GClosure">GClosure</a> *closure,
                                             <a href="gobject-Generic-values.html#GValue">GValue</a> *return_value,
                                             <a
href="../glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
                                             const <a href="gobject-Generic-values.html#GValue">GValue</a> *param_values,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);
void        <a href="gobject-Closures.html#g-cclosure-marshal-VOID--CHAR">g_cclosure_marshal_VOID__CHAR</a>   (<a href="gobject-Closures.html#GClosure">GClosure</a> *closure,
                                             <a href="gobject-Generic-values.html#GValue">GValue</a> *return_value,
                                             <a
href="../glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
                                             const <a href="gobject-Generic-values.html#GValue">GValue</a> *param_values,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);
void        <a href="gobject-Closures.html#g-cclosure-marshal-VOID--UCHAR">g_cclosure_marshal_VOID__UCHAR</a>  (<a href="gobject-Closures.html#GClosure">GClosure</a> *closure,
                                             <a href="gobject-Generic-values.html#GValue">GValue</a> *return_value,
                                             <a
href="../glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
                                             const <a href="gobject-Generic-values.html#GValue">GValue</a> *param_values,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);
void        <a href="gobject-Closures.html#g-cclosure-marshal-VOID--INT">g_cclosure_marshal_VOID__INT</a>    (<a href="gobject-Closures.html#GClosure">GClosure</a> *closure,
                                             <a href="gobject-Generic-values.html#GValue">GValue</a> *return_value,
                                             <a
href="../glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
                                             const <a href="gobject-Generic-values.html#GValue">GValue</a> *param_values,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);
void        <a href="gobject-Closures.html#g-cclosure-marshal-VOID--UINT">g_cclosure_marshal_VOID__UINT</a>   (<a href="gobject-Closures.html#GClosure">GClosure</a> *closure,
                                             <a href="gobject-Generic-values.html#GValue">GValue</a> *return_value,
                                             <a
href="../glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
                                             const <a href="gobject-Generic-values.html#GValue">GValue</a> *param_values,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);
void        <a href="gobject-Closures.html#g-cclosure-marshal-VOID--LONG">g_cclosure_marshal_VOID__LONG</a>   (<a href="gobject-Closures.html#GClosure">GClosure</a> *closure,
                                             <a href="gobject-Generic-values.html#GValue">GValue</a> *return_value,
                                             <a
href="../glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
                                             const <a href="gobject-Generic-values.html#GValue">GValue</a> *param_values,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);
void        <a href="gobject-Closures.html#g-cclosure-marshal-VOID--ULONG">g_cclosure_marshal_VOID__ULONG</a>  (<a href="gobject-Closures.html#GClosure">GClosure</a> *closure,
                                             <a href="gobject-Generic-values.html#GValue">GValue</a> *return_value,
                                             <a
href="../glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
                                             const <a href="gobject-Generic-values.html#GValue">GValue</a> *param_values,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);
void        <a href="gobject-Closures.html#g-cclosure-marshal-VOID--ENUM">g_cclosure_marshal_VOID__ENUM</a>   (<a href="gobject-Closures.html#GClosure">GClosure</a> *closure,
                                             <a href="gobject-Generic-values.html#GValue">GValue</a> *return_value,
                                             <a
href="../glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
                                             const <a href="gobject-Generic-values.html#GValue">GValue</a> *param_values,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);
void        <a href="gobject-Closures.html#g-cclosure-marshal-VOID--FLAGS">g_cclosure_marshal_VOID__FLAGS</a>  (<a href="gobject-Closures.html#GClosure">GClosure</a> *closure,
                                             <a href="gobject-Generic-values.html#GValue">GValue</a> *return_value,
                                             <a
href="../glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
                                             const <a href="gobject-Generic-values.html#GValue">GValue</a> *param_values,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);
void        <a href="gobject-Closures.html#g-cclosure-marshal-VOID--FLOAT">g_cclosure_marshal_VOID__FLOAT</a>  (<a href="gobject-Closures.html#GClosure">GClosure</a> *closure,
                                             <a href="gobject-Generic-values.html#GValue">GValue</a> *return_value,
                                             <a
href="../glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
                                             const <a href="gobject-Generic-values.html#GValue">GValue</a> *param_values,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);
void        <a href="gobject-Closures.html#g-cclosure-marshal-VOID--DOUBLE">g_cclosure_marshal_VOID__DOUBLE</a> (<a href="gobject-Closures.html#GClosure">GClosure</a> *closure,
                                             <a href="gobject-Generic-values.html#GValue">GValue</a> *return_value,
                                             <a
href="../glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
                                             const <a href="gobject-Generic-values.html#GValue">GValue</a> *param_values,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);
void        <a href="gobject-Closures.html#g-cclosure-marshal-VOID--STRING">g_cclosure_marshal_VOID__STRING</a> (<a href="gobject-Closures.html#GClosure">GClosure</a> *closure,
                                             <a href="gobject-Generic-values.html#GValue">GValue</a> *return_value,
                                             <a
href="../glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
                                             const <a href="gobject-Generic-values.html#GValue">GValue</a> *param_values,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);
void        <a href="gobject-Closures.html#g-cclosure-marshal-VOID--PARAM">g_cclosure_marshal_VOID__PARAM</a>  (<a href="gobject-Closures.html#GClosure">GClosure</a> *closure,
                                             <a href="gobject-Generic-values.html#GValue">GValue</a> *return_value,
                                             <a
href="../glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
                                             const <a href="gobject-Generic-values.html#GValue">GValue</a> *param_values,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);
void        <a href="gobject-Closures.html#g-cclosure-marshal-VOID--BOXED">g_cclosure_marshal_VOID__BOXED</a>  (<a href="gobject-Closures.html#GClosure">GClosure</a> *closure,
                                             <a href="gobject-Generic-values.html#GValue">GValue</a> *return_value,
                                             <a
href="../glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
                                             const <a href="gobject-Generic-values.html#GValue">GValue</a> *param_values,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);
void        <a href="gobject-Closures.html#g-cclosure-marshal-VOID--POINTER">g_cclosure_marshal_VOID__POINTER</a>
                                            (<a href="gobject-Closures.html#GClosure">GClosure</a> *closure,
                                             <a href="gobject-Generic-values.html#GValue">GValue</a> *return_value,
                                             <a
href="../glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
                                             const <a href="gobject-Generic-values.html#GValue">GValue</a> *param_values,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);
void        <a href="gobject-Closures.html#g-cclosure-marshal-VOID--OBJECT">g_cclosure_marshal_VOID__OBJECT</a> (<a href="gobject-Closures.html#GClosure">GClosure</a> *closure,
                                             <a href="gobject-Generic-values.html#GValue">GValue</a> *return_value,
                                             <a
href="../glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
                                             const <a href="gobject-Generic-values.html#GValue">GValue</a> *param_values,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);
void        <a href="gobject-Closures.html#g-cclosure-marshal-STRING--OBJECT-POINTER">g_cclosure_marshal_STRING__OBJECT_POINTER</a>
                                            (<a href="gobject-Closures.html#GClosure">GClosure</a> *closure,
                                             <a href="gobject-Generic-values.html#GValue">GValue</a> *return_value,
                                             <a
href="../glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
                                             const <a href="gobject-Generic-values.html#GValue">GValue</a> *param_values,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);
void        <a href="gobject-Closures.html#g-cclosure-marshal-VOID--UINT-POINTER">g_cclosure_marshal_VOID__UINT_POINTER</a>
                                            (<a href="gobject-Closures.html#GClosure">GClosure</a> *closure,
                                             <a href="gobject-Generic-values.html#GValue">GValue</a> *return_value,
                                             <a
href="../glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
                                             const <a href="gobject-Generic-values.html#GValue">GValue</a> *param_values,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);
void        <a href="gobject-Closures.html#g-cclosure-marshal-BOOLEAN--FLAGS">g_cclosure_marshal_BOOLEAN__FLAGS</a>
                                            (<a href="gobject-Closures.html#GClosure">GClosure</a> *closure,
                                             <a href="gobject-Generic-values.html#GValue">GValue</a> *return_value,
                                             <a
href="../glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
                                             const <a href="gobject-Generic-values.html#GValue">GValue</a> *param_values,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);
#define     <a href="gobject-Closures.html#g-cclosure-marshal-BOOL--FLAGS">g_cclosure_marshal_BOOL__FLAGS</a>

</pre></div><div class="refsect1" lang="en"><a name="id2896464"></a><h2>Description</h2><p>
A <a href="gobject-Closures.html#GClosure"><span class="type">GClosure</span></a> represents a callback supplied by the programmer. It will generally
comprise a function of some kind and a marshaller used to call it. It is the 
reponsibility of the marshaller to convert the arguments for the invocation 
from <a href="gobject-Generic-values.html#GValue"><span class="type">GValue</span></a>s into a suitable form, perform the callback on the 
converted arguments, and transform the return value back into a <a href="gobject-Generic-values.html#GValue"><span class="type">GValue</span></a>.
</p><p>
In the case of C programs, a closure usually just holds a pointer to a function
and maybe a data argument, and the marshaller converts between <a href="gobject-Generic-values.html#GValue"><span class="type">GValue</span></a>
and native C types. The GObject library provides the <a href="gobject-Closures.html#GCClosure"><span class="type">GCClosure</span></a> type for this
purpose. Bindings for other languages need marshallers which 
convert between <a href="gobject-Generic-values.html#GValue"><span class="type">GValue</span></a>s and suitable representations in the runtime
of the language in order to use functions written in that languages as 
callbacks.
</p><p>
Within GObject, closures play an important role in the implementation of 
signals. When a signal is registered, the <i class="parameter"><tt>c_marshaller</tt></i> argument to 
<a href="gobject-Signals.html#g-signal-new"><tt class="function">g_signal_new()</tt></a> specifies the default C marshaller for any closure which is 
connected to this signal. GObject provides a number of C marshallers  
for this purpose, see the g_cclosure_marshal_*() functions. Additional
C marshallers can be generated with the <a href="glib-genmarshal.html" title="glib-genmarshal">glib-genmarshal</a> utility.
Closures can be explicitly connected to signals with 
<a href="gobject-Signals.html#g-signal-connect-closure"><tt class="function">g_signal_connect_closure()</tt></a>, but it usually more convenient to let GObject 
create a closure automatically by using one of the g_signal_connect_*() 
functions which take a callback function/user data pair.
</p><p>
Using closures has a number of important advantages over a simple
callback function/data pointer combination:
</p><div class="itemizedlist"><ul type="disc"><li><p>
Closures allow the callee to get the types of the callback parameters, 
which means that language bindings don't have to write individual glue 
for each callback type.
</p></li><li><p>
The reference counting of <a href="gobject-Closures.html#GClosure"><span class="type">GClosure</span></a> makes it easy to handle reentrancy 
right; if a callback is removed while it is being invoked, the closure 
and it's parameters won't be freed until the invocation finishes. 
</p></li><li><p>
<a href="gobject-Closures.html#g-closure-invalidate"><tt class="function">g_closure_invalidate()</tt></a> and invalidation notifiers allow callbacks to be
automatically removed when the objects they point to go away.
</p></li></ul></div><p>
</p></div><div class="refsect1" lang="en"><a name="id2896639"></a><h2>Details</h2><div class="refsect2" lang="en"><a name="id2896645"></a><h3><a name="G-CLOSURE-NEEDS-MARSHAL-CAPS"></a>G_CLOSURE_NEEDS_MARSHAL()</h3><a class="indexterm" name="id2896658"></a><pre class="programlisting">#define	G_CLOSURE_NEEDS_MARSHAL(closure) (((GClosure*) (closure))-&gt;marshal == NULL)
</pre><p>
Returns <tt class="literal">TRUE</tt> if a <a href="gobject-Closures.html#GClosureMarshal"><span class="type">GClosureMarshal</span></a> marshaller has not yet been set on 
<i class="parameter"><tt>closure</tt></i>. See <a href="gobject-Closures.html#g-closure-set-marshal"><tt class="function">g_closure_set_marshal()</tt></a>.
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>closure</tt></i> :</span></td><td>a <a href="gobject-Closures.html#GClosure"><span class="type">GClosure</span></a>


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2896732"></a><h3><a name="G-CLOSURE-N-NOTIFIERS-CAPS"></a>G_CLOSURE_N_NOTIFIERS()</h3><a class="indexterm" name="id2896744"></a><pre class="programlisting">#define     G_CLOSURE_N_NOTIFIERS(cl)</pre><p>
Returns the total number of notifiers connected with the closure <i class="parameter"><tt>cl</tt></i>. 
The count includes the meta marshaller, the finalize and invalidate notifiers 
and the marshal guards. Note that each guard counts as two notifiers. 
See <a href="gobject-Closures.html#g-closure-set-meta-marshal"><tt class="function">g_closure_set_meta_marshal()</tt></a>, <a href="gobject-Closures.html#g-closure-add-finalize-notifier"><tt class="function">g_closure_add_finalize_notifier()</tt></a>,
<a href="gobject-Closures.html#g-closure-add-invalidate-notifier"><tt class="function">g_closure_add_invalidate_notifier()</tt></a> and <a href="gobject-Closures.html#g-closure-add-marshal-guards"><tt class="function">g_closure_add_marshal_guards()</tt></a>.
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>cl</tt></i> :</span></td><td>a <a href="gobject-Closures.html#GClosure"><span class="type">GClosure</span></a>


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2896839"></a><h3><a name="G-CCLOSURE-SWAP-DATA-CAPS"></a>G_CCLOSURE_SWAP_DATA()</h3><a class="indexterm" name="id2896850"></a><pre class="programlisting">#define	G_CCLOSURE_SWAP_DATA(cclosure)	 (((GClosure*) (closure))-&gt;derivative_flag)
</pre><p>
Returns whether the user data of the <a href="gobject-Closures.html#GCClosure"><span class="type">GCClosure</span></a> should be passed as the
first parameter to the callback. See <a href="gobject-Closures.html#g-cclosure-new-swap"><tt class="function">g_cclosure_new_swap()</tt></a>.
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>cclosure</tt></i> :</span></td><td>a <a href="gobject-Closures.html#GCClosure"><span class="type">GCClosure</span></a>


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2896913"></a><h3><a name="G-CALLBACK-CAPS"></a>G_CALLBACK()</h3><a class="indexterm" name="id2896924"></a><pre class="programlisting">#define	G_CALLBACK(f)			 ((GCallback) (f))
</pre><p>
Cast a function pointer to a <a href="gobject-Closures.html#GCallback"><span class="type">GCallback</span></a>.
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>f</tt></i> :</span></td><td>a function pointer.


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2896966"></a><h3><a name="GCallback"></a>GCallback ()</h3><a class="indexterm" name="id2896977"></a><pre class="programlisting">void        (*GCallback)                    (void);</pre><p>
The type used for callback functions in structure definitions and function 
signatures. This doesn't mean that all callback functions must take no 
parameters and return void. The required signature of a callback function 
is determined by the context in which is used (e.g. the signal to which it 
is connected). Use <a href="gobject-Closures.html#G-CALLBACK-CAPS"><tt class="function">G_CALLBACK()</tt></a> to cast the callback function to a <a href="gobject-Closures.html#GCallback"><span class="type">GCallback</span></a>. 
</p></div><hr><div class="refsect2" lang="en"><a name="id2897022"></a><h3><a name="GClosure"></a>struct GClosure</h3><a class="indexterm" name="id2897033"></a><pre class="programlisting">struct GClosure {


};
</pre><p>
A <a href="gobject-Closures.html#GClosure"><span class="type">GClosure</span></a> represents a callback supplied by the programmer.
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><a
href="../glib/glib-Basic-Types.html#guint"
>guint</a> <i class="structfield"><tt>in_marshal</tt></i> : 1</span></td><td>Indicates whether the closure is currently being invoked with 
  <a href="gobject-Closures.html#g-closure-invoke"><tt class="function">g_closure_invoke()</tt></a>
</td></tr><tr><td><span class="term"><a
href="../glib/glib-Basic-Types.html#guint"
>guint</a> <i class="structfield"><tt>is_invalid</tt></i> : 1</span></td><td>Indicates whether the closure has been invalidated by 
  <a href="gobject-Closures.html#g-closure-invalidate"><tt class="function">g_closure_invalidate()</tt></a>

</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2897124"></a><h3><a name="G-TYPE-CLOSURE-CAPS"></a>G_TYPE_CLOSURE</h3><a class="indexterm" name="id2897135"></a><pre class="programlisting">#define	G_TYPE_CLOSURE		(g_closure_get_type ())
</pre><p>
The <a href="gobject-Type-Information.html#GType"><span class="type">GType</span></a> for <a href="gobject-Closures.html#GClosure"><span class="type">GClosure</span></a>.
</p></div><hr><div class="refsect2" lang="en"><a name="id2897167"></a><h3><a name="GCClosure"></a>struct GCClosure</h3><a class="indexterm" name="id2897177"></a><pre class="programlisting">struct GCClosure {

  GClosure	closure;
  gpointer	callback;
};
</pre><p>
A <a href="gobject-Closures.html#GCClosure"><span class="type">GCClosure</span></a> is a specialization of <a href="gobject-Closures.html#GClosure"><span class="type">GClosure</span></a> for C function callbacks.
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><a href="gobject-Closures.html#GClosure">GClosure</a> <i class="structfield"><tt>closure</tt></i></span></td><td>the <a href="gobject-Closures.html#GClosure"><span class="type">GClosure</span></a>
</td></tr><tr><td><span class="term"><a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> <i class="structfield"><tt>callback</tt></i></span></td><td>the callback function

</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2897260"></a><h3><a name="GClosureMarshal"></a>GClosureMarshal ()</h3><a class="indexterm" name="id2897271"></a><pre class="programlisting">void        (*GClosureMarshal)              (<a href="gobject-Closures.html#GClosure">GClosure</a> *closure,
                                             <a href="gobject-Generic-values.html#GValue">GValue</a> *return_value,
                                             <a
href="../glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
                                             const <a href="gobject-Generic-values.html#GValue">GValue</a> *param_values,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);</pre><p>
The type used for marshaller functions.
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>closure</tt></i> :</span></td><td>the <a href="gobject-Closures.html#GClosure"><span class="type">GClosure</span></a> to which the marshaller belongs
</td></tr><tr><td><span class="term"><i class="parameter"><tt>return_value</tt></i> :</span></td><td>a <a href="gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> to store the return value. May be <tt class="literal">NULL</tt> if the
  callback of <i class="parameter"><tt>closure</tt></i> doesn't return a value.
</td></tr><tr><td><span class="term"><i class="parameter"><tt>n_param_values</tt></i> :</span></td><td>the length of the <i class="parameter"><tt>param_values</tt></i> array
</td></tr><tr><td><span class="term"><i class="parameter"><tt>param_values</tt></i> :</span></td><td>an array of <a href="gobject-Generic-values.html#GValue"><span class="type">GValue</span></a>s holding the arguments on
  which to invoke the callback of <i class="parameter"><tt>closure</tt></i>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>invocation_hint</tt></i> :</span></td><td>the invocation hint given as the the last argument
  to <a href="gobject-Closures.html#g-closure-invoke"><tt class="function">g_closure_invoke()</tt></a>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>marshal_data</tt></i> :</span></td><td>additional data specified when registering the marshaller,
  see <a href="gobject-Closures.html#g-closure-set-marshal"><tt class="function">g_closure_set_marshal()</tt></a> and <a href="gobject-Closures.html#g-closure-set-meta-marshal"><tt class="function">g_closure_set_meta_marshal()</tt></a>


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2897513"></a><h3><a name="GClosureNotify"></a>GClosureNotify ()</h3><a class="indexterm" name="id2897523"></a><pre class="programlisting">void        (*GClosureNotify)               (<a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> data,
                                             <a href="gobject-Closures.html#GClosure">GClosure</a> *closure);</pre><p>
The type used for the various notification callbacks which can be registered
on closures.
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>data</tt></i> :</span></td><td>data specified when registering the notification callback
</td></tr><tr><td><span class="term"><i class="parameter"><tt>closure</tt></i> :</span></td><td>the <a href="gobject-Closures.html#GClosure"><span class="type">GClosure</span></a> on which the notification is emitted


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2897602"></a><h3><a name="g-cclosure-new"></a>g_cclosure_new ()</h3><a class="indexterm" name="id2897613"></a><pre class="programlisting"><a href="gobject-Closures.html#GClosure">GClosure</a>*   g_cclosure_new                  (<a href="gobject-Closures.html#GCallback">GCallback</a> callback_func,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> user_data,
                                             <a href="gobject-Closures.html#GClosureNotify">GClosureNotify</a> destroy_data);</pre><p>
Creates a new closure which invokes <i class="parameter"><tt>callback_func</tt></i> with <i class="parameter"><tt>user_data</tt></i> as 
the last parameter. 
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>callback_func</tt></i> :</span></td><td>the function to invoke
</td></tr><tr><td><span class="term"><i class="parameter"><tt>user_data</tt></i> :</span></td><td>user data to pass to <i class="parameter"><tt>callback_func</tt></i>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>destroy_data</tt></i> :</span></td><td>destroy notify to be called when <i class="parameter"><tt>user_data</tt></i> is no longer used
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>a new <a href="gobject-Closures.html#GCClosure"><span class="type">GCClosure</span></a>


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2897747"></a><h3><a name="g-cclosure-new-swap"></a>g_cclosure_new_swap ()</h3><a class="indexterm" name="id2897758"></a><pre class="programlisting"><a href="gobject-Closures.html#GClosure">GClosure</a>*   g_cclosure_new_swap             (<a href="gobject-Closures.html#GCallback">GCallback</a> callback_func,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> user_data,
                                             <a href="gobject-Closures.html#GClosureNotify">GClosureNotify</a> destroy_data);</pre><p>
Creates a new closure which invokes <i class="parameter"><tt>callback_func</tt></i> with <i class="parameter"><tt>user_data</tt></i> as 
the first parameter. 
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>callback_func</tt></i> :</span></td><td>the function to invoke
</td></tr><tr><td><span class="term"><i class="parameter"><tt>user_data</tt></i> :</span></td><td>user data to pass to <i class="parameter"><tt>callback_func</tt></i>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>destroy_data</tt></i> :</span></td><td>destroy notify to be called when <i class="parameter"><tt>user_data</tt></i> is no longer used
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>a new <a href="gobject-Closures.html#GCClosure"><span class="type">GCClosure</span></a>


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2897892"></a><h3><a name="g-cclosure-new-object"></a>g_cclosure_new_object ()</h3><a class="indexterm" name="id2897904"></a><pre class="programlisting"><a href="gobject-Closures.html#GClosure">GClosure</a>*   g_cclosure_new_object           (<a href="gobject-Closures.html#GCallback">GCallback</a> callback_func,
                                             <a href="gobject-The-Base-Object-Type.html#GObject">GObject</a> *object);</pre><p>
A variant of <a href="gobject-Closures.html#g-cclosure-new"><tt class="function">g_cclosure_new()</tt></a> which uses <i class="parameter"><tt>object</tt></i> as <i class="parameter"><tt>user_data</tt></i> and calls 
<a href="gobject-The-Base-Object-Type.html#g-object-watch-closure"><tt class="function">g_object_watch_closure()</tt></a> on <i class="parameter"><tt>object</tt></i> and the created closure. This function 
is useful when you have a callback closely associated with a <a href="gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a>,
and want the callback to no longer run after the object is is freed.
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>callback_func</tt></i> :</span></td><td>the function to invoke
</td></tr><tr><td><span class="term"><i class="parameter"><tt>object</tt></i> :</span></td><td>a <a href="gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> pointer to pass to <i class="parameter"><tt>callback_func</tt></i>
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>a new <a href="gobject-Closures.html#GCClosure"><span class="type">GCClosure</span></a>


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2898055"></a><h3><a name="g-cclosure-new-object-swap"></a>g_cclosure_new_object_swap ()</h3><a class="indexterm" name="id2898067"></a><pre class="programlisting"><a href="gobject-Closures.html#GClosure">GClosure</a>*   g_cclosure_new_object_swap      (<a href="gobject-Closures.html#GCallback">GCallback</a> callback_func,
                                             <a href="gobject-The-Base-Object-Type.html#GObject">GObject</a> *object);</pre><p>
A variant of <a href="gobject-Closures.html#g-cclosure-new-swap"><tt class="function">g_cclosure_new_swap()</tt></a> which uses <i class="parameter"><tt>object</tt></i> as <i class="parameter"><tt>user_data</tt></i> and calls 
<a href="gobject-The-Base-Object-Type.html#g-object-watch-closure"><tt class="function">g_object_watch_closure()</tt></a> on <i class="parameter"><tt>object</tt></i> and the created closure. This function 
is useful when you have a callback closely associated with a <a href="gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a>,
and want the callback to no longer run after the object is is freed.
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>callback_func</tt></i> :</span></td><td>the function to invoke
</td></tr><tr><td><span class="term"><i class="parameter"><tt>object</tt></i> :</span></td><td>a <a href="gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> pointer to pass to <i class="parameter"><tt>callback_func</tt></i>
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>a new <a href="gobject-Closures.html#GCClosure"><span class="type">GCClosure</span></a>


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2898218"></a><h3><a name="g-closure-new-object"></a>g_closure_new_object ()</h3><a class="indexterm" name="id2898229"></a><pre class="programlisting"><a href="gobject-Closures.html#GClosure">GClosure</a>*   g_closure_new_object            (<a
href="../glib/glib-Basic-Types.html#guint"
>guint</a> sizeof_closure,
                                             <a href="gobject-The-Base-Object-Type.html#GObject">GObject</a> *object);</pre><p>
A variant of <a href="gobject-Closures.html#g-closure-new-simple"><tt class="function">g_closure_new_simple()</tt></a> which stores <i class="parameter"><tt>object</tt></i> in the <i class="parameter"><tt>data</tt></i>
field of the closure and calls <a href="gobject-The-Base-Object-Type.html#g-object-watch-closure"><tt class="function">g_object_watch_closure()</tt></a> on <i class="parameter"><tt>object</tt></i> and the 
created closure. This function is mainly useful when implementing new types 
of closures.
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>sizeof_closure</tt></i> :</span></td><td>the size of the structure to allocate, must be at least 
<tt class="literal">sizeof (GClosure)</tt>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>object</tt></i> :</span></td><td>a <a href="gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> pointer to store in the <i class="parameter"><tt>data</tt></i> field of the newly 
  allocated <a href="gobject-Closures.html#GClosure"><span class="type">GClosure</span></a>
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>a newly allocated <a href="gobject-Closures.html#GClosure"><span class="type">GClosure</span></a>


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2898387"></a><h3><a name="g-closure-ref"></a>g_closure_ref ()</h3><a class="indexterm" name="id2898398"></a><pre class="programlisting"><a href="gobject-Closures.html#GClosure">GClosure</a>*   g_closure_ref                   (<a href="gobject-Closures.html#GClosure">GClosure</a> *closure);</pre><p>
Increments the reference count on a closure to force it staying
alive while the caller holds a pointer to it.
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>closure</tt></i> :</span></td><td><a href="gobject-Closures.html#GClosure"><span class="type">GClosure</span></a> to increment the reference count on
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>The <i class="parameter"><tt>closure</tt></i> passed in, for convenience


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2898470"></a><h3><a name="g-closure-sink"></a>g_closure_sink ()</h3><a class="indexterm" name="id2898481"></a><pre class="programlisting">void        g_closure_sink                  (<a href="gobject-Closures.html#GClosure">GClosure</a> *closure);</pre><p>
Takes over the initial ownership of a closure.
Each closure is initially created in a<i class="firstterm">floating</i> state, 
which means that the initial reference count is not owned by any caller. 
<a href="gobject-Closures.html#g-closure-sink"><tt class="function">g_closure_sink()</tt></a> checks to see if the object is still floating, and if so, 
unsets the floating state and decreases the reference count. If the closure 
is not floating, <a href="gobject-Closures.html#g-closure-sink"><tt class="function">g_closure_sink()</tt></a> does nothing. The reason for the existance 
of the floating state is to prevent cumbersome code sequences like: 
</p><pre class="programlisting">
closure = g_cclosure_new (cb_func, cb_data); 
g_source_set_closure (source, closure); 
g_closure_unref (closure); /* XXX GObject doesn't really need this */
</pre><p>
Because <a href="gobject-Closures.html#g-source-set-closure"><tt class="function">g_source_set_closure()</tt></a> (and similar functions) take ownership of the 
initial reference count, if it is unowned, we instead can write: 
</p><pre class="programlisting">
g_source_set_closure (source, g_cclosure_new (cb_func, cb_data));
</pre><p>
</p><p>
Generally, this function is used together with <a href="gobject-Closures.html#g-closure-ref"><tt class="function">g_closure_ref()</tt></a>. Ane example 
of storing a closure for later notification looks like:
</p><div class="informalexample"><pre class="programlisting">
static GClosure *notify_closure = NULL;
void
foo_notify_set_closure (GClosure *closure)
{
  if (notify_closure)
    g_closure_unref (notify_closure);
  notify_closure = closure;
  if (notify_closure)
    {
      g_closure_ref (notify_closure);
      g_closure_sink (notify_closure);
    }
}
</pre></div><p>
</p><p>
Because <a href="gobject-Closures.html#g-closure-sink"><tt class="function">g_closure_sink()</tt></a> may decrement the reference count of a closure
(if it hasn't been called on <i class="parameter"><tt>closure</tt></i> yet) just like <a href="gobject-Closures.html#g-closure-unref"><tt class="function">g_closure_unref()</tt></a>,
<a href="gobject-Closures.html#g-closure-ref"><tt class="function">g_closure_ref()</tt></a> should be called prior to this function.
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>closure</tt></i> :</span></td><td><a href="gobject-Closures.html#GClosure"><span class="type">GClosure</span></a> to decrement the initial reference count on, if it's
          still being held


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2898666"></a><h3><a name="g-closure-unref"></a>g_closure_unref ()</h3><a class="indexterm" name="id2898677"></a><pre class="programlisting">void        g_closure_unref                 (<a href="gobject-Closures.html#GClosure">GClosure</a> *closure);</pre><p>
Decrements the reference count of a closure after it was previously 
incremented by the same caller. If no other callers are using the closure,
then the closure will be destroyed and freed.
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>closure</tt></i> :</span></td><td><a href="gobject-Closures.html#GClosure"><span class="type">GClosure</span></a> to decrement the reference count on


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2898734"></a><h3><a name="g-closure-invoke"></a>g_closure_invoke ()</h3><a class="indexterm" name="id2898745"></a><pre class="programlisting">void        g_closure_invoke                (<a href="gobject-Closures.html#GClosure">GClosure</a> *closure,
                                             <a href="gobject-Generic-values.html#GValue">GValue</a> *return_value,
                                             <a
href="../glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
                                             const <a href="gobject-Generic-values.html#GValue">GValue</a> *param_values,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint);</pre><p>
Invokes the closure, i.e. executes the callback represented by the <i class="parameter"><tt>closure</tt></i>.
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>closure</tt></i> :</span></td><td>a <a href="gobject-Closures.html#GClosure"><span class="type">GClosure</span></a>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>return_value</tt></i> :</span></td><td>a <a href="gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> to store the return value. May be <tt class="literal">NULL</tt> if the
  callback of <i class="parameter"><tt>closure</tt></i> doesn't return a value.
</td></tr><tr><td><span class="term"><i class="parameter"><tt>n_param_values</tt></i> :</span></td><td>the length of the <i class="parameter"><tt>param_values</tt></i> array
</td></tr><tr><td><span class="term"><i class="parameter"><tt>param_values</tt></i> :</span></td><td>an array of <a href="gobject-Generic-values.html#GValue"><span class="type">GValue</span></a>s holding the arguments on
  which to invoke the callback of <i class="parameter"><tt>closure</tt></i>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>invocation_hint</tt></i> :</span></td><td>a context-dependent invocation hint


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2898936"></a><h3><a name="g-closure-invalidate"></a>g_closure_invalidate ()</h3><a class="indexterm" name="id2898947"></a><pre class="programlisting">void        g_closure_invalidate            (<a href="gobject-Closures.html#GClosure">GClosure</a> *closure);</pre><p>
Sets a flag on the closure to indicate that it's calling environment has 
become invalid, and thus causes any future invocations of <a href="gobject-Closures.html#g-closure-invoke"><tt class="function">g_closure_invoke()</tt></a> 
on this <i class="parameter"><tt>closure</tt></i> to be ignored. Also, invalidation notifiers installed on 
the closure will be called at this point. Note that unless you are holding 
a reference to the closure yourself, the invalidation notifiers may unref 
the closure and cause it to be destroyed, so if you need to access the 
closure after calling <a href="gobject-Closures.html#g-closure-invalidate"><tt class="function">g_closure_invalidate()</tt></a>, make sure that you've 
previously called <a href="gobject-Closures.html#g-closure-ref"><tt class="function">g_closure_ref()</tt></a>.
</p><p>
Note that <a href="gobject-Closures.html#g-closure-invalidate"><tt class="function">g_closure_invalidate()</tt></a> will also be called when the reference count
of a closure drops to zero (unless it has already been invalidated before).
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>closure</tt></i> :</span></td><td>GClosure to invalidate


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2899056"></a><h3><a name="g-closure-add-finalize-notifier"></a>g_closure_add_finalize_notifier ()</h3><a class="indexterm" name="id2899068"></a><pre class="programlisting">void        g_closure_add_finalize_notifier (<a href="gobject-Closures.html#GClosure">GClosure</a> *closure,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> notify_data,
                                             <a href="gobject-Closures.html#GClosureNotify">GClosureNotify</a> notify_func);</pre><p>
Registers a finalization notifier which will be called when the reference
count of <i class="parameter"><tt>closure</tt></i> goes down to 0. Multiple finalization notifiers on a 
single closure are invoked in unspecified order. If a single call to 
<a href="gobject-Closures.html#g-closure-unref"><tt class="function">g_closure_unref()</tt></a> results in the closure being both invalidated and 
finalized, then the invalidate notifiers will be run before the finalize 
notifiers.
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>closure</tt></i> :</span></td><td>a <a href="gobject-Closures.html#GClosure"><span class="type">GClosure</span></a>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>notify_data</tt></i> :</span></td><td>data to pass to <i class="parameter"><tt>notify_func</tt></i>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>notify_func</tt></i> :</span></td><td>the callback function to register


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2899194"></a><h3><a name="g-closure-add-invalidate-notifier"></a>g_closure_add_invalidate_notifier ()</h3><a class="indexterm" name="id2899207"></a><pre class="programlisting">void        g_closure_add_invalidate_notifier
                                            (<a href="gobject-Closures.html#GClosure">GClosure</a> *closure,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> notify_data,
                                             <a href="gobject-Closures.html#GClosureNotify">GClosureNotify</a> notify_func);</pre><p>
Registers an invalidation notifier which will be called when the <i class="parameter"><tt>closure</tt></i>
is invalidated with <a href="gobject-Closures.html#g-closure-invalidate"><tt class="function">g_closure_invalidate()</tt></a>. Invalidation notifiers are 
invoked before finalization notifiers, in an unspecified order.
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>closure</tt></i> :</span></td><td>a <a href="gobject-Closures.html#GClosure"><span class="type">GClosure</span></a>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>notify_data</tt></i> :</span></td><td>data to pass to <i class="parameter"><tt>notify_func</tt></i>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>notify_func</tt></i> :</span></td><td>the callback function to register


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2899331"></a><h3><a name="g-closure-remove-finalize-notifier"></a>g_closure_remove_finalize_notifier ()</h3><a class="indexterm" name="id2899344"></a><pre class="programlisting">void        g_closure_remove_finalize_notifier
                                            (<a href="gobject-Closures.html#GClosure">GClosure</a> *closure,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> notify_data,
                                             <a href="gobject-Closures.html#GClosureNotify">GClosureNotify</a> notify_func);</pre><p>
Removes a finalization notifier. Notifiers are automatically removed after
they are run.
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>closure</tt></i> :</span></td><td>a <a href="gobject-Closures.html#GClosure"><span class="type">GClosure</span></a>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>notify_data</tt></i> :</span></td><td>data which was passed to <a href="gobject-Closures.html#g-closure-add-finalize-notifier"><tt class="function">g_closure_add_finalize_notifier()</tt></a>
 when registering <i class="parameter"><tt>notify_func</tt></i>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>notify_func</tt></i> :</span></td><td>the callback function to remove


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2899461"></a><h3><a name="g-closure-remove-invalidate-notifier"></a>g_closure_remove_invalidate_notifier ()</h3><a class="indexterm" name="id2899474"></a><pre class="programlisting">void        g_closure_remove_invalidate_notifier
                                            (<a href="gobject-Closures.html#GClosure">GClosure</a> *closure,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> notify_data,
                                             <a href="gobject-Closures.html#GClosureNotify">GClosureNotify</a> notify_func);</pre><p>
Removes a invalidation notifier. Notifiers are automatically removed after
they are run.
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>closure</tt></i> :</span></td><td>a <a href="gobject-Closures.html#GClosure"><span class="type">GClosure</span></a>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>notify_data</tt></i> :</span></td><td>data which was passed to <a href="gobject-Closures.html#g-closure-add-invalidate-notifier"><tt class="function">g_closure_add_invalidate_notifier()</tt></a>
 when registering <i class="parameter"><tt>notify_func</tt></i>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>notify_func</tt></i> :</span></td><td>the callback function to remove


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2899592"></a><h3><a name="g-closure-new-simple"></a>g_closure_new_simple ()</h3><a class="indexterm" name="id2899603"></a><pre class="programlisting"><a href="gobject-Closures.html#GClosure">GClosure</a>*   g_closure_new_simple            (<a
href="../glib/glib-Basic-Types.html#guint"
>guint</a> sizeof_closure,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> data);</pre><p>
Allocates a struct of the given size and initializes the initial part
as a <a href="gobject-Closures.html#GClosure"><span class="type">GClosure</span></a>. This function is mainly useful when implementing new types 
of closures.
</p><div class="informalexample"><pre class="programlisting">
typedef struct _MyClosure MyClosure;
struct _MyClosure 
{
  GClosure closure;
  /* extra data goes here */
};
    

static void
my_closure_finalize (gpointer  notify_data, 
                     GClosure *closure)
{
  MyClosure *my_closure = (MyClosure *)closure;

  /* free extra data here */
}

MyClosure *my_closure_new (gpointer data)
{
  GClosure *closure;
  MyClosure *my_closure;
  
  closure = g_closure_new_simple (sizeof (MyClosure), data);
  my_closure = (MyClosure *) closure;

  / initialize extra data here */

  g_closure_add_finalize_notifier (closure, notify_data,
                                   my_closure_finalize);
  return my_closure;
}
</pre></div><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>sizeof_closure</tt></i> :</span></td><td>the size of the structure to allocate, must be at least 
<tt class="literal">sizeof (GClosure)</tt>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>data</tt></i> :</span></td><td>data to store in the <i class="parameter"><tt>data</tt></i> field of the newly allocated <a href="gobject-Closures.html#GClosure"><span class="type">GClosure</span></a>
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>a newly allocated <a href="gobject-Closures.html#GClosure"><span class="type">GClosure</span></a>


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2899741"></a><h3><a name="g-closure-set-marshal"></a>g_closure_set_marshal ()</h3><a class="indexterm" name="id2899752"></a><pre class="programlisting">void        g_closure_set_marshal           (<a href="gobject-Closures.html#GClosure">GClosure</a> *closure,
                                             <a href="gobject-Closures.html#GClosureMarshal">GClosureMarshal</a> marshal);</pre><p>
Sets the marshaller of <i class="parameter"><tt>closure</tt></i>. The <i class="parameter"><tt>marshal_data</tt></i> provides a way for a 
meta marshaller to provide additional information to the marshaller. 
(See <a href="gobject-Closures.html#g-closure-set-meta-marshal"><tt class="function">g_closure_set_meta_marshal()</tt></a>.) For GObject's C predefined marshallers
(the g_cclosure_marshal_*() functions), what it provides is a callback 
function to use instead of <i class="parameter"><tt>closure-&gt;callback</tt></i>.
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>closure</tt></i> :</span></td><td>a <a href="gobject-Closures.html#GClosure"><span class="type">GClosure</span></a>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>marshal</tt></i> :</span></td><td>a <a href="gobject-Closures.html#GClosureMarshal"><span class="type">GClosureMarshal</span></a> function


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2899870"></a><h3><a name="g-closure-add-marshal-guards"></a>g_closure_add_marshal_guards ()</h3><a class="indexterm" name="id2899882"></a><pre class="programlisting">void        g_closure_add_marshal_guards    (<a href="gobject-Closures.html#GClosure">GClosure</a> *closure,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> pre_marshal_data,
                                             <a href="gobject-Closures.html#GClosureNotify">GClosureNotify</a> pre_marshal_notify,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> post_marshal_data,
                                             <a href="gobject-Closures.html#GClosureNotify">GClosureNotify</a> post_marshal_notify);</pre><p>
Adds a pair of notifiers which get invoked before and after the closure 
callback, respectively. This is typically used to protect the extra arguments
for the duration of the callback. See <a href="gobject-The-Base-Object-Type.html#g-object-watch-closure"><tt class="function">g_object_watch_closure()</tt></a> for an
example of marshal guards.
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>closure</tt></i> :</span></td><td>a <a href="gobject-Closures.html#GClosure"><span class="type">GClosure</span></a>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>pre_marshal_data</tt></i> :</span></td><td>data to pass to <i class="parameter"><tt>pre_marshal_notify</tt></i>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>pre_marshal_notify</tt></i> :</span></td><td>a function to call before the closure callback
</td></tr><tr><td><span class="term"><i class="parameter"><tt>post_marshal_data</tt></i> :</span></td><td>data to pass to <i class="parameter"><tt>post_marshal_notify</tt></i>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>post_marshal_notify</tt></i> :</span></td><td>a function to call after the closure callback


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2900052"></a><h3><a name="g-closure-set-meta-marshal"></a>g_closure_set_meta_marshal ()</h3><a class="indexterm" name="id2900064"></a><pre class="programlisting">void        g_closure_set_meta_marshal      (<a href="gobject-Closures.html#GClosure">GClosure</a> *closure,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data,
                                             <a href="gobject-Closures.html#GClosureMarshal">GClosureMarshal</a> meta_marshal);</pre><p>
Sets the meta marshaller of <i class="parameter"><tt>closure</tt></i>. 
A meta marshaller wraps <i class="parameter"><tt>closure-&gt;marshal</tt></i> and modifies the way it is called 
in some fashion. The most common use of this facility is for C callbacks. 
The same marshallers (generated by 
<a href="glib-genmarshal.html" title="glib-genmarshal">glib-genmarshal</a>) are used everywhere,
but the way that we get the callback function differs. In most cases we want 
to use <i class="parameter"><tt>closure-&gt;callback</tt></i>, but in other cases we want to use use some 
different technique to retrieve the callbakc function.
</p><p>
For example, class closures for signals (see <a href="gobject-Signals.html#g-signal-type-cclosure-new"><tt class="function">g_signal_type_cclosure_new()</tt></a>) 
retrieve the callback function from a fixed offset in the class structure. 
The meta marshaller retrieves the right callback and passes it to the 
marshaller as the <i class="parameter"><tt>marshal_data</tt></i> argument.
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>closure</tt></i> :</span></td><td>a <a href="gobject-Closures.html#GClosure"><span class="type">GClosure</span></a>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>marshal_data</tt></i> :</span></td><td>context-dependent data to pass to <i class="parameter"><tt>meta_marshal</tt></i>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>meta_marshal</tt></i> :</span></td><td>a <a href="gobject-Closures.html#GClosureMarshal"><span class="type">GClosureMarshal</span></a> function


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2900232"></a><h3><a name="g-source-set-closure"></a>g_source_set_closure ()</h3><a class="indexterm" name="id2900244"></a><pre class="programlisting">void        g_source_set_closure            (<a
href="../glib/glib-The-Main-Event-Loop.html#GSource"
>GSource</a> *source,
                                             <a href="gobject-Closures.html#GClosure">GClosure</a> *closure);</pre><p>
Set the callback for a source as a <a href="gobject-Closures.html#GClosure"><span class="type">GClosure</span></a>.
</p><p>
If the source is not one of the standard GLib types, the <i class="parameter"><tt>closure_callback</tt></i>
and <i class="parameter"><tt>closure_marshal</tt></i> fields of the GSourceFuncs structure must have been
filled in with pointers to appropriate functions.
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>source</tt></i> :</span></td><td>the source
</td></tr><tr><td><span class="term"><i class="parameter"><tt>closure</tt></i> :</span></td><td>a <a href="gobject-Closures.html#GClosure"><span class="type">GClosure</span></a>


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2900345"></a><h3><a name="G-TYPE-IO-CHANNEL-CAPS"></a>G_TYPE_IO_CHANNEL</h3><a class="indexterm" name="id2900357"></a><pre class="programlisting">#define G_TYPE_IO_CHANNEL (g_io_channel_get_type ())
</pre><p>
The <a href="gobject-Type-Information.html#GType"><span class="type">GType</span></a> for <a
href="../glib/glib-IO-Channels.html#GIOChannel"
><span class="type">GIOChannel</span></a>.
</p></div><hr><div class="refsect2" lang="en"><a name="id2900390"></a><h3><a name="G-TYPE-IO-CONDITION-CAPS"></a>G_TYPE_IO_CONDITION</h3><a class="indexterm" name="id2900402"></a><pre class="programlisting">#define G_TYPE_IO_CONDITION (g_io_condition_get_type ())
</pre><p>
The <a href="gobject-Type-Information.html#GType"><span class="type">GType</span></a> for <a
href="../glib/glib-IO-Channels.html#GIOCondition"
><span class="type">GIOCondition</span></a>.
</p></div><hr><div class="refsect2" lang="en"><a name="id2900435"></a><h3><a name="g-cclosure-marshal-VOID--VOID"></a>g_cclosure_marshal_VOID__VOID ()</h3><a class="indexterm" name="id2900447"></a><pre class="programlisting">void        g_cclosure_marshal_VOID__VOID   (<a href="gobject-Closures.html#GClosure">GClosure</a> *closure,
                                             <a href="gobject-Generic-values.html#GValue">GValue</a> *return_value,
                                             <a
href="../glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
                                             const <a href="gobject-Generic-values.html#GValue">GValue</a> *param_values,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);</pre><p>
A marshaller for a <a href="gobject-Closures.html#GCClosure"><span class="type">GCClosure</span></a> with a callback of type
<tt class="literal">void (*callback) (gpointer instance, gpointer user_data)</tt>.
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>closure</tt></i> :</span></td><td>the <a href="gobject-Closures.html#GClosure"><span class="type">GClosure</span></a> to which the marshaller belongs
</td></tr><tr><td><span class="term"><i class="parameter"><tt>return_value</tt></i> :</span></td><td>ignored
</td></tr><tr><td><span class="term"><i class="parameter"><tt>n_param_values</tt></i> :</span></td><td>1
</td></tr><tr><td><span class="term"><i class="parameter"><tt>param_values</tt></i> :</span></td><td>a <a href="gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> array holding only the instance
</td></tr><tr><td><span class="term"><i class="parameter"><tt>invocation_hint</tt></i> :</span></td><td>the invocation hint given as the the last argument
  to <a href="gobject-Closures.html#g-closure-invoke"><tt class="function">g_closure_invoke()</tt></a>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>marshal_data</tt></i> :</span></td><td>additional data specified when registering the marshaller


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2900646"></a><h3><a name="g-cclosure-marshal-VOID--BOOLEAN"></a>g_cclosure_marshal_VOID__BOOLEAN ()</h3><a class="indexterm" name="id2900658"></a><pre class="programlisting">void        g_cclosure_marshal_VOID__BOOLEAN
                                            (<a href="gobject-Closures.html#GClosure">GClosure</a> *closure,
                                             <a href="gobject-Generic-values.html#GValue">GValue</a> *return_value,
                                             <a
href="../glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
                                             const <a href="gobject-Generic-values.html#GValue">GValue</a> *param_values,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);</pre><p>
A marshaller for a <a href="gobject-Closures.html#GCClosure"><span class="type">GCClosure</span></a> with a callback of type
<tt class="literal">void (*callback) (gpointer instance, gboolean arg1, gpointer user_data)</tt>.
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>closure</tt></i> :</span></td><td>the <a href="gobject-Closures.html#GClosure"><span class="type">GClosure</span></a> to which the marshaller belongs
</td></tr><tr><td><span class="term"><i class="parameter"><tt>return_value</tt></i> :</span></td><td>ignored
</td></tr><tr><td><span class="term"><i class="parameter"><tt>n_param_values</tt></i> :</span></td><td>2
</td></tr><tr><td><span class="term"><i class="parameter"><tt>param_values</tt></i> :</span></td><td>a <a href="gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> array holding the instance and the <a
href="../glib/glib-Basic-Types.html#gboolean"
><span class="type">gboolean</span></a> parameter
</td></tr><tr><td><span class="term"><i class="parameter"><tt>invocation_hint</tt></i> :</span></td><td>the invocation hint given as the the last argument
  to <a href="gobject-Closures.html#g-closure-invoke"><tt class="function">g_closure_invoke()</tt></a>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>marshal_data</tt></i> :</span></td><td>additional data specified when registering the marshaller


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2900866"></a><h3><a name="g-cclosure-marshal-VOID--CHAR"></a>g_cclosure_marshal_VOID__CHAR ()</h3><a class="indexterm" name="id2900878"></a><pre class="programlisting">void        g_cclosure_marshal_VOID__CHAR   (<a href="gobject-Closures.html#GClosure">GClosure</a> *closure,
                                             <a href="gobject-Generic-values.html#GValue">GValue</a> *return_value,
                                             <a
href="../glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
                                             const <a href="gobject-Generic-values.html#GValue">GValue</a> *param_values,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);</pre><p>
A marshaller for a <a href="gobject-Closures.html#GCClosure"><span class="type">GCClosure</span></a> with a callback of type
<tt class="literal">void (*callback) (gpointer instance, gchar arg1, gpointer user_data)</tt>.
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>closure</tt></i> :</span></td><td>the <a href="gobject-Closures.html#GClosure"><span class="type">GClosure</span></a> to which the marshaller belongs
</td></tr><tr><td><span class="term"><i class="parameter"><tt>return_value</tt></i> :</span></td><td>ignored
</td></tr><tr><td><span class="term"><i class="parameter"><tt>n_param_values</tt></i> :</span></td><td>2
</td></tr><tr><td><span class="term"><i class="parameter"><tt>param_values</tt></i> :</span></td><td>a <a href="gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> array holding the instance and the <a
href="../glib/glib-Basic-Types.html#gchar"
><span class="type">gchar</span></a> parameter
</td></tr><tr><td><span class="term"><i class="parameter"><tt>invocation_hint</tt></i> :</span></td><td>the invocation hint given as the the last argument
  to <a href="gobject-Closures.html#g-closure-invoke"><tt class="function">g_closure_invoke()</tt></a>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>marshal_data</tt></i> :</span></td><td>additional data specified when registering the marshaller


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2901086"></a><h3><a name="g-cclosure-marshal-VOID--UCHAR"></a>g_cclosure_marshal_VOID__UCHAR ()</h3><a class="indexterm" name="id2901098"></a><pre class="programlisting">void        g_cclosure_marshal_VOID__UCHAR  (<a href="gobject-Closures.html#GClosure">GClosure</a> *closure,
                                             <a href="gobject-Generic-values.html#GValue">GValue</a> *return_value,
                                             <a
href="../glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
                                             const <a href="gobject-Generic-values.html#GValue">GValue</a> *param_values,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);</pre><p>
A marshaller for a <a href="gobject-Closures.html#GCClosure"><span class="type">GCClosure</span></a> with a callback of type
<tt class="literal">void (*callback) (gpointer instance, guchar arg1, gpointer user_data)</tt>.
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>closure</tt></i> :</span></td><td>the <a href="gobject-Closures.html#GClosure"><span class="type">GClosure</span></a> to which the marshaller belongs
</td></tr><tr><td><span class="term"><i class="parameter"><tt>return_value</tt></i> :</span></td><td>ignored
</td></tr><tr><td><span class="term"><i class="parameter"><tt>n_param_values</tt></i> :</span></td><td>2
</td></tr><tr><td><span class="term"><i class="parameter"><tt>param_values</tt></i> :</span></td><td>a <a href="gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> array holding the instance and the <a
href="../glib/glib-Basic-Types.html#guchar"
><span class="type">guchar</span></a> parameter
</td></tr><tr><td><span class="term"><i class="parameter"><tt>invocation_hint</tt></i> :</span></td><td>the invocation hint given as the the last argument
  to <a href="gobject-Closures.html#g-closure-invoke"><tt class="function">g_closure_invoke()</tt></a>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>marshal_data</tt></i> :</span></td><td>additional data specified when registering the marshaller


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2901305"></a><h3><a name="g-cclosure-marshal-VOID--INT"></a>g_cclosure_marshal_VOID__INT ()</h3><a class="indexterm" name="id2901317"></a><pre class="programlisting">void        g_cclosure_marshal_VOID__INT    (<a href="gobject-Closures.html#GClosure">GClosure</a> *closure,
                                             <a href="gobject-Generic-values.html#GValue">GValue</a> *return_value,
                                             <a
href="../glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
                                             const <a href="gobject-Generic-values.html#GValue">GValue</a> *param_values,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);</pre><p>
A marshaller for a <a href="gobject-Closures.html#GCClosure"><span class="type">GCClosure</span></a> with a callback of type
<tt class="literal">void (*callback) (gpointer instance, gint arg1, gpointer user_data)</tt>.
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>closure</tt></i> :</span></td><td>the <a href="gobject-Closures.html#GClosure"><span class="type">GClosure</span></a> to which the marshaller belongs
</td></tr><tr><td><span class="term"><i class="parameter"><tt>return_value</tt></i> :</span></td><td>ignored
</td></tr><tr><td><span class="term"><i class="parameter"><tt>n_param_values</tt></i> :</span></td><td>2
</td></tr><tr><td><span class="term"><i class="parameter"><tt>param_values</tt></i> :</span></td><td>a <a href="gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> array holding the instance and the <a
href="../glib/glib-Basic-Types.html#gint"
><span class="type">gint</span></a> parameter
</td></tr><tr><td><span class="term"><i class="parameter"><tt>invocation_hint</tt></i> :</span></td><td>the invocation hint given as the the last argument
  to <a href="gobject-Closures.html#g-closure-invoke"><tt class="function">g_closure_invoke()</tt></a>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>marshal_data</tt></i> :</span></td><td>additional data specified when registering the marshaller


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2901525"></a><h3><a name="g-cclosure-marshal-VOID--UINT"></a>g_cclosure_marshal_VOID__UINT ()</h3><a class="indexterm" name="id2901537"></a><pre class="programlisting">void        g_cclosure_marshal_VOID__UINT   (<a href="gobject-Closures.html#GClosure">GClosure</a> *closure,
                                             <a href="gobject-Generic-values.html#GValue">GValue</a> *return_value,
                                             <a
href="../glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
                                             const <a href="gobject-Generic-values.html#GValue">GValue</a> *param_values,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);</pre><p>
A marshaller for a <a href="gobject-Closures.html#GCClosure"><span class="type">GCClosure</span></a> with a callback of type
<tt class="literal">void (*callback) (gpointer instance, guint arg1, gpointer user_data)</tt>.
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>closure</tt></i> :</span></td><td>the <a href="gobject-Closures.html#GClosure"><span class="type">GClosure</span></a> to which the marshaller belongs
</td></tr><tr><td><span class="term"><i class="parameter"><tt>return_value</tt></i> :</span></td><td>ignored
</td></tr><tr><td><span class="term"><i class="parameter"><tt>n_param_values</tt></i> :</span></td><td>2
</td></tr><tr><td><span class="term"><i class="parameter"><tt>param_values</tt></i> :</span></td><td>a <a href="gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> array holding the instance and the <a
href="../glib/glib-Basic-Types.html#guint"
><span class="type">guint</span></a> parameter
</td></tr><tr><td><span class="term"><i class="parameter"><tt>invocation_hint</tt></i> :</span></td><td>the invocation hint given as the the last argument
  to <a href="gobject-Closures.html#g-closure-invoke"><tt class="function">g_closure_invoke()</tt></a>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>marshal_data</tt></i> :</span></td><td>additional data specified when registering the marshaller


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2901744"></a><h3><a name="g-cclosure-marshal-VOID--LONG"></a>g_cclosure_marshal_VOID__LONG ()</h3><a class="indexterm" name="id2901756"></a><pre class="programlisting">void        g_cclosure_marshal_VOID__LONG   (<a href="gobject-Closures.html#GClosure">GClosure</a> *closure,
                                             <a href="gobject-Generic-values.html#GValue">GValue</a> *return_value,
                                             <a
href="../glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
                                             const <a href="gobject-Generic-values.html#GValue">GValue</a> *param_values,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);</pre><p>
A marshaller for a <a href="gobject-Closures.html#GCClosure"><span class="type">GCClosure</span></a> with a callback of type
<tt class="literal">void (*callback) (gpointer instance, glong arg1, gpointer user_data)</tt>.
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>closure</tt></i> :</span></td><td>the <a href="gobject-Closures.html#GClosure"><span class="type">GClosure</span></a> to which the marshaller belongs
</td></tr><tr><td><span class="term"><i class="parameter"><tt>return_value</tt></i> :</span></td><td>ignored
</td></tr><tr><td><span class="term"><i class="parameter"><tt>n_param_values</tt></i> :</span></td><td>2
</td></tr><tr><td><span class="term"><i class="parameter"><tt>param_values</tt></i> :</span></td><td>a <a href="gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> array holding the instance and the <a
href="../glib/glib-Basic-Types.html#glong"
><span class="type">glong</span></a> parameter
</td></tr><tr><td><span class="term"><i class="parameter"><tt>invocation_hint</tt></i> :</span></td><td>the invocation hint given as the the last argument
  to <a href="gobject-Closures.html#g-closure-invoke"><tt class="function">g_closure_invoke()</tt></a>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>marshal_data</tt></i> :</span></td><td>additional data specified when registering the marshaller


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2901963"></a><h3><a name="g-cclosure-marshal-VOID--ULONG"></a>g_cclosure_marshal_VOID__ULONG ()</h3><a class="indexterm" name="id2901975"></a><pre class="programlisting">void        g_cclosure_marshal_VOID__ULONG  (<a href="gobject-Closures.html#GClosure">GClosure</a> *closure,
                                             <a href="gobject-Generic-values.html#GValue">GValue</a> *return_value,
                                             <a
href="../glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
                                             const <a href="gobject-Generic-values.html#GValue">GValue</a> *param_values,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);</pre><p>
A marshaller for a <a href="gobject-Closures.html#GCClosure"><span class="type">GCClosure</span></a> with a callback of type
<tt class="literal">void (*callback) (gpointer instance, gulong arg1, gpointer user_data)</tt>.
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>closure</tt></i> :</span></td><td>the <a href="gobject-Closures.html#GClosure"><span class="type">GClosure</span></a> to which the marshaller belongs
</td></tr><tr><td><span class="term"><i class="parameter"><tt>return_value</tt></i> :</span></td><td>ignored
</td></tr><tr><td><span class="term"><i class="parameter"><tt>n_param_values</tt></i> :</span></td><td>2
</td></tr><tr><td><span class="term"><i class="parameter"><tt>param_values</tt></i> :</span></td><td>a <a href="gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> array holding the instance and the <a
href="../glib/glib-Basic-Types.html#gulong"
><span class="type">gulong</span></a> parameter
</td></tr><tr><td><span class="term"><i class="parameter"><tt>invocation_hint</tt></i> :</span></td><td>the invocation hint given as the the last argument
  to <a href="gobject-Closures.html#g-closure-invoke"><tt class="function">g_closure_invoke()</tt></a>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>marshal_data</tt></i> :</span></td><td>additional data specified when registering the marshaller


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2902182"></a><h3><a name="g-cclosure-marshal-VOID--ENUM"></a>g_cclosure_marshal_VOID__ENUM ()</h3><a class="indexterm" name="id2902195"></a><pre class="programlisting">void        g_cclosure_marshal_VOID__ENUM   (<a href="gobject-Closures.html#GClosure">GClosure</a> *closure,
                                             <a href="gobject-Generic-values.html#GValue">GValue</a> *return_value,
                                             <a
href="../glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
                                             const <a href="gobject-Generic-values.html#GValue">GValue</a> *param_values,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);</pre><p>
A marshaller for a <a href="gobject-Closures.html#GCClosure"><span class="type">GCClosure</span></a> with a callback of type
<tt class="literal">void (*callback) (gpointer instance, gint arg1, gpointer user_data)</tt> where the <a
href="../glib/glib-Basic-Types.html#gint"
><span class="type">gint</span></a> parameter denotes an enumeration type..
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>closure</tt></i> :</span></td><td>the <a href="gobject-Closures.html#GClosure"><span class="type">GClosure</span></a> to which the marshaller belongs
</td></tr><tr><td><span class="term"><i class="parameter"><tt>return_value</tt></i> :</span></td><td>ignored
</td></tr><tr><td><span class="term"><i class="parameter"><tt>n_param_values</tt></i> :</span></td><td>2
</td></tr><tr><td><span class="term"><i class="parameter"><tt>param_values</tt></i> :</span></td><td>a <a href="gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> array holding the instance and the enumeration parameter
</td></tr><tr><td><span class="term"><i class="parameter"><tt>invocation_hint</tt></i> :</span></td><td>the invocation hint given as the the last argument
  to <a href="gobject-Closures.html#g-closure-invoke"><tt class="function">g_closure_invoke()</tt></a>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>marshal_data</tt></i> :</span></td><td>additional data specified when registering the marshaller


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2902403"></a><h3><a name="g-cclosure-marshal-VOID--FLAGS"></a>g_cclosure_marshal_VOID__FLAGS ()</h3><a class="indexterm" name="id2902415"></a><pre class="programlisting">void        g_cclosure_marshal_VOID__FLAGS  (<a href="gobject-Closures.html#GClosure">GClosure</a> *closure,
                                             <a href="gobject-Generic-values.html#GValue">GValue</a> *return_value,
                                             <a
href="../glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
                                             const <a href="gobject-Generic-values.html#GValue">GValue</a> *param_values,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);</pre><p>
A marshaller for a <a href="gobject-Closures.html#GCClosure"><span class="type">GCClosure</span></a> with a callback of type
<tt class="literal">void (*callback) (gpointer instance, gint arg1, gpointer user_data)</tt> where the <a
href="../glib/glib-Basic-Types.html#gint"
><span class="type">gint</span></a> parameter denotes a flags type
denotes a flags type.
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>closure</tt></i> :</span></td><td>the <a href="gobject-Closures.html#GClosure"><span class="type">GClosure</span></a> to which the marshaller belongs
</td></tr><tr><td><span class="term"><i class="parameter"><tt>return_value</tt></i> :</span></td><td>ignored
</td></tr><tr><td><span class="term"><i class="parameter"><tt>n_param_values</tt></i> :</span></td><td>2
</td></tr><tr><td><span class="term"><i class="parameter"><tt>param_values</tt></i> :</span></td><td>a <a href="gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> array holding the instance and the flags parameter
</td></tr><tr><td><span class="term"><i class="parameter"><tt>invocation_hint</tt></i> :</span></td><td>the invocation hint given as the the last argument
  to <a href="gobject-Closures.html#g-closure-invoke"><tt class="function">g_closure_invoke()</tt></a>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>marshal_data</tt></i> :</span></td><td>additional data specified when registering the marshaller


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2902624"></a><h3><a name="g-cclosure-marshal-VOID--FLOAT"></a>g_cclosure_marshal_VOID__FLOAT ()</h3><a class="indexterm" name="id2902636"></a><pre class="programlisting">void        g_cclosure_marshal_VOID__FLOAT  (<a href="gobject-Closures.html#GClosure">GClosure</a> *closure,
                                             <a href="gobject-Generic-values.html#GValue">GValue</a> *return_value,
                                             <a
href="../glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
                                             const <a href="gobject-Generic-values.html#GValue">GValue</a> *param_values,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);</pre><p>
A marshaller for a <a href="gobject-Closures.html#GCClosure"><span class="type">GCClosure</span></a> with a callback of type
<tt class="literal">void (*callback) (gpointer instance, gfloat arg1, gpointer user_data)</tt>.
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>closure</tt></i> :</span></td><td>the <a href="gobject-Closures.html#GClosure"><span class="type">GClosure</span></a> to which the marshaller belongs
</td></tr><tr><td><span class="term"><i class="parameter"><tt>return_value</tt></i> :</span></td><td>ignored
</td></tr><tr><td><span class="term"><i class="parameter"><tt>n_param_values</tt></i> :</span></td><td>2
</td></tr><tr><td><span class="term"><i class="parameter"><tt>param_values</tt></i> :</span></td><td>a <a href="gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> array holding the instance and the <a
href="../glib/glib-Basic-Types.html#gfloat"
><span class="type">gfloat</span></a> parameter
</td></tr><tr><td><span class="term"><i class="parameter"><tt>invocation_hint</tt></i> :</span></td><td>the invocation hint given as the the last argument
  to <a href="gobject-Closures.html#g-closure-invoke"><tt class="function">g_closure_invoke()</tt></a>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>marshal_data</tt></i> :</span></td><td>additional data specified when registering the marshaller


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2902843"></a><h3><a name="g-cclosure-marshal-VOID--DOUBLE"></a>g_cclosure_marshal_VOID__DOUBLE ()</h3><a class="indexterm" name="id2902855"></a><pre class="programlisting">void        g_cclosure_marshal_VOID__DOUBLE (<a href="gobject-Closures.html#GClosure">GClosure</a> *closure,
                                             <a href="gobject-Generic-values.html#GValue">GValue</a> *return_value,
                                             <a
href="../glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
                                             const <a href="gobject-Generic-values.html#GValue">GValue</a> *param_values,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);</pre><p>
A marshaller for a <a href="gobject-Closures.html#GCClosure"><span class="type">GCClosure</span></a> with a callback of type
<tt class="literal">void (*callback) (gpointer instance, gdouble arg1, gpointer user_data)</tt>.
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>closure</tt></i> :</span></td><td>the <a href="gobject-Closures.html#GClosure"><span class="type">GClosure</span></a> to which the marshaller belongs
</td></tr><tr><td><span class="term"><i class="parameter"><tt>return_value</tt></i> :</span></td><td>ignored
</td></tr><tr><td><span class="term"><i class="parameter"><tt>n_param_values</tt></i> :</span></td><td>2
</td></tr><tr><td><span class="term"><i class="parameter"><tt>param_values</tt></i> :</span></td><td>a <a href="gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> array holding the instance and the <a
href="../glib/glib-Basic-Types.html#gdouble"
><span class="type">gdouble</span></a> parameter
</td></tr><tr><td><span class="term"><i class="parameter"><tt>invocation_hint</tt></i> :</span></td><td>the invocation hint given as the the last argument
  to <a href="gobject-Closures.html#g-closure-invoke"><tt class="function">g_closure_invoke()</tt></a>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>marshal_data</tt></i> :</span></td><td>additional data specified when registering the marshaller


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2903062"></a><h3><a name="g-cclosure-marshal-VOID--STRING"></a>g_cclosure_marshal_VOID__STRING ()</h3><a class="indexterm" name="id2903075"></a><pre class="programlisting">void        g_cclosure_marshal_VOID__STRING (<a href="gobject-Closures.html#GClosure">GClosure</a> *closure,
                                             <a href="gobject-Generic-values.html#GValue">GValue</a> *return_value,
                                             <a
href="../glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
                                             const <a href="gobject-Generic-values.html#GValue">GValue</a> *param_values,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);</pre><p>
A marshaller for a <a href="gobject-Closures.html#GCClosure"><span class="type">GCClosure</span></a> with a callback of type
<tt class="literal">void (*callback) (gpointer instance, const gchar *arg1, gpointer user_data)</tt>.
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>closure</tt></i> :</span></td><td>the <a href="gobject-Closures.html#GClosure"><span class="type">GClosure</span></a> to which the marshaller belongs
</td></tr><tr><td><span class="term"><i class="parameter"><tt>return_value</tt></i> :</span></td><td>ignored
</td></tr><tr><td><span class="term"><i class="parameter"><tt>n_param_values</tt></i> :</span></td><td>2
</td></tr><tr><td><span class="term"><i class="parameter"><tt>param_values</tt></i> :</span></td><td>a <a href="gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> array holding the instance and the <a
href="../glib/glib-Basic-Types.html#gchar"
><span class="type">gchar</span></a>* parameter
</td></tr><tr><td><span class="term"><i class="parameter"><tt>invocation_hint</tt></i> :</span></td><td>the invocation hint given as the the last argument
  to <a href="gobject-Closures.html#g-closure-invoke"><tt class="function">g_closure_invoke()</tt></a>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>marshal_data</tt></i> :</span></td><td>additional data specified when registering the marshaller


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2903282"></a><h3><a name="g-cclosure-marshal-VOID--PARAM"></a>g_cclosure_marshal_VOID__PARAM ()</h3><a class="indexterm" name="id2903294"></a><pre class="programlisting">void        g_cclosure_marshal_VOID__PARAM  (<a href="gobject-Closures.html#GClosure">GClosure</a> *closure,
                                             <a href="gobject-Generic-values.html#GValue">GValue</a> *return_value,
                                             <a
href="../glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
                                             const <a href="gobject-Generic-values.html#GValue">GValue</a> *param_values,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);</pre><p>
A marshaller for a <a href="gobject-Closures.html#GCClosure"><span class="type">GCClosure</span></a> with a callback of type
<tt class="literal">void (*callback) (gpointer instance, GParamSpec *arg1, gpointer user_data)</tt>.
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>closure</tt></i> :</span></td><td>the <a href="gobject-Closures.html#GClosure"><span class="type">GClosure</span></a> to which the marshaller belongs
</td></tr><tr><td><span class="term"><i class="parameter"><tt>return_value</tt></i> :</span></td><td>ignored
</td></tr><tr><td><span class="term"><i class="parameter"><tt>n_param_values</tt></i> :</span></td><td>2
</td></tr><tr><td><span class="term"><i class="parameter"><tt>param_values</tt></i> :</span></td><td>a <a href="gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> array holding the instance and the <a href="gobject-GParamSpec.html#GParamSpec"><span class="type">GParamSpec</span></a>* parameter
</td></tr><tr><td><span class="term"><i class="parameter"><tt>invocation_hint</tt></i> :</span></td><td>the invocation hint given as the the last argument
  to <a href="gobject-Closures.html#g-closure-invoke"><tt class="function">g_closure_invoke()</tt></a>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>marshal_data</tt></i> :</span></td><td>additional data specified when registering the marshaller


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2903502"></a><h3><a name="g-cclosure-marshal-VOID--BOXED"></a>g_cclosure_marshal_VOID__BOXED ()</h3><a class="indexterm" name="id2903514"></a><pre class="programlisting">void        g_cclosure_marshal_VOID__BOXED  (<a href="gobject-Closures.html#GClosure">GClosure</a> *closure,
                                             <a href="gobject-Generic-values.html#GValue">GValue</a> *return_value,
                                             <a
href="../glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
                                             const <a href="gobject-Generic-values.html#GValue">GValue</a> *param_values,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);</pre><p>
A marshaller for a <a href="gobject-Closures.html#GCClosure"><span class="type">GCClosure</span></a> with a callback of type
<tt class="literal">void (*callback) (gpointer instance, GBoxed *arg1, gpointer user_data)</tt>.
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>closure</tt></i> :</span></td><td>the <a href="gobject-Closures.html#GClosure"><span class="type">GClosure</span></a> to which the marshaller belongs
</td></tr><tr><td><span class="term"><i class="parameter"><tt>return_value</tt></i> :</span></td><td>ignored
</td></tr><tr><td><span class="term"><i class="parameter"><tt>n_param_values</tt></i> :</span></td><td>2
</td></tr><tr><td><span class="term"><i class="parameter"><tt>param_values</tt></i> :</span></td><td>a <a href="gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> array holding the instance and the <span class="type">GBoxed</span>* parameter
</td></tr><tr><td><span class="term"><i class="parameter"><tt>invocation_hint</tt></i> :</span></td><td>the invocation hint given as the the last argument
  to <a href="gobject-Closures.html#g-closure-invoke"><tt class="function">g_closure_invoke()</tt></a>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>marshal_data</tt></i> :</span></td><td>additional data specified when registering the marshaller


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2903723"></a><h3><a name="g-cclosure-marshal-VOID--POINTER"></a>g_cclosure_marshal_VOID__POINTER ()</h3><a class="indexterm" name="id2903735"></a><pre class="programlisting">void        g_cclosure_marshal_VOID__POINTER
                                            (<a href="gobject-Closures.html#GClosure">GClosure</a> *closure,
                                             <a href="gobject-Generic-values.html#GValue">GValue</a> *return_value,
                                             <a
href="../glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
                                             const <a href="gobject-Generic-values.html#GValue">GValue</a> *param_values,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);</pre><p>
A marshaller for a <a href="gobject-Closures.html#GCClosure"><span class="type">GCClosure</span></a> with a callback of type
<tt class="literal">void (*callback) (gpointer instance, gpointer arg1, gpointer user_data)</tt>.
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>closure</tt></i> :</span></td><td>the <a href="gobject-Closures.html#GClosure"><span class="type">GClosure</span></a> to which the marshaller belongs
</td></tr><tr><td><span class="term"><i class="parameter"><tt>return_value</tt></i> :</span></td><td>ignored
</td></tr><tr><td><span class="term"><i class="parameter"><tt>n_param_values</tt></i> :</span></td><td>2
</td></tr><tr><td><span class="term"><i class="parameter"><tt>param_values</tt></i> :</span></td><td>a <a href="gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> array holding the instance and the <a
href="../glib/glib-Basic-Types.html#gpointer"
><span class="type">gpointer</span></a> parameter
</td></tr><tr><td><span class="term"><i class="parameter"><tt>invocation_hint</tt></i> :</span></td><td>the invocation hint given as the the last argument
  to <a href="gobject-Closures.html#g-closure-invoke"><tt class="function">g_closure_invoke()</tt></a>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>marshal_data</tt></i> :</span></td><td>additional data specified when registering the marshaller


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2903943"></a><h3><a name="g-cclosure-marshal-VOID--OBJECT"></a>g_cclosure_marshal_VOID__OBJECT ()</h3><a class="indexterm" name="id2903955"></a><pre class="programlisting">void        g_cclosure_marshal_VOID__OBJECT (<a href="gobject-Closures.html#GClosure">GClosure</a> *closure,
                                             <a href="gobject-Generic-values.html#GValue">GValue</a> *return_value,
                                             <a
href="../glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
                                             const <a href="gobject-Generic-values.html#GValue">GValue</a> *param_values,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);</pre><p>
A marshaller for a <a href="gobject-Closures.html#GCClosure"><span class="type">GCClosure</span></a> with a callback of type
<tt class="literal">void (*callback) (gpointer instance, GOBject *arg1, gpointer user_data)</tt>.
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>closure</tt></i> :</span></td><td>the <a href="gobject-Closures.html#GClosure"><span class="type">GClosure</span></a> to which the marshaller belongs
</td></tr><tr><td><span class="term"><i class="parameter"><tt>return_value</tt></i> :</span></td><td>ignored
</td></tr><tr><td><span class="term"><i class="parameter"><tt>n_param_values</tt></i> :</span></td><td>2
</td></tr><tr><td><span class="term"><i class="parameter"><tt>param_values</tt></i> :</span></td><td>a <a href="gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> array holding the instance and the <a href="gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a>* parameter
</td></tr><tr><td><span class="term"><i class="parameter"><tt>invocation_hint</tt></i> :</span></td><td>the invocation hint given as the the last argument
  to <a href="gobject-Closures.html#g-closure-invoke"><tt class="function">g_closure_invoke()</tt></a>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>marshal_data</tt></i> :</span></td><td>additional data specified when registering the marshaller


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2904162"></a><h3><a name="g-cclosure-marshal-STRING--OBJECT-POINTER"></a>g_cclosure_marshal_STRING__OBJECT_POINTER ()</h3><a class="indexterm" name="id2904176"></a><pre class="programlisting">void        g_cclosure_marshal_STRING__OBJECT_POINTER
                                            (<a href="gobject-Closures.html#GClosure">GClosure</a> *closure,
                                             <a href="gobject-Generic-values.html#GValue">GValue</a> *return_value,
                                             <a
href="../glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
                                             const <a href="gobject-Generic-values.html#GValue">GValue</a> *param_values,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);</pre><p>
A marshaller for a <a href="gobject-Closures.html#GCClosure"><span class="type">GCClosure</span></a> with a callback of type
<tt class="literal">void (*callback) (gpointer instance, GObject *arg1, gpointer arg2, gpointer user_data)</tt>.
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>closure</tt></i> :</span></td><td>the <a href="gobject-Closures.html#GClosure"><span class="type">GClosure</span></a> to which the marshaller belongs
</td></tr><tr><td><span class="term"><i class="parameter"><tt>return_value</tt></i> :</span></td><td>ignored
</td></tr><tr><td><span class="term"><i class="parameter"><tt>n_param_values</tt></i> :</span></td><td>3
</td></tr><tr><td><span class="term"><i class="parameter"><tt>param_values</tt></i> :</span></td><td>a <a href="gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> array holding instance, arg1 and arg2
</td></tr><tr><td><span class="term"><i class="parameter"><tt>invocation_hint</tt></i> :</span></td><td>the invocation hint given as the the last argument
  to <a href="gobject-Closures.html#g-closure-invoke"><tt class="function">g_closure_invoke()</tt></a>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>marshal_data</tt></i> :</span></td><td>additional data specified when registering the marshaller


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2904376"></a><h3><a name="g-cclosure-marshal-VOID--UINT-POINTER"></a>g_cclosure_marshal_VOID__UINT_POINTER ()</h3><a class="indexterm" name="id2904389"></a><pre class="programlisting">void        g_cclosure_marshal_VOID__UINT_POINTER
                                            (<a href="gobject-Closures.html#GClosure">GClosure</a> *closure,
                                             <a href="gobject-Generic-values.html#GValue">GValue</a> *return_value,
                                             <a
href="../glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
                                             const <a href="gobject-Generic-values.html#GValue">GValue</a> *param_values,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);</pre><p>
A marshaller for a <a href="gobject-Closures.html#GCClosure"><span class="type">GCClosure</span></a> with a callback of type
<tt class="literal">void (*callback) (gpointer instance, guint arg1, gpointer arg2, gpointer user_data)</tt>.
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>closure</tt></i> :</span></td><td>the <a href="gobject-Closures.html#GClosure"><span class="type">GClosure</span></a> to which the marshaller belongs
</td></tr><tr><td><span class="term"><i class="parameter"><tt>return_value</tt></i> :</span></td><td>ignored
</td></tr><tr><td><span class="term"><i class="parameter"><tt>n_param_values</tt></i> :</span></td><td>3
</td></tr><tr><td><span class="term"><i class="parameter"><tt>param_values</tt></i> :</span></td><td>a <a href="gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> array holding instance, arg1 and arg2
</td></tr><tr><td><span class="term"><i class="parameter"><tt>invocation_hint</tt></i> :</span></td><td>the invocation hint given as the the last argument
  to <a href="gobject-Closures.html#g-closure-invoke"><tt class="function">g_closure_invoke()</tt></a>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>marshal_data</tt></i> :</span></td><td>additional data specified when registering the marshaller


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2904589"></a><h3><a name="g-cclosure-marshal-BOOLEAN--FLAGS"></a>g_cclosure_marshal_BOOLEAN__FLAGS ()</h3><a class="indexterm" name="id2904602"></a><pre class="programlisting">void        g_cclosure_marshal_BOOLEAN__FLAGS
                                            (<a href="gobject-Closures.html#GClosure">GClosure</a> *closure,
                                             <a href="gobject-Generic-values.html#GValue">GValue</a> *return_value,
                                             <a
href="../glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
                                             const <a href="gobject-Generic-values.html#GValue">GValue</a> *param_values,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
                                             <a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);</pre><p>
A marshaller for a <a href="gobject-Closures.html#GCClosure"><span class="type">GCClosure</span></a> with a callback of type
<tt class="literal">gboolean (*callback) (gpointer instance, gint arg1, gpointer user_data)</tt> where the <a
href="../glib/glib-Basic-Types.html#gint"
><span class="type">gint</span></a> parameter
denotes a flags type.
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>closure</tt></i> :</span></td><td>the <a href="gobject-Closures.html#GClosure"><span class="type">GClosure</span></a> to which the marshaller belongs
</td></tr><tr><td><span class="term"><i class="parameter"><tt>return_value</tt></i> :</span></td><td>a <a href="gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> which can store the returned <a
href="../glib/glib-Basic-Types.html#gboolean"
><span class="type">gboolean</span></a>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>n_param_values</tt></i> :</span></td><td>2
</td></tr><tr><td><span class="term"><i class="parameter"><tt>param_values</tt></i> :</span></td><td>a <a href="gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> array holding instance and arg1
</td></tr><tr><td><span class="term"><i class="parameter"><tt>invocation_hint</tt></i> :</span></td><td>the invocation hint given as the the last argument
  to <a href="gobject-Closures.html#g-closure-invoke"><tt class="function">g_closure_invoke()</tt></a>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>marshal_data</tt></i> :</span></td><td>additional data specified when registering the marshaller


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2904826"></a><h3><a name="g-cclosure-marshal-BOOL--FLAGS"></a>g_cclosure_marshal_BOOL__FLAGS</h3><a class="indexterm" name="id2904838"></a><pre class="programlisting">#define     g_cclosure_marshal_BOOL__FLAGS</pre><p>
Another name for <a href="gobject-Closures.html#g-cclosure-marshal-BOOLEAN--FLAGS"><tt class="function">g_cclosure_marshal_BOOLEAN__FLAGS()</tt></a>.
</p></div></div></div><table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="0"><tr valign="middle"><td align="left"><a accesskey="p" href="gobject-Signals.html"><b>&lt;&lt; Signals</b></a></td><td align="right"><a accesskey="n" href="gobject-Value-arrays.html"><b>Value arrays &gt;&gt;</b></a></td></tr></table></body></html>