[GUI] GUIs and events/callbacks.
Wolfgang Thaller
wolfgang.thaller@gmx.net
Fri, 7 Mar 2003 11:43:57 +0100
Am I overlooking some subtle semantic differences? To me, it looks like
(non-composable) events can easily be implemented on top of callbacks
using Control.Concurrent.Chan.
And it shouldn't be too difficult to implement callbacks on top of
events...
If the above is true, then I'd say we implement callbacks first, we can
easily add events later. Events look like a higher-level concept to me,
as they seem to require concurrency to be meaningful. They could be
added as an add-on-library, but IMHO we probably don't need them in the
spec right now.
Which leads us to another big question: Concurrency.
The CGA should probably be safe to use from many threads at once
(although many backends aren't, so the library would have to do a lot
of synchronizing). Should callbacks for multiple clicks on one button
really run concurrently, or should it behave like most toolkits for
other languages? I know of no "conventional" toolkits where event
handlers for one event source are run concurrently. It sounds
dangerous, but it might have advantages.
Cheers,
Wolfgang