1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
|
This example presents a simple hierarchical menu interpreter.
Each menu and submenu are in a file suffixed by .mnu and is constituted
by directives and menu entries/preudo-entries. Each of them are in its
proper line.
Comment lines are allowed and are introduced by a '#' in the first column
The directives are:
.columns: Set the number of columns in the menu
.centered: Tell if the menu must be centered
.eraseafter: Tell if the menu window must be destroyed after the selection
and the old cursor location restored.
.title: Set the menu tittle.
The item lines has at least two fields: a tag and a menu item which will
be displayed.
The tag is normally the returned value when an item is selected but may
also be part of a pseudo-entry.
These special tags are:
>xxx : Loads the submenu file xxx.mnu and interprets it.
< : Reload the previous menu file and interprets it
--- : Inserts an empty item in the menu
=== : Inserts an empty line in the menu (useful when there is more than
1 column)
EXIT : Exits the menu without outputting anything.
As usual, 'ENTER' triggers the selection and 'q' quits the menu without
outputting anything.
To launch the demo, first, make sure to make simple_menu.sh executable
(chmod +x simple_menu.sh actions.sh) and enter:
./simple_menu.sh main.mnu ./actions.sh
The first argument is the main menu file and the second one is the path
of the program which will be called each time a selection is made. This
program will be given the selected tag as argument.
|