jipping@cs.hope.EDU (Mike Jipping) (08/02/89)
I'm trying to design something and I'm in over my head. Could someone
help me out?
I need a recursive menu for EmacsTool in SunView. The situation is that
I want to generate a menu that provides a look at a file tree, where
subdirectories are pullright menus. Let's say that I define a function
called "gen-file-list" that returns a menu with the files in it. I
"sun-evaluate" the menu and the display is nice. But when I have
subdirectories, a recursive call to "gen-file-list" is order and somehow
the returned list has to be connected with the current menu list to
provide a pullright.
I have this working for single-level file trees. I can even recurse fine
and generate what I (think I) need for the pullright menu (i.e., if I
were to "sun-evaluate" the pullright menu on its own, I'd have a nice
menu display). QUESTION: how do I splice this into the main menu as a
pullright, so that "sun-evaluate" will make it a pullright menu?
I know the form for pullrights is
(defmenu <name>
(<string-entry> <function>)
(<string-entry> . <menu-name>))
The last list (with the ".") will cause a pullright menu (i.e.,
<menu-name>) to be generated when the mouse pulls right. BUT HOW DO I DO
THIS WITHOUT A MENU NAME? The recursion makes this a hard problem and
means I can't assign the generated file list to an explicitly named menu.
I guess I can limp by this way: (1) generate the current directory level,
then (2) if the selected file is a directory, generate a menu for that
level. That's the way it's done now. But, the pullright version is what
I want.
Sorry if the specification is convoluted. It's hard to describe. If you
want a visual demonstration, use the mailtool from SunView, make sure
your mail folder is defined, and get a menu over the "Folder" button.
In fact, that's *exactly* what I'm trying to do in Emacs. I have an
"Emacs Mail Tool" built that mimics Sun's mailtool, but uses "vm" from
Kyle Jones.
Thanks for all the help I can get.
Mike Jipping Internet: jipping@cs.hope.edu
Hope College BITNET: JIPPING@HOPE
Department of Computer Science Voice: Hey!