Event handlers are bound to events using the OnChange method.
method Application.OnChange (sym, fn) { local chfn = cons (sym, fn); ._ChangeFunctions = cons (chfn, ._ChangeFunctions); on_change (sym, fn); chfn; }
The OnChange method is a wrapper for the on_change function that does the actual binding of the event handler. First the OnChange method creates a two-member list (chfn) consisting of a symbol (sym) and the function that should run (fn) when the symbol changes value. That short list is added to the class's _ChangeFunctions list. All lists are constructed using the Gamma cons function. Finally, the on_change function links the symbol to the event-handling function. What gets returned, chfn, is a two member list—exactly what the unwrapped on_change function would have returned.
One way to remove an event handler is with the RemoveChange method.
method Application.RemoveChange (chfn) { ._ChangeFunctions = remove (chfn, ._ChangeFunctions); remove_change (car(chfn), cdr(chfn)); }
This is a wrapper on remove_change, to be used when you need to remove just a single function from _ChangeFunctions rather than all of them. See also RemoveAllChanges and RemoveAllEventHandlers.
Copyright © 1995-2010 by Cogent Real-Time Systems, Inc. All rights reserved.