glib-Hook-Functions.html   [plain text]


<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Hook Functions</title><meta name="generator" content="DocBook XSL Stylesheets V1.65.1"><link rel="home" href="index.html" title="GLib Reference Manual"><link rel="up" href="glib-utilities.html" title="GLib Utilities"><link rel="previous" href="glib-Random-Numbers.html" title="Random Numbers"><link rel="next" href="glib-Miscellaneous-Utility-Functions.html" title="Miscellaneous Utility Functions"><link rel="chapter" href="glib.html" title="GLib Overview"><link rel="refentry" href="glib-building.html" title="Compiling the GLib package"><link rel="refentry" href="glib-cross-compiling.html" title="Cross-compiling the GLib package"><link rel="refentry" href="glib-compiling.html" title="Compiling GLib Applications"><link rel="refentry" href="glib-running.html" title="Running GLib Applications"><link rel="refentry" href="glib-changes.html" title="Changes to GLib"><link rel="refentry" href="glib-resources.html" title="Mailing lists and bug reports"><link rel="chapter" href="glib-fundamentals.html" title="GLib Fundamentals"><link rel="refentry" href="glib-Basic-Types.html" title="Basic Types"><link rel="refentry" href="glib-Limits-of-Basic-Types.html" title="Limits of Basic Types"><link rel="refentry" href="glib-Standard-Macros.html" title="Standard Macros"><link rel="refentry" href="glib-Type-Conversion-Macros.html" title="Type Conversion Macros"><link rel="refentry" href="glib-Byte-Order-Macros.html" title="Byte Order Macros"><link rel="refentry" href="glib-Numerical-Definitions.html" title="Numerical Definitions"><link rel="refentry" href="glib-Miscellaneous-Macros.html" title="Miscellaneous Macros"><link rel="refentry" href="glib-Atomic-Operations.html" title="Atomic Operations"><link rel="chapter" href="glib-core.html" title="GLib Core Application Support"><link rel="refentry" href="glib-The-Main-Event-Loop.html" title="The Main Event Loop"><link rel="refentry" href="glib-Threads.html" title="
Threads"><link rel="refentry" href="glib-Thread-Pools.html" title="Thread Pools"><link rel="refentry" href="glib-Asynchronous-Queues.html" title="Asynchronous Queues"><link rel="refentry" href="glib-Dynamic-Loading-of-Modules.html" title="Dynamic Loading of Modules"><link rel="refentry" href="glib-Memory-Allocation.html" title="Memory Allocation"><link rel="refentry" href="glib-IO-Channels.html" title="IO Channels"><link rel="refentry" href="glib-Error-Reporting.html" title="Error Reporting"><link rel="refentry" href="glib-Warnings-and-Assertions.html" title="Message Output and Debugging Functions"><link rel="refentry" href="glib-Message-Logging.html" title="Message Logging"><link rel="chapter" href="glib-utilities.html" title="GLib Utilities"><link rel="refentry" href="glib-String-Utility-Functions.html" title="String Utility Functions"><link rel="refentry" href="glib-Character-Set-Conversion.html" title="Character Set Conversion"><link rel="refentry" href="glib-Unicode-Manipulation.html" title="Unicode Manipulation"><link rel="refentry" href="glib-I18N.html" title="Internationalization"><link rel="refentry" href="glib-Date-and-Time-Functions.html" title="Date and Time Functions"><link rel="refentry" href="glib-Random-Numbers.html" title="Random Numbers"><link rel="refentry" href="glib-Hook-Functions.html" title="Hook Functions"><link rel="refentry" href="glib-Miscellaneous-Utility-Functions.html" title="Miscellaneous Utility Functions"><link rel="refentry" href="glib-Lexical-Scanner.html" title="Lexical Scanner"><link rel="refentry" href="glib-Automatic-String-Completion.html" title="Automatic String Completion"><link rel="refentry" href="glib-Timers.html" title="Timers"><link rel="refentry" href="glib-Spawning-Processes.html" title="Spawning Processes"><link rel="refentry" href="glib-File-Utilities.html" title="File Utilities"><link rel="refentry" href="glib-Shell-related-Utilities.html" title="Shell-related Utilities"><link rel="refentry" href="glib-Glob-style-pattern-matching.html" title="Glob-style pattern matching"><link rel="refentry" href="glib-Simple-XML-Subset-Parser.html" title="Simple XML Subset Parser"><link rel="refentry" href="glib-Windows-Compatability-Functions.html" title="Windows Compatibility Functions"><link rel="chapter" href="glib-data-types.html" title="GLib Data Types"><link rel="refentry" href="glib-Memory-Chunks.html" title="Memory Chunks"><link rel="refentry" href="glib-Doubly-Linked-Lists.html" title="Doubly-Linked Lists"><link rel="refentry" href="glib-Singly-Linked-Lists.html" title="Singly-Linked Lists"><link rel="refentry" href="glib-Double-ended-Queues.html" title="Double-ended Queues"><link rel="refentry" href="glib-Trash-Stacks.html" title="Trash Stacks"><link rel="refentry" href="glib-Hash-Tables.html" title="Hash Tables"><link rel="refentry" href="glib-Strings.html" title="Strings"><link rel="refentry" href="glib-String-Chunks.html" title="String Chunks"><link rel="refentry" href="glib-Arrays.html" title="Arrays"><link rel="refentry" href="glib-Pointer-Arrays.html" title="Pointer Arrays"><link rel="refentry" href="glib-Byte-Arrays.html" title="Byte Arrays"><link rel="refentry" href="glib-Balanced-Binary-Trees.html" title="Balanced Binary Trees"><link rel="refentry" href="glib-N-ary-Trees.html" title="N-ary Trees"><link rel="refentry" href="glib-Quarks.html" title="Quarks"><link rel="refentry" href="glib-Keyed-Data-Lists.html" title="Keyed Data Lists"><link rel="refentry" href="glib-Datasets.html" title="Datasets"><link rel="refentry" href="glib-Relations-and-Tuples.html" title="Relations and Tuples"><link rel="refentry" href="glib-Caches.html" title="Caches"><link rel="refentry" href="glib-Memory-Allocators.html" title="Memory Allocators"><link rel="chapter" href="tools.html" title="GLib Tools"><link rel="refentry" href="glib-gettextize.html" title="glib-gettextize"><link rel="index" href="ix01.html" title="Index"><link rel="section" href="glib-Hook-Functions.html#id3169179" title="Description"><link rel="section" href="glib-Hook-Functions.html#id3169208" title="Details"><meta name="generator" content="GTK-Doc V1.2 (XML mode)"><link rel="stylesheet" href="style.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="glib-Random-Numbers.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td><td><a accesskey="u" href="glib-utilities.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">GLib Reference Manual</th><td><a accesskey="n" href="glib-Miscellaneous-Utility-Functions.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td></tr></table><div class="refentry" lang="en"><a name="glib-Hook-Functions"></a><div class="titlepage"><div></div><div></div></div><div class="refnamediv"><h2><span class="refentrytitle">Hook Functions</span></h2><p>Hook Functions &#8212; support for manipulating lists of hook functions.</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">

#include &lt;glib.h&gt;


struct      <a href="glib-Hook-Functions.html#GHookList">GHookList</a>;
void        (<a href="glib-Hook-Functions.html#GHookFinalizeFunc">*GHookFinalizeFunc</a>)            (<a href="glib-Hook-Functions.html#GHookList">GHookList</a> *hook_list,
                                             <a href="glib-Hook-Functions.html#GHook">GHook</a> *hook);
struct      <a href="glib-Hook-Functions.html#GHook">GHook</a>;
void        (<a href="glib-Hook-Functions.html#GHookFunc">*GHookFunc</a>)                    (<a href="glib-Basic-Types.html#gpointer">gpointer</a> data);
<a href="glib-Basic-Types.html#gboolean">gboolean</a>    (<a href="glib-Hook-Functions.html#GHookCheckFunc">*GHookCheckFunc</a>)               (<a href="glib-Basic-Types.html#gpointer">gpointer</a> data);

void        <a href="glib-Hook-Functions.html#g-hook-list-init">g_hook_list_init</a>                (<a href="glib-Hook-Functions.html#GHookList">GHookList</a> *hook_list,
                                             <a href="glib-Basic-Types.html#guint">guint</a> hook_size);
void        <a href="glib-Hook-Functions.html#g-hook-list-invoke">g_hook_list_invoke</a>              (<a href="glib-Hook-Functions.html#GHookList">GHookList</a> *hook_list,
                                             <a href="glib-Basic-Types.html#gboolean">gboolean</a> may_recurse);
void        <a href="glib-Hook-Functions.html#g-hook-list-invoke-check">g_hook_list_invoke_check</a>        (<a href="glib-Hook-Functions.html#GHookList">GHookList</a> *hook_list,
                                             <a href="glib-Basic-Types.html#gboolean">gboolean</a> may_recurse);
void        <a href="glib-Hook-Functions.html#g-hook-list-marshal">g_hook_list_marshal</a>             (<a href="glib-Hook-Functions.html#GHookList">GHookList</a> *hook_list,
                                             <a href="glib-Basic-Types.html#gboolean">gboolean</a> may_recurse,
                                             <a href="glib-Hook-Functions.html#GHookMarshaller">GHookMarshaller</a> marshaller,
                                             <a href="glib-Basic-Types.html#gpointer">gpointer</a> marshal_data);
void        (<a href="glib-Hook-Functions.html#GHookMarshaller">*GHookMarshaller</a>)              (<a href="glib-Hook-Functions.html#GHook">GHook</a> *hook,
                                             <a href="glib-Basic-Types.html#gpointer">gpointer</a> marshal_data);
void        <a href="glib-Hook-Functions.html#g-hook-list-marshal-check">g_hook_list_marshal_check</a>       (<a href="glib-Hook-Functions.html#GHookList">GHookList</a> *hook_list,
                                             <a href="glib-Basic-Types.html#gboolean">gboolean</a> may_recurse,
                                             <a href="glib-Hook-Functions.html#GHookCheckMarshaller">GHookCheckMarshaller</a> marshaller,
                                             <a href="glib-Basic-Types.html#gpointer">gpointer</a> marshal_data);
<a href="glib-Basic-Types.html#gboolean">gboolean</a>    (<a href="glib-Hook-Functions.html#GHookCheckMarshaller">*GHookCheckMarshaller</a>)         (<a href="glib-Hook-Functions.html#GHook">GHook</a> *hook,
                                             <a href="glib-Basic-Types.html#gpointer">gpointer</a> marshal_data);
void        <a href="glib-Hook-Functions.html#g-hook-list-clear">g_hook_list_clear</a>               (<a href="glib-Hook-Functions.html#GHookList">GHookList</a> *hook_list);

<a href="glib-Hook-Functions.html#GHook">GHook</a>*      <a href="glib-Hook-Functions.html#g-hook-alloc">g_hook_alloc</a>                    (<a href="glib-Hook-Functions.html#GHookList">GHookList</a> *hook_list);
#define     <a href="glib-Hook-Functions.html#g-hook-append">g_hook_append</a>                   ( hook_list, hook )
void        <a href="glib-Hook-Functions.html#g-hook-prepend">g_hook_prepend</a>                  (<a href="glib-Hook-Functions.html#GHookList">GHookList</a> *hook_list,
                                             <a href="glib-Hook-Functions.html#GHook">GHook</a> *hook);
void        <a href="glib-Hook-Functions.html#g-hook-insert-before">g_hook_insert_before</a>            (<a href="glib-Hook-Functions.html#GHookList">GHookList</a> *hook_list,
                                             <a href="glib-Hook-Functions.html#GHook">GHook</a> *sibling,
                                             <a href="glib-Hook-Functions.html#GHook">GHook</a> *hook);
void        <a href="glib-Hook-Functions.html#g-hook-insert-sorted">g_hook_insert_sorted</a>            (<a href="glib-Hook-Functions.html#GHookList">GHookList</a> *hook_list,
                                             <a href="glib-Hook-Functions.html#GHook">GHook</a> *hook,
                                             <a href="glib-Hook-Functions.html#GHookCompareFunc">GHookCompareFunc</a> func);
<a href="glib-Basic-Types.html#gint">gint</a>        (<a href="glib-Hook-Functions.html#GHookCompareFunc">*GHookCompareFunc</a>)             (<a href="glib-Hook-Functions.html#GHook">GHook</a> *new_hook,
                                             <a href="glib-Hook-Functions.html#GHook">GHook</a> *sibling);
<a href="glib-Basic-Types.html#gint">gint</a>        <a href="glib-Hook-Functions.html#g-hook-compare-ids">g_hook_compare_ids</a>              (<a href="glib-Hook-Functions.html#GHook">GHook</a> *new_hook,
                                             <a href="glib-Hook-Functions.html#GHook">GHook</a> *sibling);

<a href="glib-Hook-Functions.html#GHook">GHook</a>*      <a href="glib-Hook-Functions.html#g-hook-get">g_hook_get</a>                      (<a href="glib-Hook-Functions.html#GHookList">GHookList</a> *hook_list,
                                             <a href="glib-Basic-Types.html#gulong">gulong</a> hook_id);
<a href="glib-Hook-Functions.html#GHook">GHook</a>*      <a href="glib-Hook-Functions.html#g-hook-find">g_hook_find</a>                     (<a href="glib-Hook-Functions.html#GHookList">GHookList</a> *hook_list,
                                             <a href="glib-Basic-Types.html#gboolean">gboolean</a> need_valids,
                                             <a href="glib-Hook-Functions.html#GHookFindFunc">GHookFindFunc</a> func,
                                             <a href="glib-Basic-Types.html#gpointer">gpointer</a> data);
<a href="glib-Basic-Types.html#gboolean">gboolean</a>    (<a href="glib-Hook-Functions.html#GHookFindFunc">*GHookFindFunc</a>)                (<a href="glib-Hook-Functions.html#GHook">GHook</a> *hook,
                                             <a href="glib-Basic-Types.html#gpointer">gpointer</a> data);
<a href="glib-Hook-Functions.html#GHook">GHook</a>*      <a href="glib-Hook-Functions.html#g-hook-find-data">g_hook_find_data</a>                (<a href="glib-Hook-Functions.html#GHookList">GHookList</a> *hook_list,
                                             <a href="glib-Basic-Types.html#gboolean">gboolean</a> need_valids,
                                             <a href="glib-Basic-Types.html#gpointer">gpointer</a> data);
<a href="glib-Hook-Functions.html#GHook">GHook</a>*      <a href="glib-Hook-Functions.html#g-hook-find-func">g_hook_find_func</a>                (<a href="glib-Hook-Functions.html#GHookList">GHookList</a> *hook_list,
                                             <a href="glib-Basic-Types.html#gboolean">gboolean</a> need_valids,
                                             <a href="glib-Basic-Types.html#gpointer">gpointer</a> func);
<a href="glib-Hook-Functions.html#GHook">GHook</a>*      <a href="glib-Hook-Functions.html#g-hook-find-func-data">g_hook_find_func_data</a>           (<a href="glib-Hook-Functions.html#GHookList">GHookList</a> *hook_list,
                                             <a href="glib-Basic-Types.html#gboolean">gboolean</a> need_valids,
                                             <a href="glib-Basic-Types.html#gpointer">gpointer</a> func,
                                             <a href="glib-Basic-Types.html#gpointer">gpointer</a> data);

<a href="glib-Hook-Functions.html#GHook">GHook</a>*      <a href="glib-Hook-Functions.html#g-hook-first-valid">g_hook_first_valid</a>              (<a href="glib-Hook-Functions.html#GHookList">GHookList</a> *hook_list,
                                             <a href="glib-Basic-Types.html#gboolean">gboolean</a> may_be_in_call);
<a href="glib-Hook-Functions.html#GHook">GHook</a>*      <a href="glib-Hook-Functions.html#g-hook-next-valid">g_hook_next_valid</a>               (<a href="glib-Hook-Functions.html#GHookList">GHookList</a> *hook_list,
                                             <a href="glib-Hook-Functions.html#GHook">GHook</a> *hook,
                                             <a href="glib-Basic-Types.html#gboolean">gboolean</a> may_be_in_call);
enum        <a href="glib-Hook-Functions.html#GHookFlagMask">GHookFlagMask</a>;
#define     <a href="glib-Hook-Functions.html#G-HOOK-FLAGS-CAPS">G_HOOK_FLAGS</a>                    (hook)
#define     <a href="glib-Hook-Functions.html#G-HOOK-FLAG-USER-SHIFT-CAPS">G_HOOK_FLAG_USER_SHIFT</a>

#define     <a href="glib-Hook-Functions.html#G-HOOK-CAPS">G_HOOK</a>                          (hook)
#define     <a href="glib-Hook-Functions.html#G-HOOK-IS-VALID-CAPS">G_HOOK_IS_VALID</a>                 (hook)
#define     <a href="glib-Hook-Functions.html#G-HOOK-ACTIVE-CAPS">G_HOOK_ACTIVE</a>                   (hook)
#define     <a href="glib-Hook-Functions.html#G-HOOK-IN-CALL-CAPS">G_HOOK_IN_CALL</a>                  (hook)
#define     <a href="glib-Hook-Functions.html#G-HOOK-IS-UNLINKED-CAPS">G_HOOK_IS_UNLINKED</a>              (hook)

void        <a href="glib-Hook-Functions.html#g-hook-ref">g_hook_ref</a>                      (<a href="glib-Hook-Functions.html#GHookList">GHookList</a> *hook_list,
                                             <a href="glib-Hook-Functions.html#GHook">GHook</a> *hook);
void        <a href="glib-Hook-Functions.html#g-hook-unref">g_hook_unref</a>                    (<a href="glib-Hook-Functions.html#GHookList">GHookList</a> *hook_list,
                                             <a href="glib-Hook-Functions.html#GHook">GHook</a> *hook);
void        <a href="glib-Hook-Functions.html#g-hook-free">g_hook_free</a>                     (<a href="glib-Hook-Functions.html#GHookList">GHookList</a> *hook_list,
                                             <a href="glib-Hook-Functions.html#GHook">GHook</a> *hook);
<a href="glib-Basic-Types.html#gboolean">gboolean</a>    <a href="glib-Hook-Functions.html#g-hook-destroy">g_hook_destroy</a>                  (<a href="glib-Hook-Functions.html#GHookList">GHookList</a> *hook_list,
                                             <a href="glib-Basic-Types.html#gulong">gulong</a> hook_id);
void        <a href="glib-Hook-Functions.html#g-hook-destroy-link">g_hook_destroy_link</a>             (<a href="glib-Hook-Functions.html#GHookList">GHookList</a> *hook_list,
                                             <a href="glib-Hook-Functions.html#GHook">GHook</a> *hook);
</pre></div><div class="refsect1" lang="en"><a name="id3169179"></a><h2>Description</h2><p>
The <a href="glib-Hook-Functions.html#GHookList"><span class="type">GHookList</span></a>, <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a> and their related functions provide support for
lists of hook functions. Functions can be added and removed from the lists,
and the list of hook functions can be invoked.

</p></div><div class="refsect1" lang="en"><a name="id3169208"></a><h2>Details</h2><div class="refsect2" lang="en"><a name="id3169213"></a><h3><a name="GHookList"></a>struct GHookList</h3><a class="indexterm" name="id3169224"></a><pre class="programlisting">struct GHookList {

  gulong	    seq_id;
  guint		    hook_size : 16;
  guint		    is_setup : 1;
  GHook		   *hooks;
  GMemChunk	   *hook_memchunk;
  GHookFinalizeFunc finalize_hook;
  gpointer	    dummy[2];
};
</pre><p>
The <span class="structname">GHookList</span> struct represents a 
list of hook functions.
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><a href="glib-Basic-Types.html#gulong">gulong</a> <i class="structfield"><tt>seq_id</tt></i></span></td><td>the next free <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a> id.
</td></tr><tr><td><span class="term"><a href="glib-Basic-Types.html#guint">guint</a> <i class="structfield"><tt>hook_size</tt></i> : 16</span></td><td>the size of the <a href="glib-Hook-Functions.html#GHookList"><span class="type">GHookList</span></a> elements, in bytes.
</td></tr><tr><td><span class="term"><a href="glib-Basic-Types.html#guint">guint</a> <i class="structfield"><tt>is_setup</tt></i> : 1</span></td><td>1 if the <a href="glib-Hook-Functions.html#GHookList"><span class="type">GHookList</span></a> has been initialized.
</td></tr><tr><td><span class="term"><a href="glib-Hook-Functions.html#GHook">GHook</a> *<i class="structfield"><tt>hooks</tt></i></span></td><td>the first <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a> element in the list.
</td></tr><tr><td><span class="term"><a href="glib-Memory-Chunks.html#GMemChunk">GMemChunk</a> *<i class="structfield"><tt>hook_memchunk</tt></i></span></td><td>the <a href="glib-Memory-Chunks.html#GMemChunk"><span class="type">GMemChunk</span></a> used for allocating the <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a> elements.
</td></tr><tr><td><span class="term"><a href="glib-Hook-Functions.html#GHookFinalizeFunc">GHookFinalizeFunc</a> <i class="structfield"><tt>finalize_hook</tt></i></span></td><td>the function to call to finalize a <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a> element. The
default behaviour is to call the hooks <tt class="function">destroy</tt> function.
</td></tr><tr><td><span class="term"><a href="glib-Basic-Types.html#gpointer">gpointer</a> <i class="structfield"><tt>dummy</tt></i>[2]</span></td><td>

</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id3169454"></a><h3><a name="GHookFinalizeFunc"></a>GHookFinalizeFunc ()</h3><a class="indexterm" name="id3169465"></a><pre class="programlisting">void        (*GHookFinalizeFunc)            (<a href="glib-Hook-Functions.html#GHookList">GHookList</a> *hook_list,
                                             <a href="glib-Hook-Functions.html#GHook">GHook</a> *hook);</pre><p>
Defines the type of function to be called when a hook in a 
list of hooks gets finalized.
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>hook_list</tt></i> :</span></td><td>a <a href="glib-Hook-Functions.html#GHookList"><span class="type">GHookList</span></a>.
</td></tr><tr><td><span class="term"><i class="parameter"><tt>hook</tt></i> :</span></td><td>the hook in <i class="parameter"><tt>hook_list</tt></i> that gets finalized.


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id3169548"></a><h3><a name="GHook"></a>struct GHook</h3><a class="indexterm" name="id3169559"></a><pre class="programlisting">struct GHook {

  gpointer	 data;
  GHook		*next;
  GHook		*prev;
  guint		 ref_count;
  gulong	 hook_id;
  guint		 flags;
  gpointer	 func;
  GDestroyNotify destroy;
};
</pre><p>
The <span class="structname">GHook</span> struct represents a single hook 
function in a <a href="glib-Hook-Functions.html#GHookList"><span class="type">GHookList</span></a>.
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><a href="glib-Basic-Types.html#gpointer">gpointer</a> <i class="structfield"><tt>data</tt></i></span></td><td>data which is passed to func when this hook is invoked.
</td></tr><tr><td><span class="term"><a href="glib-Hook-Functions.html#GHook">GHook</a> *<i class="structfield"><tt>next</tt></i></span></td><td>pointer to the next hook in the list.
</td></tr><tr><td><span class="term"><a href="glib-Hook-Functions.html#GHook">GHook</a> *<i class="structfield"><tt>prev</tt></i></span></td><td>pointer to the previous hook in the list.
</td></tr><tr><td><span class="term"><a href="glib-Basic-Types.html#guint">guint</a> <i class="structfield"><tt>ref_count</tt></i></span></td><td>the reference count of this hook.
</td></tr><tr><td><span class="term"><a href="glib-Basic-Types.html#gulong">gulong</a> <i class="structfield"><tt>hook_id</tt></i></span></td><td>the id of this hook, which is unique within its list.
</td></tr><tr><td><span class="term"><a href="glib-Basic-Types.html#guint">guint</a> <i class="structfield"><tt>flags</tt></i></span></td><td>flags which are set for this hook. See <a href="glib-Hook-Functions.html#GHookFlagMask"><span class="type">GHookFlagMask</span></a> for
predefined flags.
</td></tr><tr><td><span class="term"><a href="glib-Basic-Types.html#gpointer">gpointer</a> <i class="structfield"><tt>func</tt></i></span></td><td>the function to call when this hook is invoked. The possible 
signatures for this function are <a href="glib-Hook-Functions.html#GHookFunc"><span class="type">GHookFunc</span></a> and <a href="glib-Hook-Functions.html#GHookCheckFunc"><span class="type">GHookCheckFunc</span></a>.
</td></tr><tr><td><span class="term"><a href="glib-Datasets.html#GDestroyNotify">GDestroyNotify</a> <i class="structfield"><tt>destroy</tt></i></span></td><td>the default <tt class="function">finalize_hook</tt> function of a 
<a href="glib-Hook-Functions.html#GHookList"><span class="type">GHookList</span></a> calls this member of the hook that is being finalized.

</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id3169790"></a><h3><a name="GHookFunc"></a>GHookFunc ()</h3><a class="indexterm" name="id3169801"></a><pre class="programlisting">void        (*GHookFunc)                    (<a href="glib-Basic-Types.html#gpointer">gpointer</a> data);</pre><p>
Defines the type of a hook function that can be invoked
by <a href="glib-Hook-Functions.html#g-hook-list-invoke"><tt class="function">g_hook_list_invoke()</tt></a>.
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>data</tt></i> :</span></td><td>the data field of the <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a> is passed to the hook function here.


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id3169867"></a><h3><a name="GHookCheckFunc"></a>GHookCheckFunc ()</h3><a class="indexterm" name="id3169878"></a><pre class="programlisting"><a href="glib-Basic-Types.html#gboolean">gboolean</a>    (*GHookCheckFunc)               (<a href="glib-Basic-Types.html#gpointer">gpointer</a> data);</pre><p>
Defines the type of a hook function that can be invoked
by <a href="glib-Hook-Functions.html#g-hook-list-invoke-check"><tt class="function">g_hook_list_invoke_check()</tt></a>.
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>data</tt></i> :</span></td><td>the data field of the <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a> is passed to the hook function here.
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td><tt class="literal">FALSE</tt> if the <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a> should be destroyed.


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id3169968"></a><h3><a name="g-hook-list-init"></a>g_hook_list_init ()</h3><a class="indexterm" name="id3169979"></a><pre class="programlisting">void        g_hook_list_init                (<a href="glib-Hook-Functions.html#GHookList">GHookList</a> *hook_list,
                                             <a href="glib-Basic-Types.html#guint">guint</a> hook_size);</pre><p>
Initializes a <a href="glib-Hook-Functions.html#GHookList"><span class="type">GHookList</span></a>.
This must be called before the <a href="glib-Hook-Functions.html#GHookList"><span class="type">GHookList</span></a> is used.
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>hook_list</tt></i> :</span></td><td>a <a href="glib-Hook-Functions.html#GHookList"><span class="type">GHookList</span></a>.
</td></tr><tr><td><span class="term"><i class="parameter"><tt>hook_size</tt></i> :</span></td><td>the size of each element in the <a href="glib-Hook-Functions.html#GHookList"><span class="type">GHookList</span></a>, typically
<tt class="literal">sizeof (GHook)</tt>.


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id3170086"></a><h3><a name="g-hook-list-invoke"></a>g_hook_list_invoke ()</h3><a class="indexterm" name="id3170097"></a><pre class="programlisting">void        g_hook_list_invoke              (<a href="glib-Hook-Functions.html#GHookList">GHookList</a> *hook_list,
                                             <a href="glib-Basic-Types.html#gboolean">gboolean</a> may_recurse);</pre><p>
Calls all of the <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a> functions in a <a href="glib-Hook-Functions.html#GHookList"><span class="type">GHookList</span></a>.
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>hook_list</tt></i> :</span></td><td>a <a href="glib-Hook-Functions.html#GHookList"><span class="type">GHookList</span></a>.
</td></tr><tr><td><span class="term"><i class="parameter"><tt>may_recurse</tt></i> :</span></td><td><tt class="literal">TRUE</tt> if functions which are already running (e.g. in another
thread) can be called. If set to <tt class="literal">FALSE</tt>, these are skipped.


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id3170201"></a><h3><a name="g-hook-list-invoke-check"></a>g_hook_list_invoke_check ()</h3><a class="indexterm" name="id3170212"></a><pre class="programlisting">void        g_hook_list_invoke_check        (<a href="glib-Hook-Functions.html#GHookList">GHookList</a> *hook_list,
                                             <a href="glib-Basic-Types.html#gboolean">gboolean</a> may_recurse);</pre><p>
Calls all of the <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a> functions in a <a href="glib-Hook-Functions.html#GHookList"><span class="type">GHookList</span></a>.
Any function which returns <tt class="literal">TRUE</tt> is removed from the <a href="glib-Hook-Functions.html#GHookList"><span class="type">GHookList</span></a>.
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>hook_list</tt></i> :</span></td><td>a <a href="glib-Hook-Functions.html#GHookList"><span class="type">GHookList</span></a>.
</td></tr><tr><td><span class="term"><i class="parameter"><tt>may_recurse</tt></i> :</span></td><td><tt class="literal">TRUE</tt> if functions which are already running (e.g. in another
thread) can be called. If set to <tt class="literal">FALSE</tt>, these are skipped.


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id3170331"></a><h3><a name="g-hook-list-marshal"></a>g_hook_list_marshal ()</h3><a class="indexterm" name="id3170342"></a><pre class="programlisting">void        g_hook_list_marshal             (<a href="glib-Hook-Functions.html#GHookList">GHookList</a> *hook_list,
                                             <a href="glib-Basic-Types.html#gboolean">gboolean</a> may_recurse,
                                             <a href="glib-Hook-Functions.html#GHookMarshaller">GHookMarshaller</a> marshaller,
                                             <a href="glib-Basic-Types.html#gpointer">gpointer</a> marshal_data);</pre><p>
Calls a function on each valid <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a>. 
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>hook_list</tt></i> :</span></td><td>a <a href="glib-Hook-Functions.html#GHookList"><span class="type">GHookList</span></a>.
</td></tr><tr><td><span class="term"><i class="parameter"><tt>may_recurse</tt></i> :</span></td><td><tt class="literal">TRUE</tt> if hooks which are currently running (e.g. in another
thread) are considered valid. If set to <tt class="literal">FALSE</tt>, these are skipped.
</td></tr><tr><td><span class="term"><i class="parameter"><tt>marshaller</tt></i> :</span></td><td>the function to call for each <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a>.
</td></tr><tr><td><span class="term"><i class="parameter"><tt>marshal_data</tt></i> :</span></td><td>data to pass to <i class="parameter"><tt>marshaller</tt></i>.


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id3170496"></a><h3><a name="GHookMarshaller"></a>GHookMarshaller ()</h3><a class="indexterm" name="id3170507"></a><pre class="programlisting">void        (*GHookMarshaller)              (<a href="glib-Hook-Functions.html#GHook">GHook</a> *hook,
                                             <a href="glib-Basic-Types.html#gpointer">gpointer</a> marshal_data);</pre><p>
Defines the type of function used by <a href="glib-Hook-Functions.html#g-hook-list-marshal"><tt class="function">g_hook_list_marshal()</tt></a>.
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>hook</tt></i> :</span></td><td>a <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a>.
</td></tr><tr><td><span class="term"><i class="parameter"><tt>marshal_data</tt></i> :</span></td><td>user data.


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id3170594"></a><h3><a name="g-hook-list-marshal-check"></a>g_hook_list_marshal_check ()</h3><a class="indexterm" name="id3170606"></a><pre class="programlisting">void        g_hook_list_marshal_check       (<a href="glib-Hook-Functions.html#GHookList">GHookList</a> *hook_list,
                                             <a href="glib-Basic-Types.html#gboolean">gboolean</a> may_recurse,
                                             <a href="glib-Hook-Functions.html#GHookCheckMarshaller">GHookCheckMarshaller</a> marshaller,
                                             <a href="glib-Basic-Types.html#gpointer">gpointer</a> marshal_data);</pre><p>
Calls a function on each valid <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a> and destroys it if the 
function returns <tt class="literal">FALSE</tt>.
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>hook_list</tt></i> :</span></td><td>a <a href="glib-Hook-Functions.html#GHookList"><span class="type">GHookList</span></a>.
</td></tr><tr><td><span class="term"><i class="parameter"><tt>may_recurse</tt></i> :</span></td><td><tt class="literal">TRUE</tt> if hooks which are currently running (e.g. in another
thread) are considered valid. If set to <tt class="literal">FALSE</tt>, these are skipped.
</td></tr><tr><td><span class="term"><i class="parameter"><tt>marshaller</tt></i> :</span></td><td>the function to call for each <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a>.
</td></tr><tr><td><span class="term"><i class="parameter"><tt>marshal_data</tt></i> :</span></td><td>data to pass to <i class="parameter"><tt>marshaller</tt></i>.


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id3170766"></a><h3><a name="GHookCheckMarshaller"></a>GHookCheckMarshaller ()</h3><a class="indexterm" name="id3170778"></a><pre class="programlisting"><a href="glib-Basic-Types.html#gboolean">gboolean</a>    (*GHookCheckMarshaller)         (<a href="glib-Hook-Functions.html#GHook">GHook</a> *hook,
                                             <a href="glib-Basic-Types.html#gpointer">gpointer</a> marshal_data);</pre><p>
Defines the type of function used by <a href="glib-Hook-Functions.html#g-hook-list-marshal-check"><tt class="function">g_hook_list_marshal_check()</tt></a>.
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>hook</tt></i> :</span></td><td>a <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a>.
</td></tr><tr><td><span class="term"><i class="parameter"><tt>marshal_data</tt></i> :</span></td><td>user data.
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td><tt class="literal">FALSE</tt> if <i class="parameter"><tt>hook</tt></i> should be destroyed.


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id3170886"></a><h3><a name="g-hook-list-clear"></a>g_hook_list_clear ()</h3><a class="indexterm" name="id3170898"></a><pre class="programlisting">void        g_hook_list_clear               (<a href="glib-Hook-Functions.html#GHookList">GHookList</a> *hook_list);</pre><p>
Removes all the <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a> elements from a <a href="glib-Hook-Functions.html#GHookList"><span class="type">GHookList</span></a>.
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>hook_list</tt></i> :</span></td><td>a <a href="glib-Hook-Functions.html#GHookList"><span class="type">GHookList</span></a>.


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id3170967"></a><h3><a name="g-hook-alloc"></a>g_hook_alloc ()</h3><a class="indexterm" name="id3170978"></a><pre class="programlisting"><a href="glib-Hook-Functions.html#GHook">GHook</a>*      g_hook_alloc                    (<a href="glib-Hook-Functions.html#GHookList">GHookList</a> *hook_list);</pre><p>
Allocates space for a <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a> and initializes it.
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>hook_list</tt></i> :</span></td><td>a <a href="glib-Hook-Functions.html#GHookList"><span class="type">GHookList</span></a>.
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>a new <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a>.


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id3171059"></a><h3><a name="g-hook-append"></a>g_hook_append()</h3><a class="indexterm" name="id3171070"></a><pre class="programlisting">#define     g_hook_append( hook_list, hook )</pre><p>
Appends a <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a> onto the end of a <a href="glib-Hook-Functions.html#GHookList"><span class="type">GHookList</span></a>.
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>hook_list</tt></i> :</span></td><td>a <a href="glib-Hook-Functions.html#GHookList"><span class="type">GHookList</span></a>.
</td></tr><tr><td><span class="term"><i class="parameter"><tt>hook</tt></i> :</span></td><td>the <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a> to add to the end of <i class="parameter"><tt>hook_list</tt></i>.


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id3171156"></a><h3><a name="g-hook-prepend"></a>g_hook_prepend ()</h3><a class="indexterm" name="id3171166"></a><pre class="programlisting">void        g_hook_prepend                  (<a href="glib-Hook-Functions.html#GHookList">GHookList</a> *hook_list,
                                             <a href="glib-Hook-Functions.html#GHook">GHook</a> *hook);</pre><p>
Prepends a <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a> on the start of a <a href="glib-Hook-Functions.html#GHookList"><span class="type">GHookList</span></a>.
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>hook_list</tt></i> :</span></td><td>a <a href="glib-Hook-Functions.html#GHookList"><span class="type">GHookList</span></a>.
</td></tr><tr><td><span class="term"><i class="parameter"><tt>hook</tt></i> :</span></td><td>the <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a> to add to the start of <i class="parameter"><tt>hook_list</tt></i>.


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id3171272"></a><h3><a name="g-hook-insert-before"></a>g_hook_insert_before ()</h3><a class="indexterm" name="id3171283"></a><pre class="programlisting">void        g_hook_insert_before            (<a href="glib-Hook-Functions.html#GHookList">GHookList</a> *hook_list,
                                             <a href="glib-Hook-Functions.html#GHook">GHook</a> *sibling,
                                             <a href="glib-Hook-Functions.html#GHook">GHook</a> *hook);</pre><p>
Inserts a <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a> into a <a href="glib-Hook-Functions.html#GHookList"><span class="type">GHookList</span></a>, before a given <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a>.
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>hook_list</tt></i> :</span></td><td>a <a href="glib-Hook-Functions.html#GHookList"><span class="type">GHookList</span></a>.
</td></tr><tr><td><span class="term"><i class="parameter"><tt>sibling</tt></i> :</span></td><td>the <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a> to insert the new <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a> before.
</td></tr><tr><td><span class="term"><i class="parameter"><tt>hook</tt></i> :</span></td><td>the <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a> to insert.


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id3171428"></a><h3><a name="g-hook-insert-sorted"></a>g_hook_insert_sorted ()</h3><a class="indexterm" name="id3171439"></a><pre class="programlisting">void        g_hook_insert_sorted            (<a href="glib-Hook-Functions.html#GHookList">GHookList</a> *hook_list,
                                             <a href="glib-Hook-Functions.html#GHook">GHook</a> *hook,
                                             <a href="glib-Hook-Functions.html#GHookCompareFunc">GHookCompareFunc</a> func);</pre><p>
Inserts a <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a> into a <a href="glib-Hook-Functions.html#GHookList"><span class="type">GHookList</span></a>, sorted by the given function.
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>hook_list</tt></i> :</span></td><td>a <a href="glib-Hook-Functions.html#GHookList"><span class="type">GHookList</span></a>.
</td></tr><tr><td><span class="term"><i class="parameter"><tt>hook</tt></i> :</span></td><td>the <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a> to insert.
</td></tr><tr><td><span class="term"><i class="parameter"><tt>func</tt></i> :</span></td><td>the comparison function used to sort the <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a> elements.


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id3171570"></a><h3><a name="GHookCompareFunc"></a>GHookCompareFunc ()</h3><a class="indexterm" name="id3171581"></a><pre class="programlisting"><a href="glib-Basic-Types.html#gint">gint</a>        (*GHookCompareFunc)             (<a href="glib-Hook-Functions.html#GHook">GHook</a> *new_hook,
                                             <a href="glib-Hook-Functions.html#GHook">GHook</a> *sibling);</pre><p>
Defines the type of function used to compare <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a> elements in
<a href="glib-Hook-Functions.html#g-hook-insert-sorted"><tt class="function">g_hook_insert_sorted()</tt></a>.
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>new_hook</tt></i> :</span></td><td>the <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a> being inserted.
</td></tr><tr><td><span class="term"><i class="parameter"><tt>sibling</tt></i> :</span></td><td>the <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a> to compare with <i class="parameter"><tt>new_hook</tt></i>.
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>a value &lt;= 0 if <i class="parameter"><tt>new_hook</tt></i> should be before <i class="parameter"><tt>sibling</tt></i>.


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id3171713"></a><h3><a name="g-hook-compare-ids"></a>g_hook_compare_ids ()</h3><a class="indexterm" name="id3171724"></a><pre class="programlisting"><a href="glib-Basic-Types.html#gint">gint</a>        g_hook_compare_ids              (<a href="glib-Hook-Functions.html#GHook">GHook</a> *new_hook,
                                             <a href="glib-Hook-Functions.html#GHook">GHook</a> *sibling);</pre><p>
Compares the ids of two <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a> elements, returning a negative value
if the second id is greater than the first.
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>new_hook</tt></i> :</span></td><td>a <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a>.
</td></tr><tr><td><span class="term"><i class="parameter"><tt>sibling</tt></i> :</span></td><td>a <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a> to compare with <i class="parameter"><tt>new_hook</tt></i>.
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>a value &lt;= 0 if the id of <i class="parameter"><tt>sibling</tt></i> is &gt;= the id of <i class="parameter"><tt>new_hook</tt></i>.


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id3171846"></a><h3><a name="g-hook-get"></a>g_hook_get ()</h3><a class="indexterm" name="id3171857"></a><pre class="programlisting"><a href="glib-Hook-Functions.html#GHook">GHook</a>*      g_hook_get                      (<a href="glib-Hook-Functions.html#GHookList">GHookList</a> *hook_list,
                                             <a href="glib-Basic-Types.html#gulong">gulong</a> hook_id);</pre><p>
Returns the <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a> with the given id, or <tt class="literal">NULL</tt> if it is not found.
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>hook_list</tt></i> :</span></td><td>a <a href="glib-Hook-Functions.html#GHookList"><span class="type">GHookList</span></a>.
</td></tr><tr><td><span class="term"><i class="parameter"><tt>hook_id</tt></i> :</span></td><td>a hook id.
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a> with the given id, or <tt class="literal">NULL</tt> if it is not found.


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id3171971"></a><h3><a name="g-hook-find"></a>g_hook_find ()</h3><a class="indexterm" name="id3171982"></a><pre class="programlisting"><a href="glib-Hook-Functions.html#GHook">GHook</a>*      g_hook_find                     (<a href="glib-Hook-Functions.html#GHookList">GHookList</a> *hook_list,
                                             <a href="glib-Basic-Types.html#gboolean">gboolean</a> need_valids,
                                             <a href="glib-Hook-Functions.html#GHookFindFunc">GHookFindFunc</a> func,
                                             <a href="glib-Basic-Types.html#gpointer">gpointer</a> data);</pre><p>
Finds a <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a> in a <a href="glib-Hook-Functions.html#GHookList"><span class="type">GHookList</span></a> using the given function to test for a match.
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>hook_list</tt></i> :</span></td><td>a <a href="glib-Hook-Functions.html#GHookList"><span class="type">GHookList</span></a>.
</td></tr><tr><td><span class="term"><i class="parameter"><tt>need_valids</tt></i> :</span></td><td><tt class="literal">TRUE</tt> if <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a> elements which have been destroyed should be
skipped.
</td></tr><tr><td><span class="term"><i class="parameter"><tt>func</tt></i> :</span></td><td>the function to call for each <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a>, which should return <tt class="literal">TRUE</tt> when
the <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a> has been found.
</td></tr><tr><td><span class="term"><i class="parameter"><tt>data</tt></i> :</span></td><td>the data to pass to <i class="parameter"><tt>func</tt></i>.
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the found <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a> or <tt class="literal">NULL</tt> if no matching <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a> is found.


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id3172192"></a><h3><a name="GHookFindFunc"></a>GHookFindFunc ()</h3><a class="indexterm" name="id3172203"></a><pre class="programlisting"><a href="glib-Basic-Types.html#gboolean">gboolean</a>    (*GHookFindFunc)                (<a href="glib-Hook-Functions.html#GHook">GHook</a> *hook,
                                             <a href="glib-Basic-Types.html#gpointer">gpointer</a> data);</pre><p>
Defines the type of the function passed to <a href="glib-Hook-Functions.html#g-hook-find"><tt class="function">g_hook_find()</tt></a>.
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>hook</tt></i> :</span></td><td>a <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a>.
</td></tr><tr><td><span class="term"><i class="parameter"><tt>data</tt></i> :</span></td><td>user data passed to <a href="glib-Hook-Functions.html#g-hook-find-func"><tt class="function">g_hook_find_func()</tt></a>.
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td><tt class="literal">TRUE</tt> if the required <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a> has been found.


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id3172322"></a><h3><a name="g-hook-find-data"></a>g_hook_find_data ()</h3><a class="indexterm" name="id3172334"></a><pre class="programlisting"><a href="glib-Hook-Functions.html#GHook">GHook</a>*      g_hook_find_data                (<a href="glib-Hook-Functions.html#GHookList">GHookList</a> *hook_list,
                                             <a href="glib-Basic-Types.html#gboolean">gboolean</a> need_valids,
                                             <a href="glib-Basic-Types.html#gpointer">gpointer</a> data);</pre><p>
Finds a <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a> in a <a href="glib-Hook-Functions.html#GHookList"><span class="type">GHookList</span></a> with the given data.
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>hook_list</tt></i> :</span></td><td>a <a href="glib-Hook-Functions.html#GHookList"><span class="type">GHookList</span></a>.
</td></tr><tr><td><span class="term"><i class="parameter"><tt>need_valids</tt></i> :</span></td><td><tt class="literal">TRUE</tt> if <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a> elements which have been destroyed should be
skipped.
</td></tr><tr><td><span class="term"><i class="parameter"><tt>data</tt></i> :</span></td><td>the data to find.
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a> with the given <i class="parameter"><tt>data</tt></i> or <tt class="literal">NULL</tt> if no matching
<a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a> is found.


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id3172499"></a><h3><a name="g-hook-find-func"></a>g_hook_find_func ()</h3><a class="indexterm" name="id3172510"></a><pre class="programlisting"><a href="glib-Hook-Functions.html#GHook">GHook</a>*      g_hook_find_func                (<a href="glib-Hook-Functions.html#GHookList">GHookList</a> *hook_list,
                                             <a href="glib-Basic-Types.html#gboolean">gboolean</a> need_valids,
                                             <a href="glib-Basic-Types.html#gpointer">gpointer</a> func);</pre><p>
Finds a <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a> in a <a href="glib-Hook-Functions.html#GHookList"><span class="type">GHookList</span></a> with the given function.
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>hook_list</tt></i> :</span></td><td>a <a href="glib-Hook-Functions.html#GHookList"><span class="type">GHookList</span></a>.
</td></tr><tr><td><span class="term"><i class="parameter"><tt>need_valids</tt></i> :</span></td><td><tt class="literal">TRUE</tt> if <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a> elements which have been destroyed should be
skipped.
</td></tr><tr><td><span class="term"><i class="parameter"><tt>func</tt></i> :</span></td><td>the function to find.
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a> with the given <i class="parameter"><tt>func</tt></i> or <tt class="literal">NULL</tt> if no matching
<a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a> is found.


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id3172675"></a><h3><a name="g-hook-find-func-data"></a>g_hook_find_func_data ()</h3><a class="indexterm" name="id3172687"></a><pre class="programlisting"><a href="glib-Hook-Functions.html#GHook">GHook</a>*      g_hook_find_func_data           (<a href="glib-Hook-Functions.html#GHookList">GHookList</a> *hook_list,
                                             <a href="glib-Basic-Types.html#gboolean">gboolean</a> need_valids,
                                             <a href="glib-Basic-Types.html#gpointer">gpointer</a> func,
                                             <a href="glib-Basic-Types.html#gpointer">gpointer</a> data);</pre><p>
Finds a <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a> in a <a href="glib-Hook-Functions.html#GHookList"><span class="type">GHookList</span></a> with the given function and data.
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>hook_list</tt></i> :</span></td><td>a <a href="glib-Hook-Functions.html#GHookList"><span class="type">GHookList</span></a>.
</td></tr><tr><td><span class="term"><i class="parameter"><tt>need_valids</tt></i> :</span></td><td><tt class="literal">TRUE</tt> if <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a> elements which have been destroyed should be
skipped.
</td></tr><tr><td><span class="term"><i class="parameter"><tt>func</tt></i> :</span></td><td>the function to find.
</td></tr><tr><td><span class="term"><i class="parameter"><tt>data</tt></i> :</span></td><td>the data to find.
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a> with the given <i class="parameter"><tt>func</tt></i> and <i class="parameter"><tt>data</tt></i> or <tt class="literal">NULL</tt> if no matching
<a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a> is found.


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id3172880"></a><h3><a name="g-hook-first-valid"></a>g_hook_first_valid ()</h3><a class="indexterm" name="id3172892"></a><pre class="programlisting"><a href="glib-Hook-Functions.html#GHook">GHook</a>*      g_hook_first_valid              (<a href="glib-Hook-Functions.html#GHookList">GHookList</a> *hook_list,
                                             <a href="glib-Basic-Types.html#gboolean">gboolean</a> may_be_in_call);</pre><p>
Returns the first <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a> in a <a href="glib-Hook-Functions.html#GHookList"><span class="type">GHookList</span></a> which has not been destroyed.
The reference count for the <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a> is incremented, so you must call
<a href="glib-Hook-Functions.html#g-hook-unref"><tt class="function">g_hook_unref()</tt></a> to restore it when no longer needed. (Or call
<a href="glib-Hook-Functions.html#g-hook-next-valid"><tt class="function">g_hook_next_valid()</tt></a> if you are stepping through the <a href="glib-Hook-Functions.html#GHookList"><span class="type">GHookList</span></a>.)
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>hook_list</tt></i> :</span></td><td>a <a href="glib-Hook-Functions.html#GHookList"><span class="type">GHookList</span></a>.
</td></tr><tr><td><span class="term"><i class="parameter"><tt>may_be_in_call</tt></i> :</span></td><td><tt class="literal">TRUE</tt> if hooks which are currently running (e.g. in another
thread) are considered valid. If set to <tt class="literal">FALSE</tt>, these are skipped.
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the first valid <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a>, or <tt class="literal">NULL</tt> if none are valid.


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id3173059"></a><h3><a name="g-hook-next-valid"></a>g_hook_next_valid ()</h3><a class="indexterm" name="id3173071"></a><pre class="programlisting"><a href="glib-Hook-Functions.html#GHook">GHook</a>*      g_hook_next_valid               (<a href="glib-Hook-Functions.html#GHookList">GHookList</a> *hook_list,
                                             <a href="glib-Hook-Functions.html#GHook">GHook</a> *hook,
                                             <a href="glib-Basic-Types.html#gboolean">gboolean</a> may_be_in_call);</pre><p>
Returns the next <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a> in a <a href="glib-Hook-Functions.html#GHookList"><span class="type">GHookList</span></a> which has not been destroyed.
The reference count for the <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a> is incremented, so you must call
<a href="glib-Hook-Functions.html#g-hook-unref"><tt class="function">g_hook_unref()</tt></a> to restore it when no longer needed. (Or continue to call
<a href="glib-Hook-Functions.html#g-hook-next-valid"><tt class="function">g_hook_next_valid()</tt></a> until <tt class="literal">NULL</tt> is returned.)

</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>hook_list</tt></i> :</span></td><td>a <a href="glib-Hook-Functions.html#GHookList"><span class="type">GHookList</span></a>.
</td></tr><tr><td><span class="term"><i class="parameter"><tt>hook</tt></i> :</span></td><td>the current <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a>.
</td></tr><tr><td><span class="term"><i class="parameter"><tt>may_be_in_call</tt></i> :</span></td><td><tt class="literal">TRUE</tt> if hooks which are currently running (e.g. in another
thread) are considered valid. If set to <tt class="literal">FALSE</tt>, these are skipped.
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the next valid <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a>, or <tt class="literal">NULL</tt> if none are valid.


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id3173266"></a><h3><a name="GHookFlagMask"></a>enum GHookFlagMask</h3><a class="indexterm" name="id3173277"></a><pre class="programlisting">typedef enum
{
  G_HOOK_FLAG_ACTIVE	    = 1 &lt;&lt; 0,
  G_HOOK_FLAG_IN_CALL	    = 1 &lt;&lt; 1,
  G_HOOK_FLAG_MASK	    = 0x0f
} GHookFlagMask;
</pre><p>
Flags used internally in the <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a> implementation.
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><tt class="literal">G_HOOK_FLAG_ACTIVE</tt></span></td><td>set if the hook has not been destroyed.
</td></tr><tr><td><span class="term"><tt class="literal">G_HOOK_FLAG_IN_CALL</tt></span></td><td>set if the hook is currently being run.
</td></tr><tr><td><span class="term"><tt class="literal">G_HOOK_FLAG_MASK</tt></span></td><td>

</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id3173354"></a><h3><a name="G-HOOK-FLAGS-CAPS"></a>G_HOOK_FLAGS()</h3><a class="indexterm" name="id3173366"></a><pre class="programlisting">#define	G_HOOK_FLAGS(hook)		(G_HOOK (hook)-&gt;flags)
</pre><p>
Returns the flags of a hook.
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>hook</tt></i> :</span></td><td>a <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a>.


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id3173408"></a><h3><a name="G-HOOK-FLAG-USER-SHIFT-CAPS"></a>G_HOOK_FLAG_USER_SHIFT</h3><a class="indexterm" name="id3173420"></a><pre class="programlisting">#define G_HOOK_FLAG_USER_SHIFT	(4)
</pre><p>
The position of the first bit which is not reserved for internal
use be the <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a> implementation, i.e. 
<tt class="literal">1 &lt;&lt; G_HOOK_FLAG_USER_SHIFT</tt> is the first bit
which can be used for application-defined flags.
</p></div><hr><div class="refsect2" lang="en"><a name="id3173453"></a><h3><a name="G-HOOK-CAPS"></a>G_HOOK()</h3><a class="indexterm" name="id3173464"></a><pre class="programlisting">#define	G_HOOK(hook)			((GHook*) (hook))
</pre><p>
Casts a pointer to a <tt class="literal">GHook*</tt>.
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>hook</tt></i> :</span></td><td>a pointer.


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id3173503"></a><h3><a name="G-HOOK-IS-VALID-CAPS"></a>G_HOOK_IS_VALID()</h3><a class="indexterm" name="id3173515"></a><pre class="programlisting">#define     G_HOOK_IS_VALID(hook)</pre><p>
Returns <tt class="literal">TRUE</tt> if the <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a> is valid, i.e. it is in a <a href="glib-Hook-Functions.html#GHookList"><span class="type">GHookList</span></a>, it is active
and it has not been destroyed.
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>hook</tt></i> :</span></td><td>a <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a>.
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td><tt class="literal">TRUE</tt> if the <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a> is valid.


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id3173602"></a><h3><a name="G-HOOK-ACTIVE-CAPS"></a>G_HOOK_ACTIVE()</h3><a class="indexterm" name="id3173613"></a><pre class="programlisting">#define     G_HOOK_ACTIVE(hook)</pre><p>
Returns <tt class="literal">TRUE</tt> if the <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a> is active, which is normally <tt class="literal">TRUE</tt> until the <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a>
is destroyed.
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>hook</tt></i> :</span></td><td>a <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a>.
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td><tt class="literal">TRUE</tt> if the <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a> is active.


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id3173706"></a><h3><a name="G-HOOK-IN-CALL-CAPS"></a>G_HOOK_IN_CALL()</h3><a class="indexterm" name="id3173717"></a><pre class="programlisting">#define     G_HOOK_IN_CALL(hook)</pre><p>
Returns <tt class="literal">TRUE</tt> if the <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a> function is currently executing.
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>hook</tt></i> :</span></td><td>a <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a>.
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td><tt class="literal">TRUE</tt> if the <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a> function is currently executing.


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id3173796"></a><h3><a name="G-HOOK-IS-UNLINKED-CAPS"></a>G_HOOK_IS_UNLINKED()</h3><a class="indexterm" name="id3173807"></a><pre class="programlisting">#define     G_HOOK_IS_UNLINKED(hook)</pre><p>
Returns <tt class="literal">TRUE</tt> if the <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a> is not in a <a href="glib-Hook-Functions.html#GHookList"><span class="type">GHookList</span></a>.

</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>hook</tt></i> :</span></td><td>a <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a>.
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td><tt class="literal">TRUE</tt> if the <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a> is not in a <a href="glib-Hook-Functions.html#GHookList"><span class="type">GHookList</span></a>.


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id3173901"></a><h3><a name="g-hook-ref"></a>g_hook_ref ()</h3><a class="indexterm" name="id3173912"></a><pre class="programlisting">void        g_hook_ref                      (<a href="glib-Hook-Functions.html#GHookList">GHookList</a> *hook_list,
                                             <a href="glib-Hook-Functions.html#GHook">GHook</a> *hook);</pre><p>
Increments the reference count for a <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a>.
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>hook_list</tt></i> :</span></td><td>a <a href="glib-Hook-Functions.html#GHookList"><span class="type">GHookList</span></a>.
</td></tr><tr><td><span class="term"><i class="parameter"><tt>hook</tt></i> :</span></td><td>the <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a> to increment the reference count of.


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id3174004"></a><h3><a name="g-hook-unref"></a>g_hook_unref ()</h3><a class="indexterm" name="id3174015"></a><pre class="programlisting">void        g_hook_unref                    (<a href="glib-Hook-Functions.html#GHookList">GHookList</a> *hook_list,
                                             <a href="glib-Hook-Functions.html#GHook">GHook</a> *hook);</pre><p>
Decrements the reference count of a <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a>.
If the reference count falls to 0, the <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a> is removed from the <a href="glib-Hook-Functions.html#GHookList"><span class="type">GHookList</span></a>
and <a href="glib-Hook-Functions.html#g-hook-free"><tt class="function">g_hook_free()</tt></a> is called to free it.
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>hook_list</tt></i> :</span></td><td>a <a href="glib-Hook-Functions.html#GHookList"><span class="type">GHookList</span></a>.
</td></tr><tr><td><span class="term"><i class="parameter"><tt>hook</tt></i> :</span></td><td>the <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a> to unref.


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id3174135"></a><h3><a name="g-hook-free"></a>g_hook_free ()</h3><a class="indexterm" name="id3174146"></a><pre class="programlisting">void        g_hook_free                     (<a href="glib-Hook-Functions.html#GHookList">GHookList</a> *hook_list,
                                             <a href="glib-Hook-Functions.html#GHook">GHook</a> *hook);</pre><p>
Calls the <a href="glib-Hook-Functions.html#GHookList"><span class="type">GHookList</span></a> <i class="parameter"><tt>hook_free</tt></i> function if it exists, and frees the memory
allocated for the <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a>.
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>hook_list</tt></i> :</span></td><td>a <a href="glib-Hook-Functions.html#GHookList"><span class="type">GHookList</span></a>.
</td></tr><tr><td><span class="term"><i class="parameter"><tt>hook</tt></i> :</span></td><td>the <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a> to free.


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id3174251"></a><h3><a name="g-hook-destroy"></a>g_hook_destroy ()</h3><a class="indexterm" name="id3174262"></a><pre class="programlisting"><a href="glib-Basic-Types.html#gboolean">gboolean</a>    g_hook_destroy                  (<a href="glib-Hook-Functions.html#GHookList">GHookList</a> *hook_list,
                                             <a href="glib-Basic-Types.html#gulong">gulong</a> hook_id);</pre><p>
Destroys a <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a>, given its ID.
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>hook_list</tt></i> :</span></td><td>a <a href="glib-Hook-Functions.html#GHookList"><span class="type">GHookList</span></a>.
</td></tr><tr><td><span class="term"><i class="parameter"><tt>hook_id</tt></i> :</span></td><td>a hook ID.
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td><tt class="literal">TRUE</tt> if the <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a> was found in the <a href="glib-Hook-Functions.html#GHookList"><span class="type">GHookList</span></a> and destroyed.


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id3174377"></a><h3><a name="g-hook-destroy-link"></a>g_hook_destroy_link ()</h3><a class="indexterm" name="id3174388"></a><pre class="programlisting">void        g_hook_destroy_link             (<a href="glib-Hook-Functions.html#GHookList">GHookList</a> *hook_list,
                                             <a href="glib-Hook-Functions.html#GHook">GHook</a> *hook);</pre><p>
Removes one <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a> from a <a href="glib-Hook-Functions.html#GHookList"><span class="type">GHookList</span></a>, marking it inactive and calling
<a href="glib-Hook-Functions.html#g-hook-unref"><tt class="function">g_hook_unref()</tt></a> on it. 
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>hook_list</tt></i> :</span></td><td>a <a href="glib-Hook-Functions.html#GHookList"><span class="type">GHookList</span></a>.
</td></tr><tr><td><span class="term"><i class="parameter"><tt>hook</tt></i> :</span></td><td>the <a href="glib-Hook-Functions.html#GHook"><span class="type">GHook</span></a> to remove.


</td></tr></tbody></table></div></div></div></div><table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="0"><tr valign="middle"><td align="left"><a accesskey="p" href="glib-Random-Numbers.html"><b>&lt;&lt; Random Numbers</b></a></td><td align="right"><a accesskey="n" href="glib-Miscellaneous-Utility-Functions.html"><b>Miscellaneous Utility Functions &gt;&gt;</b></a></td></tr></table></body></html>