GTK+3 is an event-driven toolkit, which means it is always dormant in a loop function and waiting (listening) for events to occur; then it passes control to the appropriate function. Examples of events are a click on a button, menu item activation, ticking a checkbox, and so forth. When widgets receive an event, they frequently emit one or more signals. That signal will then evoke functions that you have connected to, in this case known as callbacks. This passing of control is done using the concept of signals.
When an event such as the press of a mouse button occurs, ...