[info-mcl] digitool (MCL) / clozure (OpenMCL)

Raffael Cavallaro raffaelcavallaro at mac.com
Thu Oct 11 12:09:48 EDT 2007


On Oct 11, 2007, at 9:39 AM, Gail Zacharias wrote:

> There is a
> whole world of stuff like that, GUI concepts and elements that are de
> facto universal, and I want a simple cross platform toolkit that
> provides a straightforward platform-independent way to use them.

But even this turns out not to be the case. To take a simple example,  
On LispWorks for Mac,  if you go to save a file, what looks like a  
platform native sheet drops down with the usual GUI elements where you  
would expect them. But something as simple as the text edit field  
where you enter the name of the file to be saved does *not* work  
properly for the platform - the standard Mac command keys - cmd-x, cmd- 
v, cmd-c, are not enabled, but a control-clickable pop-up menu is -  
something which would be a distant third or fourth thought for a Mac  
user. Even simple UI elements like a text edit field are part of a  
larger platform UI model, and getting even these simple things right  
means getting the whole UI model right, and it's different for each  
platform.

> But
> I also want to be able to use Core Animation on the mac, and have
> that be anticipated and allowed by the toolkit - i.e. the toolkit
> should be designed with the understanding that it will need to
> interact well with code that does GUI things not directly supported
> by the toolkit. It implies a lighter-weight, more transparent toolkit
> design than CAPI's.


I agree with this very strongly, and I think the best (only?) way to  
accomplish this is to keep every UI abstraction completely orthogonal  
from every other. For example, one of the reasons CAPI just doesn't  
work properly on the MAC is that it has this concept of an "Interface"  
which incorrectly treats windows and menus as inextricably  
intertwined. Naturally, this abstraction flows from a UI model where  
windows have menus in their title bars, but of course, this turns out  
not to be universal - on the Mac there is a single menu bar associated  
with the application not any particular window, and it is possible to  
have a window with no menus (e.g., a full screen window). Keeping each  
individual UI abstraction separate from the start would allow each  
platform specific version to wire these abstractions together in the  
expected way for that platform.

regards,

Ralph



Raffael Cavallaro, Ph.D.
raffaelcavallaro at mac.com




More information about the info-mcl mailing list