Ben Wing <ben(a)666.com> writes:
i definitely agree that this generalization of redisplay is
necessary.
but we don't necessarily need to drop tty support -- we'd still need a
"redisplay" to display the text area, and in essence this is all a tty
frame is. [i'm assuming that the first round would not mess with the text
area, and just allow arbitrary layout with a monolithic "text area
widget" somewhere in it. furthermore, the geometry management part of
layouts should be completely implemented by xemacs, so we could use the
same under tty's, if anyone cared.]
I would argue that the geometry management should be left up to the
windowing system. This way things like detachable toolbars and menubars
can be implemented on widget sets/platforms that support it. I _really_
don't think XEmacs should get into trying to do dockable toolbars/etc
in its own way.
For instance, I cannot find any good way to allow a dockable toolbar in
XEmacs/GTK because the XEmacs redisplay reserves space at the top of the
frame for it and expects you to draw into it. I originally used a 'real'
GTK toolbar, but it was a pain in the !@!@$! to try and make it detachable
because there was then a really big ugly blank spot where it used to be.
I think we should change redisplay to know basically nothing about these
areas. Most of them don't make sense on a TTY anyway (maybe menubars, but
they typically take up too much valuable screen real-estate on a tty).
Writing a basic geometry manager for XEmacs on top of a decent curses
library wouldn't be too hard. If we make every redisplay target _but_ TTYs
easier, I think it would justify making the TTY support a bit harder.
If people want to see what a status-bar-using XEmacs would look like, I
could hack the XEmacs/GTK to do it pretty easily. Would just need to
change append-message to talk directly to a statusbar widget instead of
using the ' Echo Area' nastiness.
But this would entain ickiness with MULE text sent to those widgets,
etc. Urk
If people are interested in seeing it, let me know. I can probably
implement it all in lisp, which will be nice.
-Bill P.