Troubleshooters.Com Presents

The Universal Menu System (umenu) Open Source Project

Project ToDo List

 > < ^

Copyright (C) 2001, 2004 by Steve Litt

User Functionality Improvements

From the user point of view, Umenu's menuing capabilities are quite complete. But as used over the past 18 months, several features have surfaced that "would be nice":
  1. Default Choices
  2. Ability to show command to be executed

Default Choices

This concerns what happens if you press the Enter key. Which choice will be executed? This is very helpful in two situations:
  1. Long, drawn out procedures such as compiles
  2. Using the menu system for educational purposes
About a year ago we released a set of menu definition files that walk the user through compiling a kernel. One reported problem was that in the course of a 15 minute compile, the user forgot which step he had just done. It would have been nice to have the next choice to be executed marked on the screen, and having the Enter key execute that choice.

This feature would also allow the user to learn procedures. As the user repeats the procedure, he sees the steps in order. Combined with the desired new feature to show the command to be executed, this could become entirely educational.

Anticipated User Interface

When a menu is descended to, a specific single item on that menu is the default, and is so marked, probably with an asterisk immediately to its left (in which case any ellipses would be to the left of the asterisk). The location and mark is open to discussion. That command can be executed either with its letter, or by pressing the Enter key.

When the user chooses any choice, either with a letter or with the Enter key, that choice's "next choice" property defines the next default choice. The menu itself has a default choice, which is invoked when the menu is descended into. However, when the menu is ascended to via a submenu, that submenu choice's "next choice" property defines the new default choice.

Anticipated Implementation

A new letter, N, will be legal in column 1 of A new letter, N, will be legal in column 1 of the menu definition file. If that N is below a choice letter (L)  it defines that choice's "next choice" property. If that N is above the first choice letter (L) in the file, it defines the default choice when the menu is descended into. For each invocation of Umenu, a record of the menu stack is recorded in a uniquely named file. This enables Umenu to properly assign a next choice after returning from a submenu.

The use of such files is somewhat resource intensive. If anyone can think of another method to "remember" the previous choice, at any level, of every invocation of Umenu, without using files or recursion, please contact either Steve Litt.

Code will be written to recognize the press of the Enter key, and select the current default choice.

Ability to show command to be executed

This would be a very nice learning tool. We'd anticipate that some keystroke or sequential keystroke combination would print the command to be executed to stdout, and then upon another keystroke return to the menu. Alternatively, Umenu could have a print mode and a do mode, or possibly when in print mode a confirmation as to whether to do.

We need feedback on this feature.

Translatable Choice commands

Wouldn't it be nice if pressing the "Clear Screen" choice on a DOS box would issue the command "cls", while the same command on a UNIX box would issue the command "reset;clear"? By mapping certain commands usable within the choice's command string to OS specific commands, this could be done. It is anticipated that doing this within the framework of the Umenu manifesto would be difficult, so rather than putting this in version 0.6, we will make sure that nothing in version 0.6 hinders our ability to add this feature later. In other words, all hooks for this feature must go in 0.6.


 > < ^

Copyright (C) 2001, 2004 by Steve Litt