This is new implementation of the Visual Smalltalk event system for Squeak. I think that it could make a great event system for Morphic. it is very flexible in wiring models to interfaces (and other models). Here's some quick examples of how it's used: 1) Wiring an interface to a model aButton when: #clicked do: [ "something interesting with the model"]. 2) Wiring a model to an interface in the interface code: aVechicle when: #passengerAdded: send: #addItem: to: aListBox. in the model code: aVehice triggerEvent: #passengerAdded: with: aPassenger This will result in ListBox>>addItem: being called with aPassenger as the parameter. (Note that this example is from Visual Smalltalk, none of the widgets in Squeak generate events). At the risk of being obvious, you can attach any number of interfaces to a model, and vice versa. Note: When you add events to a subclass of EventModel (by changing the contructEventsTriggered class method) you must run the initializeEventsTriggered method for that class before the new events will be useable. Most of the event system is implemented in methods in class object (with just additions, no modifications to the base image). If you want to use subclasses of EventModel with this event system you need do nothing extra; but if you want to use it with objects that are not, you need to implement the method 'actionLists'; see the implementation of this method for the EventModel class. I could have placed an implementation in object, using a global variable to hold all of the actions lists for all objects by default; but can lead to the defeat of smalltalk's garbage collection so I didn't bother. Weak references, anyone? :) This software is (c) 1997 by Tim Jones You can reach me via tim@thregecy.com