GSignal is a mechanism by which code, normally written in C, may expose
extension points to which closures can be connected, much like Guile's hooks.
Instantiatable types can have signals associated with them; for example,
<gtk-widget>
has an expose
signal that will be “fired” at
certain well-documented points.
Signals are typed. They specify the types of their return value, and the types of their arguments.
This module defines routines for introspecting, emitting, connecting to, disconnecting from, blocking, and unblocking signals. Additionally it defines routines to define new signal types on instantiatable types.
A
<gsignal>
describes a signal on a<gtype-instance>
: its name, and how it should be called.
Returns a list of signals belonging to class and all parent types.
Returns a vector of signal names belonging to class and all parent classes.
Connects func as handler for the
<gtype-instance>
object's signal name.name should be a symbol. after is boolean specifying whether the handler is run before (
#f
) or after (#t
) the signal's default handler.Returns an integer number which can be used as arugment of
gsignal-handler-block
,gsignal-handler-unblock
,gsignal-handler-disconnect
andgsignal-handler-connected?
.
Convenience function for calling
gtype-instance-signal-connect
with after =#t
.
Create a new signal associated with the
<gtype-class>
class.name should be a symbol, the name of the signal. return-type should be a
<gtype-class>
object. param-types should be a list of<gtype-class>
objects.In a bit of an odd interface, this function will return a new generic function, which will be run as the signal's default handler, whose default method will silently return an unspecified value. The user may define new methods on this generic to provide alternative default handler implementations.