Signals have different signatures, just like functions have different signatures.
In the example above: The event
family of signals on the GtkWidget
class have, usually, associated a GdkEvent
instance that details the event as received from the windowing system.
Still in the example above: The clicked
signal is emitted by the GtkButton
in response to a sequence of events: a button press, followed by a button release within the responsive area of the widget itself (that is, if you press the pointer button on the GtkButton
widget, then you move the pointer outside the button widget and release the pointer button, and the GtkButton
widget will not emit the clicked
signal). For this reason, there is no GdkEvent
instance associated to it.
It usually helps, when trying to understand them, to consider GObject signals as named lists of functions that can be invoked by a particular instance of a type.