g_signal_new (
  const gchar* signal_name,
  GType itype,
  GSignalFlags signal_flags,
  guint class_offset,
  GSignalAccumulator accumulator,
  gpointer accu_data,
  GSignalCMarshaller c_marshaller,
  GType return_type,
  guint n_params,


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

A signal name consists of segments consisting of ASCII letters and digits, separated by either the - or _ character. The first character of a signal name must be a letter. Names which violate these rules lead to undefined behaviour. These are the same rules as for property naming (see g_param_spec_internal()).

When registering a signal and looking up a signal, either separator can be used, but they cannot be mixed. Using - is considerably more efficient. Using _ is discouraged.

If 0 is used for class_offset subclasses cannot override the class handler in their class_init method by doing super_class->signal_handler = my_signal_handler. Instead they will have to use g_signal_override_class_handler().

If c_marshaller is NULL, g_cclosure_marshal_generic() will be used as the marshaller for this signal. In some simple cases, g_signal_new() will use a more optimized c_marshaller and va_marshaller for the signal instead of g_cclosure_marshal_generic().

If c_marshaller is non-NULL, you need to also specify a va_marshaller using g_signal_set_va_marshaller() or the generic va_marshaller will be used.

This function is not directly available to language bindings


signal_name 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 GType

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

signal_flags 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_offset guint

The offset of the function pointer in the class structure for this type. Used to invoke a class method generically. Pass 0 to not associate a class method slot with this signal.

accumulator GSignalAccumulator

The accumulator for this signal; may be NULL.

 The argument can be NULL.
accu_data gpointer

User data for the accumulator.

 The argument can be NULL.
 The data is owned by the caller of the function.
c_marshaller 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 GType

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

n_params guint

The number of parameter types to follow.


A list of types, one for each parameter.

Return value

Returns: guint

The signal id.