| <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> |
| <html> |
| <head> |
| <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> |
| <title>Signals</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-Varargs-Value-Collection.html" title="Varargs Value Collection"> |
| <link rel="next" href="gobject-Closures.html" title="Closures"> |
| <meta name="generator" content="GTK-Doc V1.14 (XML mode)"> |
| <link rel="stylesheet" href="style.css" type="text/css"> |
| </head> |
| <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> |
| <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> |
| <tr valign="middle"> |
| <td><a accesskey="p" href="gobject-Varargs-Value-Collection.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-Closures.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-Signals.synopsis" class="shortcut">Top</a> |
| | |
| <a href="#gobject-Signals.description" class="shortcut">Description</a> |
| </td></tr> |
| </table> |
| <div class="refentry" title="Signals"> |
| <a name="gobject-Signals"></a><div class="titlepage"></div> |
| <div class="refnamediv"><table width="100%"><tr> |
| <td valign="top"> |
| <h2><span class="refentrytitle"><a name="gobject-Signals.top_of_page"></a>Signals</span></h2> |
| <p>Signals — A means for customization of object behaviour |
| and a general purpose notification mechanism</p> |
| </td> |
| <td valign="top" align="right"></td> |
| </tr></table></div> |
| <div class="refsynopsisdiv" title="Synopsis"> |
| <a name="gobject-Signals.synopsis"></a><h2>Synopsis</h2> |
| <pre class="synopsis"> |
| #include <glib-object.h> |
| |
| <a class="link" href="gobject-Signals.html#GSignalInvocationHint" title="GSignalInvocationHint">GSignalInvocationHint</a>; |
| <a href="./../glib/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> (<a class="link" href="gobject-Signals.html#GSignalAccumulator" title="GSignalAccumulator ()">*GSignalAccumulator</a>) (<em class="parameter"><code><a class="link" href="gobject-Signals.html#GSignalInvocationHint" title="GSignalInvocationHint"><span class="type">GSignalInvocationHint</span></a> *ihint</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *return_accu</code></em>, |
| <em class="parameter"><code>const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *handler_return</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>); |
| typedef <a class="link" href="gobject-Signals.html#GSignalCMarshaller" title="GSignalCMarshaller">GSignalCMarshaller</a>; |
| <a href="./../glib/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> (<a class="link" href="gobject-Signals.html#GSignalEmissionHook" title="GSignalEmissionHook ()">*GSignalEmissionHook</a>) (<em class="parameter"><code><a class="link" href="gobject-Signals.html#GSignalInvocationHint" title="GSignalInvocationHint"><span class="type">GSignalInvocationHint</span></a> *ihint</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_param_values</code></em>, |
| <em class="parameter"><code>const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *param_values</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>); |
| enum <a class="link" href="gobject-Signals.html#GSignalFlags" title="enum GSignalFlags">GSignalFlags</a>; |
| enum <a class="link" href="gobject-Signals.html#GSignalMatchType" title="enum GSignalMatchType">GSignalMatchType</a>; |
| <a class="link" href="gobject-Signals.html#GSignalQuery" title="GSignalQuery">GSignalQuery</a>; |
| #define <a class="link" href="gobject-Signals.html#G-SIGNAL-TYPE-STATIC-SCOPE:CAPS" title="G_SIGNAL_TYPE_STATIC_SCOPE">G_SIGNAL_TYPE_STATIC_SCOPE</a> |
| #define <a class="link" href="gobject-Signals.html#G-SIGNAL-MATCH-MASK:CAPS" title="G_SIGNAL_MATCH_MASK">G_SIGNAL_MATCH_MASK</a> |
| #define <a class="link" href="gobject-Signals.html#G-SIGNAL-FLAGS-MASK:CAPS" title="G_SIGNAL_FLAGS_MASK">G_SIGNAL_FLAGS_MASK</a> |
| <a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="gobject-Signals.html#g-signal-new" title="g_signal_new ()">g_signal_new</a> (<em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *signal_name</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> itype</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Signals.html#GSignalFlags" title="enum GSignalFlags"><span class="type">GSignalFlags</span></a> signal_flags</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> class_offset</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Signals.html#GSignalAccumulator" title="GSignalAccumulator ()"><span class="type">GSignalAccumulator</span></a> accumulator</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> accu_data</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Signals.html#GSignalCMarshaller" title="GSignalCMarshaller"><span class="type">GSignalCMarshaller</span></a> c_marshaller</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> return_type</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_params</code></em>, |
| <em class="parameter"><code>...</code></em>); |
| <a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="gobject-Signals.html#g-signal-newv" title="g_signal_newv ()">g_signal_newv</a> (<em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *signal_name</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> itype</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Signals.html#GSignalFlags" title="enum GSignalFlags"><span class="type">GSignalFlags</span></a> signal_flags</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="GClosure"><span class="type">GClosure</span></a> *class_closure</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Signals.html#GSignalAccumulator" title="GSignalAccumulator ()"><span class="type">GSignalAccumulator</span></a> accumulator</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> accu_data</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Signals.html#GSignalCMarshaller" title="GSignalCMarshaller"><span class="type">GSignalCMarshaller</span></a> c_marshaller</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> return_type</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_params</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> *param_types</code></em>); |
| <a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="gobject-Signals.html#g-signal-new-valist" title="g_signal_new_valist ()">g_signal_new_valist</a> (<em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *signal_name</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> itype</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Signals.html#GSignalFlags" title="enum GSignalFlags"><span class="type">GSignalFlags</span></a> signal_flags</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="GClosure"><span class="type">GClosure</span></a> *class_closure</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Signals.html#GSignalAccumulator" title="GSignalAccumulator ()"><span class="type">GSignalAccumulator</span></a> accumulator</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> accu_data</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Signals.html#GSignalCMarshaller" title="GSignalCMarshaller"><span class="type">GSignalCMarshaller</span></a> c_marshaller</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> return_type</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_params</code></em>, |
| <em class="parameter"><code><span class="type">va_list</span> args</code></em>); |
| <span class="returnvalue">void</span> <a class="link" href="gobject-Signals.html#g-signal-query" title="g_signal_query ()">g_signal_query</a> (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> signal_id</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Signals.html#GSignalQuery" title="GSignalQuery"><span class="type">GSignalQuery</span></a> *query</code></em>); |
| <a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="gobject-Signals.html#g-signal-lookup" title="g_signal_lookup ()">g_signal_lookup</a> (<em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> itype</code></em>); |
| const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a>* <a class="link" href="gobject-Signals.html#g-signal-name" title="g_signal_name ()">g_signal_name</a> (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> signal_id</code></em>); |
| <a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>* <a class="link" href="gobject-Signals.html#g-signal-list-ids" title="g_signal_list_ids ()">g_signal_list_ids</a> (<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> itype</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *n_ids</code></em>); |
| <span class="returnvalue">void</span> <a class="link" href="gobject-Signals.html#g-signal-emit" title="g_signal_emit ()">g_signal_emit</a> (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> instance</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> signal_id</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> detail</code></em>, |
| <em class="parameter"><code>...</code></em>); |
| <span class="returnvalue">void</span> <a class="link" href="gobject-Signals.html#g-signal-emit-by-name" title="g_signal_emit_by_name ()">g_signal_emit_by_name</a> (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> instance</code></em>, |
| <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *detailed_signal</code></em>, |
| <em class="parameter"><code>...</code></em>); |
| <span class="returnvalue">void</span> <a class="link" href="gobject-Signals.html#g-signal-emitv" title="g_signal_emitv ()">g_signal_emitv</a> (<em class="parameter"><code>const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *instance_and_params</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> signal_id</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> detail</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *return_value</code></em>); |
| <span class="returnvalue">void</span> <a class="link" href="gobject-Signals.html#g-signal-emit-valist" title="g_signal_emit_valist ()">g_signal_emit_valist</a> (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> instance</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> signal_id</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> detail</code></em>, |
| <em class="parameter"><code><span class="type">va_list</span> var_args</code></em>); |
| #define <a class="link" href="gobject-Signals.html#g-signal-connect" title="g_signal_connect()">g_signal_connect</a> (instance, |
| detailed_signal, |
| c_handler, |
| data) |
| #define <a class="link" href="gobject-Signals.html#g-signal-connect-after" title="g_signal_connect_after()">g_signal_connect_after</a> (instance, |
| detailed_signal, |
| c_handler, |
| data) |
| #define <a class="link" href="gobject-Signals.html#g-signal-connect-swapped" title="g_signal_connect_swapped()">g_signal_connect_swapped</a> (instance, |
| detailed_signal, |
| c_handler, |
| data) |
| <a href="./../glib/glib/glib-Basic-Types.html#gulong"><span class="returnvalue">gulong</span></a> <a class="link" href="gobject-Signals.html#g-signal-connect-object" title="g_signal_connect_object ()">g_signal_connect_object</a> (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> instance</code></em>, |
| <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *detailed_signal</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Closures.html#GCallback" title="GCallback ()"><span class="type">GCallback</span></a> c_handler</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> gobject</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Signals.html#GConnectFlags" title="enum GConnectFlags"><span class="type">GConnectFlags</span></a> connect_flags</code></em>); |
| enum <a class="link" href="gobject-Signals.html#GConnectFlags" title="enum GConnectFlags">GConnectFlags</a>; |
| <a href="./../glib/glib/glib-Basic-Types.html#gulong"><span class="returnvalue">gulong</span></a> <a class="link" href="gobject-Signals.html#g-signal-connect-data" title="g_signal_connect_data ()">g_signal_connect_data</a> (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> instance</code></em>, |
| <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *detailed_signal</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Closures.html#GCallback" title="GCallback ()"><span class="type">GCallback</span></a> c_handler</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosureNotify" title="GClosureNotify ()"><span class="type">GClosureNotify</span></a> destroy_data</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Signals.html#GConnectFlags" title="enum GConnectFlags"><span class="type">GConnectFlags</span></a> connect_flags</code></em>); |
| <a href="./../glib/glib/glib-Basic-Types.html#gulong"><span class="returnvalue">gulong</span></a> <a class="link" href="gobject-Signals.html#g-signal-connect-closure" title="g_signal_connect_closure ()">g_signal_connect_closure</a> (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> instance</code></em>, |
| <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *detailed_signal</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="GClosure"><span class="type">GClosure</span></a> *closure</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> after</code></em>); |
| <a href="./../glib/glib/glib-Basic-Types.html#gulong"><span class="returnvalue">gulong</span></a> <a class="link" href="gobject-Signals.html#g-signal-connect-closure-by-id" title="g_signal_connect_closure_by_id ()">g_signal_connect_closure_by_id</a> (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> instance</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> signal_id</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> detail</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="GClosure"><span class="type">GClosure</span></a> *closure</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> after</code></em>); |
| <span class="returnvalue">void</span> <a class="link" href="gobject-Signals.html#g-signal-handler-block" title="g_signal_handler_block ()">g_signal_handler_block</a> (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> instance</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gulong"><span class="type">gulong</span></a> handler_id</code></em>); |
| <span class="returnvalue">void</span> <a class="link" href="gobject-Signals.html#g-signal-handler-unblock" title="g_signal_handler_unblock ()">g_signal_handler_unblock</a> (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> instance</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gulong"><span class="type">gulong</span></a> handler_id</code></em>); |
| <span class="returnvalue">void</span> <a class="link" href="gobject-Signals.html#g-signal-handler-disconnect" title="g_signal_handler_disconnect ()">g_signal_handler_disconnect</a> (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> instance</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gulong"><span class="type">gulong</span></a> handler_id</code></em>); |
| <a href="./../glib/glib/glib-Basic-Types.html#gulong"><span class="returnvalue">gulong</span></a> <a class="link" href="gobject-Signals.html#g-signal-handler-find" title="g_signal_handler_find ()">g_signal_handler_find</a> (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> instance</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Signals.html#GSignalMatchType" title="enum GSignalMatchType"><span class="type">GSignalMatchType</span></a> mask</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> signal_id</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> detail</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="GClosure"><span class="type">GClosure</span></a> *closure</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> func</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>); |
| <a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="gobject-Signals.html#g-signal-handlers-block-matched" title="g_signal_handlers_block_matched ()">g_signal_handlers_block_matched</a> (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> instance</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Signals.html#GSignalMatchType" title="enum GSignalMatchType"><span class="type">GSignalMatchType</span></a> mask</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> signal_id</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> detail</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="GClosure"><span class="type">GClosure</span></a> *closure</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> func</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>); |
| <a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="gobject-Signals.html#g-signal-handlers-unblock-matched" title="g_signal_handlers_unblock_matched ()">g_signal_handlers_unblock_matched</a> (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> instance</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Signals.html#GSignalMatchType" title="enum GSignalMatchType"><span class="type">GSignalMatchType</span></a> mask</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> signal_id</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> detail</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="GClosure"><span class="type">GClosure</span></a> *closure</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> func</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>); |
| <a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="gobject-Signals.html#g-signal-handlers-disconnect-matched" title="g_signal_handlers_disconnect_matched ()">g_signal_handlers_disconnect_matched</a> |
| (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> instance</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Signals.html#GSignalMatchType" title="enum GSignalMatchType"><span class="type">GSignalMatchType</span></a> mask</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> signal_id</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> detail</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="GClosure"><span class="type">GClosure</span></a> *closure</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> func</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>); |
| <a href="./../glib/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gobject-Signals.html#g-signal-handler-is-connected" title="g_signal_handler_is_connected ()">g_signal_handler_is_connected</a> (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> instance</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gulong"><span class="type">gulong</span></a> handler_id</code></em>); |
| #define <a class="link" href="gobject-Signals.html#g-signal-handlers-block-by-func" title="g_signal_handlers_block_by_func()">g_signal_handlers_block_by_func</a> (instance, |
| func, |
| data) |
| #define <a class="link" href="gobject-Signals.html#g-signal-handlers-unblock-by-func" title="g_signal_handlers_unblock_by_func()">g_signal_handlers_unblock_by_func</a> (instance, |
| func, |
| data) |
| #define <a class="link" href="gobject-Signals.html#g-signal-handlers-disconnect-by-func" title="g_signal_handlers_disconnect_by_func()">g_signal_handlers_disconnect_by_func</a>(instance, |
| func, |
| data) |
| <a href="./../glib/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gobject-Signals.html#g-signal-has-handler-pending" title="g_signal_has_handler_pending ()">g_signal_has_handler_pending</a> (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> instance</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> signal_id</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> detail</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> may_be_blocked</code></em>); |
| <span class="returnvalue">void</span> <a class="link" href="gobject-Signals.html#g-signal-stop-emission" title="g_signal_stop_emission ()">g_signal_stop_emission</a> (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> instance</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> signal_id</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> detail</code></em>); |
| <span class="returnvalue">void</span> <a class="link" href="gobject-Signals.html#g-signal-stop-emission-by-name" title="g_signal_stop_emission_by_name ()">g_signal_stop_emission_by_name</a> (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> instance</code></em>, |
| <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *detailed_signal</code></em>); |
| <span class="returnvalue">void</span> <a class="link" href="gobject-Signals.html#g-signal-override-class-closure" title="g_signal_override_class_closure ()">g_signal_override_class_closure</a> (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> signal_id</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> instance_type</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="GClosure"><span class="type">GClosure</span></a> *class_closure</code></em>); |
| <span class="returnvalue">void</span> <a class="link" href="gobject-Signals.html#g-signal-chain-from-overridden" title="g_signal_chain_from_overridden ()">g_signal_chain_from_overridden</a> (<em class="parameter"><code>const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *instance_and_params</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *return_value</code></em>); |
| <a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="gobject-Signals.html#g-signal-new-class-handler" title="g_signal_new_class_handler ()">g_signal_new_class_handler</a> (<em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *signal_name</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> itype</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Signals.html#GSignalFlags" title="enum GSignalFlags"><span class="type">GSignalFlags</span></a> signal_flags</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Closures.html#GCallback" title="GCallback ()"><span class="type">GCallback</span></a> class_handler</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Signals.html#GSignalAccumulator" title="GSignalAccumulator ()"><span class="type">GSignalAccumulator</span></a> accumulator</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> accu_data</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Signals.html#GSignalCMarshaller" title="GSignalCMarshaller"><span class="type">GSignalCMarshaller</span></a> c_marshaller</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> return_type</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_params</code></em>, |
| <em class="parameter"><code>...</code></em>); |
| <span class="returnvalue">void</span> <a class="link" href="gobject-Signals.html#g-signal-override-class-handler" title="g_signal_override_class_handler ()">g_signal_override_class_handler</a> (<em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *signal_name</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> instance_type</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Closures.html#GCallback" title="GCallback ()"><span class="type">GCallback</span></a> class_handler</code></em>); |
| <span class="returnvalue">void</span> <a class="link" href="gobject-Signals.html#g-signal-chain-from-overridden-handler" title="g_signal_chain_from_overridden_handler ()">g_signal_chain_from_overridden_handler</a> |
| (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> instance</code></em>, |
| <em class="parameter"><code>...</code></em>); |
| <a href="./../glib/glib/glib-Basic-Types.html#gulong"><span class="returnvalue">gulong</span></a> <a class="link" href="gobject-Signals.html#g-signal-add-emission-hook" title="g_signal_add_emission_hook ()">g_signal_add_emission_hook</a> (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> signal_id</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> detail</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Signals.html#GSignalEmissionHook" title="GSignalEmissionHook ()"><span class="type">GSignalEmissionHook</span></a> hook_func</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> hook_data</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> data_destroy</code></em>); |
| <span class="returnvalue">void</span> <a class="link" href="gobject-Signals.html#g-signal-remove-emission-hook" title="g_signal_remove_emission_hook ()">g_signal_remove_emission_hook</a> (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> signal_id</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gulong"><span class="type">gulong</span></a> hook_id</code></em>); |
| <a href="./../glib/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gobject-Signals.html#g-signal-parse-name" title="g_signal_parse_name ()">g_signal_parse_name</a> (<em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *detailed_signal</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> itype</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *signal_id_p</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> *detail_p</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> force_detail_quark</code></em>); |
| <a class="link" href="gobject-Signals.html#GSignalInvocationHint" title="GSignalInvocationHint"><span class="returnvalue">GSignalInvocationHint</span></a>* <a class="link" href="gobject-Signals.html#g-signal-get-invocation-hint" title="g_signal_get_invocation_hint ()">g_signal_get_invocation_hint</a> (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> instance</code></em>); |
| <a class="link" href="gobject-Closures.html#GClosure" title="GClosure"><span class="returnvalue">GClosure</span></a>* <a class="link" href="gobject-Signals.html#g-signal-type-cclosure-new" title="g_signal_type_cclosure_new ()">g_signal_type_cclosure_new</a> (<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> itype</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> struct_offset</code></em>); |
| <a href="./../glib/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gobject-Signals.html#g-signal-accumulator-true-handled" title="g_signal_accumulator_true_handled ()">g_signal_accumulator_true_handled</a> (<em class="parameter"><code><a class="link" href="gobject-Signals.html#GSignalInvocationHint" title="GSignalInvocationHint"><span class="type">GSignalInvocationHint</span></a> *ihint</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *return_accu</code></em>, |
| <em class="parameter"><code>const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *handler_return</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> dummy</code></em>); |
| </pre> |
| </div> |
| <div class="refsect1" title="Description"> |
| <a name="gobject-Signals.description"></a><h2>Description</h2> |
| <p> |
| The basic concept of the signal system is that of the |
| <span class="emphasis"><em>emission</em></span> of a signal. Signals are introduced |
| per-type and are identified through strings. Signals introduced |
| for a parent type are available in derived types as well, so |
| basically they are a per-type facility that is inherited. A signal |
| emission mainly involves invocation of a certain set of callbacks |
| in precisely defined manner. There are two main categories of such |
| callbacks, per-object |
| <sup>[<a name="id658845" href="#ftn.id658845" class="footnote">10</a>]</sup> |
| ones and user provided ones. |
| The per-object callbacks are most often referred to as "object method |
| handler" or "default (signal) handler", while user provided callbacks are |
| usually just called "signal handler". |
| The object method handler is provided at signal creation time (this most |
| frequently happens at the end of an object class' creation), while user |
| provided handlers are frequently connected and disconnected to/from a certain |
| signal on certain object instances. |
| </p> |
| <p> |
| A signal emission consists of five stages, unless prematurely stopped: |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"></span></p></td> |
| <td><p> |
| 1 - Invocation of the object method handler for <a class="link" href="gobject-Signals.html#G-SIGNAL-RUN-FIRST:CAPS"><code class="literal">G_SIGNAL_RUN_FIRST</code></a> signals |
| </p></td> |
| </tr> |
| <tr> |
| <td><p><span class="term"></span></p></td> |
| <td><p> |
| 2 - Invocation of normal user-provided signal handlers (<span class="emphasis"><em>after</em></span> flag <a href="./../glib/glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>) |
| </p></td> |
| </tr> |
| <tr> |
| <td><p><span class="term"></span></p></td> |
| <td><p> |
| 3 - Invocation of the object method handler for <a class="link" href="gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">G_SIGNAL_RUN_LAST</code></a> signals |
| </p></td> |
| </tr> |
| <tr> |
| <td><p><span class="term"></span></p></td> |
| <td><p> |
| 4 - Invocation of user provided signal handlers, connected with an <span class="emphasis"><em>after</em></span> flag of <a href="./../glib/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> |
| </p></td> |
| </tr> |
| <tr> |
| <td><p><span class="term"></span></p></td> |
| <td><p> |
| 5 - Invocation of the object method handler for <a class="link" href="gobject-Signals.html#G-SIGNAL-RUN-CLEANUP:CAPS"><code class="literal">G_SIGNAL_RUN_CLEANUP</code></a> signals |
| </p></td> |
| </tr> |
| </tbody> |
| </table></div> |
| <p> |
| The user-provided signal handlers are called in the order they were |
| connected in. |
| All handlers may prematurely stop a signal emission, and any number of |
| handlers may be connected, disconnected, blocked or unblocked during |
| a signal emission. |
| There are certain criteria for skipping user handlers in stages 2 and 4 |
| of a signal emission. |
| First, user handlers may be <span class="emphasis"><em>blocked</em></span>, blocked handlers are omitted |
| during callback invocation, to return from the "blocked" state, a |
| handler has to get unblocked exactly the same amount of times |
| it has been blocked before. |
| Second, upon emission of a <a class="link" href="gobject-Signals.html#G-SIGNAL-DETAILED:CAPS"><code class="literal">G_SIGNAL_DETAILED</code></a> signal, an additional |
| "detail" argument passed in to <a class="link" href="gobject-Signals.html#g-signal-emit" title="g_signal_emit ()"><code class="function">g_signal_emit()</code></a> has to match the detail |
| argument of the signal handler currently subject to invocation. |
| Specification of no detail argument for signal handlers (omission of the |
| detail part of the signal specification upon connection) serves as a |
| wildcard and matches any detail argument passed in to emission. |
| </p> |
| </div> |
| <div class="refsect1" title="Details"> |
| <a name="gobject-Signals.details"></a><h2>Details</h2> |
| <div class="refsect2" title="GSignalInvocationHint"> |
| <a name="GSignalInvocationHint"></a><h3>GSignalInvocationHint</h3> |
| <pre class="programlisting">typedef struct { |
| guint signal_id; |
| GQuark detail; |
| GSignalFlags run_type; |
| } GSignalInvocationHint; |
| </pre> |
| <p> |
| The <a class="link" href="gobject-Signals.html#GSignalInvocationHint" title="GSignalInvocationHint"><span class="type">GSignalInvocationHint</span></a> structure is used to pass on additional information |
| to callbacks during a signal emission. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GSignalInvocationHint.signal-id"></a>signal_id</code></em>;</span></p></td> |
| <td>The signal id of the signal invoking the callback |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><a href="./../glib/glib/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> <em class="structfield"><code><a name="GSignalInvocationHint.detail"></a>detail</code></em>;</span></p></td> |
| <td>The detail passed on for this emission |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><a class="link" href="gobject-Signals.html#GSignalFlags" title="enum GSignalFlags"><span class="type">GSignalFlags</span></a> <em class="structfield"><code><a name="GSignalInvocationHint.run-type"></a>run_type</code></em>;</span></p></td> |
| <td>The stage the signal emission is currently in, this |
| field will contain one of <a class="link" href="gobject-Signals.html#G-SIGNAL-RUN-FIRST:CAPS"><code class="literal">G_SIGNAL_RUN_FIRST</code></a>, |
| <a class="link" href="gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">G_SIGNAL_RUN_LAST</code></a> or <a class="link" href="gobject-Signals.html#G-SIGNAL-RUN-CLEANUP:CAPS"><code class="literal">G_SIGNAL_RUN_CLEANUP</code></a>. |
| </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2" title="GSignalAccumulator ()"> |
| <a name="GSignalAccumulator"></a><h3>GSignalAccumulator ()</h3> |
| <pre class="programlisting"><a href="./../glib/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> (*GSignalAccumulator) (<em class="parameter"><code><a class="link" href="gobject-Signals.html#GSignalInvocationHint" title="GSignalInvocationHint"><span class="type">GSignalInvocationHint</span></a> *ihint</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *return_accu</code></em>, |
| <em class="parameter"><code>const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *handler_return</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>);</pre> |
| <p> |
| The signal accumulator is a special callback function that can be used |
| to collect return values of the various callbacks that are called |
| during a signal emission. The signal accumulator is specified at signal |
| creation time, if it is left <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, no accumulation of callback return |
| values is performed. The return value of signal emissions is then the |
| value returned by the last callback. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>ihint</code></em> :</span></p></td> |
| <td>Signal invocation hint, see <a class="link" href="gobject-Signals.html#GSignalInvocationHint" title="GSignalInvocationHint"><span class="type">GSignalInvocationHint</span></a>. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>return_accu</code></em> :</span></p></td> |
| <td>Accumulator to collect callback return values in, this |
| is the return value of the current signal emission. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>handler_return</code></em> :</span></p></td> |
| <td>A <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> holding the return value of the signal handler. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td> |
| <td>Callback data that was specified when creating the signal. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> |
| <td> The accumulator function returns whether the signal emission |
| should be aborted. Returning <a href="./../glib/glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> means to abort the |
| current emission and <a href="./../glib/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> is returned for continuation. |
| </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2" title="GSignalCMarshaller"> |
| <a name="GSignalCMarshaller"></a><h3>GSignalCMarshaller</h3> |
| <pre class="programlisting">typedef GClosureMarshal GSignalCMarshaller; |
| </pre> |
| <p> |
| This is the signature of marshaller functions, required to marshall |
| arrays of parameter values to signal emissions into C language callback |
| invocations. It is merely an alias to <a class="link" href="gobject-Closures.html#GClosureMarshal" title="GClosureMarshal ()"><span class="type">GClosureMarshal</span></a> since the <a class="link" href="gobject-Closures.html#GClosure" title="GClosure"><span class="type">GClosure</span></a> |
| mechanism takes over responsibility of actual function invocation for the |
| signal system. |
| </p> |
| </div> |
| <hr> |
| <div class="refsect2" title="GSignalEmissionHook ()"> |
| <a name="GSignalEmissionHook"></a><h3>GSignalEmissionHook ()</h3> |
| <pre class="programlisting"><a href="./../glib/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> (*GSignalEmissionHook) (<em class="parameter"><code><a class="link" href="gobject-Signals.html#GSignalInvocationHint" title="GSignalInvocationHint"><span class="type">GSignalInvocationHint</span></a> *ihint</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_param_values</code></em>, |
| <em class="parameter"><code>const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *param_values</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>);</pre> |
| <p> |
| A simple function pointer to get invoked when the signal is emitted. This |
| allows you to tie a hook to the signal type, so that it will trap all |
| emissions of that signal, from any object. |
| </p> |
| <p> |
| You may not attach these to signals created with the <a class="link" href="gobject-Signals.html#G-SIGNAL-NO-HOOKS:CAPS"><span class="type">G_SIGNAL_NO_HOOKS</span></a> flag. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>ihint</code></em> :</span></p></td> |
| <td>Signal invocation hint, see <a class="link" href="gobject-Signals.html#GSignalInvocationHint" title="GSignalInvocationHint"><span class="type">GSignalInvocationHint</span></a>. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>n_param_values</code></em> :</span></p></td> |
| <td>the number of parameters to the function, including |
| the instance on which the signal was emitted. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>param_values</code></em> :</span></p></td> |
| <td>the instance on which the signal was emitted, followed by the |
| parameters of the emission. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td> |
| <td>user data associated with the hook. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> |
| <td> whether it wants to stay connected. If it returns <a href="./../glib/glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>, the signal |
| hook is disconnected (and destroyed). |
| </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2" title="enum GSignalFlags"> |
| <a name="GSignalFlags"></a><h3>enum GSignalFlags</h3> |
| <pre class="programlisting">typedef enum |
| { |
| G_SIGNAL_RUN_FIRST = 1 << 0, |
| G_SIGNAL_RUN_LAST = 1 << 1, |
| G_SIGNAL_RUN_CLEANUP = 1 << 2, |
| G_SIGNAL_NO_RECURSE = 1 << 3, |
| G_SIGNAL_DETAILED = 1 << 4, |
| G_SIGNAL_ACTION = 1 << 5, |
| G_SIGNAL_NO_HOOKS = 1 << 6 |
| } GSignalFlags; |
| </pre> |
| <p> |
| The signal flags are used to specify a signal's behaviour, the overall |
| signal description outlines how especially the RUN flags control the |
| stages of a signal emission. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><a name="G-SIGNAL-RUN-FIRST:CAPS"></a><span class="term"><code class="literal">G_SIGNAL_RUN_FIRST</code></span></p></td> |
| <td>Invoke the object method handler in the first emission stage. |
| </td> |
| </tr> |
| <tr> |
| <td><p><a name="G-SIGNAL-RUN-LAST:CAPS"></a><span class="term"><code class="literal">G_SIGNAL_RUN_LAST</code></span></p></td> |
| <td>Invoke the object method handler in the third emission stage. |
| </td> |
| </tr> |
| <tr> |
| <td><p><a name="G-SIGNAL-RUN-CLEANUP:CAPS"></a><span class="term"><code class="literal">G_SIGNAL_RUN_CLEANUP</code></span></p></td> |
| <td>Invoke the object method handler in the last emission stage. |
| </td> |
| </tr> |
| <tr> |
| <td><p><a name="G-SIGNAL-NO-RECURSE:CAPS"></a><span class="term"><code class="literal">G_SIGNAL_NO_RECURSE</code></span></p></td> |
| <td>Signals being emitted for an object while currently being in |
| emission for this very object will not be emitted recursively, |
| but instead cause the first emission to be restarted. |
| </td> |
| </tr> |
| <tr> |
| <td><p><a name="G-SIGNAL-DETAILED:CAPS"></a><span class="term"><code class="literal">G_SIGNAL_DETAILED</code></span></p></td> |
| <td>This signal supports "::detail" appendices to the signal name |
| upon handler connections and emissions. |
| </td> |
| </tr> |
| <tr> |
| <td><p><a name="G-SIGNAL-ACTION:CAPS"></a><span class="term"><code class="literal">G_SIGNAL_ACTION</code></span></p></td> |
| <td>Action signals are signals that may freely be emitted on alive |
| objects from user code via <a class="link" href="gobject-Signals.html#g-signal-emit" title="g_signal_emit ()"><code class="function">g_signal_emit()</code></a> and friends, without |
| the need of being embedded into extra code that performs pre or |
| post emission adjustments on the object. They can also be thought |
| of as object methods which can be called generically by |
| third-party code. |
| </td> |
| </tr> |
| <tr> |
| <td><p><a name="G-SIGNAL-NO-HOOKS:CAPS"></a><span class="term"><code class="literal">G_SIGNAL_NO_HOOKS</code></span></p></td> |
| <td>No emissions hooks are supported for this signal. |
| </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2" title="enum GSignalMatchType"> |
| <a name="GSignalMatchType"></a><h3>enum GSignalMatchType</h3> |
| <pre class="programlisting">typedef enum |
| { |
| G_SIGNAL_MATCH_ID = 1 << 0, |
| G_SIGNAL_MATCH_DETAIL = 1 << 1, |
| G_SIGNAL_MATCH_CLOSURE = 1 << 2, |
| G_SIGNAL_MATCH_FUNC = 1 << 3, |
| G_SIGNAL_MATCH_DATA = 1 << 4, |
| G_SIGNAL_MATCH_UNBLOCKED = 1 << 5 |
| } GSignalMatchType; |
| </pre> |
| <p> |
| The match types specify what <a class="link" href="gobject-Signals.html#g-signal-handlers-block-matched" title="g_signal_handlers_block_matched ()"><code class="function">g_signal_handlers_block_matched()</code></a>, |
| <a class="link" href="gobject-Signals.html#g-signal-handlers-unblock-matched" title="g_signal_handlers_unblock_matched ()"><code class="function">g_signal_handlers_unblock_matched()</code></a> and <a class="link" href="gobject-Signals.html#g-signal-handlers-disconnect-matched" title="g_signal_handlers_disconnect_matched ()"><code class="function">g_signal_handlers_disconnect_matched()</code></a> |
| match signals by. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><a name="G-SIGNAL-MATCH-ID:CAPS"></a><span class="term"><code class="literal">G_SIGNAL_MATCH_ID</code></span></p></td> |
| <td>The signal id must be equal. |
| </td> |
| </tr> |
| <tr> |
| <td><p><a name="G-SIGNAL-MATCH-DETAIL:CAPS"></a><span class="term"><code class="literal">G_SIGNAL_MATCH_DETAIL</code></span></p></td> |
| <td>The signal detail be equal. |
| </td> |
| </tr> |
| <tr> |
| <td><p><a name="G-SIGNAL-MATCH-CLOSURE:CAPS"></a><span class="term"><code class="literal">G_SIGNAL_MATCH_CLOSURE</code></span></p></td> |
| <td>The closure must be the same. |
| </td> |
| </tr> |
| <tr> |
| <td><p><a name="G-SIGNAL-MATCH-FUNC:CAPS"></a><span class="term"><code class="literal">G_SIGNAL_MATCH_FUNC</code></span></p></td> |
| <td>The C closure callback must be the same. |
| </td> |
| </tr> |
| <tr> |
| <td><p><a name="G-SIGNAL-MATCH-DATA:CAPS"></a><span class="term"><code class="literal">G_SIGNAL_MATCH_DATA</code></span></p></td> |
| <td>The closure data must be the same. |
| </td> |
| </tr> |
| <tr> |
| <td><p><a name="G-SIGNAL-MATCH-UNBLOCKED:CAPS"></a><span class="term"><code class="literal">G_SIGNAL_MATCH_UNBLOCKED</code></span></p></td> |
| <td>Only unblocked signals may matched. |
| </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2" title="GSignalQuery"> |
| <a name="GSignalQuery"></a><h3>GSignalQuery</h3> |
| <pre class="programlisting">typedef struct { |
| guint signal_id; |
| const gchar *signal_name; |
| GType itype; |
| GSignalFlags signal_flags; |
| GType return_type; /* mangled with G_SIGNAL_TYPE_STATIC_SCOPE flag */ |
| guint n_params; |
| const GType *param_types; /* mangled with G_SIGNAL_TYPE_STATIC_SCOPE flag */ |
| } GSignalQuery; |
| </pre> |
| <p> |
| A structure holding in-depth information for a specific signal. It is |
| filled in by the <a class="link" href="gobject-Signals.html#g-signal-query" title="g_signal_query ()"><code class="function">g_signal_query()</code></a> function. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GSignalQuery.signal-id"></a>signal_id</code></em>;</span></p></td> |
| <td>The signal id of the signal being queried, or 0 if the |
| signal to be queried was unknown. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term">const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GSignalQuery.signal-name"></a>signal_name</code></em>;</span></p></td> |
| <td>The signal name. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> <em class="structfield"><code><a name="GSignalQuery.itype"></a>itype</code></em>;</span></p></td> |
| <td>The interface/instance type that this signal can be emitted for. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><a class="link" href="gobject-Signals.html#GSignalFlags" title="enum GSignalFlags"><span class="type">GSignalFlags</span></a> <em class="structfield"><code><a name="GSignalQuery.signal-flags"></a>signal_flags</code></em>;</span></p></td> |
| <td>The signal flags as passed in to <a class="link" href="gobject-Signals.html#g-signal-new" title="g_signal_new ()"><code class="function">g_signal_new()</code></a>. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> <em class="structfield"><code><a name="GSignalQuery.return-type"></a>return_type</code></em>;</span></p></td> |
| <td>The return type for user callbacks. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GSignalQuery.n-params"></a>n_params</code></em>;</span></p></td> |
| <td>The number of parameters that user callbacks take. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term">const <a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> *<em class="structfield"><code><a name="GSignalQuery.param-types"></a>param_types</code></em>;</span></p></td> |
| <td>The individual parameter types for user callbacks, note that the |
| effective callback signature is: |
| <pre class="programlisting"> |
| @return_type callback (<a href="./../glib/glib/glib-Basic-Types.html#gpointer">gpointer</a> data1, |
| [param_types param_names,] |
| <a href="./../glib/glib/glib-Basic-Types.html#gpointer">gpointer</a> data2); |
| </pre> |
| </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2" title="G_SIGNAL_TYPE_STATIC_SCOPE"> |
| <a name="G-SIGNAL-TYPE-STATIC-SCOPE:CAPS"></a><h3>G_SIGNAL_TYPE_STATIC_SCOPE</h3> |
| <pre class="programlisting">#define G_SIGNAL_TYPE_STATIC_SCOPE (G_TYPE_FLAG_RESERVED_ID_BIT) |
| </pre> |
| <p> |
| This macro flags signal argument types for which the signal system may |
| assume that instances thereof remain persistent across all signal emissions |
| they are used in. This is only useful for non ref-counted, value-copy types. |
| </p> |
| <p> |
| To flag a signal argument in this way, add |
| <code class="literal">| G_SIGNAL_TYPE_STATIC_SCOPE</code> to the corresponding argument |
| of <a class="link" href="gobject-Signals.html#g-signal-new" title="g_signal_new ()"><code class="function">g_signal_new()</code></a>. |
| </p> |
| <div class="informalexample"> |
| <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> |
| <tbody> |
| <tr> |
| <td class="listing_lines" align="right"><pre>1 |
| 2 |
| 3 |
| 4 |
| 5 |
| 6 |
| 7 |
| 8</pre></td> |
| <td class="listing_code"><pre class="programlisting"><span class="function"><a href="gobject-Signals.html#g-signal-new">g_signal_new</a></span><span class="normal"> </span><span class="symbol">(</span><span class="string">"size_request"</span><span class="symbol">,</span> |
| <span class="normal"> </span><span class="function"><a href="gobject-Type-Information.html#G-TYPE-FROM-CLASS:CAPS">G_TYPE_FROM_CLASS</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">gobject_class</span><span class="symbol">),</span> |
| <span class="normal"> <a href="gobject-Signals.html#G-SIGNAL-RUN-FIRST:CAPS">G_SIGNAL_RUN_FIRST</a></span><span class="symbol">,</span> |
| <span class="normal"> </span><span class="function"><a href="./../glib/glib/glib-Standard-Macros.html#G-STRUCT-OFFSET:CAPS">G_STRUCT_OFFSET</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal"><a href="http://library.gnome.org/devel/gtk/unstable/GtkWidget.html#GtkWidgetClass">GtkWidgetClass</a></span><span class="symbol">,</span><span class="normal"> size_request</span><span class="symbol">),</span> |
| <span class="normal"> <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">,</span><span class="normal"> <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">,</span> |
| <span class="normal"> _gtk_marshal_VOID__BOXED</span><span class="symbol">,</span> |
| <span class="normal"> <a href="gobject-Type-Information.html#G-TYPE-NONE:CAPS">G_TYPE_NONE</a></span><span class="symbol">,</span><span class="normal"> </span><span class="number">1</span><span class="symbol">,</span> |
| <span class="normal"> GTK_TYPE_REQUISITION </span><span class="symbol">|</span><span class="normal"> <a href="gobject-Signals.html#G-SIGNAL-TYPE-STATIC-SCOPE:CAPS">G_SIGNAL_TYPE_STATIC_SCOPE</a></span><span class="symbol">);</span></pre></td> |
| </tr> |
| </tbody> |
| </table> |
| </div> |
| |
| <p> |
| </p> |
| </div> |
| <hr> |
| <div class="refsect2" title="G_SIGNAL_MATCH_MASK"> |
| <a name="G-SIGNAL-MATCH-MASK:CAPS"></a><h3>G_SIGNAL_MATCH_MASK</h3> |
| <pre class="programlisting">#define G_SIGNAL_MATCH_MASK 0x3f |
| </pre> |
| <p> |
| A mask for all <a class="link" href="gobject-Signals.html#GSignalMatchType" title="enum GSignalMatchType"><span class="type">GSignalMatchType</span></a> bits. |
| </p> |
| </div> |
| <hr> |
| <div class="refsect2" title="G_SIGNAL_FLAGS_MASK"> |
| <a name="G-SIGNAL-FLAGS-MASK:CAPS"></a><h3>G_SIGNAL_FLAGS_MASK</h3> |
| <pre class="programlisting">#define G_SIGNAL_FLAGS_MASK 0x7f |
| </pre> |
| <p> |
| A mask for all <a class="link" href="gobject-Signals.html#GSignalFlags" title="enum GSignalFlags"><span class="type">GSignalFlags</span></a> bits. |
| </p> |
| </div> |
| <hr> |
| <div class="refsect2" title="g_signal_new ()"> |
| <a name="g-signal-new"></a><h3>g_signal_new ()</h3> |
| <pre class="programlisting"><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> g_signal_new (<em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *signal_name</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> itype</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Signals.html#GSignalFlags" title="enum GSignalFlags"><span class="type">GSignalFlags</span></a> signal_flags</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> class_offset</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Signals.html#GSignalAccumulator" title="GSignalAccumulator ()"><span class="type">GSignalAccumulator</span></a> accumulator</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> accu_data</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Signals.html#GSignalCMarshaller" title="GSignalCMarshaller"><span class="type">GSignalCMarshaller</span></a> c_marshaller</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> return_type</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_params</code></em>, |
| <em class="parameter"><code>...</code></em>);</pre> |
| <p> |
| Creates a new signal. (This is usually done in the class initializer.) |
| </p> |
| <p> |
| A signal name consists of segments consisting of ASCII letters and |
| digits, separated by either the '-' or '_' character. The first |
| character of a signal name must be a letter. Names which violate these |
| rules lead to undefined behaviour of the GSignal system. |
| </p> |
| <p> |
| When registering a signal and looking up a signal, either separator can |
| be used, but they cannot be mixed. |
| </p> |
| <p> |
| If 0 is used for <em class="parameter"><code>class_offset</code></em> subclasses cannot override the class handler |
| in their <code class="code">class_init</code> method by doing |
| <code class="code">super_class->signal_handler = my_signal_handler</code>. Instead they |
| will have to use <a class="link" href="gobject-Signals.html#g-signal-override-class-handler" title="g_signal_override_class_handler ()"><code class="function">g_signal_override_class_handler()</code></a>. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>signal_name</code></em> :</span></p></td> |
| <td>the name for the signal |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>itype</code></em> :</span></p></td> |
| <td>the type this signal pertains to. It will also pertain to |
| types which are derived from this type. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>signal_flags</code></em> :</span></p></td> |
| <td>a combination of <a class="link" href="gobject-Signals.html#GSignalFlags" title="enum GSignalFlags"><span class="type">GSignalFlags</span></a> specifying detail of when |
| the default handler is to be invoked. You should at least specify |
| <a class="link" href="gobject-Signals.html#G-SIGNAL-RUN-FIRST:CAPS"><code class="literal">G_SIGNAL_RUN_FIRST</code></a> or <a class="link" href="gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">G_SIGNAL_RUN_LAST</code></a>. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>class_offset</code></em> :</span></p></td> |
| <td>The offset of the function pointer in the class structure |
| for this type. Used to invoke a class method generically. Pass 0 to |
| not associate a class method slot with this signal. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>accumulator</code></em> :</span></p></td> |
| <td>the accumulator for this signal; may be <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>accu_data</code></em> :</span></p></td> |
| <td>user data for the <em class="parameter"><code>accumulator</code></em>. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>c_marshaller</code></em> :</span></p></td> |
| <td>the function to translate arrays of parameter values to |
| signal emissions into C language callback invocations. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>return_type</code></em> :</span></p></td> |
| <td>the type of return value, or <a class="link" href="gobject-Type-Information.html#G-TYPE-NONE:CAPS" title="G_TYPE_NONE"><span class="type">G_TYPE_NONE</span></a> for a signal |
| without a return value. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>n_params</code></em> :</span></p></td> |
| <td>the number of parameter types to follow. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>...</code></em> :</span></p></td> |
| <td>a list of types, one for each parameter. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> |
| <td> the signal id |
| </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2" title="g_signal_newv ()"> |
| <a name="g-signal-newv"></a><h3>g_signal_newv ()</h3> |
| <pre class="programlisting"><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> g_signal_newv (<em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *signal_name</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> itype</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Signals.html#GSignalFlags" title="enum GSignalFlags"><span class="type">GSignalFlags</span></a> signal_flags</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="GClosure"><span class="type">GClosure</span></a> *class_closure</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Signals.html#GSignalAccumulator" title="GSignalAccumulator ()"><span class="type">GSignalAccumulator</span></a> accumulator</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> accu_data</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Signals.html#GSignalCMarshaller" title="GSignalCMarshaller"><span class="type">GSignalCMarshaller</span></a> c_marshaller</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> return_type</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_params</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> *param_types</code></em>);</pre> |
| <p> |
| Creates a new signal. (This is usually done in the class initializer.) |
| </p> |
| <p> |
| See <a class="link" href="gobject-Signals.html#g-signal-new" title="g_signal_new ()"><code class="function">g_signal_new()</code></a> for details on allowed signal names. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>signal_name</code></em> :</span></p></td> |
| <td>the name for the signal |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>itype</code></em> :</span></p></td> |
| <td>the type this signal pertains to. It will also pertain to |
| types which are derived from this type |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>signal_flags</code></em> :</span></p></td> |
| <td>a combination of <a class="link" href="gobject-Signals.html#GSignalFlags" title="enum GSignalFlags"><span class="type">GSignalFlags</span></a> specifying detail of when |
| the default handler is to be invoked. You should at least specify |
| <a class="link" href="gobject-Signals.html#G-SIGNAL-RUN-FIRST:CAPS"><code class="literal">G_SIGNAL_RUN_FIRST</code></a> or <a class="link" href="gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">G_SIGNAL_RUN_LAST</code></a> |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>class_closure</code></em> :</span></p></td> |
| <td>The closure to invoke on signal emission; may be <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>accumulator</code></em> :</span></p></td> |
| <td>the accumulator for this signal; may be <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>accu_data</code></em> :</span></p></td> |
| <td>user data for the <em class="parameter"><code>accumulator</code></em> |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>c_marshaller</code></em> :</span></p></td> |
| <td>the function to translate arrays of parameter values to |
| signal emissions into C language callback invocations |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>return_type</code></em> :</span></p></td> |
| <td>the type of return value, or <a class="link" href="gobject-Type-Information.html#G-TYPE-NONE:CAPS" title="G_TYPE_NONE"><span class="type">G_TYPE_NONE</span></a> for a signal |
| without a return value |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>n_params</code></em> :</span></p></td> |
| <td>the length of <em class="parameter"><code>param_types</code></em> |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>param_types</code></em> :</span></p></td> |
| <td>an array of types, one for each parameter |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> |
| <td> the signal id |
| </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2" title="g_signal_new_valist ()"> |
| <a name="g-signal-new-valist"></a><h3>g_signal_new_valist ()</h3> |
| <pre class="programlisting"><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> g_signal_new_valist (<em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *signal_name</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> itype</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Signals.html#GSignalFlags" title="enum GSignalFlags"><span class="type">GSignalFlags</span></a> signal_flags</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="GClosure"><span class="type">GClosure</span></a> *class_closure</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Signals.html#GSignalAccumulator" title="GSignalAccumulator ()"><span class="type">GSignalAccumulator</span></a> accumulator</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> accu_data</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Signals.html#GSignalCMarshaller" title="GSignalCMarshaller"><span class="type">GSignalCMarshaller</span></a> c_marshaller</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> return_type</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_params</code></em>, |
| <em class="parameter"><code><span class="type">va_list</span> args</code></em>);</pre> |
| <p> |
| Creates a new signal. (This is usually done in the class initializer.) |
| </p> |
| <p> |
| See <a class="link" href="gobject-Signals.html#g-signal-new" title="g_signal_new ()"><code class="function">g_signal_new()</code></a> for details on allowed signal names. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>signal_name</code></em> :</span></p></td> |
| <td>the name for the signal |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>itype</code></em> :</span></p></td> |
| <td>the type this signal pertains to. It will also pertain to |
| types which are derived from this type. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>signal_flags</code></em> :</span></p></td> |
| <td>a combination of <a class="link" href="gobject-Signals.html#GSignalFlags" title="enum GSignalFlags"><span class="type">GSignalFlags</span></a> specifying detail of when |
| the default handler is to be invoked. You should at least specify |
| <a class="link" href="gobject-Signals.html#G-SIGNAL-RUN-FIRST:CAPS"><code class="literal">G_SIGNAL_RUN_FIRST</code></a> or <a class="link" href="gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">G_SIGNAL_RUN_LAST</code></a>. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>class_closure</code></em> :</span></p></td> |
| <td>The closure to invoke on signal emission; may be <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>accumulator</code></em> :</span></p></td> |
| <td>the accumulator for this signal; may be <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>accu_data</code></em> :</span></p></td> |
| <td>user data for the <em class="parameter"><code>accumulator</code></em>. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>c_marshaller</code></em> :</span></p></td> |
| <td>the function to translate arrays of parameter values to |
| signal emissions into C language callback invocations. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>return_type</code></em> :</span></p></td> |
| <td>the type of return value, or <a class="link" href="gobject-Type-Information.html#G-TYPE-NONE:CAPS" title="G_TYPE_NONE"><span class="type">G_TYPE_NONE</span></a> for a signal |
| without a return value. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>n_params</code></em> :</span></p></td> |
| <td>the number of parameter types in <em class="parameter"><code>args</code></em>. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>args</code></em> :</span></p></td> |
| <td>va_list of <a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a>, one for each parameter. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> |
| <td> the signal id |
| </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2" title="g_signal_query ()"> |
| <a name="g-signal-query"></a><h3>g_signal_query ()</h3> |
| <pre class="programlisting"><span class="returnvalue">void</span> g_signal_query (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> signal_id</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Signals.html#GSignalQuery" title="GSignalQuery"><span class="type">GSignalQuery</span></a> *query</code></em>);</pre> |
| <p> |
| Queries the signal system for in-depth information about a |
| specific signal. This function will fill in a user-provided |
| structure to hold signal-specific information. If an invalid |
| signal id is passed in, the <em class="parameter"><code>signal_id</code></em> member of the <a class="link" href="gobject-Signals.html#GSignalQuery" title="GSignalQuery"><span class="type">GSignalQuery</span></a> |
| is 0. All members filled into the <a class="link" href="gobject-Signals.html#GSignalQuery" title="GSignalQuery"><span class="type">GSignalQuery</span></a> structure should |
| be considered constant and have to be left untouched. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>signal_id</code></em> :</span></p></td> |
| <td>The signal id of the signal to query information for. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td> |
| <td>A user provided structure that is filled in with constant |
| values upon success. |
| </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2" title="g_signal_lookup ()"> |
| <a name="g-signal-lookup"></a><h3>g_signal_lookup ()</h3> |
| <pre class="programlisting"><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> g_signal_lookup (<em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> itype</code></em>);</pre> |
| <p> |
| Given the name of the signal and the type of object it connects to, gets |
| the signal's identifying integer. Emitting the signal by number is |
| somewhat faster than using the name each time. |
| </p> |
| <p> |
| Also tries the ancestors of the given type. |
| </p> |
| <p> |
| See <a class="link" href="gobject-Signals.html#g-signal-new" title="g_signal_new ()"><code class="function">g_signal_new()</code></a> for details on allowed signal names. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td> |
| <td>the signal's name. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>itype</code></em> :</span></p></td> |
| <td>the type that the signal operates on. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> |
| <td> the signal's identifying number, or 0 if no signal was found. |
| </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2" title="g_signal_name ()"> |
| <a name="g-signal-name"></a><h3>g_signal_name ()</h3> |
| <pre class="programlisting">const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a>* g_signal_name (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> signal_id</code></em>);</pre> |
| <p> |
| Given the signal's identifier, finds its name. |
| </p> |
| <p> |
| Two different signals may have the same name, if they have differing types. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>signal_id</code></em> :</span></p></td> |
| <td>the signal's identifying number. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> |
| <td> the signal name, or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the signal number was invalid. |
| </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2" title="g_signal_list_ids ()"> |
| <a name="g-signal-list-ids"></a><h3>g_signal_list_ids ()</h3> |
| <pre class="programlisting"><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>* g_signal_list_ids (<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> itype</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *n_ids</code></em>);</pre> |
| <p> |
| Lists the signals by id that a certain instance or interface type |
| created. Further information about the signals can be acquired through |
| <a class="link" href="gobject-Signals.html#g-signal-query" title="g_signal_query ()"><code class="function">g_signal_query()</code></a>. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>itype</code></em> :</span></p></td> |
| <td>Instance or interface type. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>n_ids</code></em> :</span></p></td> |
| <td>Location to store the number of signal ids for <em class="parameter"><code>itype</code></em>. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> |
| <td> Newly allocated array of signal IDs. |
| </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2" title="g_signal_emit ()"> |
| <a name="g-signal-emit"></a><h3>g_signal_emit ()</h3> |
| <pre class="programlisting"><span class="returnvalue">void</span> g_signal_emit (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> instance</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> signal_id</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> detail</code></em>, |
| <em class="parameter"><code>...</code></em>);</pre> |
| <p> |
| Emits a signal. |
| </p> |
| <p> |
| Note that <a class="link" href="gobject-Signals.html#g-signal-emit" title="g_signal_emit ()"><code class="function">g_signal_emit()</code></a> resets the return value to the default |
| if no handlers are connected, in contrast to <a class="link" href="gobject-Signals.html#g-signal-emitv" title="g_signal_emitv ()"><code class="function">g_signal_emitv()</code></a>. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>instance</code></em> :</span></p></td> |
| <td>the instance the signal is being emitted on. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>signal_id</code></em> :</span></p></td> |
| <td>the signal id |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>detail</code></em> :</span></p></td> |
| <td>the detail |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>...</code></em> :</span></p></td> |
| <td>parameters to be passed to the signal, followed by a |
| location for the return value. If the return type of the signal |
| is <a class="link" href="gobject-Type-Information.html#G-TYPE-NONE:CAPS" title="G_TYPE_NONE"><span class="type">G_TYPE_NONE</span></a>, the return value location can be omitted. |
| </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2" title="g_signal_emit_by_name ()"> |
| <a name="g-signal-emit-by-name"></a><h3>g_signal_emit_by_name ()</h3> |
| <pre class="programlisting"><span class="returnvalue">void</span> g_signal_emit_by_name (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> instance</code></em>, |
| <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *detailed_signal</code></em>, |
| <em class="parameter"><code>...</code></em>);</pre> |
| <p> |
| Emits a signal. |
| </p> |
| <p> |
| Note that <a class="link" href="gobject-Signals.html#g-signal-emit-by-name" title="g_signal_emit_by_name ()"><code class="function">g_signal_emit_by_name()</code></a> resets the return value to the default |
| if no handlers are connected, in contrast to <a class="link" href="gobject-Signals.html#g-signal-emitv" title="g_signal_emitv ()"><code class="function">g_signal_emitv()</code></a>. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>instance</code></em> :</span></p></td> |
| <td>the instance the signal is being emitted on. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>detailed_signal</code></em> :</span></p></td> |
| <td>a string of the form "signal-name::detail". |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>...</code></em> :</span></p></td> |
| <td>parameters to be passed to the signal, followed by a |
| location for the return value. If the return type of the signal |
| is <a class="link" href="gobject-Type-Information.html#G-TYPE-NONE:CAPS" title="G_TYPE_NONE"><span class="type">G_TYPE_NONE</span></a>, the return value location can be omitted. |
| </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2" title="g_signal_emitv ()"> |
| <a name="g-signal-emitv"></a><h3>g_signal_emitv ()</h3> |
| <pre class="programlisting"><span class="returnvalue">void</span> g_signal_emitv (<em class="parameter"><code>const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *instance_and_params</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> signal_id</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> detail</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *return_value</code></em>);</pre> |
| <p> |
| Emits a signal. |
| </p> |
| <p> |
| Note that <a class="link" href="gobject-Signals.html#g-signal-emitv" title="g_signal_emitv ()"><code class="function">g_signal_emitv()</code></a> doesn't change <em class="parameter"><code>return_value</code></em> if no handlers are |
| connected, in contrast to <a class="link" href="gobject-Signals.html#g-signal-emit" title="g_signal_emit ()"><code class="function">g_signal_emit()</code></a> and <a class="link" href="gobject-Signals.html#g-signal-emit-valist" title="g_signal_emit_valist ()"><code class="function">g_signal_emit_valist()</code></a>. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>instance_and_params</code></em> :</span></p></td> |
| <td>argument list for the signal emission. The first |
| element in the array is a <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> for the instance the signal is |
| being emitted on. The rest are any arguments to be passed to the |
| signal. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>signal_id</code></em> :</span></p></td> |
| <td>the signal id |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>detail</code></em> :</span></p></td> |
| <td>the detail |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>return_value</code></em> :</span></p></td> |
| <td>Location to store the return value of the signal emission. |
| </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2" title="g_signal_emit_valist ()"> |
| <a name="g-signal-emit-valist"></a><h3>g_signal_emit_valist ()</h3> |
| <pre class="programlisting"><span class="returnvalue">void</span> g_signal_emit_valist (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> instance</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> signal_id</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> detail</code></em>, |
| <em class="parameter"><code><span class="type">va_list</span> var_args</code></em>);</pre> |
| <p> |
| Emits a signal. |
| </p> |
| <p> |
| Note that <a class="link" href="gobject-Signals.html#g-signal-emit-valist" title="g_signal_emit_valist ()"><code class="function">g_signal_emit_valist()</code></a> resets the return value to the default |
| if no handlers are connected, in contrast to <a class="link" href="gobject-Signals.html#g-signal-emitv" title="g_signal_emitv ()"><code class="function">g_signal_emitv()</code></a>. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>instance</code></em> :</span></p></td> |
| <td>the instance the signal is being emitted on. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>signal_id</code></em> :</span></p></td> |
| <td>the signal id |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>detail</code></em> :</span></p></td> |
| <td>the detail |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>var_args</code></em> :</span></p></td> |
| <td>a list of parameters to be passed to the signal, followed by a |
| location for the return value. If the return type of the signal |
| is <a class="link" href="gobject-Type-Information.html#G-TYPE-NONE:CAPS" title="G_TYPE_NONE"><span class="type">G_TYPE_NONE</span></a>, the return value location can be omitted. |
| </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2" title="g_signal_connect()"> |
| <a name="g-signal-connect"></a><h3>g_signal_connect()</h3> |
| <pre class="programlisting">#define g_signal_connect(instance, detailed_signal, c_handler, data)</pre> |
| <p> |
| Connects a <a class="link" href="gobject-Closures.html#GCallback" title="GCallback ()"><span class="type">GCallback</span></a> function to a signal for a particular object. |
| </p> |
| <p> |
| The handler will be called before the default handler of the signal. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>instance</code></em> :</span></p></td> |
| <td>the instance to connect to. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>detailed_signal</code></em> :</span></p></td> |
| <td>a string of the form "signal-name::detail". |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>c_handler</code></em> :</span></p></td> |
| <td>the <a class="link" href="gobject-Closures.html#GCallback" title="GCallback ()"><span class="type">GCallback</span></a> to connect. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td> |
| <td>data to pass to <em class="parameter"><code>c_handler</code></em> calls. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> |
| <td> the handler id |
| </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2" title="g_signal_connect_after()"> |
| <a name="g-signal-connect-after"></a><h3>g_signal_connect_after()</h3> |
| <pre class="programlisting">#define g_signal_connect_after(instance, detailed_signal, c_handler, data)</pre> |
| <p> |
| Connects a <a class="link" href="gobject-Closures.html#GCallback" title="GCallback ()"><span class="type">GCallback</span></a> function to a signal for a particular object. |
| </p> |
| <p> |
| The handler will be called after the default handler of the signal. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>instance</code></em> :</span></p></td> |
| <td>the instance to connect to. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>detailed_signal</code></em> :</span></p></td> |
| <td>a string of the form "signal-name::detail". |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>c_handler</code></em> :</span></p></td> |
| <td>the <a class="link" href="gobject-Closures.html#GCallback" title="GCallback ()"><span class="type">GCallback</span></a> to connect. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td> |
| <td>data to pass to <em class="parameter"><code>c_handler</code></em> calls. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> |
| <td> the handler id |
| </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2" title="g_signal_connect_swapped()"> |
| <a name="g-signal-connect-swapped"></a><h3>g_signal_connect_swapped()</h3> |
| <pre class="programlisting">#define g_signal_connect_swapped(instance, detailed_signal, c_handler, data)</pre> |
| <p> |
| Connects a <a class="link" href="gobject-Closures.html#GCallback" title="GCallback ()"><span class="type">GCallback</span></a> function to a signal for a particular object. |
| </p> |
| <p> |
| The instance on which the signal is emitted and <em class="parameter"><code>data</code></em> will be swapped when |
| calling the handler. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>instance</code></em> :</span></p></td> |
| <td>the instance to connect to. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>detailed_signal</code></em> :</span></p></td> |
| <td>a string of the form "signal-name::detail". |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>c_handler</code></em> :</span></p></td> |
| <td>the <a class="link" href="gobject-Closures.html#GCallback" title="GCallback ()"><span class="type">GCallback</span></a> to connect. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td> |
| <td>data to pass to <em class="parameter"><code>c_handler</code></em> calls. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> |
| <td> the handler id |
| </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2" title="g_signal_connect_object ()"> |
| <a name="g-signal-connect-object"></a><h3>g_signal_connect_object ()</h3> |
| <pre class="programlisting"><a href="./../glib/glib/glib-Basic-Types.html#gulong"><span class="returnvalue">gulong</span></a> g_signal_connect_object (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> instance</code></em>, |
| <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *detailed_signal</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Closures.html#GCallback" title="GCallback ()"><span class="type">GCallback</span></a> c_handler</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> gobject</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Signals.html#GConnectFlags" title="enum GConnectFlags"><span class="type">GConnectFlags</span></a> connect_flags</code></em>);</pre> |
| <p> |
| This is similar to <a class="link" href="gobject-Signals.html#g-signal-connect-data" title="g_signal_connect_data ()"><code class="function">g_signal_connect_data()</code></a>, but uses a closure which |
| ensures that the <em class="parameter"><code>gobject</code></em> stays alive during the call to <em class="parameter"><code>c_handler</code></em> |
| by temporarily adding a reference count to <em class="parameter"><code>gobject</code></em>. |
| </p> |
| <p> |
| Note that there is a bug in GObject that makes this function |
| much less useful than it might seem otherwise. Once <em class="parameter"><code>gobject</code></em> is |
| disposed, the callback will no longer be called, but, the signal |
| handler is <span class="emphasis"><em>not</em></span> currently disconnected. If the |
| <em class="parameter"><code>instance</code></em> is itself being freed at the same time than this doesn't |
| matter, since the signal will automatically be removed, but |
| if <em class="parameter"><code>instance</code></em> persists, then the signal handler will leak. You |
| should not remove the signal yourself because in a future versions of |
| GObject, the handler <span class="emphasis"><em>will</em></span> automatically |
| be disconnected. |
| </p> |
| <p> |
| It's possible to work around this problem in a way that will |
| continue to work with future versions of GObject by checking |
| that the signal handler is still connected before disconnected it: |
| </p> |
| <div class="informalexample"> |
| <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> |
| <tbody> |
| <tr> |
| <td class="listing_lines" align="right"><pre>1 |
| 2</pre></td> |
| <td class="listing_code"><pre class="programlisting"><span class="keyword">if</span><span class="normal"> </span><span class="symbol">(</span><span class="function"><a href="gobject-Signals.html#g-signal-handler-is-connected">g_signal_handler_is_connected</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">instance</span><span class="symbol">,</span><span class="normal"> id</span><span class="symbol">))</span> |
| <span class="normal"> </span><span class="function"><a href="gobject-Signals.html#g-signal-handler-disconnect">g_signal_handler_disconnect</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">instance</span><span class="symbol">,</span><span class="normal"> id</span><span class="symbol">);</span></pre></td> |
| </tr> |
| </tbody> |
| </table> |
| </div> |
| |
| <p> |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>instance</code></em> :</span></p></td> |
| <td>the instance to connect to. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>detailed_signal</code></em> :</span></p></td> |
| <td>a string of the form "signal-name::detail". |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>c_handler</code></em> :</span></p></td> |
| <td>the <a class="link" href="gobject-Closures.html#GCallback" title="GCallback ()"><span class="type">GCallback</span></a> to connect. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>gobject</code></em> :</span></p></td> |
| <td>the object to pass as data to <em class="parameter"><code>c_handler</code></em>. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>connect_flags</code></em> :</span></p></td> |
| <td>a combination of <span class="type">GConnnectFlags</span>. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> |
| <td> the handler id. |
| </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2" title="enum GConnectFlags"> |
| <a name="GConnectFlags"></a><h3>enum GConnectFlags</h3> |
| <pre class="programlisting">typedef enum |
| { |
| G_CONNECT_AFTER = 1 << 0, |
| G_CONNECT_SWAPPED = 1 << 1 |
| } GConnectFlags; |
| </pre> |
| <p> |
| The connection flags are used to specify the behaviour of a signal's |
| connection. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><a name="G-CONNECT-AFTER:CAPS"></a><span class="term"><code class="literal">G_CONNECT_AFTER</code></span></p></td> |
| <td>whether the handler should be called before or after the |
| default handler of the signal. |
| </td> |
| </tr> |
| <tr> |
| <td><p><a name="G-CONNECT-SWAPPED:CAPS"></a><span class="term"><code class="literal">G_CONNECT_SWAPPED</code></span></p></td> |
| <td>whether the instance and data should be swapped when |
| calling the handler. |
| </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2" title="g_signal_connect_data ()"> |
| <a name="g-signal-connect-data"></a><h3>g_signal_connect_data ()</h3> |
| <pre class="programlisting"><a href="./../glib/glib/glib-Basic-Types.html#gulong"><span class="returnvalue">gulong</span></a> g_signal_connect_data (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> instance</code></em>, |
| <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *detailed_signal</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Closures.html#GCallback" title="GCallback ()"><span class="type">GCallback</span></a> c_handler</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosureNotify" title="GClosureNotify ()"><span class="type">GClosureNotify</span></a> destroy_data</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Signals.html#GConnectFlags" title="enum GConnectFlags"><span class="type">GConnectFlags</span></a> connect_flags</code></em>);</pre> |
| <p> |
| Connects a <a class="link" href="gobject-Closures.html#GCallback" title="GCallback ()"><span class="type">GCallback</span></a> function to a signal for a particular object. Similar |
| to <a class="link" href="gobject-Signals.html#g-signal-connect" title="g_signal_connect()"><code class="function">g_signal_connect()</code></a>, but allows to provide a <a class="link" href="gobject-Closures.html#GClosureNotify" title="GClosureNotify ()"><span class="type">GClosureNotify</span></a> for the data |
| which will be called when the signal handler is disconnected and no longer |
| used. Specify <em class="parameter"><code>connect_flags</code></em> if you need <code class="literal">..._after()</code> or |
| <code class="literal">..._swapped()</code> variants of this function. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>instance</code></em> :</span></p></td> |
| <td>the instance to connect to. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>detailed_signal</code></em> :</span></p></td> |
| <td>a string of the form "signal-name::detail". |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>c_handler</code></em> :</span></p></td> |
| <td>the <a class="link" href="gobject-Closures.html#GCallback" title="GCallback ()"><span class="type">GCallback</span></a> to connect. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td> |
| <td>data to pass to <em class="parameter"><code>c_handler</code></em> calls. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>destroy_data</code></em> :</span></p></td> |
| <td>a <a class="link" href="gobject-Closures.html#GClosureNotify" title="GClosureNotify ()"><span class="type">GClosureNotify</span></a> for <em class="parameter"><code>data</code></em>. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>connect_flags</code></em> :</span></p></td> |
| <td>a combination of <a class="link" href="gobject-Signals.html#GConnectFlags" title="enum GConnectFlags"><span class="type">GConnectFlags</span></a>. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> |
| <td> the handler id |
| </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2" title="g_signal_connect_closure ()"> |
| <a name="g-signal-connect-closure"></a><h3>g_signal_connect_closure ()</h3> |
| <pre class="programlisting"><a href="./../glib/glib/glib-Basic-Types.html#gulong"><span class="returnvalue">gulong</span></a> g_signal_connect_closure (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> instance</code></em>, |
| <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *detailed_signal</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="GClosure"><span class="type">GClosure</span></a> *closure</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> after</code></em>);</pre> |
| <p> |
| Connects a closure to a signal for a particular object. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>instance</code></em> :</span></p></td> |
| <td>the instance to connect to. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>detailed_signal</code></em> :</span></p></td> |
| <td>a string of the form "signal-name::detail". |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td> |
| <td>the closure to connect. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>after</code></em> :</span></p></td> |
| <td>whether the handler should be called before or after the |
| default handler of the signal. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> |
| <td> the handler id |
| </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2" title="g_signal_connect_closure_by_id ()"> |
| <a name="g-signal-connect-closure-by-id"></a><h3>g_signal_connect_closure_by_id ()</h3> |
| <pre class="programlisting"><a href="./../glib/glib/glib-Basic-Types.html#gulong"><span class="returnvalue">gulong</span></a> g_signal_connect_closure_by_id (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> instance</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> signal_id</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> detail</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="GClosure"><span class="type">GClosure</span></a> *closure</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> after</code></em>);</pre> |
| <p> |
| Connects a closure to a signal for a particular object. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>instance</code></em> :</span></p></td> |
| <td>the instance to connect to. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>signal_id</code></em> :</span></p></td> |
| <td>the id of the signal. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>detail</code></em> :</span></p></td> |
| <td>the detail. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td> |
| <td>the closure to connect. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>after</code></em> :</span></p></td> |
| <td>whether the handler should be called before or after the |
| default handler of the signal. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> |
| <td> the handler id |
| </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2" title="g_signal_handler_block ()"> |
| <a name="g-signal-handler-block"></a><h3>g_signal_handler_block ()</h3> |
| <pre class="programlisting"><span class="returnvalue">void</span> g_signal_handler_block (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> instance</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gulong"><span class="type">gulong</span></a> handler_id</code></em>);</pre> |
| <p> |
| Blocks a handler of an instance so it will not be called during any |
| signal emissions unless it is unblocked again. Thus "blocking" a |
| signal handler means to temporarily deactive it, a signal handler |
| has to be unblocked exactly the same amount of times it has been |
| blocked before to become active again. |
| </p> |
| <p> |
| The <em class="parameter"><code>handler_id</code></em> has to be a valid signal handler id, connected to a |
| signal of <em class="parameter"><code>instance</code></em>. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>instance</code></em> :</span></p></td> |
| <td>The instance to block the signal handler of. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>handler_id</code></em> :</span></p></td> |
| <td>Handler id of the handler to be blocked. |
| </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2" title="g_signal_handler_unblock ()"> |
| <a name="g-signal-handler-unblock"></a><h3>g_signal_handler_unblock ()</h3> |
| <pre class="programlisting"><span class="returnvalue">void</span> g_signal_handler_unblock (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> instance</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gulong"><span class="type">gulong</span></a> handler_id</code></em>);</pre> |
| <p> |
| Undoes the effect of a previous <a class="link" href="gobject-Signals.html#g-signal-handler-block" title="g_signal_handler_block ()"><code class="function">g_signal_handler_block()</code></a> call. A |
| blocked handler is skipped during signal emissions and will not be |
| invoked, unblocking it (for exactly the amount of times it has been |
| blocked before) reverts its "blocked" state, so the handler will be |
| recognized by the signal system and is called upon future or |
| currently ongoing signal emissions (since the order in which |
| handlers are called during signal emissions is deterministic, |
| whether the unblocked handler in question is called as part of a |
| currently ongoing emission depends on how far that emission has |
| proceeded yet). |
| </p> |
| <p> |
| The <em class="parameter"><code>handler_id</code></em> has to be a valid id of a signal handler that is |
| connected to a signal of <em class="parameter"><code>instance</code></em> and is currently blocked. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>instance</code></em> :</span></p></td> |
| <td>The instance to unblock the signal handler of. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>handler_id</code></em> :</span></p></td> |
| <td>Handler id of the handler to be unblocked. |
| </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2" title="g_signal_handler_disconnect ()"> |
| <a name="g-signal-handler-disconnect"></a><h3>g_signal_handler_disconnect ()</h3> |
| <pre class="programlisting"><span class="returnvalue">void</span> g_signal_handler_disconnect (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> instance</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gulong"><span class="type">gulong</span></a> handler_id</code></em>);</pre> |
| <p> |
| Disconnects a handler from an instance so it will not be called during |
| any future or currently ongoing emissions of the signal it has been |
| connected to. The <em class="parameter"><code>handler_id</code></em> becomes invalid and may be reused. |
| </p> |
| <p> |
| The <em class="parameter"><code>handler_id</code></em> has to be a valid signal handler id, connected to a |
| signal of <em class="parameter"><code>instance</code></em>. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>instance</code></em> :</span></p></td> |
| <td>The instance to remove the signal handler from. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>handler_id</code></em> :</span></p></td> |
| <td>Handler id of the handler to be disconnected. |
| </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2" title="g_signal_handler_find ()"> |
| <a name="g-signal-handler-find"></a><h3>g_signal_handler_find ()</h3> |
| <pre class="programlisting"><a href="./../glib/glib/glib-Basic-Types.html#gulong"><span class="returnvalue">gulong</span></a> g_signal_handler_find (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> instance</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Signals.html#GSignalMatchType" title="enum GSignalMatchType"><span class="type">GSignalMatchType</span></a> mask</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> signal_id</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> detail</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="GClosure"><span class="type">GClosure</span></a> *closure</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> func</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>);</pre> |
| <p> |
| Finds the first signal handler that matches certain selection criteria. |
| The criteria mask is passed as an OR-ed combination of <a class="link" href="gobject-Signals.html#GSignalMatchType" title="enum GSignalMatchType"><span class="type">GSignalMatchType</span></a> |
| flags, and the criteria values are passed as arguments. |
| The match <em class="parameter"><code>mask</code></em> has to be non-0 for successful matches. |
| If no handler was found, 0 is returned. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>instance</code></em> :</span></p></td> |
| <td>The instance owning the signal handler to be found. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>mask</code></em> :</span></p></td> |
| <td>Mask indicating which of <em class="parameter"><code>signal_id</code></em>, <em class="parameter"><code>detail</code></em>, <em class="parameter"><code>closure</code></em>, <em class="parameter"><code>func</code></em> |
| and/or <em class="parameter"><code>data</code></em> the handler has to match. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>signal_id</code></em> :</span></p></td> |
| <td>Signal the handler has to be connected to. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>detail</code></em> :</span></p></td> |
| <td>Signal detail the handler has to be connected to. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td> |
| <td>The closure the handler will invoke. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>func</code></em> :</span></p></td> |
| <td>The C closure callback of the handler (useless for non-C closures). |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td> |
| <td>The closure data of the handler's closure. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> |
| <td> A valid non-0 signal handler id for a successful match. |
| </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2" title="g_signal_handlers_block_matched ()"> |
| <a name="g-signal-handlers-block-matched"></a><h3>g_signal_handlers_block_matched ()</h3> |
| <pre class="programlisting"><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> g_signal_handlers_block_matched (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> instance</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Signals.html#GSignalMatchType" title="enum GSignalMatchType"><span class="type">GSignalMatchType</span></a> mask</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> signal_id</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> detail</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="GClosure"><span class="type">GClosure</span></a> *closure</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> func</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>);</pre> |
| <p> |
| Blocks all handlers on an instance that match a certain selection criteria. |
| The criteria mask is passed as an OR-ed combination of <a class="link" href="gobject-Signals.html#GSignalMatchType" title="enum GSignalMatchType"><span class="type">GSignalMatchType</span></a> |
| flags, and the criteria values are passed as arguments. |
| Passing at least one of the <a class="link" href="gobject-Signals.html#G-SIGNAL-MATCH-CLOSURE:CAPS"><code class="literal">G_SIGNAL_MATCH_CLOSURE</code></a>, <a class="link" href="gobject-Signals.html#G-SIGNAL-MATCH-FUNC:CAPS"><code class="literal">G_SIGNAL_MATCH_FUNC</code></a> |
| or <a class="link" href="gobject-Signals.html#G-SIGNAL-MATCH-DATA:CAPS"><code class="literal">G_SIGNAL_MATCH_DATA</code></a> match flags is required for successful matches. |
| If no handlers were found, 0 is returned, the number of blocked handlers |
| otherwise. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>instance</code></em> :</span></p></td> |
| <td>The instance to block handlers from. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>mask</code></em> :</span></p></td> |
| <td>Mask indicating which of <em class="parameter"><code>signal_id</code></em>, <em class="parameter"><code>detail</code></em>, <em class="parameter"><code>closure</code></em>, <em class="parameter"><code>func</code></em> |
| and/or <em class="parameter"><code>data</code></em> the handlers have to match. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>signal_id</code></em> :</span></p></td> |
| <td>Signal the handlers have to be connected to. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>detail</code></em> :</span></p></td> |
| <td>Signal detail the handlers have to be connected to. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td> |
| <td>The closure the handlers will invoke. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>func</code></em> :</span></p></td> |
| <td>The C closure callback of the handlers (useless for non-C closures). |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td> |
| <td>The closure data of the handlers' closures. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> |
| <td> The number of handlers that matched. |
| </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2" title="g_signal_handlers_unblock_matched ()"> |
| <a name="g-signal-handlers-unblock-matched"></a><h3>g_signal_handlers_unblock_matched ()</h3> |
| <pre class="programlisting"><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> g_signal_handlers_unblock_matched (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> instance</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Signals.html#GSignalMatchType" title="enum GSignalMatchType"><span class="type">GSignalMatchType</span></a> mask</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> signal_id</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> detail</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="GClosure"><span class="type">GClosure</span></a> *closure</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> func</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>);</pre> |
| <p> |
| Unblocks all handlers on an instance that match a certain selection |
| criteria. The criteria mask is passed as an OR-ed combination of |
| <a class="link" href="gobject-Signals.html#GSignalMatchType" title="enum GSignalMatchType"><span class="type">GSignalMatchType</span></a> flags, and the criteria values are passed as arguments. |
| Passing at least one of the <a class="link" href="gobject-Signals.html#G-SIGNAL-MATCH-CLOSURE:CAPS"><code class="literal">G_SIGNAL_MATCH_CLOSURE</code></a>, <a class="link" href="gobject-Signals.html#G-SIGNAL-MATCH-FUNC:CAPS"><code class="literal">G_SIGNAL_MATCH_FUNC</code></a> |
| or <a class="link" href="gobject-Signals.html#G-SIGNAL-MATCH-DATA:CAPS"><code class="literal">G_SIGNAL_MATCH_DATA</code></a> match flags is required for successful matches. |
| If no handlers were found, 0 is returned, the number of unblocked handlers |
| otherwise. The match criteria should not apply to any handlers that are |
| not currently blocked. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>instance</code></em> :</span></p></td> |
| <td>The instance to unblock handlers from. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>mask</code></em> :</span></p></td> |
| <td>Mask indicating which of <em class="parameter"><code>signal_id</code></em>, <em class="parameter"><code>detail</code></em>, <em class="parameter"><code>closure</code></em>, <em class="parameter"><code>func</code></em> |
| and/or <em class="parameter"><code>data</code></em> the handlers have to match. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>signal_id</code></em> :</span></p></td> |
| <td>Signal the handlers have to be connected to. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>detail</code></em> :</span></p></td> |
| <td>Signal detail the handlers have to be connected to. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td> |
| <td>The closure the handlers will invoke. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>func</code></em> :</span></p></td> |
| <td>The C closure callback of the handlers (useless for non-C closures). |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td> |
| <td>The closure data of the handlers' closures. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> |
| <td> The number of handlers that matched. |
| </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2" title="g_signal_handlers_disconnect_matched ()"> |
| <a name="g-signal-handlers-disconnect-matched"></a><h3>g_signal_handlers_disconnect_matched ()</h3> |
| <pre class="programlisting"><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> g_signal_handlers_disconnect_matched |
| (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> instance</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Signals.html#GSignalMatchType" title="enum GSignalMatchType"><span class="type">GSignalMatchType</span></a> mask</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> signal_id</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> detail</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="GClosure"><span class="type">GClosure</span></a> *closure</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> func</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>);</pre> |
| <p> |
| Disconnects all handlers on an instance that match a certain |
| selection criteria. The criteria mask is passed as an OR-ed |
| combination of <a class="link" href="gobject-Signals.html#GSignalMatchType" title="enum GSignalMatchType"><span class="type">GSignalMatchType</span></a> flags, and the criteria values are |
| passed as arguments. Passing at least one of the |
| <a class="link" href="gobject-Signals.html#G-SIGNAL-MATCH-CLOSURE:CAPS"><code class="literal">G_SIGNAL_MATCH_CLOSURE</code></a>, <a class="link" href="gobject-Signals.html#G-SIGNAL-MATCH-FUNC:CAPS"><code class="literal">G_SIGNAL_MATCH_FUNC</code></a> or |
| <a class="link" href="gobject-Signals.html#G-SIGNAL-MATCH-DATA:CAPS"><code class="literal">G_SIGNAL_MATCH_DATA</code></a> match flags is required for successful |
| matches. If no handlers were found, 0 is returned, the number of |
| disconnected handlers otherwise. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>instance</code></em> :</span></p></td> |
| <td>The instance to remove handlers from. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>mask</code></em> :</span></p></td> |
| <td>Mask indicating which of <em class="parameter"><code>signal_id</code></em>, <em class="parameter"><code>detail</code></em>, <em class="parameter"><code>closure</code></em>, <em class="parameter"><code>func</code></em> |
| and/or <em class="parameter"><code>data</code></em> the handlers have to match. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>signal_id</code></em> :</span></p></td> |
| <td>Signal the handlers have to be connected to. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>detail</code></em> :</span></p></td> |
| <td>Signal detail the handlers have to be connected to. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>closure</code></em> :</span></p></td> |
| <td>The closure the handlers will invoke. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>func</code></em> :</span></p></td> |
| <td>The C closure callback of the handlers (useless for non-C closures). |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td> |
| <td>The closure data of the handlers' closures. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> |
| <td> The number of handlers that matched. |
| </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2" title="g_signal_handler_is_connected ()"> |
| <a name="g-signal-handler-is-connected"></a><h3>g_signal_handler_is_connected ()</h3> |
| <pre class="programlisting"><a href="./../glib/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> g_signal_handler_is_connected (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> instance</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gulong"><span class="type">gulong</span></a> handler_id</code></em>);</pre> |
| <p> |
| Returns whether <em class="parameter"><code>handler_id</code></em> is the id of a handler connected to <em class="parameter"><code>instance</code></em>. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>instance</code></em> :</span></p></td> |
| <td>The instance where a signal handler is sought. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>handler_id</code></em> :</span></p></td> |
| <td>the handler id. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> |
| <td> whether <em class="parameter"><code>handler_id</code></em> identifies a handler connected to <em class="parameter"><code>instance</code></em>. |
| </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2" title="g_signal_handlers_block_by_func()"> |
| <a name="g-signal-handlers-block-by-func"></a><h3>g_signal_handlers_block_by_func()</h3> |
| <pre class="programlisting">#define g_signal_handlers_block_by_func(instance, func, data)</pre> |
| <p> |
| Blocks all handlers on an instance that match <em class="parameter"><code>func</code></em> and <em class="parameter"><code>data</code></em>. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>instance</code></em> :</span></p></td> |
| <td>The instance to block handlers from. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>func</code></em> :</span></p></td> |
| <td>The C closure callback of the handlers (useless for non-C closures). |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td> |
| <td>The closure data of the handlers' closures. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> |
| <td> The number of handlers that matched. |
| </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2" title="g_signal_handlers_unblock_by_func()"> |
| <a name="g-signal-handlers-unblock-by-func"></a><h3>g_signal_handlers_unblock_by_func()</h3> |
| <pre class="programlisting">#define g_signal_handlers_unblock_by_func(instance, func, data)</pre> |
| <p> |
| Unblocks all handlers on an instance that match <em class="parameter"><code>func</code></em> and <em class="parameter"><code>data</code></em>. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>instance</code></em> :</span></p></td> |
| <td>The instance to unblock handlers from. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>func</code></em> :</span></p></td> |
| <td>The C closure callback of the handlers (useless for non-C closures). |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td> |
| <td>The closure data of the handlers' closures. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> |
| <td> The number of handlers that matched. |
| </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2" title="g_signal_handlers_disconnect_by_func()"> |
| <a name="g-signal-handlers-disconnect-by-func"></a><h3>g_signal_handlers_disconnect_by_func()</h3> |
| <pre class="programlisting">#define g_signal_handlers_disconnect_by_func(instance, func, data)</pre> |
| <p> |
| Disconnects all handlers on an instance that match <em class="parameter"><code>func</code></em> and <em class="parameter"><code>data</code></em>. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>instance</code></em> :</span></p></td> |
| <td>The instance to remove handlers from. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>func</code></em> :</span></p></td> |
| <td>The C closure callback of the handlers (useless for non-C closures). |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td> |
| <td>The closure data of the handlers' closures. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> |
| <td> The number of handlers that matched. |
| </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2" title="g_signal_has_handler_pending ()"> |
| <a name="g-signal-has-handler-pending"></a><h3>g_signal_has_handler_pending ()</h3> |
| <pre class="programlisting"><a href="./../glib/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> g_signal_has_handler_pending (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> instance</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> signal_id</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> detail</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> may_be_blocked</code></em>);</pre> |
| <p> |
| Returns whether there are any handlers connected to <em class="parameter"><code>instance</code></em> for the |
| given signal id and detail. |
| </p> |
| <p> |
| One example of when you might use this is when the arguments to the |
| signal are difficult to compute. A class implementor may opt to not |
| emit the signal if no one is attached anyway, thus saving the cost |
| of building the arguments. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>instance</code></em> :</span></p></td> |
| <td>the object whose signal handlers are sought. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>signal_id</code></em> :</span></p></td> |
| <td>the signal id. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>detail</code></em> :</span></p></td> |
| <td>the detail. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>may_be_blocked</code></em> :</span></p></td> |
| <td>whether blocked handlers should count as match. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> |
| <td> <a href="./../glib/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if a handler is connected to the signal, <a href="./../glib/glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> |
| otherwise. |
| </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2" title="g_signal_stop_emission ()"> |
| <a name="g-signal-stop-emission"></a><h3>g_signal_stop_emission ()</h3> |
| <pre class="programlisting"><span class="returnvalue">void</span> g_signal_stop_emission (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> instance</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> signal_id</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> detail</code></em>);</pre> |
| <p> |
| Stops a signal's current emission. |
| </p> |
| <p> |
| This will prevent the default method from running, if the signal was |
| <a class="link" href="gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">G_SIGNAL_RUN_LAST</code></a> and you connected normally (i.e. without the "after" |
| flag). |
| </p> |
| <p> |
| Prints a warning if used on a signal which isn't being emitted. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>instance</code></em> :</span></p></td> |
| <td>the object whose signal handlers you wish to stop. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>signal_id</code></em> :</span></p></td> |
| <td>the signal identifier, as returned by <a class="link" href="gobject-Signals.html#g-signal-lookup" title="g_signal_lookup ()"><code class="function">g_signal_lookup()</code></a>. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>detail</code></em> :</span></p></td> |
| <td>the detail which the signal was emitted with. |
| </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2" title="g_signal_stop_emission_by_name ()"> |
| <a name="g-signal-stop-emission-by-name"></a><h3>g_signal_stop_emission_by_name ()</h3> |
| <pre class="programlisting"><span class="returnvalue">void</span> g_signal_stop_emission_by_name (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> instance</code></em>, |
| <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *detailed_signal</code></em>);</pre> |
| <p> |
| Stops a signal's current emission. |
| </p> |
| <p> |
| This is just like <a class="link" href="gobject-Signals.html#g-signal-stop-emission" title="g_signal_stop_emission ()"><code class="function">g_signal_stop_emission()</code></a> except it will look up the |
| signal id for you. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>instance</code></em> :</span></p></td> |
| <td>the object whose signal handlers you wish to stop. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>detailed_signal</code></em> :</span></p></td> |
| <td>a string of the form "signal-name::detail". |
| </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2" title="g_signal_override_class_closure ()"> |
| <a name="g-signal-override-class-closure"></a><h3>g_signal_override_class_closure ()</h3> |
| <pre class="programlisting"><span class="returnvalue">void</span> g_signal_override_class_closure (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> signal_id</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> instance_type</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Closures.html#GClosure" title="GClosure"><span class="type">GClosure</span></a> *class_closure</code></em>);</pre> |
| <p> |
| Overrides the class closure (i.e. the default handler) for the given signal |
| for emissions on instances of <em class="parameter"><code>instance_type</code></em>. <em class="parameter"><code>instance_type</code></em> must be derived |
| from the type to which the signal belongs. |
| </p> |
| <p> |
| See <a class="link" href="gobject-Signals.html#g-signal-chain-from-overridden" title="g_signal_chain_from_overridden ()"><code class="function">g_signal_chain_from_overridden()</code></a> and |
| <a class="link" href="gobject-Signals.html#g-signal-chain-from-overridden-handler" title="g_signal_chain_from_overridden_handler ()"><code class="function">g_signal_chain_from_overridden_handler()</code></a> for how to chain up to the |
| parent class closure from inside the overridden one. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>signal_id</code></em> :</span></p></td> |
| <td>the signal id |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>instance_type</code></em> :</span></p></td> |
| <td>the instance type on which to override the class closure |
| for the signal. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>class_closure</code></em> :</span></p></td> |
| <td>the closure. |
| </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2" title="g_signal_chain_from_overridden ()"> |
| <a name="g-signal-chain-from-overridden"></a><h3>g_signal_chain_from_overridden ()</h3> |
| <pre class="programlisting"><span class="returnvalue">void</span> g_signal_chain_from_overridden (<em class="parameter"><code>const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *instance_and_params</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *return_value</code></em>);</pre> |
| <p> |
| Calls the original class closure of a signal. This function should only |
| be called from an overridden class closure; see |
| <a class="link" href="gobject-Signals.html#g-signal-override-class-closure" title="g_signal_override_class_closure ()"><code class="function">g_signal_override_class_closure()</code></a> and |
| <a class="link" href="gobject-Signals.html#g-signal-override-class-handler" title="g_signal_override_class_handler ()"><code class="function">g_signal_override_class_handler()</code></a>. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>instance_and_params</code></em> :</span></p></td> |
| <td>the argument list of the signal emission. The first |
| element in the array is a <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> for the instance the signal is being |
| emitted on. The rest are any arguments to be passed to the signal. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>return_value</code></em> :</span></p></td> |
| <td>Location for the return value. |
| </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2" title="g_signal_new_class_handler ()"> |
| <a name="g-signal-new-class-handler"></a><h3>g_signal_new_class_handler ()</h3> |
| <pre class="programlisting"><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> g_signal_new_class_handler (<em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *signal_name</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> itype</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Signals.html#GSignalFlags" title="enum GSignalFlags"><span class="type">GSignalFlags</span></a> signal_flags</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Closures.html#GCallback" title="GCallback ()"><span class="type">GCallback</span></a> class_handler</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Signals.html#GSignalAccumulator" title="GSignalAccumulator ()"><span class="type">GSignalAccumulator</span></a> accumulator</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> accu_data</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Signals.html#GSignalCMarshaller" title="GSignalCMarshaller"><span class="type">GSignalCMarshaller</span></a> c_marshaller</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> return_type</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_params</code></em>, |
| <em class="parameter"><code>...</code></em>);</pre> |
| <p> |
| Creates a new signal. (This is usually done in the class initializer.) |
| </p> |
| <p> |
| This is a variant of <a class="link" href="gobject-Signals.html#g-signal-new" title="g_signal_new ()"><code class="function">g_signal_new()</code></a> that takes a C callback instead |
| off a class offset for the signal's class handler. This function |
| doesn't need a function pointer exposed in the class structure of |
| an object definition, instead the function pointer is passed |
| directly and can be overriden by derived classes with |
| <a class="link" href="gobject-Signals.html#g-signal-override-class-closure" title="g_signal_override_class_closure ()"><code class="function">g_signal_override_class_closure()</code></a> or |
| <a class="link" href="gobject-Signals.html#g-signal-override-class-handler" title="g_signal_override_class_handler ()"><code class="function">g_signal_override_class_handler()</code></a>and chained to with |
| <a class="link" href="gobject-Signals.html#g-signal-chain-from-overridden" title="g_signal_chain_from_overridden ()"><code class="function">g_signal_chain_from_overridden()</code></a> or |
| <a class="link" href="gobject-Signals.html#g-signal-chain-from-overridden-handler" title="g_signal_chain_from_overridden_handler ()"><code class="function">g_signal_chain_from_overridden_handler()</code></a>. |
| </p> |
| <p> |
| See <a class="link" href="gobject-Signals.html#g-signal-new" title="g_signal_new ()"><code class="function">g_signal_new()</code></a> for information about signal names. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>signal_name</code></em> :</span></p></td> |
| <td>the name for the signal |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>itype</code></em> :</span></p></td> |
| <td>the type this signal pertains to. It will also pertain to |
| types which are derived from this type. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>signal_flags</code></em> :</span></p></td> |
| <td>a combination of <a class="link" href="gobject-Signals.html#GSignalFlags" title="enum GSignalFlags"><span class="type">GSignalFlags</span></a> specifying detail of when |
| the default handler is to be invoked. You should at least specify |
| <a class="link" href="gobject-Signals.html#G-SIGNAL-RUN-FIRST:CAPS"><code class="literal">G_SIGNAL_RUN_FIRST</code></a> or <a class="link" href="gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">G_SIGNAL_RUN_LAST</code></a>. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>class_handler</code></em> :</span></p></td> |
| <td>a <a class="link" href="gobject-Closures.html#GCallback" title="GCallback ()"><span class="type">GCallback</span></a> which acts as class implementation of |
| this signal. Used to invoke a class method generically. Pass <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to |
| not associate a class method with this signal. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>accumulator</code></em> :</span></p></td> |
| <td>the accumulator for this signal; may be <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>accu_data</code></em> :</span></p></td> |
| <td>user data for the <em class="parameter"><code>accumulator</code></em>. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>c_marshaller</code></em> :</span></p></td> |
| <td>the function to translate arrays of parameter values to |
| signal emissions into C language callback invocations. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>return_type</code></em> :</span></p></td> |
| <td>the type of return value, or <a class="link" href="gobject-Type-Information.html#G-TYPE-NONE:CAPS" title="G_TYPE_NONE"><span class="type">G_TYPE_NONE</span></a> for a signal |
| without a return value. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>n_params</code></em> :</span></p></td> |
| <td>the number of parameter types to follow. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>...</code></em> :</span></p></td> |
| <td>a list of types, one for each parameter. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> |
| <td> the signal id |
| |
| </td> |
| </tr> |
| </tbody> |
| </table></div> |
| <p class="since">Since 2.18</p> |
| </div> |
| <hr> |
| <div class="refsect2" title="g_signal_override_class_handler ()"> |
| <a name="g-signal-override-class-handler"></a><h3>g_signal_override_class_handler ()</h3> |
| <pre class="programlisting"><span class="returnvalue">void</span> g_signal_override_class_handler (<em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *signal_name</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> instance_type</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Closures.html#GCallback" title="GCallback ()"><span class="type">GCallback</span></a> class_handler</code></em>);</pre> |
| <p> |
| Overrides the class closure (i.e. the default handler) for the |
| given signal for emissions on instances of <em class="parameter"><code>instance_type</code></em> with |
| callabck <em class="parameter"><code>class_handler</code></em>. <em class="parameter"><code>instance_type</code></em> must be derived from the |
| type to which the signal belongs. |
| </p> |
| <p> |
| See <a class="link" href="gobject-Signals.html#g-signal-chain-from-overridden" title="g_signal_chain_from_overridden ()"><code class="function">g_signal_chain_from_overridden()</code></a> and |
| <a class="link" href="gobject-Signals.html#g-signal-chain-from-overridden-handler" title="g_signal_chain_from_overridden_handler ()"><code class="function">g_signal_chain_from_overridden_handler()</code></a> for how to chain up to the |
| parent class closure from inside the overridden one. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>signal_name</code></em> :</span></p></td> |
| <td>the name for the signal |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>instance_type</code></em> :</span></p></td> |
| <td>the instance type on which to override the class handler |
| for the signal. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>class_handler</code></em> :</span></p></td> |
| <td>the handler. |
| </td> |
| </tr> |
| </tbody> |
| </table></div> |
| <p class="since">Since 2.18</p> |
| </div> |
| <hr> |
| <div class="refsect2" title="g_signal_chain_from_overridden_handler ()"> |
| <a name="g-signal-chain-from-overridden-handler"></a><h3>g_signal_chain_from_overridden_handler ()</h3> |
| <pre class="programlisting"><span class="returnvalue">void</span> g_signal_chain_from_overridden_handler |
| (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> instance</code></em>, |
| <em class="parameter"><code>...</code></em>);</pre> |
| <p> |
| Calls the original class closure of a signal. This function should |
| only be called from an overridden class closure; see |
| <a class="link" href="gobject-Signals.html#g-signal-override-class-closure" title="g_signal_override_class_closure ()"><code class="function">g_signal_override_class_closure()</code></a> and |
| <a class="link" href="gobject-Signals.html#g-signal-override-class-handler" title="g_signal_override_class_handler ()"><code class="function">g_signal_override_class_handler()</code></a>. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>instance</code></em> :</span></p></td> |
| <td>the instance the signal is being emitted on. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>...</code></em> :</span></p></td> |
| <td>parameters to be passed to the parent class closure, followed by a |
| location for the return value. If the return type of the signal |
| is <a class="link" href="gobject-Type-Information.html#G-TYPE-NONE:CAPS" title="G_TYPE_NONE"><span class="type">G_TYPE_NONE</span></a>, the return value location can be omitted. |
| </td> |
| </tr> |
| </tbody> |
| </table></div> |
| <p class="since">Since 2.18</p> |
| </div> |
| <hr> |
| <div class="refsect2" title="g_signal_add_emission_hook ()"> |
| <a name="g-signal-add-emission-hook"></a><h3>g_signal_add_emission_hook ()</h3> |
| <pre class="programlisting"><a href="./../glib/glib/glib-Basic-Types.html#gulong"><span class="returnvalue">gulong</span></a> g_signal_add_emission_hook (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> signal_id</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> detail</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Signals.html#GSignalEmissionHook" title="GSignalEmissionHook ()"><span class="type">GSignalEmissionHook</span></a> hook_func</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> hook_data</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> data_destroy</code></em>);</pre> |
| <p> |
| Adds an emission hook for a signal, which will get called for any emission |
| of that signal, independent of the instance. This is possible only |
| for signals which don't have <a class="link" href="gobject-Signals.html#G-SIGNAL-NO-HOOKS:CAPS"><span class="type">G_SIGNAL_NO_HOOKS</span></a> flag set. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>signal_id</code></em> :</span></p></td> |
| <td>the signal identifier, as returned by <a class="link" href="gobject-Signals.html#g-signal-lookup" title="g_signal_lookup ()"><code class="function">g_signal_lookup()</code></a>. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>detail</code></em> :</span></p></td> |
| <td>the detail on which to call the hook. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>hook_func</code></em> :</span></p></td> |
| <td>a <a class="link" href="gobject-Signals.html#GSignalEmissionHook" title="GSignalEmissionHook ()"><span class="type">GSignalEmissionHook</span></a> function. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>hook_data</code></em> :</span></p></td> |
| <td>user data for <em class="parameter"><code>hook_func</code></em>. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>data_destroy</code></em> :</span></p></td> |
| <td>a <a href="./../glib/glib/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> for <em class="parameter"><code>hook_data</code></em>. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> |
| <td> the hook id, for later use with <a class="link" href="gobject-Signals.html#g-signal-remove-emission-hook" title="g_signal_remove_emission_hook ()"><code class="function">g_signal_remove_emission_hook()</code></a>. |
| </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2" title="g_signal_remove_emission_hook ()"> |
| <a name="g-signal-remove-emission-hook"></a><h3>g_signal_remove_emission_hook ()</h3> |
| <pre class="programlisting"><span class="returnvalue">void</span> g_signal_remove_emission_hook (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> signal_id</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gulong"><span class="type">gulong</span></a> hook_id</code></em>);</pre> |
| <p> |
| Deletes an emission hook. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>signal_id</code></em> :</span></p></td> |
| <td>the id of the signal |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>hook_id</code></em> :</span></p></td> |
| <td>the id of the emission hook, as returned by |
| <a class="link" href="gobject-Signals.html#g-signal-add-emission-hook" title="g_signal_add_emission_hook ()"><code class="function">g_signal_add_emission_hook()</code></a> |
| </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2" title="g_signal_parse_name ()"> |
| <a name="g-signal-parse-name"></a><h3>g_signal_parse_name ()</h3> |
| <pre class="programlisting"><a href="./../glib/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> g_signal_parse_name (<em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *detailed_signal</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> itype</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *signal_id_p</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> *detail_p</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> force_detail_quark</code></em>);</pre> |
| <p> |
| Internal function to parse a signal name into its <em class="parameter"><code>signal_id</code></em> |
| and <em class="parameter"><code>detail</code></em> quark. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>detailed_signal</code></em> :</span></p></td> |
| <td>a string of the form "signal-name::detail". |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>itype</code></em> :</span></p></td> |
| <td>The interface/instance type that introduced "signal-name". |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>signal_id_p</code></em> :</span></p></td> |
| <td>Location to store the signal id. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>detail_p</code></em> :</span></p></td> |
| <td>Location to store the detail quark. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>force_detail_quark</code></em> :</span></p></td> |
| <td> |
| <a href="./../glib/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> forces creation of a <a href="./../glib/glib/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> for the detail. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> |
| <td> Whether the signal name could successfully be parsed and <em class="parameter"><code>signal_id_p</code></em> and <em class="parameter"><code>detail_p</code></em> contain valid return values. |
| </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2" title="g_signal_get_invocation_hint ()"> |
| <a name="g-signal-get-invocation-hint"></a><h3>g_signal_get_invocation_hint ()</h3> |
| <pre class="programlisting"><a class="link" href="gobject-Signals.html#GSignalInvocationHint" title="GSignalInvocationHint"><span class="returnvalue">GSignalInvocationHint</span></a>* g_signal_get_invocation_hint (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> instance</code></em>);</pre> |
| <p> |
| Returns the invocation hint of the innermost signal emission of instance. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>instance</code></em> :</span></p></td> |
| <td>the instance to query |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> |
| <td> the invocation hint of the innermost signal emission. |
| </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2" title="g_signal_type_cclosure_new ()"> |
| <a name="g-signal-type-cclosure-new"></a><h3>g_signal_type_cclosure_new ()</h3> |
| <pre class="programlisting"><a class="link" href="gobject-Closures.html#GClosure" title="GClosure"><span class="returnvalue">GClosure</span></a>* g_signal_type_cclosure_new (<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> itype</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> struct_offset</code></em>);</pre> |
| <p> |
| Creates a new closure which invokes the function found at the offset |
| <em class="parameter"><code>struct_offset</code></em> in the class structure of the interface or classed type |
| identified by <em class="parameter"><code>itype</code></em>. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>itype</code></em> :</span></p></td> |
| <td>the <a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> identifier of an interface or classed type |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>struct_offset</code></em> :</span></p></td> |
| <td>the offset of the member function of <em class="parameter"><code>itype</code></em>'s class |
| structure which is to be invoked by the new closure |
| </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_signal_accumulator_true_handled ()"> |
| <a name="g-signal-accumulator-true-handled"></a><h3>g_signal_accumulator_true_handled ()</h3> |
| <pre class="programlisting"><a href="./../glib/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> g_signal_accumulator_true_handled (<em class="parameter"><code><a class="link" href="gobject-Signals.html#GSignalInvocationHint" title="GSignalInvocationHint"><span class="type">GSignalInvocationHint</span></a> *ihint</code></em>, |
| <em class="parameter"><code><a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *return_accu</code></em>, |
| <em class="parameter"><code>const <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> *handler_return</code></em>, |
| <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> dummy</code></em>);</pre> |
| <p> |
| A predefined <a class="link" href="gobject-Signals.html#GSignalAccumulator" title="GSignalAccumulator ()"><span class="type">GSignalAccumulator</span></a> for signals that return a |
| boolean values. The behavior that this accumulator gives is |
| that a return of <a href="./../glib/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> stops the signal emission: no further |
| callbacks will be invoked, while a return of <a href="./../glib/glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> allows |
| the emission to coninue. The idea here is that a <a href="./../glib/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> return |
| indicates that the callback <span class="emphasis"><em>handled</em></span> the signal, |
| and no further handling is needed. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>ihint</code></em> :</span></p></td> |
| <td>standard <a class="link" href="gobject-Signals.html#GSignalAccumulator" title="GSignalAccumulator ()"><span class="type">GSignalAccumulator</span></a> parameter |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>return_accu</code></em> :</span></p></td> |
| <td>standard <a class="link" href="gobject-Signals.html#GSignalAccumulator" title="GSignalAccumulator ()"><span class="type">GSignalAccumulator</span></a> parameter |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>handler_return</code></em> :</span></p></td> |
| <td>standard <a class="link" href="gobject-Signals.html#GSignalAccumulator" title="GSignalAccumulator ()"><span class="type">GSignalAccumulator</span></a> parameter |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>dummy</code></em> :</span></p></td> |
| <td>standard <a class="link" href="gobject-Signals.html#GSignalAccumulator" title="GSignalAccumulator ()"><span class="type">GSignalAccumulator</span></a> parameter |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> |
| <td> standard <a class="link" href="gobject-Signals.html#GSignalAccumulator" title="GSignalAccumulator ()"><span class="type">GSignalAccumulator</span></a> result |
| </td> |
| </tr> |
| </tbody> |
| </table></div> |
| <p class="since">Since 2.4</p> |
| </div> |
| </div> |
| <div class="footnotes"> |
| <br><hr width="100" align="left"> |
| <div class="footnote"><p><sup>[<a name="ftn.id658845" href="#id658845" class="para">10</a>] </sup>Although signals can deal with any kind of instantiatable |
| type, i'm referring to those types as "object types" in the following, |
| simply because that is the context most users will encounter signals in. |
| </p></div> |
| </div> |
| </div> |
| <div class="footer"> |
| <hr> |
| Generated by GTK-Doc V1.14</div> |
| </body> |
| </html> |