[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