Under ProXL, the event structures used by X11 are not Prolog terms, but ProXL-specific data structures whose implementation details are not visible to the user, and they have to be explicitly allocated and de-allocated1.

ProXL provides routines to examine and set the contents of these structures. The user should not hang on to any of these structures, and in particular, should not assert them into the data base.

All of the event handling predicates documented in this section have an XEvent argument, which is an X11 event structure.

     new_event(-XEvent, +EventValues)

Will create a new private, X11 event structure and unify XEvent with it.

new_event/1 creates a new, uninitialized event structure.

new_event/2 creates a new event structure, and destructively set its fields from the values given in EventValues, which must be a list of event fields in the style of the callback mechanism, and unify XEvent with the initialized result. The list of event values must specify at least a type. If display is not specified, the default Display is used.


  1. In the current implementation, they are not garbage-collected automatically