函数

GObjectsignal_new_class_handler

自 2.18 起

声明 [src]

guint
g_signal_new_class_handler (
  const gchar* signal_name,
  GType itype,
  GSignalFlags signal_flags,
  GCallback class_handler,
  GSignalAccumulator accumulator,
  gpointer accu_data,
  GSignalCMarshaller c_marshaller,
  GType return_type,
  guint n_params,
  ...
)

描述 [src]

创建一个新信号。(通常在类初始化程序中完成此操作。)

此函数是 g_signal_new() 的变体,它使用 C 回调函数而不是类的偏移量作为信号的类处理程序。此函数不需要在对象定义的类结构中公开函数指针,而是直接传递函数指针,并且可以通过 g_signal_override_class_closure()g_signal_override_class_handler() 由派生类进行重写,并可以通过 g_signal_chain_from_overridden() 或 g_signal_chain_from_overridden_handler() 进行链接。

有关信号名称的信息,请参阅 g_signal_new()

如果 c_marshaller 为 NULLg_cclosure_marshal_generic() 将用作此信号的编组器。

自 2.18 起提供

此函数不直接提供给语言绑定。

参数

signal_name

类型: const gchar*

信号的名称。

数据由函数的调用方所有。
值为以 NUL 结尾的 UTF-8 字符串。
itype

类型: GType

此信号所属于的类型。它也将属于派生自此类型的类型。

signal_flags

类型: GSignalFlags

GSignalFlags 的组合,指定调用默认处理程序的详细信息。您至少应指定 G_SIGNAL_RUN_FIRSTG_SIGNAL_RUN_LAST

class_handler

类型: GCallback

充当此信号的类实现的 GCallback。用于以通用方式调用类方法。传递 NULL 表示不将类方法与此信号关联。

该参数可以为 NULL
accumulator

类型: GSignalAccumulator

此信号的累加器;可以为 NULL

该参数可以为 NULL
accu_data

类型: gpointer

accumulator 的用户数据。

该参数可以为 NULL
数据由函数的调用方所有。
c_marshaller

类型: GSignalCMarshaller

将参数值数组转化为信号发射到 C 语言回调函数调用或 NULL 的函数。

该参数可以为 NULL
return_type

类型: GType

返回值类型,或对于没有返回值的信号而言为 G_TYPE_NONE

n_params

类型: guint

要遵循的参数类型的数量。

...

类型: 

类型的列表,每个参数一个类型。

返回值

类型: guint

信号 ID。