$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 ; ..... .... 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