I just checked in a whole slew of changes today that get menus working. I
had to rewrite all my beautiful lisp code in C because it was just too darn
slow and caching didn't even help.
All of the menus are dynamically generated, not just :filter ones.
Switching menubars is very fast because it basically just populates the
menu items in the menubar. Only the menu about to be popped down is
generated (I think the lwlib menus currently generate the entire menubar
when you click in the menubar, not 100% sure).
As I said in an earlier note to the XEmacs list, the menubar is currently
in a GtkHandleBox, which means that it can be detached from its frame and
moved around independently.
Tearoff menu items almost work - define TEAR_OFF_MENUS in menubar-gtk.c if
you want to play with them. I'm not sure how Gnome apps (and gimp) get the
behaviour of the menu remaining popped up. Still thinking about this one.
Menus are at a pointer where I can leave them though - things like
detachable menus are gravy (and not very good gravy :) as far as I'm
concerned.
On to toolbars tomorrow - although this will probably be nasty given that
toolbar.c wants to know about pixel positions of the mouse and things like
that. I want to let Gtk handle all that nastiness. Should be
interesting. :)
-Bill P.