Path: usenet.cise.ufl.edu!barley.lw.net!news.icix.net!news-w.ans.net!newsfeeds.ans.net!feeder.chicago.cic.net!ddsw1!news.mcs.net!hammer.uoregon.edu!arclight.uoregon.edu!newsfeeds.sol.net!hunter.premier.net!uunet!in2.uu.net!192.108.254.3!news.teleport.com!not-for-mail
From: skunz@iastate.edu (Steven L. Kunz)
Newsgroups: comp.lang.perl.announce,comp.lang.perl.modules
Subject: ANNOUNCE: PerlMenu version 4.0
Followup-To: comp.lang.perl.modules
Date: 21 Feb 1997 18:26:10 GMT
Organization: Iowa State University, Ames, Iowa, USA
Lines: 237
Sender: news-merlyn@gadget.cscaper.com
Approved: merlyn@stonehenge.com (comp.lang.perl.announce)
Message-ID: <5ekpc2$n0l$1@nadine.teleport.com>
NNTP-Posting-Host: gadget.cscaper.com
X-Disclaimer: The "Approved" header verifies header information for article transmission and does not imply approval of content.
Xref: usenet.cise.ufl.edu comp.lang.perl.announce:107 comp.lang.perl.modules:1827

----------------------------------
Announcing PerlMenu Version 4.0
----------------------------------

  This is the official announcement of the release of the latest PerlMenu
  package, version 4.0.  Version 4.0 is a release that incorporates several
  new features and bug-fixes. 

  This package has been tested with both Perl5/Curses and Perl4/curseperl.
  For this first time PerlMenu is distributed as a "perlmenu.pm" module
  (a converter is supplied to generate a Perl4-style "menu.pl" module).

--------
Overview
--------

  The "PerlMenu" package is a Perl5 package (built into your Perl program
  with a "use perlmenu;" command) that automates curses-based full screen
  menus and data entry.  A "menu.pl" module can be generated to function
  under Perl4/curseperl (or existing "menu.pl" Perl5 applications).

  Using three simple calls, any number of items may be selected from a
  single or multiple-page menu by moving an arrow to the desired item (or
  directly entering the selection number displayed on the screen).  In
  addition to simple "single one-shot selection menus", "radio button" style
  menus and "multiple-item-selection" menus are provided.  Paging through
  multiple-page menus is handled automatically.  Menu titles, sub-titles,
  prompts, "single column", and "multiple column" menus are supported.

  Using two simple calls a full-screen data entry template may be loaded
  and a fully-titled data entry input screen may be created.  Defaults,
  maximum field lengths, and numeric-only data are supported.

  The "perlmenu.pm" package uses curses interface routine calls supplied by
  the Curses extension for Perl5 (you should be running AT LEAST Perl
  5.001).  A "menu.pl" package can be created which uses curses interface
  routine calls supplied by the "curseperl" package for Perl4.  All
  functions and features are identical whether you are using Perl4 or Perl5. 

------------------------------
Compatibility and New Features
------------------------------

  For the first time, this version is distributed as a Perl5-style
  "perlmenu.pm" module.
  
  A program is provided in the distribution kit to convert "perlmenu.pm" to
  a Perl4-style "menu.pl" module.  For current Perl4 or Perl5 "menu.pl
  version 3.x" users, the resulting "menu.pl" module is call-compatible with
  older versions (you need not modify your existing source unless you want
  to take advantage of the new features).

  For current Perl5 users wishing to convert to use the new "perlmenu.pm"
  module, conversion is usually as simple as replacing your 'require
  "menu.pl";' statements with "use perlmenu;" statements.  You may want
  to modify your source to take advantage of the new features.

  Changes between perlmenu.pm version 4.0 and menu.pl version 3.3:

  - Converted to Perl5-style "perlmenu.pm" module.  A program (create_menu.pl)
    is included to convert this module to the old Perl4-style "menu.pl" module
    for legacy applications and Perl4+curseperl users.  All old PerlMenu
    programs should run without changes using this new "menu.pl" module.
    Conversion to use "perlmenu.pm" under Perl5 should only require changing
    "require" to a "use".
  - Added multiple-column menu support (requested by many people).
    Single call to "menu_prefs" converts all menus to "multiple column"
    selections.  No changes to existing menu construction routines in old
    code required.  Automatically scales and computes proper number of
    columns based on length of longest selection text.
  - Added a "highlighted" selection cursor preference.  Previous versions only
    displayed the selection cursor with a "->" in front of the item.  A new
    preference setting removes the "->" and highlights the selection text
    (in reverse video on most systems).  Single call to "menu_prefs" converts
    all menus to "highlighted" selections.
  - Expanded the main "demo" program to enable switching between single and
    multiple column menus, arrowed or highlighted selection cursor, numbered
    and unnumbered menus.
  - Split out (and rewrote) the installation instructions into a new file
    called "INSTALLATION".  Included a new "install_hints.pl" program (for
    Perl5+Curses users) which tries to figure out what tweeks you may need to
    make it work on your system.
  - Made appropriate changes to all other documentation as appropriate for the
    new features.
  - Added a new "FAQ" document.
  - Fixed a bug in that relates to typing an item selection number that is
    greater than the last item in the menu.  Previously it dropped the
    selection arrow to the last item but crashed when you pressed "return".
    Now it "beeps" (to indicate an invalid selection).  Thanks to Jay Fowler
    (CSU-Fresno, USA) for pointing this out.
  - Fixed bug in demo scripts.  Previous versions were missing some calls to
    "endwin" prior to every "exit", which meant the original terminal
    environment was not restored (leaving the terminal in "raw" mode, etc.).
    Thanks to Warren Jones (Fluke Corporation, Everett, WA, USA) for the
    bug report and patches.
  - Added comment for HP-UX 9.05 terminfo/tput users in perlmenu.pm ("tput kent"
    does not work on these systems, use "tput cr").  Thanks to Stuart Poulin
    (Applied Microsystems Corporation, Redmond, WA, USA) for supplying this
    info. 

------------------------------------
The Official PerlMenu WWW home page:
------------------------------------

  The official PerlMenu WWW home page (maintained by the author) is at:

      http://www.cc.iastate.edu/perlmenu/

----------------------------
Official Distribution Points
----------------------------

  The PerlMenu package is distributed via "CPAN" (the "Comprehensive Perl 
  Archive Network").  Pick a CPAN site near you with a WWW browser pointed
  at "http://www.perl.com/perl/CPAN/CPAN.html" and go into the
  "authors/Steven_L_Kunz" folder.  You should find "perlmenu.v4.0.tar.Z" in
  there.

  The author's official distribution is also available via anonymous FTP
  from: 

      ftp://ftp.iastate.edu/pub/perl/perlmenu.v4.0.tar.Z

  New releases are announced in the Usenet newsgroups
  "comp.lang.perl.announce" and "comp.lang.perl.modules".  

----------------------
Distribution Contents
----------------------

This is "perlmenu.pm" - a set of perl routines that will perform full screen
menu functions using Perl5+Curses.  What you should have after unpacking
this package is the following:  

  ARTISTIC          Artistic License

  COPYING           Library GNU Public License

  FAQ               Frequently Asked Questions

  INSTALLATION      Guide to installing PerlMenus

  MENU_DOC          A user's guide to the perlmenu.pm routines.

  MENU_DOC          A user's guide to the menuutil.pl routines.

  README            (this file)

  RELEASE_NOTES     Differences between this version and previous versions.

  TO_DO             List of things on my "to do" sheet.

  create_menu.pl    Create a Perl4-style "menu.pl" module from the
                    Perl5-style "perlmenu.pm" module.  Used for legacy
                    applications under Perl4 or Perl5. 

  demo              A simple menu demo showing all several types of menu
                    selection capabilities (simple single-page, simple
                    multiple-page, radio-button, and multiple-selection). 

  demo_getstr       A simple menu demo using the "menu_getstr" routine.

  demo_template     A demo using the "menu_load_template" and
                    "menu_display_template" routines.

  demo_top          A simple menu demo with "top" menus.

  demo_util         A simple demo of the routines in "menuutil.pl".

  ezpasswd          A more involved demo showing how menu_getstr, menuutil.pl,
                    and templates can be used to display full-screen formatted
                    entries from a BSD-style /etc/password file.

  ezreg             A more involved demo showing how menu template routines 
                    can be used in a full-screen user registration panel
                    that a multiple required fields. 

  ezview            A more involved demo showing how menus can be used to call
                    routines, select files, etc.

  install_hints.pl  A small Perl5 program that helps you decide how to tweek
                    "perlmenu.pm" for use on your system (with your flavor
                    of termcap or terminfo).

  perlmenu.pm       The PerlMenu subroutines in a Perl5-style package (usually 
                    placed somewhere like /usr/local/lib/perl/perlmenu.pm). 
                    See also "create_menu.pl". 

  menuutil.pl       Some curses subroutines useful in constructing curseperl
                    transactions which use "perlmenu.pm".  These are purely
                    optional and are not needed for using PerlMenus
                    ("perlmenu.pm").  Shows some examples of "curses" 
                    programming techniques. 

  paint_text        A sample file used by "demo" to display bottom-titles
                    loaded from a file.

  template_data     A sample full-screen input template used by "demo_template"
                    to input name/address/phone data records.

  template_ezp      The display template used by ezpasswd.

  template_reg      The display template used by ezreg.

-------
License
-------

PerlMenu - Perl library module for curses-based menus & data-entry templates
Copyright (C) 1992-97  Iowa State University Computation Center                        Ames, Iowa  (USA)

   This Perl library module is free software; you can redistribute it
   and/or modify it under the terms of the GNU Library General Public
   License (as published by the Free Software Foundation) or the
   Artistic License.

   This library 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
   Library General Public License for more details.

   You should have received a copy of the GNU Library General Public
   License along with this library; if not, write to the Free
   Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

---
Steven L. Kunz
Networked Applications
Iowa State University Computation Center, Iowa State University, Ames  IA
Email: skunz@iastate.edu
-- 
Steven L. Kunz
Networked Applications  --  Project Manager, Microcomputer Networked Services
Iowa State University Computation Center, Iowa State University, Ames, Iowa
E-mail: skunz@iastate.edu


