RISC World



MenuBar is APDL. All rights reserved

Getting started

Copy the !MenuBar application from the supplied floppy disc to any directory on your hard disc, and run the program by double-clicking on the !MenuBar icon.

This version

This version is restricted to five Bars, and each Bar is limited to eight Menus containing up to twelve Objects. It is complete in all other respects.

When you run MenuBar the initial Bar appears at the top of the screen with a button and five (empty) Menus. The button is instead of the usual icon bar icon.

It is recommended that you include in your Boot sequence an instruction to Run !MenuBar so that the program is launched automatically each time you switch on the computer. If you are unsure how to do this please refer to the RISC OS User Guide.

Building a Menu Bar

Suppose you want to use the first Menu to hold some favourite applications. To give the Menu a more meaningful name click the middle mouse button while the pointer is over the title bar of 'Menu 1'. Now slide off 'Menu 1 - Rename' and replace the current name with 'Applications'. The new name remains in white to indicate that the Menu is still empty.

To add some applications to the Menu simply drag them from a Filer window, singly or as a selection. (If you try to add more than the maximum permitted, a buzz sounds.) The Menu name changes to black and the Menu may be opened by simply dragging the 'handle' or double-clicking on it with Select. As with the Filer, the items may be double-clicked to execute them or dragged to any relevant place on the desktop.

Continue to build the other Menus in the same way and when you are satisfied save the data by the following short-cut. If the button to the left of the Menus is not already coloured cream then click Select on it to give MenuBar the 'input focus'. Then press F3 to save the data. Next time you run MenuBar the data will automatically be loaded.

The objects in a Menu (ie. directories, applications or files) may be treated in a variety of ways and these are detailed in Section 6. Similarly, the actions which may be performed on the Menus are accounted for in Section 7. Additional Bars may be created and added to the Library as described in Section 10. First, however, MenuBar's own menus are described.

MenuBar menus

MenuBar has two menus - the main menu and the button menu.

Click the MENU button anywhere on a Menu to display the main menu. There are three menu items, one for the current Bar, one for the current Menu, and one for the current Object. The text of the second two depends on the pointer position when you click the menu button. If the pointer is not over an Object the third item is greyed out.

Click MENU on the button icon to display the button menu. Below the dotted line are the usual Info and Quit, and above are five items - 'Library', 'Sprites', ''SysVars', Choices' and 'Shortcuts'.

The submenu functions are described in the sections that follow. If changes have been made an asterisk appears in the title of both menus, and if you attempt to quit with unsaved data a warning is issued.

Objects (directories, applications or files)

Add objects

To add objects (directories, applications or files) to a Menu, drag them from a Filer window, either individually or as a selection. If you attempt to exceed the maximum number of objects per menu a warning buzz sounds. The same object may be added to more than one Menu, though it is naturally not possible to have the same object twice in the same Menu. Dropping an object on the Menu's handle sends it to the top, otherwise the new object is positioned immediately below the one on which it is dropped.

Select objects

As with the Filer, clicking SELECT on an object selects it and clicking ADJUST allows additional objects to be selected/deselected. Alternatively, use drag with SELECT or ADJUST on the background (left edge of object name) to select/deselect a group of objects. All the objects in a Menu may be selected and cleared in one go from the menu by choosing 'Menu - Alter' followed by 'Select' or 'Clear'. Providing MenuBar has the input focus the same result can be achieved (for the most-recently active Menu) by Shift+S or Shift+Z.

Making selections is useful if you want to execute several objects at once. For example, you might select all the objects in your DTP Menu in order to run them all with a single drag to the icon bar. Or you might want to remove several objects from a Menu.

Remove objects

To remove an object (or a selection) click menu on it and choose 'Remove' from the object menu. This does not, of course, delete the object from your disc.

Move objects

To reposition an object (or a selection) within a Menu drag the source object and drop it on the destination object. Moved object(s) are inserted below the object at pointer position and any intermediate objects are shunted up or down to make space.

Drag objects

A single object or a selection of objects may be dragged:

  • - to a Filer window (objects are copied)
  • - to a compatible Application (window or icon bar icon)
  • - to the Pinboard (objects are pinned)
  • - to the Icon Bar (objects are executed)

Dragging with SHIFT held down removes the object from the Menu after the drag is completed (but never deletes the source). Dragging with ADJUST closes the Menu when the operation is complete.

Execute objects by double-clicking

Double-clicking Select on an object opens directories and runs files or applications, as with the Filer. To open an application directory, hold down shift and double-click Select. Double-clicking with Adjust closes the Menu afterwards.

Object information

To find out more about an object click the menu button on it and slide off the object name. You can then slide off 'Pathname' or 'Info'.

Count objects

To find the size of an object click the menu button on it and slide off the object name then click on 'Count'. This only applies to single objects, not selections (since they may belong to different directories).

Find objects

Slide off 'Bar - Find' followed by 'Leaf' or 'Path' and enter the search string. Press Return and a search will be made of all the Menus for any objects containing the search string. Depending on the menu choice the search will include the whole pathname or be confined to the leafname. The search ignores case. Any matching objects are highlighted and their Menus fully opened. At the end of the search a beep sounds if the string is found or a buzz if not.

If, having placed an object in a Menu, you subsequently move, delete or rename that object, then MenuBar will be unable to locate it. In this case the drag icon will be replaced by a red cross. If you subsequently re-launch MenuBar then the file icon will also be replaced by a red cross. Executing such an object produces a warning buzz.

Object not found

If, having placed an object in a Menu, you subsequently move, delete or rename that object, then MenuBar will be unable to locate it. In this case the drag icon will be replaced by a red cross. If you subsequently re-launch MenuBar then the file icon will also be replaced by a red cross. Executing such an object produces a warning buzz.

Disc not found

In the unlikely event of a disc not being found, perhaps because you have included an object which resides on an absent floppy disc, or renamed your hard disc and not stripped the HD4 name from the data file, then the Filer will issue a 'Please insert disc...' message. Respond by either inserting the disc or pressing 'Cancel'. In the latter case MenuBar will offer you the option of re-loading the previous Bar or quitting. This is to prevent a situation where the Filer could issue a 'Disc not found...' message for every single object on the Bar.

Open Filer Window

To open the Filer window of the directory containing a Menu object, click the menu button on it and slide off the object name. Then choose 'Open Parent'.

Launch Applications and load data file simultaneously

When you double-click on a file, MenuBar broadcasts a message to all active tasks to see whether any of them wishes to load it. For example, double-clicking on a Sprite file will probably load it into Paint. If Paint is not active, then it will be installed before the data is loaded. Sometimes, however, you may want to load the file into a different Application, for example, into Ovation.

You can achieve this with MenuBar by holding down Alt and dragging a suitable file to an Application on a Menu. The file may be dragged from another Menu or from a Filer window.

Note that this feature depends on MenuBar being able to identify the task name (as displayed in the task window) from the application's filename. Normally these are the same, but if not (for example a taskname has a space in it or is longer than 10 characters) then Alt-dragging will not work as intended. To overcome this, each time MenuBar is launched it looks in its application directory for a file called AppNames and builds a name translation table. By editing this textfile you can add items to the names translation table, up to a maximum of 30 names. The format is


Note also that before the Risc PC (RO 3.5), the name in the task manager had a maximum of 19 characters, eg Publisher would be 'Impression Publishe', but from the Risc PC onwards the name can be longer (ie 'Impression Publisher'). This AppNames file is currently set up for use on a Risc PC.


Add Menus

Choose 'Bar - Add Menu' and an empty menu will be added at the right of the Menu Bar. The Bar is re-centred. If you have already added the maximum number of Menus, this option is greyed out.

Scroll Menus

If the screen is too small for all the Menus to fit then the whole Bar can be scrolled by holding down Ctrl and moving the pointer to the extreme left or right of the Bar. Alternatively, you can use the left or right cursor keys if MenuBar has the input focus.

Open/Close/Front/Back Menus

Menus may be opened, closed, moved to the front or moved to the back in a variety of ways. The operation may be applied to the whole Menu Bar or just a single Menu.

Whole Bar: The simplest method is to click on the button with Select+Shift to open the Bar and Select+Adjust to close it. Select+Ctrl brings the Bar to the front and Adjust+Ctrl sends it to the back. Alternatively, from the menu choose 'Menu - Alter' followed by 'Open', 'Close', 'Front' or 'Back'. If MenuBar has the input focus the same results can be achieved by Ctrl+O, Ctrl+C, Ctrl+F, or Ctrl+B. The first method is probably the best since it is not necessary for MenuBar to have the input focus. A quick way to send the Bar to the back if it is obscuring a window's title bar is to click menu with the pointer at the very top of the screen.

Single menu: A single Menu may be opened by double-clicking Select on its handle, or closed by double-clicking Adjust. Or you can simply drag the handle. In case the handle is obscured, you can also drag the Menu by placing the pointer close to its right-hand edge. Clicking Select on a Menu's handle (or on its extreme right edge) brings it to the front. Alternatively, from the menu choose 'Bar - Alter' followed by 'Open', or 'Close'. If MenuBar has the input focus the same results can be achieved by Shift+O, or Shift+C.

Name Menus

Each Menu can be given a more meaningful name. Click the menu button on the appropriate Menu and slide off the Menu name. Then slide off the 'Rename' item on the submenu to reveal a writable icon where you can edit the existing name, using up to twelve characters.

Remove Menus

Choose 'Remove Menu' from the appropriate menu and the Menu will be removed from the Bar. Any gaps are closed and the Menu Bar is re-centred. After saving, only those Menus which remain will be loaded on the next occasion. It is not possible to remove the last Menu.

Move Menus

To reposition a Menu on the Bar, hold down Alt and drag the source Menu handle, dropping the drag icon on the destination Menu. Any intermediate Menus are shunted along to make space. In case the handle is obscured, you can also drag the Menu by doing an Alt-drag starting with the pointer close to the its right-hand edge.

Save Menus

Choose 'Bar - Save', and a data file and text file are saved in sub-directories within the 'User' directory. The text file is a readable listing of the pathnames of all the objects in each Menu - very useful if you ever need to re-create your Menus.

Sort Menus

You can sort objects by name or by type, for all Menus or just one, by clicking the menu button and making the appropriate choice. As with the Filer, sorting by name is alphabetical and sorting by type is in the order directories-applications-files. You can set an option in 'Choices' to sort automatically when an object is added. Alternatively, you can arrange the objects in any order you choose by dragging (see 'Move object').

Sprites in menus

If your Menus include applications which have not been seen by the Filer, the generic Application sprite will be shown. This does not affect the operation of MenuBar, but it is more attractive to display the applications' own icons. There are several ways of doing this.

For a single object double-clicking or clicking-and-holding (ie starting a drag) performs a Filer_Boot on the application to display the correct sprite.

For a whole Menu, the same result may be obtained by choosing 'Menu - FilerBoot', and for the whole Bar by choosing 'Bar - FilerBoot'. Note that the FilerBoot operation, which can be quite lengthy, may be aborted by pressing Escape.

However, the best method is to save the required sprites by choosing 'Sprites - Save' from the button menu. Before you do this you must first perform a FilerBoot on the whole Bar (indeed every Bar if you have more than one - see the section on Library). This places the required sprites in the Wimp Pool. 'Sprites - Save' does a selective save, keeping only the required sprites and discarding the large version when a small one exists. It thus keeps the extra storage requirements to a minimum.

When MenuBar is next launched, the Sprites file (which is located in the User directory) is merged into the Wimp Pool so the correct sprites are shown in the Menus. This is very fast provided the Wimp Pool is not already fairly full, which is a good reason for launching MenuBar in your Boot sequence. You can force the Sprites file to load at any time by choosing 'Sprites - Load' but this will not normally be necessary.

Once you have created the Sprites file all you need do when you add other applications which show a generic icon sprite is to click and hold to get the correct sprite then do a 'Sprites - Save'.

Other features

System Variables

System variables are used to store various pieces of information which affect the way the computer works. For example, a system variable can tell the computer which application should load a particular type of file; another contains details of the date format. A set of default system variables is present when the computer is first turned on, but the list is added to by many applications, typically when their !Boot file is run.

Double-clicking a file which does not have an appropriate system variable set results in the common error message 'An application that loads a file of this type has not been seen by the Filer...'.

MenuBar provides a way of saving and re-loading all current system variables. Before saving the system variables for the first time you should perform a FilerBoot on the whole Bar (every Bar if you have more than one) to set the required system variables. Then choose 'SysVars - Save' from the button menu. This saves an Obey file 'SysVars' in the User directory and when MenuBar is next launched this file is automatically run, thus overcoming problems such as the one mentioned above.

You must be a careful with System variables. For example, if your SysVars file included a variable such as:


which at the time of saving had a value of:


and you subsequently upgrade Ovation Pro, placing the files in a new directory called:


then the OLD directory will still be searched for the files. For this reason, you can inspect MenuBar's SysVar file by choosing 'Show' from the menu, and you can also disable the automatic running of the SysVars file by setting an option in the Choices window (see Section 10).

To update the SysVars file you can either re-save it from the menu, or (if you know what you are doing) amend it by hand. The file may be re-loaded from the menu.


'Choices' is available from the button menu and leads to a window in which you can choose colours and other options.

To change the colours first select the colour you want by clicking on the palette. The currently-selected colour is shown below the palette. Then click on the appropriate place in the small replica of MenuBar below the palette. You can set the background/foreground of the Menu and its handle, and (separately) the foreground colour of an empty menu. Note that each Bar can have its own colours.

Automatic sorting, either by name or by type may be set and causes the menu items to be sorted each time an object is added.

You may set MenuBar's drag sprite to be either solid or dithered.

You can choose whether or not the saved Sprites and SysVars should be actioned when MenuBar is run. Changing either of these options only applies the next time MenuBar is run. If the files have already been actioned, and you wish to prevent them from being run next time, you will need to re-boot to clear the current state.

Click 'Set' to activate any changes with immediate effect or 'Save' to save the settings in a Choices file for future use. 'Cancel' closes the window leaving the previous settings intact. Clicking on Choices from the top level menu opens the window and closes the menu so that the dialogue box remains in place until you explicitly close it by clicking on one of the action buttons.


Up to 30 separate Bars may be created and saved in a Library for loading as required. The Library is controlled from the button menu. Sliding off 'Library' opens a sub menu listing all the available Bars, with the active one shown in red. Below this, in grey, is a count of the number of actual and maximum Bars. This is followed by the remaining two entries - 'Open Lib.' and 'Create'.

To create a Bar slide off 'Create', enter a name for the new Bar, and click Select. A new Bar will appear with five empty Menus, and you build the new Menu Bar as described in Section 4.

By sliding off the name of any Bar you open a sub-menu with five items:

'Load' replaces the active Bar with the new one. A warning is issued if the active Bar contains unsaved data. A quick way to load a Bar is to click on its name in the menu.

'Default' establishes the active Bar as the default, so that it is loaded when MenuBar is launched. The default Bar is ticked. Choosing the default name again de-selects it. If no default Bar is selected then a NewBar is offered on start-up.

'Delete' prompts for confirmation then deletes the Bar from the disc. Note that if you delete the current Bar, it remains 'active' in memory (and can be re-saved) until it is replaced by another Bar.

'Rename' changes the Bar name.

'Copy as' copies a Bar under a new name for further editing, which may be quicker than creating a new Bar.

Finally, you can open the User directory by clicking on 'Open Lib.' where you will see the data and text files stored in separate sub-directories. A text file 'Default' records the name of the default Bar, if any. If you need to force MenuBar to re-read the library data you can achieve this by clicking on 'Library' in the menu.

Once you have established a number of bars you can quickly change between them by clicking with Adjust on the button. This brings up a simplified 'Bars' menu from which you may choose a new bar.


With schools in mind, it is possible to protect each Bar with a password. The idea is that the teacher retains control of a separate Password application, secretly entering each child's chosen password, after which it is not possible to open the Bar without typing in the correct password.

In the 'Utils' directory is an application called '!Password'. Running this installs its icon on the icon bar and opens its window. Just drag the '....User.Data' directory on to the application and all the Bar names are displayed. You can now enter a password for each Bar and click the option button to make it active. Clicking on 'Save' encrypts the data files with the password. Passwords can be changed or rendered inactive by the same process.

Now, when you try to load a protected Bar a window pops up prompting for the password. If an incorrect password is entered a buzz sounds, and the user is forced to click on 'Cancel'. Note that passwords are case-sensitive.

Data conversion

In the 'Utils' directory is an application called '!Convert', which changes MenuBar text files to data files, and vice-versa. You will not normally need to use this but it could be invaluable if by some mischance a data file is lost or corrupted. Providing you still have the corresponding text file you can re-create the data file.

Running the program installs its icon on the icon bar and opens its window. Locate the source file in the 'User' directory and drag it onto the application. The message shows 'Text-to-Data' or 'Data-to-Text' as appropriate, and the save icon becomes type Data or type Text. Drag the save icon to the appropriate sub-directory in the 'User' directory, click on 'Library', and it will appear on the Library menu.


Note that copying is interactive if this is configured (use the RISC OS !Configure), and that the options (Confirm etc.) will be according to your settings. Also note that solid sprite dragging applies if your CMOS is appropriately configured (ie. bit 1 of byte 28 is set); otherwise 'rotating boxes' apply. A separate utility 'SolidDrag' is included in the 'Utils' directory to simplify the setting/unsetting of solid sprite dragging.

A summary of the shortcuts may be obtained by choosing 'Help...' from the button menu.

You are prevented from inadvertently running more than one copy of MenuBar at the same time.

MenuBar's own error/message window may be dragged with Select or Adjust when the pointer is on the body of the window.

There is a Public Domain program called !LongFiles by Jason Tribbeck which allows filenames of up to 55 characters to be created. MenuBar is compatible with this utility, though naturally the filenames are truncated to fit into the Menus.

Clicking Adjust on the button loses the input focus. This is useful to allow other tasks to process 'hot keys'.