Thanks for the clarification.  I'll try and make this work.  Thanks
also to Gabe Garza who mailed me personally with further commentary.

BTW, what I'm working on is an interface to ncurses.  People have
talked about this in the past, but I've not seen it done.  I have the
raw alien definitions working so I can screw up the terminal quite
nicely from Lisp and do all the things documented in *every* ncurses
manpage (take a look at the ncurses.h header file to see how much of a
chore this was).  But the ncurses library feels nothing like Lisp
programming so I'm writing a 'Lisp friendly' interface to it that
maintains a bunch of Lisp datastructures that for things like
character attributes, pads, windows, terminal flags, etc, and a bunch
of Lisp functions to operate on them.  The intent is to hide the
ncurses alien definitions completely from the programmer.

One of these days I'll put up a project page for it and make it
available to the public.  It's not quite ready for that though.  My
meter for readiness is when I quit changing things in the ncurses
alien interface and stick to only writing Lisp front-end functions.

Once it's basically stable I'll look into creating a simple widget
library for drawing non-overlapping windows (ie East-Coast style
windowing) and various input dialogs, scrolling lists, checkboxes, and
such.  I did a similar job (but in C) at my previous place of
employment, so I know what sort of improvements should be made upon
the crude widget set that is included with ncurses.  For overlapping
windows (West-Coast style windowing) there is a library called
'libpanel' included with ncurses that does most of what one wants.
But I honestly think that overlapping windows are a lose on terminals
because of the space they take up, so I'm not going to bother
implementing an interface to libpanel.  If someone really wants to
do so the scaffolding will all be there to do it.

Of course, once some basic widgets are available a CLIM-like interface
should be built, or maybe port (some of) McCLIM to it...  And a
curses-based REPL...  And then maybe port it to UFFI (which of course
doesn't have FINALIZE, sigh)...

'james

-- 
James A. Crippen <[EMAIL PROTECTED]> ,-./-.  Anchorage, Alaska,
Lambda Unlimited: Recursion 'R' Us   |  |/  | USA, 61.20939N, -149.767W
Y = \f.(\x.f(xx)) (\x.f(xx))         |  |\  | Earth, Sol System,
Y(F) = F(Y(F))                        \_,-_/  Milky Way.

Reply via email to