| Server IP : 182.53.201.61 / Your IP : 216.73.217.175 Web Server : Apache/2.2.15 (Fedora) System : Linux km10.dyndns.org 2.6.31.5-127.fc12.i686.PAE #1 SMP Sat Nov 7 21:25:57 EST 2009 i686 User : apache ( 48) PHP Version : 5.3.3 Disable Function : NONE MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /usr/share/gtk-doc/html/gobject/ |
Upload File : |
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Closures</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="index.html" title="GObject Reference Manual">
<link rel="up" href="rn01.html" title="API Reference">
<link rel="prev" href="gobject-Signals.html" title="Signals">
<link rel="next" href="gobject-Value-arrays.html" title="Value arrays">
<meta name="generator" content="GTK-Doc V1.11 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
<link rel="preface" href="pr01.html" title="Introduction">
<link rel="part" href="pt01.html" title="Part I. Concepts">
<link rel="chapter" href="chapter-intro.html" title="Background">
<link rel="chapter" href="chapter-gtype.html" title="The GLib Dynamic Type System">
<link rel="chapter" href="chapter-gobject.html" title="The GObject base class">
<link rel="chapter" href="chapter-signal.html" title="The GObject messaging system">
<link rel="reference" href="rn01.html" title="API Reference">
<link rel="reference" href="rn02.html" title="Tools Reference">
<link rel="part" href="pt02.html" title="Part IV. Tutorial">
<link rel="chapter" href="howto-gobject.html" title="How to define and implement a new GObject">
<link rel="chapter" href="howto-interface.html" title="How to define and implement interfaces">
<link rel="chapter" href="howto-signals.html" title="How to create and use signals">
<link rel="part" href="pt03.html" title="Part V. Related Tools">
<link rel="chapter" href="tools-vala.html" title="Vala">
<link rel="chapter" href="tools-gob.html" title="GObject builder">
<link rel="chapter" href="tools-ginspector.html" title="Graphical inspection of GObjects">
<link rel="chapter" href="tools-refdb.html" title="Debugging reference count problems">
<link rel="chapter" href="tools-gtkdoc.html" title="Writing API docs">
<link rel="index" href="ix01.html" title="Index">
<link rel="index" href="ix02.html" title="Index of deprecated symbols">
<link rel="index" href="ix03.html" title="Index of new symbols in 2.2">
<link rel="index" href="ix04.html" title="Index of new symbols in 2.4">
<link rel="index" href="ix05.html" title="Index of new symbols in 2.6">
<link rel="index" href="ix06.html" title="Index of new symbols in 2.8">
<link rel="index" href="ix07.html" title="Index of new symbols in 2.10">
<link rel="index" href="ix08.html" title="Index of new symbols in 2.12">
<link rel="index" href="ix09.html" title="Index of new symbols in 2.14">
<link rel="index" href="ix10.html" title="Index of new symbols in 2.18">
<link rel="index" href="ix11.html" title="Index of new symbols in 2.22">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
<tr valign="middle">
<td><a accesskey="p" href="gobject-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>
<tr><td colspan="5" class="shortcuts">
<a href="#gobject-Closures.synopsis" class="shortcut">Top</a>
|
<a href="#gobject-Closures.description" class="shortcut">Description</a>
</td></tr>
</table>
<div class="refentry" title="Closures">
<a name="gobject-Closures"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="gobject-Closures.top_of_page"></a>Closures</span></h2>
<p>Closures — Functions as first-class objects</p>
</td>
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsynopsisdiv" title="Synopsis">
<a name="gobject-Closures.synopsis"></a><h2>Synopsis</h2>
<pre class="synopsis">
#include <glib-object.h>
#define <a class="link" href="gobject-Closures.html#G-CLOSURE-NEEDS-MARSHAL--CAPS" title="G_CLOSURE_NEEDS_MARSHAL()">G_CLOSURE_NEEDS_MARSHAL</a> (closure)
#define <a class="link" href="gobject-Closures.html#G-CLOSURE-N-NOTIFIERS--CAPS" title="G_CLOSURE_N_NOTIFIERS()">G_CLOSURE_N_NOTIFIERS</a> (cl)
#define <a class="link" href="gobject-Closures.html#G-CCLOSURE-SWAP-DATA--CAPS" title="G_CCLOSURE_SWAP_DATA()">G_CCLOSURE_SWAP_DATA</a> (cclosure)
#define <a class="link" href="gobject-Closures.html#G-CALLBACK--CAPS" title="G_CALLBACK()">G_CALLBACK</a> (f)
void (<a class="link" href="gobject-Closures.html#GCallback" title="GCallback ()">*GCallback</a>) (void);
<a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a>;
#define <a class="link" href="gobject-Closures.html#G-TYPE-CLOSURE--CAPS" title="G_TYPE_CLOSURE">G_TYPE_CLOSURE</a>
<a class="link" href="gobject-Closures.html#GCClosure" title="GCClosure">GCClosure</a>;
void (<a class="link" href="gobject-Closures.html#GClosureMarshal" title="GClosureMarshal ()">*GClosureMarshal</a>) (<a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a> *closure,
<a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *return_value,
<a
href="./../glib/glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *param_values,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);
void (<a class="link" href="gobject-Closures.html#GClosureNotify" title="GClosureNotify ()">*GClosureNotify</a>) (<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> data,
<a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a> *closure);
<a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a>* <a class="link" href="gobject-Closures.html#g-cclosure-new" title="g_cclosure_new ()">g_cclosure_new</a> (<a class="link" href="gobject-Closures.html#GCallback" title="GCallback ()">GCallback</a> callback_func,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> user_data,
<a class="link" href="gobject-Closures.html#GClosureNotify" title="GClosureNotify ()">GClosureNotify</a> destroy_data);
<a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a>* <a class="link" href="gobject-Closures.html#g-cclosure-new-swap" title="g_cclosure_new_swap ()">g_cclosure_new_swap</a> (<a class="link" href="gobject-Closures.html#GCallback" title="GCallback ()">GCallback</a> callback_func,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> user_data,
<a class="link" href="gobject-Closures.html#GClosureNotify" title="GClosureNotify ()">GClosureNotify</a> destroy_data);
<a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a>* <a class="link" href="gobject-Closures.html#g-cclosure-new-object" title="g_cclosure_new_object ()">g_cclosure_new_object</a> (<a class="link" href="gobject-Closures.html#GCallback" title="GCallback ()">GCallback</a> callback_func,
<a class="link" href="gobject-The-Base-Object-Type.html#GObject">GObject</a> *object);
<a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a>* <a class="link" href="gobject-Closures.html#g-cclosure-new-object-swap" title="g_cclosure_new_object_swap ()">g_cclosure_new_object_swap</a> (<a class="link" href="gobject-Closures.html#GCallback" title="GCallback ()">GCallback</a> callback_func,
<a class="link" href="gobject-The-Base-Object-Type.html#GObject">GObject</a> *object);
<a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a>* <a class="link" href="gobject-Closures.html#g-closure-new-object" title="g_closure_new_object ()">g_closure_new_object</a> (<a
href="./../glib/glib/glib-Basic-Types.html#guint"
>guint</a> sizeof_closure,
<a class="link" href="gobject-The-Base-Object-Type.html#GObject">GObject</a> *object);
<a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a>* <a class="link" href="gobject-Closures.html#g-closure-ref" title="g_closure_ref ()">g_closure_ref</a> (<a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a> *closure);
void <a class="link" href="gobject-Closures.html#g-closure-sink" title="g_closure_sink ()">g_closure_sink</a> (<a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a> *closure);
void <a class="link" href="gobject-Closures.html#g-closure-unref" title="g_closure_unref ()">g_closure_unref</a> (<a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a> *closure);
void <a class="link" href="gobject-Closures.html#g-closure-invoke" title="g_closure_invoke ()">g_closure_invoke</a> (<a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a> *closure,
<a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *return_value,
<a
href="./../glib/glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *param_values,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint);
void <a class="link" href="gobject-Closures.html#g-closure-invalidate" title="g_closure_invalidate ()">g_closure_invalidate</a> (<a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a> *closure);
void <a class="link" href="gobject-Closures.html#g-closure-add-finalize-notifier" title="g_closure_add_finalize_notifier ()">g_closure_add_finalize_notifier</a> (<a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a> *closure,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> notify_data,
<a class="link" href="gobject-Closures.html#GClosureNotify" title="GClosureNotify ()">GClosureNotify</a> notify_func);
void <a class="link" href="gobject-Closures.html#g-closure-add-invalidate-notifier" title="g_closure_add_invalidate_notifier ()">g_closure_add_invalidate_notifier</a> (<a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a> *closure,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> notify_data,
<a class="link" href="gobject-Closures.html#GClosureNotify" title="GClosureNotify ()">GClosureNotify</a> notify_func);
void <a class="link" href="gobject-Closures.html#g-closure-remove-finalize-notifier" title="g_closure_remove_finalize_notifier ()">g_closure_remove_finalize_notifier</a> (<a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a> *closure,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> notify_data,
<a class="link" href="gobject-Closures.html#GClosureNotify" title="GClosureNotify ()">GClosureNotify</a> notify_func);
void <a class="link" href="gobject-Closures.html#g-closure-remove-invalidate-notifier" title="g_closure_remove_invalidate_notifier ()">g_closure_remove_invalidate_notifier</a>
(<a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a> *closure,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> notify_data,
<a class="link" href="gobject-Closures.html#GClosureNotify" title="GClosureNotify ()">GClosureNotify</a> notify_func);
<a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a>* <a class="link" href="gobject-Closures.html#g-closure-new-simple" title="g_closure_new_simple ()">g_closure_new_simple</a> (<a
href="./../glib/glib/glib-Basic-Types.html#guint"
>guint</a> sizeof_closure,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> data);
void <a class="link" href="gobject-Closures.html#g-closure-set-marshal" title="g_closure_set_marshal ()">g_closure_set_marshal</a> (<a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a> *closure,
<a class="link" href="gobject-Closures.html#GClosureMarshal" title="GClosureMarshal ()">GClosureMarshal</a> marshal);
void <a class="link" href="gobject-Closures.html#g-closure-add-marshal-guards" title="g_closure_add_marshal_guards ()">g_closure_add_marshal_guards</a> (<a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a> *closure,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> pre_marshal_data,
<a class="link" href="gobject-Closures.html#GClosureNotify" title="GClosureNotify ()">GClosureNotify</a> pre_marshal_notify,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> post_marshal_data,
<a class="link" href="gobject-Closures.html#GClosureNotify" title="GClosureNotify ()">GClosureNotify</a> post_marshal_notify);
void <a class="link" href="gobject-Closures.html#g-closure-set-meta-marshal" title="g_closure_set_meta_marshal ()">g_closure_set_meta_marshal</a> (<a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a> *closure,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data,
<a class="link" href="gobject-Closures.html#GClosureMarshal" title="GClosureMarshal ()">GClosureMarshal</a> meta_marshal);
void <a class="link" href="gobject-Closures.html#g-source-set-closure" title="g_source_set_closure ()">g_source_set_closure</a> (<a
href="./../glib/glib/glib-The-Main-Event-Loop.html#GSource"
>GSource</a> *source,
<a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a> *closure);
#define <a class="link" href="gobject-Closures.html#G-TYPE-IO-CHANNEL--CAPS" title="G_TYPE_IO_CHANNEL">G_TYPE_IO_CHANNEL</a>
#define <a class="link" href="gobject-Closures.html#G-TYPE-IO-CONDITION--CAPS" title="G_TYPE_IO_CONDITION">G_TYPE_IO_CONDITION</a>
void <a class="link" href="gobject-Closures.html#g-cclosure-marshal-VOID--VOID" title="g_cclosure_marshal_VOID__VOID ()">g_cclosure_marshal_VOID__VOID</a> (<a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a> *closure,
<a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *return_value,
<a
href="./../glib/glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *param_values,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);
void <a class="link" href="gobject-Closures.html#g-cclosure-marshal-VOID--BOOLEAN" title="g_cclosure_marshal_VOID__BOOLEAN ()">g_cclosure_marshal_VOID__BOOLEAN</a> (<a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a> *closure,
<a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *return_value,
<a
href="./../glib/glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *param_values,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);
void <a class="link" href="gobject-Closures.html#g-cclosure-marshal-VOID--CHAR" title="g_cclosure_marshal_VOID__CHAR ()">g_cclosure_marshal_VOID__CHAR</a> (<a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a> *closure,
<a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *return_value,
<a
href="./../glib/glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *param_values,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);
void <a class="link" href="gobject-Closures.html#g-cclosure-marshal-VOID--UCHAR" title="g_cclosure_marshal_VOID__UCHAR ()">g_cclosure_marshal_VOID__UCHAR</a> (<a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a> *closure,
<a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *return_value,
<a
href="./../glib/glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *param_values,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);
void <a class="link" href="gobject-Closures.html#g-cclosure-marshal-VOID--INT" title="g_cclosure_marshal_VOID__INT ()">g_cclosure_marshal_VOID__INT</a> (<a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a> *closure,
<a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *return_value,
<a
href="./../glib/glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *param_values,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);
void <a class="link" href="gobject-Closures.html#g-cclosure-marshal-VOID--UINT" title="g_cclosure_marshal_VOID__UINT ()">g_cclosure_marshal_VOID__UINT</a> (<a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a> *closure,
<a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *return_value,
<a
href="./../glib/glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *param_values,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);
void <a class="link" href="gobject-Closures.html#g-cclosure-marshal-VOID--LONG" title="g_cclosure_marshal_VOID__LONG ()">g_cclosure_marshal_VOID__LONG</a> (<a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a> *closure,
<a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *return_value,
<a
href="./../glib/glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *param_values,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);
void <a class="link" href="gobject-Closures.html#g-cclosure-marshal-VOID--ULONG" title="g_cclosure_marshal_VOID__ULONG ()">g_cclosure_marshal_VOID__ULONG</a> (<a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a> *closure,
<a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *return_value,
<a
href="./../glib/glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *param_values,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);
void <a class="link" href="gobject-Closures.html#g-cclosure-marshal-VOID--ENUM" title="g_cclosure_marshal_VOID__ENUM ()">g_cclosure_marshal_VOID__ENUM</a> (<a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a> *closure,
<a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *return_value,
<a
href="./../glib/glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *param_values,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);
void <a class="link" href="gobject-Closures.html#g-cclosure-marshal-VOID--FLAGS" title="g_cclosure_marshal_VOID__FLAGS ()">g_cclosure_marshal_VOID__FLAGS</a> (<a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a> *closure,
<a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *return_value,
<a
href="./../glib/glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *param_values,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);
void <a class="link" href="gobject-Closures.html#g-cclosure-marshal-VOID--FLOAT" title="g_cclosure_marshal_VOID__FLOAT ()">g_cclosure_marshal_VOID__FLOAT</a> (<a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a> *closure,
<a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *return_value,
<a
href="./../glib/glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *param_values,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);
void <a class="link" href="gobject-Closures.html#g-cclosure-marshal-VOID--DOUBLE" title="g_cclosure_marshal_VOID__DOUBLE ()">g_cclosure_marshal_VOID__DOUBLE</a> (<a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a> *closure,
<a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *return_value,
<a
href="./../glib/glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *param_values,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);
void <a class="link" href="gobject-Closures.html#g-cclosure-marshal-VOID--STRING" title="g_cclosure_marshal_VOID__STRING ()">g_cclosure_marshal_VOID__STRING</a> (<a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a> *closure,
<a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *return_value,
<a
href="./../glib/glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *param_values,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);
void <a class="link" href="gobject-Closures.html#g-cclosure-marshal-VOID--PARAM" title="g_cclosure_marshal_VOID__PARAM ()">g_cclosure_marshal_VOID__PARAM</a> (<a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a> *closure,
<a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *return_value,
<a
href="./../glib/glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *param_values,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);
void <a class="link" href="gobject-Closures.html#g-cclosure-marshal-VOID--BOXED" title="g_cclosure_marshal_VOID__BOXED ()">g_cclosure_marshal_VOID__BOXED</a> (<a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a> *closure,
<a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *return_value,
<a
href="./../glib/glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *param_values,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);
void <a class="link" href="gobject-Closures.html#g-cclosure-marshal-VOID--POINTER" title="g_cclosure_marshal_VOID__POINTER ()">g_cclosure_marshal_VOID__POINTER</a> (<a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a> *closure,
<a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *return_value,
<a
href="./../glib/glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *param_values,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);
void <a class="link" href="gobject-Closures.html#g-cclosure-marshal-VOID--OBJECT" title="g_cclosure_marshal_VOID__OBJECT ()">g_cclosure_marshal_VOID__OBJECT</a> (<a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a> *closure,
<a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *return_value,
<a
href="./../glib/glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *param_values,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);
void <a class="link" href="gobject-Closures.html#g-cclosure-marshal-STRING--OBJECT-POINTER" title="g_cclosure_marshal_STRING__OBJECT_POINTER ()">g_cclosure_marshal_STRING__OBJECT_POINTER</a>
(<a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a> *closure,
<a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *return_value,
<a
href="./../glib/glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *param_values,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);
void <a class="link" href="gobject-Closures.html#g-cclosure-marshal-VOID--UINT-POINTER" title="g_cclosure_marshal_VOID__UINT_POINTER ()">g_cclosure_marshal_VOID__UINT_POINTER</a>
(<a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a> *closure,
<a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *return_value,
<a
href="./../glib/glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *param_values,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);
void <a class="link" href="gobject-Closures.html#g-cclosure-marshal-BOOLEAN--FLAGS" title="g_cclosure_marshal_BOOLEAN__FLAGS ()">g_cclosure_marshal_BOOLEAN__FLAGS</a> (<a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a> *closure,
<a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *return_value,
<a
href="./../glib/glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *param_values,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);
#define <a class="link" href="gobject-Closures.html#g-cclosure-marshal-BOOL--FLAGS" title="g_cclosure_marshal_BOOL__FLAGS">g_cclosure_marshal_BOOL__FLAGS</a>
</pre>
</div>
<div class="refsect1" title="Description">
<a name="gobject-Closures.description"></a><h2>Description</h2>
<p>
A <a class="link" href="gobject-Closures.html#GClosure" title="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 class="link" href="gobject-Generic-values.html#GValue" title="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 class="link" href="gobject-Generic-values.html#GValue" title="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 class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> and native C types. The GObject
library provides the <a class="link" href="gobject-Closures.html#GCClosure" title="GCClosure"><span class="type">GCClosure</span></a> type for this purpose. Bindings for
other languages need marshallers which convert between <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a>s and suitable representations in the runtime of the language in
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
<em class="parameter"><code>c_marshaller</code></em> argument to <a class="link" href="gobject-Signals.html#g-signal-new" title="g_signal_new ()"><code class="function">g_signal_new()</code></a> specifies the default C
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 class="link" href="glib-genmarshal.html" title="glib-genmarshal">glib-genmarshal</a> utility. Closures
can be explicitly connected to signals with
<a class="link" href="gobject-Signals.html#g-signal-connect-closure" title="g_signal_connect_closure ()"><code class="function">g_signal_connect_closure()</code></a>, but it usually more convenient to let
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 class="itemizedlist" type="disc">
<li class="listitem"><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 class="listitem"><p>
The reference counting of <a class="link" href="gobject-Closures.html#GClosure" title="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 its parameters won't be freed until the invocation finishes.
</p></li>
<li class="listitem"><p>
<a class="link" href="gobject-Closures.html#g-closure-invalidate" title="g_closure_invalidate ()"><code class="function">g_closure_invalidate()</code></a> and invalidation notifiers allow callbacks to be
automatically removed when the objects they point to go away.
</p></li>
</ul></div>
<p>
</p>
</div>
<div class="refsect1" title="Details">
<a name="gobject-Closures.details"></a><h2>Details</h2>
<div class="refsect2" title="G_CLOSURE_NEEDS_MARSHAL()">
<a name="G-CLOSURE-NEEDS-MARSHAL--CAPS"></a><h3>G_CLOSURE_NEEDS_MARSHAL()</h3>
<pre class="programlisting">#define G_CLOSURE_NEEDS_MARSHAL(closure) (((GClosure*) (closure))->marshal == NULL)
</pre>
<p>
Check if the closure still needs a marshaller. See <a class="link" href="gobject-Closures.html#g-closure-set-marshal" title="g_closure_set_marshal ()"><code class="function">g_closure_set_marshal()</code></a>.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td>
<td> a <a class="link" href="gobject-Closures.html#GClosure" title="GClosure"><span class="type">GClosure</span></a>
</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="G_CLOSURE_N_NOTIFIERS()">
<a name="G-CLOSURE-N-NOTIFIERS--CAPS"></a><h3>G_CLOSURE_N_NOTIFIERS()</h3>
<pre class="programlisting">#define G_CLOSURE_N_NOTIFIERS(cl)</pre>
<p>
Get the total number of notifiers connected with the closure <em class="parameter"><code>cl</code></em>.
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 class="link" href="gobject-Closures.html#g-closure-set-meta-marshal" title="g_closure_set_meta_marshal ()"><code class="function">g_closure_set_meta_marshal()</code></a>, <a class="link" href="gobject-Closures.html#g-closure-add-finalize-notifier" title="g_closure_add_finalize_notifier ()"><code class="function">g_closure_add_finalize_notifier()</code></a>,
<a class="link" href="gobject-Closures.html#g-closure-add-invalidate-notifier" title="g_closure_add_invalidate_notifier ()"><code class="function">g_closure_add_invalidate_notifier()</code></a> and <a class="link" href="gobject-Closures.html#g-closure-add-marshal-guards" title="g_closure_add_marshal_guards ()"><code class="function">g_closure_add_marshal_guards()</code></a>.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>cl</code></em> :</span></p></td>
<td> a <a class="link" href="gobject-Closures.html#GClosure" title="GClosure"><span class="type">GClosure</span></a>
</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="G_CCLOSURE_SWAP_DATA()">
<a name="G-CCLOSURE-SWAP-DATA--CAPS"></a><h3>G_CCLOSURE_SWAP_DATA()</h3>
<pre class="programlisting">#define G_CCLOSURE_SWAP_DATA(cclosure) (((GClosure*) (cclosure))->derivative_flag)
</pre>
<p>
Checks whether the user data of the <a class="link" href="gobject-Closures.html#GCClosure" title="GCClosure"><span class="type">GCClosure</span></a> should be passed as the
first parameter to the callback. See <a class="link" href="gobject-Closures.html#g-cclosure-new-swap" title="g_cclosure_new_swap ()"><code class="function">g_cclosure_new_swap()</code></a>.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>cclosure</code></em> :</span></p></td>
<td> a <a class="link" href="gobject-Closures.html#GCClosure" title="GCClosure"><span class="type">GCClosure</span></a>
</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="G_CALLBACK()">
<a name="G-CALLBACK--CAPS"></a><h3>G_CALLBACK()</h3>
<pre class="programlisting">#define G_CALLBACK(f) ((GCallback) (f))
</pre>
<p>
Cast a function pointer to a <a class="link" href="gobject-Closures.html#GCallback" title="GCallback ()"><span class="type">GCallback</span></a>.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>f</code></em> :</span></p></td>
<td> a function pointer.
</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="GCallback ()">
<a name="GCallback"></a><h3>GCallback ()</h3>
<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 class="link" href="gobject-Closures.html#G-CALLBACK--CAPS" title="G_CALLBACK()"><code class="function">G_CALLBACK()</code></a> to cast the callback function to a <a class="link" href="gobject-Closures.html#GCallback" title="GCallback ()"><span class="type">GCallback</span></a>.</p>
<p>
</p>
</div>
<hr>
<div class="refsect2" title="GClosure">
<a name="GClosure"></a><h3>GClosure</h3>
<pre class="programlisting">typedef struct {
volatile guint in_marshal : 1;
volatile guint is_invalid : 1;
} GClosure;
</pre>
<p>
A <a class="link" href="gobject-Closures.html#GClosure" title="GClosure"><span class="type">GClosure</span></a> represents a callback supplied by the programmer.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term">volatile <a
href="./../glib/glib/glib-Basic-Types.html#guint"
>guint</a> <em class="structfield"><code>in_marshal</code></em> : 1;</span></p></td>
<td> Indicates whether the closure is currently being invoked with
<a class="link" href="gobject-Closures.html#g-closure-invoke" title="g_closure_invoke ()"><code class="function">g_closure_invoke()</code></a>
</td>
</tr>
<tr>
<td><p><span class="term">volatile <a
href="./../glib/glib/glib-Basic-Types.html#guint"
>guint</a> <em class="structfield"><code>is_invalid</code></em> : 1;</span></p></td>
<td> Indicates whether the closure has been invalidated by
<a class="link" href="gobject-Closures.html#g-closure-invalidate" title="g_closure_invalidate ()"><code class="function">g_closure_invalidate()</code></a>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="G_TYPE_CLOSURE">
<a name="G-TYPE-CLOSURE--CAPS"></a><h3>G_TYPE_CLOSURE</h3>
<pre class="programlisting">#define G_TYPE_CLOSURE (g_closure_get_type ())
</pre>
<p>
The <a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> for <a class="link" href="gobject-Closures.html#GClosure" title="GClosure"><span class="type">GClosure</span></a>.</p>
<p>
</p>
</div>
<hr>
<div class="refsect2" title="GCClosure">
<a name="GCClosure"></a><h3>GCClosure</h3>
<pre class="programlisting">typedef struct {
GClosure closure;
gpointer callback;
} GCClosure;
</pre>
<p>
A <a class="link" href="gobject-Closures.html#GCClosure" title="GCClosure"><span class="type">GCClosure</span></a> is a specialization of <a class="link" href="gobject-Closures.html#GClosure" title="GClosure"><span class="type">GClosure</span></a> for C function callbacks.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a> <em class="structfield"><code>closure</code></em>;</span></p></td>
<td> the <a class="link" href="gobject-Closures.html#GClosure" title="GClosure"><span class="type">GClosure</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> <em class="structfield"><code>callback</code></em>;</span></p></td>
<td> the callback function
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="GClosureMarshal ()">
<a name="GClosureMarshal"></a><h3>GClosureMarshal ()</h3>
<pre class="programlisting">void (*GClosureMarshal) (<a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a> *closure,
<a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *return_value,
<a
href="./../glib/glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *param_values,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);</pre>
<p>
The type used for marshaller functions.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td>
<td> the <a class="link" href="gobject-Closures.html#GClosure" title="GClosure"><span class="type">GClosure</span></a> to which the marshaller belongs
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>return_value</code></em> :</span></p></td>
<td> a <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> to store the return value. May be <a
href="./../glib/glib/glib-Standard-Macros.html#NULL--CAPS"
><code class="literal">NULL</code></a> if the
callback of <em class="parameter"><code>closure</code></em> doesn't return a value.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>n_param_values</code></em> :</span></p></td>
<td> the length of the <em class="parameter"><code>param_values</code></em> array
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>param_values</code></em> :</span></p></td>
<td> an array of <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a>s holding the arguments on
which to invoke the callback of <em class="parameter"><code>closure</code></em>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>invocation_hint</code></em> :</span></p></td>
<td> the invocation hint given as the last argument
to <a class="link" href="gobject-Closures.html#g-closure-invoke" title="g_closure_invoke ()"><code class="function">g_closure_invoke()</code></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>marshal_data</code></em> :</span></p></td>
<td> additional data specified when registering the marshaller,
see <a class="link" href="gobject-Closures.html#g-closure-set-marshal" title="g_closure_set_marshal ()"><code class="function">g_closure_set_marshal()</code></a> and <a class="link" href="gobject-Closures.html#g-closure-set-meta-marshal" title="g_closure_set_meta_marshal ()"><code class="function">g_closure_set_meta_marshal()</code></a>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="GClosureNotify ()">
<a name="GClosureNotify"></a><h3>GClosureNotify ()</h3>
<pre class="programlisting">void (*GClosureNotify) (<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> data,
<a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a> *closure);</pre>
<p>
The type used for the various notification callbacks which can be registered
on closures.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
<td> data specified when registering the notification callback
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td>
<td> the <a class="link" href="gobject-Closures.html#GClosure" title="GClosure"><span class="type">GClosure</span></a> on which the notification is emitted
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="g_cclosure_new ()">
<a name="g-cclosure-new"></a><h3>g_cclosure_new ()</h3>
<pre class="programlisting"><a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a>* g_cclosure_new (<a class="link" href="gobject-Closures.html#GCallback" title="GCallback ()">GCallback</a> callback_func,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> user_data,
<a class="link" href="gobject-Closures.html#GClosureNotify" title="GClosureNotify ()">GClosureNotify</a> destroy_data);</pre>
<p>
Creates a new closure which invokes <em class="parameter"><code>callback_func</code></em> with <em class="parameter"><code>user_data</code></em> as
the last parameter.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>callback_func</code></em> :</span></p></td>
<td> the function to invoke
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
<td> user data to pass to <em class="parameter"><code>callback_func</code></em>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>destroy_data</code></em> :</span></p></td>
<td> destroy notify to be called when <em class="parameter"><code>user_data</code></em> is no longer used
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> a new <a class="link" href="gobject-Closures.html#GCClosure" title="GCClosure"><span class="type">GCClosure</span></a>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="g_cclosure_new_swap ()">
<a name="g-cclosure-new-swap"></a><h3>g_cclosure_new_swap ()</h3>
<pre class="programlisting"><a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a>* g_cclosure_new_swap (<a class="link" href="gobject-Closures.html#GCallback" title="GCallback ()">GCallback</a> callback_func,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> user_data,
<a class="link" href="gobject-Closures.html#GClosureNotify" title="GClosureNotify ()">GClosureNotify</a> destroy_data);</pre>
<p>
Creates a new closure which invokes <em class="parameter"><code>callback_func</code></em> with <em class="parameter"><code>user_data</code></em> as
the first parameter.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>callback_func</code></em> :</span></p></td>
<td> the function to invoke
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
<td> user data to pass to <em class="parameter"><code>callback_func</code></em>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>destroy_data</code></em> :</span></p></td>
<td> destroy notify to be called when <em class="parameter"><code>user_data</code></em> is no longer used
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> a new <a class="link" href="gobject-Closures.html#GCClosure" title="GCClosure"><span class="type">GCClosure</span></a>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="g_cclosure_new_object ()">
<a name="g-cclosure-new-object"></a><h3>g_cclosure_new_object ()</h3>
<pre class="programlisting"><a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a>* g_cclosure_new_object (<a class="link" href="gobject-Closures.html#GCallback" title="GCallback ()">GCallback</a> callback_func,
<a class="link" href="gobject-The-Base-Object-Type.html#GObject">GObject</a> *object);</pre>
<p>
A variant of <a class="link" href="gobject-Closures.html#g-cclosure-new" title="g_cclosure_new ()"><code class="function">g_cclosure_new()</code></a> which uses <em class="parameter"><code>object</code></em> as <em class="parameter"><code>user_data</code></em> and
calls <a class="link" href="gobject-The-Base-Object-Type.html#g-object-watch-closure" title="g_object_watch_closure ()"><code class="function">g_object_watch_closure()</code></a> on <em class="parameter"><code>object</code></em> and the created
closure. This function is useful when you have a callback closely
associated with a <a class="link" href="gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a>, and want the callback to no longer run
after the object is is freed.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>callback_func</code></em> :</span></p></td>
<td> the function to invoke
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
<td> a <a class="link" href="gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> pointer to pass to <em class="parameter"><code>callback_func</code></em>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> a new <a class="link" href="gobject-Closures.html#GCClosure" title="GCClosure"><span class="type">GCClosure</span></a>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="g_cclosure_new_object_swap ()">
<a name="g-cclosure-new-object-swap"></a><h3>g_cclosure_new_object_swap ()</h3>
<pre class="programlisting"><a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a>* g_cclosure_new_object_swap (<a class="link" href="gobject-Closures.html#GCallback" title="GCallback ()">GCallback</a> callback_func,
<a class="link" href="gobject-The-Base-Object-Type.html#GObject">GObject</a> *object);</pre>
<p>
A variant of <a class="link" href="gobject-Closures.html#g-cclosure-new-swap" title="g_cclosure_new_swap ()"><code class="function">g_cclosure_new_swap()</code></a> which uses <em class="parameter"><code>object</code></em> as <em class="parameter"><code>user_data</code></em>
and calls <a class="link" href="gobject-The-Base-Object-Type.html#g-object-watch-closure" title="g_object_watch_closure ()"><code class="function">g_object_watch_closure()</code></a> on <em class="parameter"><code>object</code></em> and the created
closure. This function is useful when you have a callback closely
associated with a <a class="link" href="gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a>, and want the callback to no longer run
after the object is is freed.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>callback_func</code></em> :</span></p></td>
<td> the function to invoke
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
<td> a <a class="link" href="gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> pointer to pass to <em class="parameter"><code>callback_func</code></em>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> a new <a class="link" href="gobject-Closures.html#GCClosure" title="GCClosure"><span class="type">GCClosure</span></a>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="g_closure_new_object ()">
<a name="g-closure-new-object"></a><h3>g_closure_new_object ()</h3>
<pre class="programlisting"><a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a>* g_closure_new_object (<a
href="./../glib/glib/glib-Basic-Types.html#guint"
>guint</a> sizeof_closure,
<a class="link" href="gobject-The-Base-Object-Type.html#GObject">GObject</a> *object);</pre>
<p>
A variant of <a class="link" href="gobject-Closures.html#g-closure-new-simple" title="g_closure_new_simple ()"><code class="function">g_closure_new_simple()</code></a> which stores <em class="parameter"><code>object</code></em> in the
<em class="parameter"><code>data</code></em> field of the closure and calls <a class="link" href="gobject-The-Base-Object-Type.html#g-object-watch-closure" title="g_object_watch_closure ()"><code class="function">g_object_watch_closure()</code></a> on
<em class="parameter"><code>object</code></em> and the created closure. This function is mainly useful
when implementing new types of closures.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>sizeof_closure</code></em> :</span></p></td>
<td> the size of the structure to allocate, must be at least
<code class="literal">sizeof (GClosure)</code>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
<td> a <a class="link" href="gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> pointer to store in the <em class="parameter"><code>data</code></em> field of the newly
allocated <a class="link" href="gobject-Closures.html#GClosure" title="GClosure"><span class="type">GClosure</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> a newly allocated <a class="link" href="gobject-Closures.html#GClosure" title="GClosure"><span class="type">GClosure</span></a>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="g_closure_ref ()">
<a name="g-closure-ref"></a><h3>g_closure_ref ()</h3>
<pre class="programlisting"><a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a>* g_closure_ref (<a class="link" href="gobject-Closures.html#GClosure" title="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>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td>
<td> <a class="link" href="gobject-Closures.html#GClosure" title="GClosure"><span class="type">GClosure</span></a> to increment the reference count on
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> The <em class="parameter"><code>closure</code></em> passed in, for convenience
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="g_closure_sink ()">
<a name="g-closure-sink"></a><h3>g_closure_sink ()</h3>
<pre class="programlisting">void g_closure_sink (<a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a> *closure);</pre>
<p>
Takes over the initial ownership of a closure. Each closure is
initially created in a <em class="firstterm">floating</em> state, which
means that the initial reference count is not owned by any caller.
<a class="link" href="gobject-Closures.html#g-closure-sink" title="g_closure_sink ()"><code class="function">g_closure_sink()</code></a> checks to see if the object is still floating, and
if so, unsets the floating state and decreases the reference
count. If the closure is not floating, <a class="link" href="gobject-Closures.html#g-closure-sink" title="g_closure_sink ()"><code class="function">g_closure_sink()</code></a> does
nothing. The reason for the existance of the floating state is to
prevent cumbersome code sequences like:
</p>
<div class="informalexample"><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></div>
<p>
Because <a class="link" href="gobject-Closures.html#g-source-set-closure" title="g_source_set_closure ()"><code class="function">g_source_set_closure()</code></a> (and similar functions) take ownership of the
initial reference count, if it is unowned, we instead can write:
</p>
<div class="informalexample"><pre class="programlisting">
g_source_set_closure (source, g_cclosure_new (cb_func, cb_data));
</pre></div>
<p>
</p>
<p>
Generally, this function is used together with <a class="link" href="gobject-Closures.html#g-closure-ref" title="g_closure_ref ()"><code class="function">g_closure_ref()</code></a>. Ane example
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 class="link" href="gobject-Closures.html#g-closure-sink" title="g_closure_sink ()"><code class="function">g_closure_sink()</code></a> may decrement the reference count of a closure
(if it hasn't been called on <em class="parameter"><code>closure</code></em> yet) just like <a class="link" href="gobject-Closures.html#g-closure-unref" title="g_closure_unref ()"><code class="function">g_closure_unref()</code></a>,
<a class="link" href="gobject-Closures.html#g-closure-ref" title="g_closure_ref ()"><code class="function">g_closure_ref()</code></a> should be called prior to this function.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td>
<td> <a class="link" href="gobject-Closures.html#GClosure" title="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" title="g_closure_unref ()">
<a name="g-closure-unref"></a><h3>g_closure_unref ()</h3>
<pre class="programlisting">void g_closure_unref (<a class="link" href="gobject-Closures.html#GClosure" title="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>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td>
<td> <a class="link" href="gobject-Closures.html#GClosure" title="GClosure"><span class="type">GClosure</span></a> to decrement the reference count on
</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="g_closure_invoke ()">
<a name="g-closure-invoke"></a><h3>g_closure_invoke ()</h3>
<pre class="programlisting">void g_closure_invoke (<a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a> *closure,
<a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *return_value,
<a
href="./../glib/glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *param_values,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint);</pre>
<p>
Invokes the closure, i.e. executes the callback represented by the <em class="parameter"><code>closure</code></em>.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td>
<td> a <a class="link" href="gobject-Closures.html#GClosure" title="GClosure"><span class="type">GClosure</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>return_value</code></em> :</span></p></td>
<td> a <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> to store the return value. May be <a
href="./../glib/glib/glib-Standard-Macros.html#NULL--CAPS"
><code class="literal">NULL</code></a> if the
callback of <em class="parameter"><code>closure</code></em> doesn't return a value.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>n_param_values</code></em> :</span></p></td>
<td> the length of the <em class="parameter"><code>param_values</code></em> array
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>param_values</code></em> :</span></p></td>
<td> an array of <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a>s holding the arguments on
which to invoke the callback of <em class="parameter"><code>closure</code></em>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>invocation_hint</code></em> :</span></p></td>
<td> a context-dependent invocation hint
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="g_closure_invalidate ()">
<a name="g-closure-invalidate"></a><h3>g_closure_invalidate ()</h3>
<pre class="programlisting">void g_closure_invalidate (<a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a> *closure);</pre>
<p>
Sets a flag on the closure to indicate that its calling
environment has become invalid, and thus causes any future
invocations of <a class="link" href="gobject-Closures.html#g-closure-invoke" title="g_closure_invoke ()"><code class="function">g_closure_invoke()</code></a> on this <em class="parameter"><code>closure</code></em> to be
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 class="link" href="gobject-Closures.html#g-closure-invalidate" title="g_closure_invalidate ()"><code class="function">g_closure_invalidate()</code></a>, make sure
that you've previously called <a class="link" href="gobject-Closures.html#g-closure-ref" title="g_closure_ref ()"><code class="function">g_closure_ref()</code></a>.
</p>
<p>
Note that <a class="link" href="gobject-Closures.html#g-closure-invalidate" title="g_closure_invalidate ()"><code class="function">g_closure_invalidate()</code></a> will also be called when the
reference count of a closure drops to zero (unless it has already
been invalidated before).</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td>
<td> GClosure to invalidate
</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="g_closure_add_finalize_notifier ()">
<a name="g-closure-add-finalize-notifier"></a><h3>g_closure_add_finalize_notifier ()</h3>
<pre class="programlisting">void g_closure_add_finalize_notifier (<a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a> *closure,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> notify_data,
<a class="link" href="gobject-Closures.html#GClosureNotify" title="GClosureNotify ()">GClosureNotify</a> notify_func);</pre>
<p>
Registers a finalization notifier which will be called when the
reference count of <em class="parameter"><code>closure</code></em> goes down to 0. Multiple finalization
notifiers on a single closure are invoked in unspecified order. If
a single call to <a class="link" href="gobject-Closures.html#g-closure-unref" title="g_closure_unref ()"><code class="function">g_closure_unref()</code></a> results in the closure being
both invalidated and finalized, then the invalidate notifiers will
be run before the finalize notifiers.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td>
<td> a <a class="link" href="gobject-Closures.html#GClosure" title="GClosure"><span class="type">GClosure</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>notify_data</code></em> :</span></p></td>
<td> data to pass to <em class="parameter"><code>notify_func</code></em>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>notify_func</code></em> :</span></p></td>
<td> the callback function to register
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="g_closure_add_invalidate_notifier ()">
<a name="g-closure-add-invalidate-notifier"></a><h3>g_closure_add_invalidate_notifier ()</h3>
<pre class="programlisting">void g_closure_add_invalidate_notifier (<a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a> *closure,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> notify_data,
<a class="link" href="gobject-Closures.html#GClosureNotify" title="GClosureNotify ()">GClosureNotify</a> notify_func);</pre>
<p>
Registers an invalidation notifier which will be called when the
<em class="parameter"><code>closure</code></em> is invalidated with <a class="link" href="gobject-Closures.html#g-closure-invalidate" title="g_closure_invalidate ()"><code class="function">g_closure_invalidate()</code></a>. Invalidation
notifiers are invoked before finalization notifiers, in an
unspecified order.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td>
<td> a <a class="link" href="gobject-Closures.html#GClosure" title="GClosure"><span class="type">GClosure</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>notify_data</code></em> :</span></p></td>
<td> data to pass to <em class="parameter"><code>notify_func</code></em>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>notify_func</code></em> :</span></p></td>
<td> the callback function to register
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="g_closure_remove_finalize_notifier ()">
<a name="g-closure-remove-finalize-notifier"></a><h3>g_closure_remove_finalize_notifier ()</h3>
<pre class="programlisting">void g_closure_remove_finalize_notifier (<a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a> *closure,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> notify_data,
<a class="link" href="gobject-Closures.html#GClosureNotify" title="GClosureNotify ()">GClosureNotify</a> notify_func);</pre>
<p>
Removes a finalization notifier.
</p>
<p>
Notice that notifiers are automatically removed after they are run.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td>
<td> a <a class="link" href="gobject-Closures.html#GClosure" title="GClosure"><span class="type">GClosure</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>notify_data</code></em> :</span></p></td>
<td> data which was passed to <a class="link" href="gobject-Closures.html#g-closure-add-finalize-notifier" title="g_closure_add_finalize_notifier ()"><code class="function">g_closure_add_finalize_notifier()</code></a>
when registering <em class="parameter"><code>notify_func</code></em>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>notify_func</code></em> :</span></p></td>
<td> the callback function to remove
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="g_closure_remove_invalidate_notifier ()">
<a name="g-closure-remove-invalidate-notifier"></a><h3>g_closure_remove_invalidate_notifier ()</h3>
<pre class="programlisting">void g_closure_remove_invalidate_notifier
(<a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a> *closure,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> notify_data,
<a class="link" href="gobject-Closures.html#GClosureNotify" title="GClosureNotify ()">GClosureNotify</a> notify_func);</pre>
<p>
Removes an invalidation notifier.
</p>
<p>
Notice that notifiers are automatically removed after they are run.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td>
<td> a <a class="link" href="gobject-Closures.html#GClosure" title="GClosure"><span class="type">GClosure</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>notify_data</code></em> :</span></p></td>
<td> data which was passed to <a class="link" href="gobject-Closures.html#g-closure-add-invalidate-notifier" title="g_closure_add_invalidate_notifier ()"><code class="function">g_closure_add_invalidate_notifier()</code></a>
when registering <em class="parameter"><code>notify_func</code></em>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>notify_func</code></em> :</span></p></td>
<td> the callback function to remove
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="g_closure_new_simple ()">
<a name="g-closure-new-simple"></a><h3>g_closure_new_simple ()</h3>
<pre class="programlisting"><a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a>* g_closure_new_simple (<a
href="./../glib/glib/glib-Basic-Types.html#guint"
>guint</a> sizeof_closure,
<a
href="./../glib/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 class="link" href="gobject-Closures.html#GClosure" title="GClosure"><span class="type">GClosure</span></a>. This function is mainly useful when
implementing new types of closures.
</p>
<p>
</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>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>sizeof_closure</code></em> :</span></p></td>
<td> the size of the structure to allocate, must be at least
<code class="literal">sizeof (GClosure)</code>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
<td> data to store in the <em class="parameter"><code>data</code></em> field of the newly allocated <a class="link" href="gobject-Closures.html#GClosure" title="GClosure"><span class="type">GClosure</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> a newly allocated <a class="link" href="gobject-Closures.html#GClosure" title="GClosure"><span class="type">GClosure</span></a>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="g_closure_set_marshal ()">
<a name="g-closure-set-marshal"></a><h3>g_closure_set_marshal ()</h3>
<pre class="programlisting">void g_closure_set_marshal (<a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a> *closure,
<a class="link" href="gobject-Closures.html#GClosureMarshal" title="GClosureMarshal ()">GClosureMarshal</a> marshal);</pre>
<p>
Sets the marshaller of <em class="parameter"><code>closure</code></em>. The <code class="literal">marshal_data</code>
of <em class="parameter"><code>marshal</code></em> provides a way for a meta marshaller to provide additional
information to the marshaller. (See <a class="link" href="gobject-Closures.html#g-closure-set-meta-marshal" title="g_closure_set_meta_marshal ()"><code class="function">g_closure_set_meta_marshal()</code></a>.) For
GObject's C predefined marshallers (the g_cclosure_marshal_*()
functions), what it provides is a callback function to use instead of
<em class="parameter"><code>closure->callback</code></em>.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td>
<td> a <a class="link" href="gobject-Closures.html#GClosure" title="GClosure"><span class="type">GClosure</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>marshal</code></em> :</span></p></td>
<td> a <a class="link" href="gobject-Closures.html#GClosureMarshal" title="GClosureMarshal ()"><span class="type">GClosureMarshal</span></a> function
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="g_closure_add_marshal_guards ()">
<a name="g-closure-add-marshal-guards"></a><h3>g_closure_add_marshal_guards ()</h3>
<pre class="programlisting">void g_closure_add_marshal_guards (<a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a> *closure,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> pre_marshal_data,
<a class="link" href="gobject-Closures.html#GClosureNotify" title="GClosureNotify ()">GClosureNotify</a> pre_marshal_notify,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> post_marshal_data,
<a class="link" href="gobject-Closures.html#GClosureNotify" title="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 class="link" href="gobject-The-Base-Object-Type.html#g-object-watch-closure" title="g_object_watch_closure ()"><code class="function">g_object_watch_closure()</code></a> for an example of marshal guards.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td>
<td> a <a class="link" href="gobject-Closures.html#GClosure" title="GClosure"><span class="type">GClosure</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>pre_marshal_data</code></em> :</span></p></td>
<td> data to pass to <em class="parameter"><code>pre_marshal_notify</code></em>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>pre_marshal_notify</code></em> :</span></p></td>
<td> a function to call before the closure callback
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>post_marshal_data</code></em> :</span></p></td>
<td> data to pass to <em class="parameter"><code>post_marshal_notify</code></em>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>post_marshal_notify</code></em> :</span></p></td>
<td> a function to call after the closure callback
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="g_closure_set_meta_marshal ()">
<a name="g-closure-set-meta-marshal"></a><h3>g_closure_set_meta_marshal ()</h3>
<pre class="programlisting">void g_closure_set_meta_marshal (<a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a> *closure,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data,
<a class="link" href="gobject-Closures.html#GClosureMarshal" title="GClosureMarshal ()">GClosureMarshal</a> meta_marshal);</pre>
<p>
Sets the meta marshaller of <em class="parameter"><code>closure</code></em>. A meta marshaller wraps
<em class="parameter"><code>closure->marshal</code></em> 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 class="link" 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 <em class="parameter"><code>closure->callback</code></em>, but in
other cases we want to use some different technique to retrieve the
callback function.
</p>
<p>
For example, class closures for signals (see
<a class="link" href="gobject-Signals.html#g-signal-type-cclosure-new" title="g_signal_type_cclosure_new ()"><code class="function">g_signal_type_cclosure_new()</code></a>) retrieve the callback function from a
fixed offset in the class structure. The meta marshaller retrieves
the right callback and passes it to the marshaller as the
<em class="parameter"><code>marshal_data</code></em> argument.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td>
<td> a <a class="link" href="gobject-Closures.html#GClosure" title="GClosure"><span class="type">GClosure</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>marshal_data</code></em> :</span></p></td>
<td> context-dependent data to pass to <em class="parameter"><code>meta_marshal</code></em>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>meta_marshal</code></em> :</span></p></td>
<td> a <a class="link" href="gobject-Closures.html#GClosureMarshal" title="GClosureMarshal ()"><span class="type">GClosureMarshal</span></a> function
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="g_source_set_closure ()">
<a name="g-source-set-closure"></a><h3>g_source_set_closure ()</h3>
<pre class="programlisting">void g_source_set_closure (<a
href="./../glib/glib/glib-The-Main-Event-Loop.html#GSource"
>GSource</a> *source,
<a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a> *closure);</pre>
<p>
Set the callback for a source as a <a class="link" href="gobject-Closures.html#GClosure" title="GClosure"><span class="type">GClosure</span></a>.
</p>
<p>
If the source is not one of the standard GLib types, the <em class="parameter"><code>closure_callback</code></em>
and <em class="parameter"><code>closure_marshal</code></em> fields of the <a
href="./../glib/glib/glib-The-Main-Event-Loop.html#GSourceFuncs"
><span class="type">GSourceFuncs</span></a> structure must have been
filled in with pointers to appropriate functions.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>source</code></em> :</span></p></td>
<td> the source
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td>
<td> a <a class="link" href="gobject-Closures.html#GClosure" title="GClosure"><span class="type">GClosure</span></a>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="G_TYPE_IO_CHANNEL">
<a name="G-TYPE-IO-CHANNEL--CAPS"></a><h3>G_TYPE_IO_CHANNEL</h3>
<pre class="programlisting">#define G_TYPE_IO_CHANNEL (g_io_channel_get_type ())
</pre>
<p>
The <a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> for <a
href="./../glib/glib/glib-IO-Channels.html#GIOChannel"
><span class="type">GIOChannel</span></a>.</p>
<p>
</p>
</div>
<hr>
<div class="refsect2" title="G_TYPE_IO_CONDITION">
<a name="G-TYPE-IO-CONDITION--CAPS"></a><h3>G_TYPE_IO_CONDITION</h3>
<pre class="programlisting">#define G_TYPE_IO_CONDITION (g_io_condition_get_type ())
</pre>
<p>
The <a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> for <a
href="./../glib/glib/glib-IO-Channels.html#GIOCondition"
><span class="type">GIOCondition</span></a>.</p>
<p>
</p>
</div>
<hr>
<div class="refsect2" title="g_cclosure_marshal_VOID__VOID ()">
<a name="g-cclosure-marshal-VOID--VOID"></a><h3>g_cclosure_marshal_VOID__VOID ()</h3>
<pre class="programlisting">void g_cclosure_marshal_VOID__VOID (<a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a> *closure,
<a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *return_value,
<a
href="./../glib/glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *param_values,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);</pre>
<p>
A marshaller for a <a class="link" href="gobject-Closures.html#GCClosure" title="GCClosure"><span class="type">GCClosure</span></a> with a callback of type
<code class="literal">void (*callback) (gpointer instance, gpointer user_data)</code>.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td>
<td> the <a class="link" href="gobject-Closures.html#GClosure" title="GClosure"><span class="type">GClosure</span></a> to which the marshaller belongs
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>return_value</code></em> :</span></p></td>
<td> ignored
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>n_param_values</code></em> :</span></p></td>
<td> 1
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>param_values</code></em> :</span></p></td>
<td> a <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> array holding only the instance
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>invocation_hint</code></em> :</span></p></td>
<td> the invocation hint given as the last argument
to <a class="link" href="gobject-Closures.html#g-closure-invoke" title="g_closure_invoke ()"><code class="function">g_closure_invoke()</code></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>marshal_data</code></em> :</span></p></td>
<td> additional data specified when registering the marshaller
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="g_cclosure_marshal_VOID__BOOLEAN ()">
<a name="g-cclosure-marshal-VOID--BOOLEAN"></a><h3>g_cclosure_marshal_VOID__BOOLEAN ()</h3>
<pre class="programlisting">void g_cclosure_marshal_VOID__BOOLEAN (<a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a> *closure,
<a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *return_value,
<a
href="./../glib/glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *param_values,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);</pre>
<p>
A marshaller for a <a class="link" href="gobject-Closures.html#GCClosure" title="GCClosure"><span class="type">GCClosure</span></a> with a callback of type
<code class="literal">void (*callback) (gpointer instance, gboolean arg1, gpointer user_data)</code>.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td>
<td> the <a class="link" href="gobject-Closures.html#GClosure" title="GClosure"><span class="type">GClosure</span></a> to which the marshaller belongs
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>return_value</code></em> :</span></p></td>
<td> ignored
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>n_param_values</code></em> :</span></p></td>
<td> 2
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>param_values</code></em> :</span></p></td>
<td> a <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> array holding the instance and the <a
href="./../glib/glib/glib-Basic-Types.html#gboolean"
><span class="type">gboolean</span></a> parameter
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>invocation_hint</code></em> :</span></p></td>
<td> the invocation hint given as the last argument
to <a class="link" href="gobject-Closures.html#g-closure-invoke" title="g_closure_invoke ()"><code class="function">g_closure_invoke()</code></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>marshal_data</code></em> :</span></p></td>
<td> additional data specified when registering the marshaller
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="g_cclosure_marshal_VOID__CHAR ()">
<a name="g-cclosure-marshal-VOID--CHAR"></a><h3>g_cclosure_marshal_VOID__CHAR ()</h3>
<pre class="programlisting">void g_cclosure_marshal_VOID__CHAR (<a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a> *closure,
<a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *return_value,
<a
href="./../glib/glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *param_values,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);</pre>
<p>
A marshaller for a <a class="link" href="gobject-Closures.html#GCClosure" title="GCClosure"><span class="type">GCClosure</span></a> with a callback of type
<code class="literal">void (*callback) (gpointer instance, gchar arg1, gpointer user_data)</code>.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td>
<td> the <a class="link" href="gobject-Closures.html#GClosure" title="GClosure"><span class="type">GClosure</span></a> to which the marshaller belongs
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>return_value</code></em> :</span></p></td>
<td> ignored
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>n_param_values</code></em> :</span></p></td>
<td> 2
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>param_values</code></em> :</span></p></td>
<td> a <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> array holding the instance and the <a
href="./../glib/glib/glib-Basic-Types.html#gchar"
><span class="type">gchar</span></a> parameter
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>invocation_hint</code></em> :</span></p></td>
<td> the invocation hint given as the last argument
to <a class="link" href="gobject-Closures.html#g-closure-invoke" title="g_closure_invoke ()"><code class="function">g_closure_invoke()</code></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>marshal_data</code></em> :</span></p></td>
<td> additional data specified when registering the marshaller
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="g_cclosure_marshal_VOID__UCHAR ()">
<a name="g-cclosure-marshal-VOID--UCHAR"></a><h3>g_cclosure_marshal_VOID__UCHAR ()</h3>
<pre class="programlisting">void g_cclosure_marshal_VOID__UCHAR (<a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a> *closure,
<a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *return_value,
<a
href="./../glib/glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *param_values,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);</pre>
<p>
A marshaller for a <a class="link" href="gobject-Closures.html#GCClosure" title="GCClosure"><span class="type">GCClosure</span></a> with a callback of type
<code class="literal">void (*callback) (gpointer instance, guchar arg1, gpointer user_data)</code>.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td>
<td> the <a class="link" href="gobject-Closures.html#GClosure" title="GClosure"><span class="type">GClosure</span></a> to which the marshaller belongs
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>return_value</code></em> :</span></p></td>
<td> ignored
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>n_param_values</code></em> :</span></p></td>
<td> 2
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>param_values</code></em> :</span></p></td>
<td> a <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> array holding the instance and the <a
href="./../glib/glib/glib-Basic-Types.html#guchar"
><span class="type">guchar</span></a> parameter
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>invocation_hint</code></em> :</span></p></td>
<td> the invocation hint given as the last argument
to <a class="link" href="gobject-Closures.html#g-closure-invoke" title="g_closure_invoke ()"><code class="function">g_closure_invoke()</code></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>marshal_data</code></em> :</span></p></td>
<td> additional data specified when registering the marshaller
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="g_cclosure_marshal_VOID__INT ()">
<a name="g-cclosure-marshal-VOID--INT"></a><h3>g_cclosure_marshal_VOID__INT ()</h3>
<pre class="programlisting">void g_cclosure_marshal_VOID__INT (<a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a> *closure,
<a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *return_value,
<a
href="./../glib/glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *param_values,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);</pre>
<p>
A marshaller for a <a class="link" href="gobject-Closures.html#GCClosure" title="GCClosure"><span class="type">GCClosure</span></a> with a callback of type
<code class="literal">void (*callback) (gpointer instance, gint arg1, gpointer user_data)</code>.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td>
<td> the <a class="link" href="gobject-Closures.html#GClosure" title="GClosure"><span class="type">GClosure</span></a> to which the marshaller belongs
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>return_value</code></em> :</span></p></td>
<td> ignored
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>n_param_values</code></em> :</span></p></td>
<td> 2
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>param_values</code></em> :</span></p></td>
<td> a <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> array holding the instance and the <a
href="./../glib/glib/glib-Basic-Types.html#gint"
><span class="type">gint</span></a> parameter
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>invocation_hint</code></em> :</span></p></td>
<td> the invocation hint given as the last argument
to <a class="link" href="gobject-Closures.html#g-closure-invoke" title="g_closure_invoke ()"><code class="function">g_closure_invoke()</code></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>marshal_data</code></em> :</span></p></td>
<td> additional data specified when registering the marshaller
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="g_cclosure_marshal_VOID__UINT ()">
<a name="g-cclosure-marshal-VOID--UINT"></a><h3>g_cclosure_marshal_VOID__UINT ()</h3>
<pre class="programlisting">void g_cclosure_marshal_VOID__UINT (<a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a> *closure,
<a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *return_value,
<a
href="./../glib/glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *param_values,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);</pre>
<p>
A marshaller for a <a class="link" href="gobject-Closures.html#GCClosure" title="GCClosure"><span class="type">GCClosure</span></a> with a callback of type
<code class="literal">void (*callback) (gpointer instance, guint arg1, gpointer user_data)</code>.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td>
<td> the <a class="link" href="gobject-Closures.html#GClosure" title="GClosure"><span class="type">GClosure</span></a> to which the marshaller belongs
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>return_value</code></em> :</span></p></td>
<td> ignored
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>n_param_values</code></em> :</span></p></td>
<td> 2
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>param_values</code></em> :</span></p></td>
<td> a <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> array holding the instance and the <a
href="./../glib/glib/glib-Basic-Types.html#guint"
><span class="type">guint</span></a> parameter
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>invocation_hint</code></em> :</span></p></td>
<td> the invocation hint given as the last argument
to <a class="link" href="gobject-Closures.html#g-closure-invoke" title="g_closure_invoke ()"><code class="function">g_closure_invoke()</code></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>marshal_data</code></em> :</span></p></td>
<td> additional data specified when registering the marshaller
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="g_cclosure_marshal_VOID__LONG ()">
<a name="g-cclosure-marshal-VOID--LONG"></a><h3>g_cclosure_marshal_VOID__LONG ()</h3>
<pre class="programlisting">void g_cclosure_marshal_VOID__LONG (<a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a> *closure,
<a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *return_value,
<a
href="./../glib/glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *param_values,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);</pre>
<p>
A marshaller for a <a class="link" href="gobject-Closures.html#GCClosure" title="GCClosure"><span class="type">GCClosure</span></a> with a callback of type
<code class="literal">void (*callback) (gpointer instance, glong arg1, gpointer user_data)</code>.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td>
<td> the <a class="link" href="gobject-Closures.html#GClosure" title="GClosure"><span class="type">GClosure</span></a> to which the marshaller belongs
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>return_value</code></em> :</span></p></td>
<td> ignored
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>n_param_values</code></em> :</span></p></td>
<td> 2
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>param_values</code></em> :</span></p></td>
<td> a <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> array holding the instance and the <a
href="./../glib/glib/glib-Basic-Types.html#glong"
><span class="type">glong</span></a> parameter
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>invocation_hint</code></em> :</span></p></td>
<td> the invocation hint given as the last argument
to <a class="link" href="gobject-Closures.html#g-closure-invoke" title="g_closure_invoke ()"><code class="function">g_closure_invoke()</code></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>marshal_data</code></em> :</span></p></td>
<td> additional data specified when registering the marshaller
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="g_cclosure_marshal_VOID__ULONG ()">
<a name="g-cclosure-marshal-VOID--ULONG"></a><h3>g_cclosure_marshal_VOID__ULONG ()</h3>
<pre class="programlisting">void g_cclosure_marshal_VOID__ULONG (<a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a> *closure,
<a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *return_value,
<a
href="./../glib/glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *param_values,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);</pre>
<p>
A marshaller for a <a class="link" href="gobject-Closures.html#GCClosure" title="GCClosure"><span class="type">GCClosure</span></a> with a callback of type
<code class="literal">void (*callback) (gpointer instance, gulong arg1, gpointer user_data)</code>.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td>
<td> the <a class="link" href="gobject-Closures.html#GClosure" title="GClosure"><span class="type">GClosure</span></a> to which the marshaller belongs
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>return_value</code></em> :</span></p></td>
<td> ignored
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>n_param_values</code></em> :</span></p></td>
<td> 2
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>param_values</code></em> :</span></p></td>
<td> a <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> array holding the instance and the <a
href="./../glib/glib/glib-Basic-Types.html#gulong"
><span class="type">gulong</span></a> parameter
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>invocation_hint</code></em> :</span></p></td>
<td> the invocation hint given as the last argument
to <a class="link" href="gobject-Closures.html#g-closure-invoke" title="g_closure_invoke ()"><code class="function">g_closure_invoke()</code></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>marshal_data</code></em> :</span></p></td>
<td> additional data specified when registering the marshaller
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="g_cclosure_marshal_VOID__ENUM ()">
<a name="g-cclosure-marshal-VOID--ENUM"></a><h3>g_cclosure_marshal_VOID__ENUM ()</h3>
<pre class="programlisting">void g_cclosure_marshal_VOID__ENUM (<a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a> *closure,
<a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *return_value,
<a
href="./../glib/glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *param_values,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);</pre>
<p>
A marshaller for a <a class="link" href="gobject-Closures.html#GCClosure" title="GCClosure"><span class="type">GCClosure</span></a> with a callback of type
<code class="literal">void (*callback) (gpointer instance, gint arg1, gpointer user_data)</code> where the <a
href="./../glib/glib/glib-Basic-Types.html#gint"
><span class="type">gint</span></a> parameter denotes an enumeration type..</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td>
<td> the <a class="link" href="gobject-Closures.html#GClosure" title="GClosure"><span class="type">GClosure</span></a> to which the marshaller belongs
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>return_value</code></em> :</span></p></td>
<td> ignored
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>n_param_values</code></em> :</span></p></td>
<td> 2
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>param_values</code></em> :</span></p></td>
<td> a <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> array holding the instance and the enumeration parameter
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>invocation_hint</code></em> :</span></p></td>
<td> the invocation hint given as the last argument
to <a class="link" href="gobject-Closures.html#g-closure-invoke" title="g_closure_invoke ()"><code class="function">g_closure_invoke()</code></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>marshal_data</code></em> :</span></p></td>
<td> additional data specified when registering the marshaller
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="g_cclosure_marshal_VOID__FLAGS ()">
<a name="g-cclosure-marshal-VOID--FLAGS"></a><h3>g_cclosure_marshal_VOID__FLAGS ()</h3>
<pre class="programlisting">void g_cclosure_marshal_VOID__FLAGS (<a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a> *closure,
<a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *return_value,
<a
href="./../glib/glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *param_values,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);</pre>
<p>
A marshaller for a <a class="link" href="gobject-Closures.html#GCClosure" title="GCClosure"><span class="type">GCClosure</span></a> with a callback of type
<code class="literal">void (*callback) (gpointer instance, gint arg1, gpointer user_data)</code> where the <a
href="./../glib/glib/glib-Basic-Types.html#gint"
><span class="type">gint</span></a> parameter denotes a flags type.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td>
<td> the <a class="link" href="gobject-Closures.html#GClosure" title="GClosure"><span class="type">GClosure</span></a> to which the marshaller belongs
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>return_value</code></em> :</span></p></td>
<td> ignored
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>n_param_values</code></em> :</span></p></td>
<td> 2
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>param_values</code></em> :</span></p></td>
<td> a <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> array holding the instance and the flags parameter
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>invocation_hint</code></em> :</span></p></td>
<td> the invocation hint given as the last argument
to <a class="link" href="gobject-Closures.html#g-closure-invoke" title="g_closure_invoke ()"><code class="function">g_closure_invoke()</code></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>marshal_data</code></em> :</span></p></td>
<td> additional data specified when registering the marshaller
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="g_cclosure_marshal_VOID__FLOAT ()">
<a name="g-cclosure-marshal-VOID--FLOAT"></a><h3>g_cclosure_marshal_VOID__FLOAT ()</h3>
<pre class="programlisting">void g_cclosure_marshal_VOID__FLOAT (<a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a> *closure,
<a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *return_value,
<a
href="./../glib/glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *param_values,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);</pre>
<p>
A marshaller for a <a class="link" href="gobject-Closures.html#GCClosure" title="GCClosure"><span class="type">GCClosure</span></a> with a callback of type
<code class="literal">void (*callback) (gpointer instance, gfloat arg1, gpointer user_data)</code>.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td>
<td> the <a class="link" href="gobject-Closures.html#GClosure" title="GClosure"><span class="type">GClosure</span></a> to which the marshaller belongs
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>return_value</code></em> :</span></p></td>
<td> ignored
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>n_param_values</code></em> :</span></p></td>
<td> 2
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>param_values</code></em> :</span></p></td>
<td> a <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> array holding the instance and the <a
href="./../glib/glib/glib-Basic-Types.html#gfloat"
><span class="type">gfloat</span></a> parameter
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>invocation_hint</code></em> :</span></p></td>
<td> the invocation hint given as the last argument
to <a class="link" href="gobject-Closures.html#g-closure-invoke" title="g_closure_invoke ()"><code class="function">g_closure_invoke()</code></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>marshal_data</code></em> :</span></p></td>
<td> additional data specified when registering the marshaller
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="g_cclosure_marshal_VOID__DOUBLE ()">
<a name="g-cclosure-marshal-VOID--DOUBLE"></a><h3>g_cclosure_marshal_VOID__DOUBLE ()</h3>
<pre class="programlisting">void g_cclosure_marshal_VOID__DOUBLE (<a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a> *closure,
<a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *return_value,
<a
href="./../glib/glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *param_values,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);</pre>
<p>
A marshaller for a <a class="link" href="gobject-Closures.html#GCClosure" title="GCClosure"><span class="type">GCClosure</span></a> with a callback of type
<code class="literal">void (*callback) (gpointer instance, gdouble arg1, gpointer user_data)</code>.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td>
<td> the <a class="link" href="gobject-Closures.html#GClosure" title="GClosure"><span class="type">GClosure</span></a> to which the marshaller belongs
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>return_value</code></em> :</span></p></td>
<td> ignored
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>n_param_values</code></em> :</span></p></td>
<td> 2
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>param_values</code></em> :</span></p></td>
<td> a <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> array holding the instance and the <a
href="./../glib/glib/glib-Basic-Types.html#gdouble"
><span class="type">gdouble</span></a> parameter
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>invocation_hint</code></em> :</span></p></td>
<td> the invocation hint given as the last argument
to <a class="link" href="gobject-Closures.html#g-closure-invoke" title="g_closure_invoke ()"><code class="function">g_closure_invoke()</code></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>marshal_data</code></em> :</span></p></td>
<td> additional data specified when registering the marshaller
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="g_cclosure_marshal_VOID__STRING ()">
<a name="g-cclosure-marshal-VOID--STRING"></a><h3>g_cclosure_marshal_VOID__STRING ()</h3>
<pre class="programlisting">void g_cclosure_marshal_VOID__STRING (<a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a> *closure,
<a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *return_value,
<a
href="./../glib/glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *param_values,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);</pre>
<p>
A marshaller for a <a class="link" href="gobject-Closures.html#GCClosure" title="GCClosure"><span class="type">GCClosure</span></a> with a callback of type
<code class="literal">void (*callback) (gpointer instance, const gchar *arg1, gpointer user_data)</code>.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td>
<td> the <a class="link" href="gobject-Closures.html#GClosure" title="GClosure"><span class="type">GClosure</span></a> to which the marshaller belongs
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>return_value</code></em> :</span></p></td>
<td> ignored
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>n_param_values</code></em> :</span></p></td>
<td> 2
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>param_values</code></em> :</span></p></td>
<td> a <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> array holding the instance and the <a
href="./../glib/glib/glib-Basic-Types.html#gchar"
><span class="type">gchar</span></a>* parameter
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>invocation_hint</code></em> :</span></p></td>
<td> the invocation hint given as the last argument
to <a class="link" href="gobject-Closures.html#g-closure-invoke" title="g_closure_invoke ()"><code class="function">g_closure_invoke()</code></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>marshal_data</code></em> :</span></p></td>
<td> additional data specified when registering the marshaller
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="g_cclosure_marshal_VOID__PARAM ()">
<a name="g-cclosure-marshal-VOID--PARAM"></a><h3>g_cclosure_marshal_VOID__PARAM ()</h3>
<pre class="programlisting">void g_cclosure_marshal_VOID__PARAM (<a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a> *closure,
<a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *return_value,
<a
href="./../glib/glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *param_values,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);</pre>
<p>
A marshaller for a <a class="link" href="gobject-Closures.html#GCClosure" title="GCClosure"><span class="type">GCClosure</span></a> with a callback of type
<code class="literal">void (*callback) (gpointer instance, GParamSpec *arg1, gpointer user_data)</code>.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td>
<td> the <a class="link" href="gobject-Closures.html#GClosure" title="GClosure"><span class="type">GClosure</span></a> to which the marshaller belongs
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>return_value</code></em> :</span></p></td>
<td> ignored
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>n_param_values</code></em> :</span></p></td>
<td> 2
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>param_values</code></em> :</span></p></td>
<td> a <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> array holding the instance and the <a class="link" href="gobject-GParamSpec.html#GParamSpec" title="GParamSpec"><span class="type">GParamSpec</span></a>* parameter
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>invocation_hint</code></em> :</span></p></td>
<td> the invocation hint given as the last argument
to <a class="link" href="gobject-Closures.html#g-closure-invoke" title="g_closure_invoke ()"><code class="function">g_closure_invoke()</code></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>marshal_data</code></em> :</span></p></td>
<td> additional data specified when registering the marshaller
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="g_cclosure_marshal_VOID__BOXED ()">
<a name="g-cclosure-marshal-VOID--BOXED"></a><h3>g_cclosure_marshal_VOID__BOXED ()</h3>
<pre class="programlisting">void g_cclosure_marshal_VOID__BOXED (<a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a> *closure,
<a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *return_value,
<a
href="./../glib/glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *param_values,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);</pre>
<p>
A marshaller for a <a class="link" href="gobject-Closures.html#GCClosure" title="GCClosure"><span class="type">GCClosure</span></a> with a callback of type
<code class="literal">void (*callback) (gpointer instance, GBoxed *arg1, gpointer user_data)</code>.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td>
<td> the <a class="link" href="gobject-Closures.html#GClosure" title="GClosure"><span class="type">GClosure</span></a> to which the marshaller belongs
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>return_value</code></em> :</span></p></td>
<td> ignored
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>n_param_values</code></em> :</span></p></td>
<td> 2
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>param_values</code></em> :</span></p></td>
<td> a <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> array holding the instance and the <span class="type">GBoxed</span>* parameter
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>invocation_hint</code></em> :</span></p></td>
<td> the invocation hint given as the last argument
to <a class="link" href="gobject-Closures.html#g-closure-invoke" title="g_closure_invoke ()"><code class="function">g_closure_invoke()</code></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>marshal_data</code></em> :</span></p></td>
<td> additional data specified when registering the marshaller
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="g_cclosure_marshal_VOID__POINTER ()">
<a name="g-cclosure-marshal-VOID--POINTER"></a><h3>g_cclosure_marshal_VOID__POINTER ()</h3>
<pre class="programlisting">void g_cclosure_marshal_VOID__POINTER (<a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a> *closure,
<a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *return_value,
<a
href="./../glib/glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *param_values,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);</pre>
<p>
A marshaller for a <a class="link" href="gobject-Closures.html#GCClosure" title="GCClosure"><span class="type">GCClosure</span></a> with a callback of type
<code class="literal">void (*callback) (gpointer instance, gpointer arg1, gpointer user_data)</code>.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td>
<td> the <a class="link" href="gobject-Closures.html#GClosure" title="GClosure"><span class="type">GClosure</span></a> to which the marshaller belongs
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>return_value</code></em> :</span></p></td>
<td> ignored
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>n_param_values</code></em> :</span></p></td>
<td> 2
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>param_values</code></em> :</span></p></td>
<td> a <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> array holding the instance and the <a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
><span class="type">gpointer</span></a> parameter
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>invocation_hint</code></em> :</span></p></td>
<td> the invocation hint given as the last argument
to <a class="link" href="gobject-Closures.html#g-closure-invoke" title="g_closure_invoke ()"><code class="function">g_closure_invoke()</code></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>marshal_data</code></em> :</span></p></td>
<td> additional data specified when registering the marshaller
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="g_cclosure_marshal_VOID__OBJECT ()">
<a name="g-cclosure-marshal-VOID--OBJECT"></a><h3>g_cclosure_marshal_VOID__OBJECT ()</h3>
<pre class="programlisting">void g_cclosure_marshal_VOID__OBJECT (<a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a> *closure,
<a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *return_value,
<a
href="./../glib/glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *param_values,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);</pre>
<p>
A marshaller for a <a class="link" href="gobject-Closures.html#GCClosure" title="GCClosure"><span class="type">GCClosure</span></a> with a callback of type
<code class="literal">void (*callback) (gpointer instance, GOBject *arg1, gpointer user_data)</code>.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td>
<td> the <a class="link" href="gobject-Closures.html#GClosure" title="GClosure"><span class="type">GClosure</span></a> to which the marshaller belongs
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>return_value</code></em> :</span></p></td>
<td> ignored
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>n_param_values</code></em> :</span></p></td>
<td> 2
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>param_values</code></em> :</span></p></td>
<td> a <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> array holding the instance and the <a class="link" href="gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a>* parameter
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>invocation_hint</code></em> :</span></p></td>
<td> the invocation hint given as the last argument
to <a class="link" href="gobject-Closures.html#g-closure-invoke" title="g_closure_invoke ()"><code class="function">g_closure_invoke()</code></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>marshal_data</code></em> :</span></p></td>
<td> additional data specified when registering the marshaller
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="g_cclosure_marshal_STRING__OBJECT_POINTER ()">
<a name="g-cclosure-marshal-STRING--OBJECT-POINTER"></a><h3>g_cclosure_marshal_STRING__OBJECT_POINTER ()</h3>
<pre class="programlisting">void g_cclosure_marshal_STRING__OBJECT_POINTER
(<a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a> *closure,
<a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *return_value,
<a
href="./../glib/glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *param_values,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);</pre>
<p>
A marshaller for a <a class="link" href="gobject-Closures.html#GCClosure" title="GCClosure"><span class="type">GCClosure</span></a> with a callback of type
<code class="literal">gchar* (*callback) (gpointer instance, GObject *arg1, gpointer arg2, gpointer user_data)</code>.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td>
<td> the <a class="link" href="gobject-Closures.html#GClosure" title="GClosure"><span class="type">GClosure</span></a> to which the marshaller belongs
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>return_value</code></em> :</span></p></td>
<td> a <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a>, which can store the returned string
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>n_param_values</code></em> :</span></p></td>
<td> 3
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>param_values</code></em> :</span></p></td>
<td> a <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> array holding instance, arg1 and arg2
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>invocation_hint</code></em> :</span></p></td>
<td> the invocation hint given as the last argument
to <a class="link" href="gobject-Closures.html#g-closure-invoke" title="g_closure_invoke ()"><code class="function">g_closure_invoke()</code></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>marshal_data</code></em> :</span></p></td>
<td> additional data specified when registering the marshaller
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="g_cclosure_marshal_VOID__UINT_POINTER ()">
<a name="g-cclosure-marshal-VOID--UINT-POINTER"></a><h3>g_cclosure_marshal_VOID__UINT_POINTER ()</h3>
<pre class="programlisting">void g_cclosure_marshal_VOID__UINT_POINTER
(<a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a> *closure,
<a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *return_value,
<a
href="./../glib/glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *param_values,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);</pre>
<p>
A marshaller for a <a class="link" href="gobject-Closures.html#GCClosure" title="GCClosure"><span class="type">GCClosure</span></a> with a callback of type
<code class="literal">void (*callback) (gpointer instance, guint arg1, gpointer arg2, gpointer user_data)</code>.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td>
<td> the <a class="link" href="gobject-Closures.html#GClosure" title="GClosure"><span class="type">GClosure</span></a> to which the marshaller belongs
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>return_value</code></em> :</span></p></td>
<td> ignored
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>n_param_values</code></em> :</span></p></td>
<td> 3
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>param_values</code></em> :</span></p></td>
<td> a <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> array holding instance, arg1 and arg2
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>invocation_hint</code></em> :</span></p></td>
<td> the invocation hint given as the last argument
to <a class="link" href="gobject-Closures.html#g-closure-invoke" title="g_closure_invoke ()"><code class="function">g_closure_invoke()</code></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>marshal_data</code></em> :</span></p></td>
<td> additional data specified when registering the marshaller
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="g_cclosure_marshal_BOOLEAN__FLAGS ()">
<a name="g-cclosure-marshal-BOOLEAN--FLAGS"></a><h3>g_cclosure_marshal_BOOLEAN__FLAGS ()</h3>
<pre class="programlisting">void g_cclosure_marshal_BOOLEAN__FLAGS (<a class="link" href="gobject-Closures.html#GClosure" title="GClosure">GClosure</a> *closure,
<a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *return_value,
<a
href="./../glib/glib/glib-Basic-Types.html#guint"
>guint</a> n_param_values,
const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a> *param_values,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> invocation_hint,
<a
href="./../glib/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> marshal_data);</pre>
<p>
A marshaller for a <a class="link" href="gobject-Closures.html#GCClosure" title="GCClosure"><span class="type">GCClosure</span></a> with a callback of type
<code class="literal">gboolean (*callback) (gpointer instance, gint arg1, gpointer user_data)</code> where the <a
href="./../glib/glib/glib-Basic-Types.html#gint"
><span class="type">gint</span></a> parameter
denotes a flags type.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td>
<td> the <a class="link" href="gobject-Closures.html#GClosure" title="GClosure"><span class="type">GClosure</span></a> to which the marshaller belongs
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>return_value</code></em> :</span></p></td>
<td> a <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> which can store the returned <a
href="./../glib/glib/glib-Basic-Types.html#gboolean"
><span class="type">gboolean</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>n_param_values</code></em> :</span></p></td>
<td> 2
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>param_values</code></em> :</span></p></td>
<td> a <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> array holding instance and arg1
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>invocation_hint</code></em> :</span></p></td>
<td> the invocation hint given as the last argument
to <a class="link" href="gobject-Closures.html#g-closure-invoke" title="g_closure_invoke ()"><code class="function">g_closure_invoke()</code></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>marshal_data</code></em> :</span></p></td>
<td> additional data specified when registering the marshaller
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="g_cclosure_marshal_BOOL__FLAGS">
<a name="g-cclosure-marshal-BOOL--FLAGS"></a><h3>g_cclosure_marshal_BOOL__FLAGS</h3>
<pre class="programlisting">#define g_cclosure_marshal_BOOL__FLAGS</pre>
<p>
Another name for <a class="link" href="gobject-Closures.html#g-cclosure-marshal-BOOLEAN--FLAGS" title="g_cclosure_marshal_BOOLEAN__FLAGS ()"><code class="function">g_cclosure_marshal_BOOLEAN__FLAGS()</code></a>.</p>
<p>
</p>
</div>
</div>
</div>
<div class="footer">
<hr>
Generated by GTK-Doc V1.11</div>
</body>
</html>