Penguin

A conceptual model of the way events work within an application, library or toolkit. Java, JavaScript, Windows and X11 all have different EventModels.

Typically an application registers one or more listener (AKA callback) with the library or toolkit along with some kind of specification of which events it's interested in. When the event occurs (a mouse move, a key press, or even a download completing) a listener gets called so the application can act on the event. Depending on the EventModel, the listener may be able to determine whether other listeners also see the event or not (this is called bubbling in JavaScript). Listeners are made more complicated by the fact that most event models run in a multithreaded environment (threading issues are common in Java AWT/Swing event model).