30#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
31#error "Only <glib.h> can be included directly."
61#define G_HOOK_FLAG_USER_SHIFT (4)
89#define G_HOOK(hook) ((GHook*) (hook))
90#define G_HOOK_FLAGS(hook) (G_HOOK (hook)->flags)
91#define G_HOOK_ACTIVE(hook) ((G_HOOK_FLAGS (hook) & \
92 G_HOOK_FLAG_ACTIVE) != 0)
93#define G_HOOK_IN_CALL(hook) ((G_HOOK_FLAGS (hook) & \
94 G_HOOK_FLAG_IN_CALL) != 0)
95#define G_HOOK_IS_VALID(hook) (G_HOOK (hook)->hook_id != 0 && \
96 (G_HOOK_FLAGS (hook) & \
98#define G_HOOK_IS_UNLINKED(hook) (G_HOOK (hook)->next == NULL && \
99 G_HOOK (hook)->prev == NULL && \
100 G_HOOK (hook)->hook_id == 0 && \
101 G_HOOK (hook)->ref_count == 0)
176#define g_hook_append( hook_list, hook ) \
177 g_hook_insert_before ((hook_list), NULL, (hook))
GLIB_AVAILABLE_IN_ALL gint g_hook_compare_ids(GHook *new_hook, GHook *sibling)
GLIB_AVAILABLE_IN_ALL void g_hook_unref(GHookList *hook_list, GHook *hook)
GLIB_AVAILABLE_IN_ALL GHook * g_hook_find_func(GHookList *hook_list, gboolean need_valids, gpointer func)
GLIB_AVAILABLE_IN_ALL GHook * g_hook_ref(GHookList *hook_list, GHook *hook)
GLIB_AVAILABLE_IN_ALL void g_hook_list_clear(GHookList *hook_list)
GLIB_AVAILABLE_IN_ALL void g_hook_free(GHookList *hook_list, GHook *hook)
GLIB_AVAILABLE_IN_ALL GHook * g_hook_find_data(GHookList *hook_list, gboolean need_valids, gpointer data)
gboolean(* GHookCheckMarshaller)(GHook *hook, gpointer marshal_data)
GLIB_AVAILABLE_IN_ALL GHook * g_hook_alloc(GHookList *hook_list)
GLIB_AVAILABLE_IN_ALL void g_hook_list_invoke_check(GHookList *hook_list, gboolean may_recurse)
GLIB_AVAILABLE_IN_ALL void g_hook_list_marshal_check(GHookList *hook_list, gboolean may_recurse, GHookCheckMarshaller marshaller, gpointer marshal_data)
GLIB_AVAILABLE_IN_ALL void g_hook_list_invoke(GHookList *hook_list, gboolean may_recurse)
GLIB_AVAILABLE_IN_ALL void g_hook_insert_before(GHookList *hook_list, GHook *sibling, GHook *hook)
GLIB_AVAILABLE_IN_ALL void g_hook_list_init(GHookList *hook_list, guint hook_size)
GLIB_AVAILABLE_IN_ALL GHook * g_hook_next_valid(GHookList *hook_list, GHook *hook, gboolean may_be_in_call)
GLIB_AVAILABLE_IN_ALL gboolean g_hook_destroy(GHookList *hook_list, gulong hook_id)
GLIB_AVAILABLE_IN_ALL void g_hook_prepend(GHookList *hook_list, GHook *hook)
GLIB_AVAILABLE_IN_ALL GHook * g_hook_first_valid(GHookList *hook_list, gboolean may_be_in_call)
GLIB_AVAILABLE_IN_ALL GHook * g_hook_find_func_data(GHookList *hook_list, gboolean need_valids, gpointer func, gpointer data)
typedefG_BEGIN_DECLS struct _GHook GHook
void(* GHookFinalizeFunc)(GHookList *hook_list, GHook *hook)
void(* GHookFunc)(gpointer data)
GLIB_AVAILABLE_IN_ALL GHook * g_hook_find(GHookList *hook_list, gboolean need_valids, GHookFindFunc func, gpointer data)
GLIB_AVAILABLE_IN_ALL void g_hook_list_marshal(GHookList *hook_list, gboolean may_recurse, GHookMarshaller marshaller, gpointer marshal_data)
void(* GHookMarshaller)(GHook *hook, gpointer marshal_data)
GLIB_AVAILABLE_IN_ALL void g_hook_destroy_link(GHookList *hook_list, GHook *hook)
gboolean(* GHookFindFunc)(GHook *hook, gpointer data)
GLIB_AVAILABLE_IN_ALL GHook * g_hook_get(GHookList *hook_list, gulong hook_id)
gint(* GHookCompareFunc)(GHook *new_hook, GHook *sibling)
GLIB_AVAILABLE_IN_ALL void g_hook_insert_sorted(GHookList *hook_list, GHook *hook, GHookCompareFunc func)
gboolean(* GHookCheckFunc)(gpointer data)
#define GLIB_AVAILABLE_IN_ALL
void(* GDestroyNotify)(gpointer data)
GHookFinalizeFunc finalize_hook