 $poplocal/local/rcmenu/README
Aaron Sloman Tue Jan 24 09:43:04 GMT 1995
Revised Thu Aug 26 01:12:05 BST 1999

    CHANGED SO AS NOT TO DEPEND ON PROPSHEET

WARNING: I have not yet updated every bit of documentation after massive
recent changes. The changes were made to replace propsheet with the
RCLIB package, available at
    ftp://ftp.cs.bham.ac.uk/pub/dist/poplog/rc.tar.gz
The RCLIB package is *essental* for the items here to work.

This package (already installed in Birmingham) can be fetched by ftp
from
    ftp://ftp.cs.bham.ac.uk/pub/dist/poplog/rcmenu.tar.gz


Contents
    rcmenu/README
        This file
DIR rcmenu/auto/
        Autoloadable procedures
DIR rcmenu/help
        Help files
    rcmenu/install_menu
        Install shell script
    rcmenu/menulib.p
        Startup file to go in or be linked to $poplocal/local/lib
DIR rcmenu/menus
        Files containing autoloadable menu definitions
    rcmenu/mkbuttonlist
        Shell script to create help/menubuttons using all the menu
        definition files.
DIR rcmenu/teach
        Teach files
    rcmenu/teach/menu_demo.p
        A simple demonstration of a control panel for a graphical
        display. Similar to
            $local/rclib/teach/rc_async_demo


The RECURSIVE HYPER-MENUS (RHM) package.

Some of the ideas here were developed while I was working on the UIDE
project in collaboration with Integral Solutions Ltd, Sussex University,
and BMT Ltd, in 1993. Some of the ideas turned out to be similar to
those in the World Wide Web facilities, though the RHM system is for
local use entirely within Poplog, though it can be used to start up
non-poplog processes, e.g. xterm windows, etc.

The script install_menu can be run after this directory has been
installed at $poplocal/local/rcmenu

If you install the directory somewhere else, edit the file menulib.p,
which sets up the search lists, and put it where users can run it from
Pop-11.

If you don't run install_menu, then run mkbuttonlist, to ensure that
the HELP MENUBUTTONS file exists.

This package requires that the "rclib" package (extensions to
rc_graphic) is available, and starting this package up runs
    lib rclib
which should therefore be available.

However, rclib does not use the menu package.

Unlike 'pop-up' menus which go away as soon as you make a selection,
the rcmenu library provides control panels that stay up and can be
activated asynchronously, e.g. to give VED commands or other things.
This uses a new format

    define :menu <name>;
        .....
        ....
    enddefine;

So recreating a menu is trivial after editing the definition. (E.g. use
ENTER lcp (load current procedure), or just ESC c.

Menus can invoke other menus by autoloading them.

Most of the examples in the rcmenu/menus library are concerned with VED,
though menus can be created and used without VED, using the procedure
menu_new_menu, or the "define :menu" format.

The rclib utility rc_control_panel plays a major part in the
construction of these menus. Assuming you have rclib installed, after
doing

    uses rclib

you can do
    ENTER help rc_control_panel

to find out more.

The menu creation process uses a user-extendable search list for
autoloadable menu definitions. So it is possible to provide menus for a
group of students or a package.

Users can have a directory $HOME/vedmenus in which they create their own
autoloadable menus.

The hope is that a common library of menus will gradually grow. At
present (Aug 1999) there are no menus concerned with prolog, lisp or ML,
though they would be trivial to add.

LIB POPRULEBASE, replacing LIB NEWPSYS, available from Birmingham is a
sophisticated forward chaining production rule interpreter which
currently supports text based menus. This package can be used to
implement widget-based menus for POPRULEBASE.

Some of the commands associated with buttons in the menus defined in the
menus directory here will not work outside Birmingham (e.g. the commands
to do with reading mail depend on our ved_getmail library, and not
everyone will have our ved_latex library). So treat the menus as samples
which you can edit and tailor to your users' needs. E.g. they can be
used to provide a beginner's interface for using VED. However, as
loading the package can take a little time it may be best to provide a
saved image with the package already loaded. It still takes time to
start up the first widget, but it's not as slow as FrameMaker!

The main documentation is in
    help/ved_menu

There's a simpler tutorial introduction in

    teach/ved_menu

which starts by showing you how to create your own control panel with
menus.

Comments, criticisms and suggestions to
    A.Sloman@cs.bham.ac.uk
