On Tue, Nov 24, 2009 at 11:12:59AM -0500, Paul Davis wrote:
This just isn't true on "bare" unix
systems, where the insistence on
choice and flexibility and "developer driven" approaches to almost
everything have ruled out such a common core.
There are at least to separate aspects to this problem.
1. Almost all GUI toolkits mix up a few things that should
remain well separated:
- Getting X11 events,
- Handling X11 events,
- Creating a framework for messaging (events + data)
between threads, and if you are lucky a RT-safe API
for this or at least part of it,
- Creating the main loop (which if you separate out
the three above, becomes a trivial thing).
A well designed GUI toolkit should do only the first
two and be able to use whatever messaging system and
event loop.
2. Almost all toolkits try to be cross-platform. Which
means they will translate X11 events and other data
structures from/into their 'portable' format. That's
OK as if they would also provide these translations
as separate functions which then could be used at the
interface between a host and a plugin using different
toolkits.
The only reason I can see why most GUI toolkits do not
provide the required modularity is that it would complicate
their 5-line 'hello world in a window' demo programs, and
that is considered bad marketing. The fact that such trivial
demos are not representative of real-life applications, let
alone those that do include real-time audio processing, is
not a point, the user will discover that only much later when
he's already firmly hooked into a particular toolkit.
Ciao,
--
FA
Io lo dico sempre: l'Italia è troppo stretta e lunga.