wmperry(a)aventail.com (William M. Perry) writes:
Well, my proposal was accepted by the BeOpen folks on SourceXchange,
so I'm
going to start working on the various documents outlining how I'll be
replacing the lwlib/motif/athena/etc widgets with gtk or qt. 99.9% sure it
is going to have to be gtk after talking with stallman and the discussion
we had on the mailing list a few weeks ago. Ah well...
But while I was sketching out some things, and looking at the current
EmacsFrame widget I wondered why we should even bother having the toolbars
and menubars managed differently than the various 'gutters' that andy has
implemented. If I'm going to be completely rewriting large chunks of that
code, why not take the next step and just use the gutter than andy has
worked so hard on? Things like scrollbars would still need to be done in
the core I think (because they go with windows not frames).
The basic idea would be to simplify the XEmacs window to just be an X
Window with gutters on all 4 sides. When you turn on the toolbar,
something just gets added to the top gutter. When you turn on the menubar,
ditto. This would entail making 'toolbar' and 'menubar' widgets
accesible
like 'button' and 'progress-gauge', but I don't think that would be
very
hard.
As a side-benefit this would allow you to have multiple menubars, and
multiple toolbars visible at once. Just imagine... a XEmacs completely
surrounded my toolbars. *shudder*
Thoughts, comments, etc?
If you are going to use gtk the idea of all things being handled the
same way as the gutters could maybe be stretched a bit further.
With the help of glade, it is easily possible to construct gtk gui
elements and save them in some kind of xml format. this can be loaded
on _runtime_ via libglade, complete with the setup of the needed signals
and so on.
it should be possible to make the connection to elisp with the
same/similar mechanism.
maybe replacing the xml with lisp? dunno...of course one could even
use dssl then to format the menu/toolbars... just kidding here :-)
just a little idea,
jtl