=head1 NAME
cshmen, xamen - Basic menu application in curses or perl/Tk
=head1 SYNOPSYS
# cshmen [-?] [-a] [-e] [-d] [-v] [-n] [-m dir] [menu]
# xamen [-?] [-a] [-e] [-d] [-v] [-n] [-m dir] [menu]
=head1 DESCRIPTION
cshmen is a low level recursive menu program using curses.
xamen is the perl/Tk translation for cshmen
=head1 INSTALLATION
As this was built for internal use only, there are no serious
attempts yet made to create a working environment for building
and installing.
$ make
Should build cshmen in the current folder. You might need to
change #include <curses.h> to #include <ncurses.h> and maybe
some lines in the Makefile too.
=head1 DOCUMENTATION
This is seriously missing in this dist, as the only available
documentation is written in Uniplex. In Dutch. Both pretty
useless for the OpenSource community.
=head1 Menu format
=head2 The menu files
A menu file consists of menu lines. Each line looks like
ID:MenuText:Command:State[:HelpFile]
=over 4
=item ID
Two ID's are required: "H" for Header, and "Q" for Footer. In these
two cases, the State is ignored (but still required).
The H-line will be used to display the menu title. The command may
optionally define a different environment for this menu (and all
the descendants).
The Q-line will be shown on the last line and is a placeholder for
the <Back> action. Text is shown, but Command is ignored.
For all the other lines ID denotes the line to display this item
on, optionally followed by a letter to use instead (default is the
line number). Lines 10 though 16 are indicated by 'A' through 'F'.
H:Home menu ::1
1:Text for line 1:echo line 1:1
3=F:Fortune :fortune:2
B:Test menu :M test_menu:1
Q:Stop ::1
=item MenuText
Free text to show in the menu. The colon is forbidden. and the
underscores are translated to space.
=item Command
The command to be invoked
A command can be a series of commands seperated by ' ; '. Whitespace
matters. Each command can have optional command line arguments,
redirection and a execution folder. Arguments can be questions.
Commands that start with 'M ' call a menu. No ' ; ' allowed. If you
*do* have a command 'M', use 'env'.
proc @Directory 1>/tmp/proc-1.log 2>>/tmp/proc-2.log -
?0QuestText[,[DefaultValue][,[Prefix][,[Options][,[HelpFile]]]]
=item State
0 = Not shown (hidden). Item cannot be selected
1 = Normal, active
2 = Normal, but wait after execution finishes with a user prompt
=item HelpFile
Optional help description for this item
=back
=head1 TODO
* Documentation: pod, manual page or serious readme. NO info!
* A better Makefile
* Some sort of install procedure
* example menu's
* See top of xamen
=head1 AUTHOR
H.Merijn Brand, <h.m.brand@procura.nl>
=head1 COPYRIGHT AND LICENSE
Copyright (C) 1986-2006 H.Merijn Brand, PROCURA B.V.
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
=cut