20#ifndef __G_CLOSURE_H__
21#define __G_CLOSURE_H__
23#if !defined (__GLIB_GOBJECT_H_INSIDE__) && !defined (GOBJECT_COMPILATION)
24#error "Only <glib-object.h> can be included directly."
41#define G_CLOSURE_NEEDS_MARSHAL(closure) (((GClosure*) (closure))->marshal == NULL)
55#define G_CLOSURE_N_NOTIFIERS(cl) (((cl)->n_guards << 1L) + \
56 (cl)->n_fnotifiers + (cl)->n_inotifiers)
66#define G_CCLOSURE_SWAP_DATA(cclosure) (((GClosure*) (cclosure))->derivative_flag)
73#define G_CALLBACK(f) ((GCallback) (f))
123 guint n_param_values,
124 const GValue *param_values,
193 guint n_param_values,
194 const GValue *param_values,
232 guint struct_offset);
280 guint n_param_values,
281 const GValue *param_values,
298 guint n_param_values,
299 const GValue *param_values,
void(* GClosureNotify)(gpointer data, GClosure *closure)
GOBJECT_AVAILABLE_IN_ALL void g_closure_unref(GClosure *closure)
GOBJECT_AVAILABLE_IN_ALL void g_closure_invalidate(GClosure *closure)
void(* GVaClosureMarshal)(GClosure *closure, GValue *return_value, gpointer instance, va_list args, gpointer marshal_data, int n_params, GType *param_types)
GOBJECT_AVAILABLE_IN_ALL void g_closure_add_marshal_guards(GClosure *closure, gpointer pre_marshal_data, GClosureNotify pre_marshal_notify, gpointer post_marshal_data, GClosureNotify post_marshal_notify)
GOBJECT_AVAILABLE_IN_ALL GClosure * g_cclosure_new_swap(GCallback callback_func, gpointer user_data, GClosureNotify destroy_data)
GOBJECT_AVAILABLE_IN_ALL void g_closure_remove_invalidate_notifier(GClosure *closure, gpointer notify_data, GClosureNotify notify_func)
GOBJECT_AVAILABLE_IN_ALL void g_cclosure_marshal_generic_va(GClosure *closure, GValue *return_value, gpointer instance, va_list args_list, gpointer marshal_data, int n_params, GType *param_types)
GOBJECT_AVAILABLE_IN_ALL GClosure * g_closure_ref(GClosure *closure)
GOBJECT_AVAILABLE_IN_ALL GClosure * g_signal_type_cclosure_new(GType itype, guint struct_offset)
GOBJECT_AVAILABLE_IN_ALL void g_closure_set_meta_marshal(GClosure *closure, gpointer marshal_data, GClosureMarshal meta_marshal)
GOBJECT_AVAILABLE_IN_ALL void g_closure_add_invalidate_notifier(GClosure *closure, gpointer notify_data, GClosureNotify notify_func)
GOBJECT_AVAILABLE_IN_ALL void g_closure_set_marshal(GClosure *closure, GClosureMarshal marshal)
GOBJECT_AVAILABLE_IN_ALL void g_closure_invoke(GClosure *closure, GValue *return_value, guint n_param_values, const GValue *param_values, gpointer invocation_hint)
GOBJECT_AVAILABLE_IN_ALL void g_closure_add_finalize_notifier(GClosure *closure, gpointer notify_data, GClosureNotify notify_func)
GOBJECT_AVAILABLE_IN_ALL GClosure * g_closure_new_simple(guint sizeof_closure, gpointer data)
GOBJECT_AVAILABLE_IN_ALL void g_closure_remove_finalize_notifier(GClosure *closure, gpointer notify_data, GClosureNotify notify_func)
void(* GClosureMarshal)(GClosure *closure, GValue *return_value, guint n_param_values, const GValue *param_values, gpointer invocation_hint, gpointer marshal_data)
GOBJECT_AVAILABLE_IN_ALL void g_cclosure_marshal_generic(GClosure *closure, GValue *return_gvalue, guint n_param_values, const GValue *param_values, gpointer invocation_hint, gpointer marshal_data)
GOBJECT_AVAILABLE_IN_ALL void g_closure_sink(GClosure *closure)
GOBJECT_AVAILABLE_IN_ALL GClosure * g_cclosure_new(GCallback callback_func, gpointer user_data, GClosureNotify destroy_data)
#define GOBJECT_AVAILABLE_IN_ALL
void(* marshal)(GClosure *closure, GValue *return_value, guint n_param_values, const GValue *param_values, gpointer invocation_hint, gpointer marshal_data)
GClosureNotifyData * notifiers