### Struct

# GObject CClosure

since: 2.0

#### Description

    struct GCClosure {
      GClosure closure;
      gpointer callback;
    }

A `GCClosure` is a specialization of `GClosure` for C function callbacks.

###### Structure members

`closure`

  The `GClosure`.

`callback`

  The callback function.

Available since: 2.0

#### Functions

###### g_cclosure_marshal_BOOLEAN__BOXED_BOXED

A `GClosureMarshal` function for use with signals with handlers that take two boxed pointers as arguments and return a boolean. If you have such a signal, you will probably also need to use an accumulator, such as g_signal_accumulator_true_handled().

since: 2.0

###### g_cclosure_marshal_BOOLEAN__BOXED_BOXEDv

The `GVaClosureMarshal` equivalent to g_cclosure_marshal_BOOLEAN__BOXED_BOXED().

since: 2.0

###### g_cclosure_marshal_BOOLEAN__FLAGS

A `GClosureMarshal` function for use with signals with handlers that take a flags type as an argument and return a boolean. If you have such a signal, you will probably also need to use an accumulator, such as g_signal_accumulator_true_handled().

since: 2.0

###### g_cclosure_marshal_BOOLEAN__FLAGSv

The `GVaClosureMarshal` equivalent to g_cclosure_marshal_BOOLEAN__FLAGS().

since: 2.0

###### g_cclosure_marshal_STRING__OBJECT_POINTER

A `GClosureMarshal` function for use with signals with handlers that take a `GObject` and a pointer and produce a string. It is highly unlikely that your signal handler fits this description.

since: 2.0

###### g_cclosure_marshal_STRING__OBJECT_POINTERv

The `GVaClosureMarshal` equivalent to g_cclosure_marshal_STRING__OBJECT_POINTER().

since: 2.0

###### g_cclosure_marshal_VOID__BOOLEAN

A `GClosureMarshal` function for use with signals with a single boolean argument.

since: 2.0

###### g_cclosure_marshal_VOID__BOOLEANv

The `GVaClosureMarshal` equivalent to g_cclosure_marshal_VOID__BOOLEAN().

since: 2.0

###### g_cclosure_marshal_VOID__BOXED

A `GClosureMarshal` function for use with signals with a single argument which is any boxed pointer type.

since: 2.0

###### g_cclosure_marshal_VOID__BOXEDv

The `GVaClosureMarshal` equivalent to g_cclosure_marshal_VOID__BOXED().

since: 2.0

###### g_cclosure_marshal_VOID__CHAR

A `GClosureMarshal` function for use with signals with a single character argument.

since: 2.0

###### g_cclosure_marshal_VOID__CHARv

The `GVaClosureMarshal` equivalent to g_cclosure_marshal_VOID__CHAR().

since: 2.0

###### g_cclosure_marshal_VOID__DOUBLE

A `GClosureMarshal` function for use with signals with one double-precision floating point argument.

since: 2.0

###### g_cclosure_marshal_VOID__DOUBLEv

The `GVaClosureMarshal` equivalent to g_cclosure_marshal_VOID__DOUBLE().

since: 2.0

###### g_cclosure_marshal_VOID__ENUM

A `GClosureMarshal` function for use with signals with a single argument with an enumerated type.

since: 2.0

###### g_cclosure_marshal_VOID__ENUMv

The `GVaClosureMarshal` equivalent to g_cclosure_marshal_VOID__ENUM().

since: 2.0

###### g_cclosure_marshal_VOID__FLAGS

A `GClosureMarshal` function for use with signals with a single argument with a flags types.

since: 2.0

###### g_cclosure_marshal_VOID__FLAGSv

The `GVaClosureMarshal` equivalent to g_cclosure_marshal_VOID__FLAGS().

since: 2.0

###### g_cclosure_marshal_VOID__FLOAT

A `GClosureMarshal` function for use with signals with one single-precision floating point argument.

since: 2.0

###### g_cclosure_marshal_VOID__FLOATv

The `GVaClosureMarshal` equivalent to g_cclosure_marshal_VOID__FLOAT().

since: 2.0

###### g_cclosure_marshal_VOID__INT

A `GClosureMarshal` function for use with signals with a single integer argument.

since: 2.0

###### g_cclosure_marshal_VOID__INTv

The `GVaClosureMarshal` equivalent to g_cclosure_marshal_VOID__INT().

since: 2.0

###### g_cclosure_marshal_VOID__LONG

A `GClosureMarshal` function for use with signals with with a single long integer argument.

since: 2.0

###### g_cclosure_marshal_VOID__LONGv

The `GVaClosureMarshal` equivalent to g_cclosure_marshal_VOID__LONG().

since: 2.0

###### g_cclosure_marshal_VOID__OBJECT

A `GClosureMarshal` function for use with signals with a single `GObject` argument.

since: 2.0

###### g_cclosure_marshal_VOID__OBJECTv

The `GVaClosureMarshal` equivalent to g_cclosure_marshal_VOID__OBJECT().

since: 2.0

###### g_cclosure_marshal_VOID__PARAM

A `GClosureMarshal` function for use with signals with a single argument of type `GParamSpec`.

since: 2.0

###### g_cclosure_marshal_VOID__PARAMv

The `GVaClosureMarshal` equivalent to g_cclosure_marshal_VOID__PARAM().

since: 2.0

###### g_cclosure_marshal_VOID__POINTER

A `GClosureMarshal` function for use with signals with a single raw pointer argument type.

since: 2.0

###### g_cclosure_marshal_VOID__POINTERv

The `GVaClosureMarshal` equivalent to g_cclosure_marshal_VOID__POINTER().

since: 2.0

###### g_cclosure_marshal_VOID__STRING

A `GClosureMarshal` function for use with signals with a single string argument.

since: 2.0

###### g_cclosure_marshal_VOID__STRINGv

The `GVaClosureMarshal` equivalent to g_cclosure_marshal_VOID__STRING().

since: 2.0

###### g_cclosure_marshal_VOID__UCHAR

A `GClosureMarshal` function for use with signals with a single unsigned character argument.

since: 2.0

###### g_cclosure_marshal_VOID__UCHARv

The `GVaClosureMarshal` equivalent to g_cclosure_marshal_VOID__UCHAR().

since: 2.0

###### g_cclosure_marshal_VOID__UINT

A `GClosureMarshal` function for use with signals with with a single unsigned integer argument.

since: 2.0

###### g_cclosure_marshal_VOID__UINT_POINTER

A `GClosureMarshal` function for use with signals with an unsigned int and a pointer as arguments.

since: 2.0

###### g_cclosure_marshal_VOID__UINT_POINTERv

The `GVaClosureMarshal` equivalent to g_cclosure_marshal_VOID__UINT_POINTER().

since: 2.0

###### g_cclosure_marshal_VOID__UINTv

The `GVaClosureMarshal` equivalent to g_cclosure_marshal_VOID__UINT().

since: 2.0

###### g_cclosure_marshal_VOID__ULONG

A `GClosureMarshal` function for use with signals with a single unsigned long integer argument.

since: 2.0

###### g_cclosure_marshal_VOID__ULONGv

The `GVaClosureMarshal` equivalent to g_cclosure_marshal_VOID__ULONG().

since: 2.0

###### g_cclosure_marshal_VOID__VARIANT

A `GClosureMarshal` function for use with signals with a single `GVariant` argument.

since: 2.0

###### g_cclosure_marshal_VOID__VARIANTv

The `GVaClosureMarshal` equivalent to g_cclosure_marshal_VOID__VARIANT().

since: 2.0

###### g_cclosure_marshal_VOID__VOID

A `GClosureMarshal` function for use with signals with no arguments.

since: 2.0

###### g_cclosure_marshal_VOID__VOIDv

The `GVaClosureMarshal` equivalent to g_cclosure_marshal_VOID__VOID().

since: 2.0

###### g_cclosure_marshal_generic

A generic marshaller function implemented via libffi.

since: 2.30

###### g_cclosure_marshal_generic_va

A generic `GVaClosureMarshal` function implemented via libffi.

since: 2.30

###### g_cclosure_new

Creates a new closure which invokes `callback_func` with `user_data` as the last parameter.

since: 2.0

###### g_cclosure_new_object

A variant of `g_cclosure_new()` which uses `object` as `user_data` and calls `g_object_watch_closure()` on `object` and the created closure. This function is useful when you have a callback closely associated with a `GObject`, and want the callback to no longer run after the object is is freed.

since: 2.0

###### g_cclosure_new_object_swap

A variant of `g_cclosure_new_swap()` which uses `object` as `user_data` and calls `g_object_watch_closure()` on `object` and the created closure. This function is useful when you have a callback closely associated with a `GObject`, and want the callback to no longer run after the object is is freed.

since: 2.0

###### g_cclosure_new_swap

Creates a new closure which invokes `callback_func` with `user_data` as the first parameter.

since: 2.0