In X11, the server communicates changes in the environment to the clients by sending event messages to them. Clients indicate specific interest in certain events by selecting them. Each X11 window has a bitmask that indicates the events it is interested in receiving and a bitmask that indicates the events it wants discarded.
ProXL extends the notion of X11 events by allowing the user to register Prolog callback routines with each window. In this section we discuss the basic notions of events and the callback mechanism.