[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: CLUE and 1K Primrose Path
> There is one possible reason for basing CLUE on the X-Toolkit: if there
> were a way of importing C code from the toolkit in a way that made it
> follow the CLUE protocol exactly.
It's time to clarify the relationship between CLUE and Xt, because the above has
never been a goal (though I'll admit -- given enough time and enough money and
enough entrepreneurial hi-de-ho, it might be possible to create a nifty thing
like an automatic Xt-to-CLUE translator).
CLUE is modelled after Xt because Xt has a pretty good model. This, of course,
is apart from any considerations of programming language whatsoever. Some
salient aspects of the model shared by CLUE and Xt:
* Consistent with ideas about UIMS (Seeheim model, shared object model)
that make sense and are beginning to become accepted (emphasis on
"beginning", still no lack of controversy here):
- distinction between semantic components ("application" or
"callbacks") and syntactico-lexical components ("user
interface")
- encapsulation of input-output techniques
- direct manipulation (ergo object-oriented) control
- multi-threaded dialogs
* Geometry management: negotiating geometry among objects up and down
the window composition hierarchy. Support for implementing arbitrary
g.mgmt. policies.
* Resources: support for negotiating programmer vs. user preferences for
certain UI values. Code-less UI programming.
* Support for dynamic binding of events with UI actions (aka "event
translation").
* Timer event sources for driving animations
* Tight integration with the underlying X client interface.
Widgets/contacts are a subclass of windows.
At the surface, in their implementations of this model, CLUE and Xt begin to
diverge. It's not even accurate to call CLUE a "Lisp binding for Xt". The
intent is that CLUE will continue to exploit the advantages offered by CL/CLOS
to maximum benefit.
Reasonable humanoids may disagree about the desirability of the CLUE/Xt model or
other models. Indeed, this should be the focus for further discussion.