### Function

# GObject signal_new_valist

#### Declaration

    guint
    g_signal_new_valist (
      const gchar* signal_name,
      GType itype,
      GSignalFlags signal_flags,
      GClosure* class_closure,
      GSignalAccumulator accumulator,
      gpointer accu_data,
      GSignalCMarshaller c_marshaller,
      GType return_type,
      guint n_params,
      va_list args
    )

#### Description

Creates a new signal. (This is usually done in the class initializer.)

See `g_signal_new()` for details on allowed signal names.

If c_marshaller is `NULL`, `g_cclosure_marshal_generic()` will be used as the marshaller for this signal.

This function is not directly available to language bindings.

#### Parameters

`signal_name`

  Type: `const gchar*`

  The name for the signal.

  The data is owned by the caller of the function.
  The value is a NUL terminated UTF-8 string.

`itype`

  Type: `GType`

  The type this signal pertains to. It will also pertain to types which are derived from this type.

`signal_flags`

  Type: `GSignalFlags`

  A combination of `GSignalFlags` specifying detail of when the default handler is to be invoked. You should at least specify `G_SIGNAL_RUN_FIRST` or `G_SIGNAL_RUN_LAST`.

`class_closure`

  Type: `GClosure`

  The closure to invoke on signal emission; may be `NULL`.

  The argument can be `NULL`.
  The data is owned by the caller of the function.

`accumulator`

  Type: `GSignalAccumulator`

  The accumulator for this signal; may be `NULL`.

  The argument can be `NULL`.

`accu_data`

  Type: `gpointer`

  User data for the `accumulator`.

  The argument can be `NULL`.
  The data is owned by the caller of the function.

`c_marshaller`

  Type: `GSignalCMarshaller`

  The function to translate arrays of parameter values to signal emissions into C language callback invocations or `NULL`.

  The argument can be `NULL`.

`return_type`

  Type: `GType`

  The type of return value, or `G_TYPE_NONE` for a signal without a return value.

`n_params`

  Type: `guint`

  The number of parameter types in `args`.

`args`

  Type: `va_list`

  Va_list of `GType`, one for each parameter.

#### Return value

Type: `guint`

The signal id.