ProXL allows the user to register callbacks for each window, that is, Prolog routines that are called when certain events occur. These routines may be passed any arguments, including information particular to that event. For example, you may register a callback on a window for mouse button press events, and have your routine receive the position in the window of the mouse at the time the button was pressed.
Callbacks are the usual mechanism for ProXL programs to listen to and handle events, although ProXL programs may get and handle events directly if they wish.