> What I would like is, now we have the luxury of XVED, is a
> find command that puts up a dialog-box. ("Oh, boring," I can hear
> people thinking to themselves. But wait! There's more.) When
> the user presses the "Search" button it composes a VED command,
> sticks it on the command line, closes the dialog box, and
> executes the command line.
My "recursive hyper menu" extension to poplog allows exactly this sort
of thing, and something close to it is already in the default example
menu system. Moreover, you don't have to use XVed to use it: ordinary
VED or for that matter any Poplog program can invoke the mechanism.
Menus are accessed by name, so menu trees don't have to be built in
advance, and new menus and control-panels are autoloadable via a special
search list. This also allows mutually invoking menus.
In fact it now even works under motif (thanks to help from Anthony
Worrall)!
The stuff is available in the birmingham ftp site for poplog stuff:
ftp://ftp.cs.bham.ac.uk/pub/dist/poplog
Here's an extract from the README file, describing the two relevant
subdirectories and a tar file:
pui/
An extension of Poplog's pop_ui facilities, for creation of
popup menus, file browser, requests for text input, etc.
Used by the menu/ package. Included in menutar.Z
(Includes a zany demonstration file browser that gives an
alternative to use of scroll bar.)
menu/
The code and documentation for the "recursive hypermenu system"
an extension to Pop-11 and VED which allows easily extendable
menus for controlling VED and Pop-11, and spawning Unix
processes etc. using asynchronous control panels. A tutorial
example is in menu/teach/menu_demo.p
For details see menu/help/ved_menu. (A slightly out of date
printable version of that file is menu/hyper.ps.Z)
Last updated 3rd March 1995
NB the set of autoloadable menus in menu/menus/*.p should be
regarded as a sample, rather than definitive. Some of the
examples will not work outside Birmingham as they need local
libraries (available on request.) (E.g. ved_getmail, ved_gn
for reading news via a remote NNTP server.)
menutar.Z
A compressed tar file containing the contents of the menu/
and pui/ subdirectories.
> In this fashion, it doesn't matter how complicated the command
> line syntax is. Furthermore, by watching the way the commands are
> compiled, I could figure out the complicated syntax.
Several of the dialog boxes and menu commands do put the corresponding
command on VED's command line. This was a deliberate design for teaching
people to learn the commands instead of having to use the menus
indefinitely, and that's exactly what happens. Many of our users get
weaned off the menus. (Not all).
I don't think this deals with the problem that there is no way to switch
the wrap/nowrap default for backward (or forward) search. I even tried
associating my own procedure with ESC \, but the new VED seems to have a
mind of its own about what to do about wrapping. Or perhaps I just got
it wrong. Basically there should have been a proper procedural interface
instead of just all the fancy command line syntax. (The same
criticism applies to Propsheet, which is why I had to build the above
libraries. E.g. you never use the string 'slider' in telling propsheet
you want a slider: instead you use two numbers separated by a hyphen!!!
I don't think that's any way to design a programming language. But I
guess the X designers have a lot to answer for.)
> This gets around the usual problem that the dialog box doesn't know
> when to go away. In the best systems (e.g. Macintosh) there is
> one command to bring up the Find box (#F) and another to redo (#G).
> Since XVED already has a redo command, it would be logical to make
> it work through the command line.
My control panels can be set up either to remove themselves or to stay
up till dismissed. The latter can be used for asynchronous control, as
demonstrated in menu_demo.p teach file, which has a control panel for
changing a moving graphical display.
Cheers.
Aaron
|