table of contents
        
      
      
    | Widgets::Menu(3) | User Contributed Perl Documentation | Widgets::Menu(3) | 
NAME¶
Curses::Widgets::Menu - Menu Widgets
MODULE VERSION¶
$Id: Menu.pm,v 1.103 2002/11/14 01:26:34 corliss Exp corliss $
SYNOPSIS¶
  use Curses::Widgets::Menu;
  $menu = Curses::Widgets::Menu->new({
    COLUMNS     => 10,
    INPUTFUNC   => \&scankey,
    FOREGROUND  => undef,
    BACKGROUND  => 'black',
    FOCUSSWITCH => "\t",
    X           => 1,
    Y           => 1,
    MENUS       => {
      MENUORDER => [qw(File)],
      File => {
        ITEMORDER => [qw(Save Quit)],
        Save      => \&Save,
        Quit      => \&Quit,
      },
    CURSORPOS   => 'File',
    BORDER      => 1,
    });
  $menu->draw($mwh, 1);
  $menu->execute;
  See the Curses::Widgets pod for other methods.
REQUIREMENTS¶
DESCRIPTION¶
Curses::Widgets::Menu provides simplified OO access to menus. Each item in a menu can be tied to a subroutine reference which is called when selected.
METHODS¶
new (inherited from Curses::Widgets)¶
  $menu = Curses::Widgets::Menu->new({
    INPUTFUNC   => \&scankey,
    FOREGROUND  => undef,
    BACKGROUND  => 'black',
    FOCUSSWITCH => "\t",
    MENUS       => {
      MENUORDER => [qw(File)],
      File      => {
        ITEMORDER => [qw(Save Quit)],
        Save      => \&Save,
        Quit      => \&Quit,
      },
    CURSORPOS   => 'File',
    BORDER      => 1,
    });
The new method instantiates a new Menu object. The only mandatory key/value pairs in the configuration hash are X and Y. All others have the following defaults:
  Key           Default  Description
  ============================================================
  INPUTFUNC   \&scankey  Function to use to scan for keystrokes
  FOREGROUND      undef  Default foreground colour
  BACKGROUND    'black'  Default background colour
  FOCUSSWITCH      "\t"  Characters which signify end of input
  MENUS              {}  Menu structure
  CURSORPOS          ''  Current position of the cursor
  BORDER              0  Avoid window borders
The MENUS option is a hash of hashes, with each hash a separate menu, and the constituent hashes being a Entry/Function pairs. Each hash requires a special key/value pair that determines the order of the items when displayed. Each item is separated by two spaces.
draw¶
$menu->draw($mwh, 1);
The draw method renders the menu in its current state. This requires a valid handle to a curses window in which it will render itself. The optional second argument, if true, will cause the selection cursor to be rendered as well.
popup¶
$menu->popup;
This method causes the menu to be displayed. Since, theoretically, the menu should never be seen unless it's being actively used, we will always assume that we need to draw a cursor on the list as well.
execute¶
$menu->execute;
This method acts like the standard Curses::Widgets method of the same name, with the exception being that selection of any menu item will also cause it to exit (having already called the associated item subroutine).
HISTORY¶
- 2002/10/17 -- First implementation
 
AUTHOR/COPYRIGHT¶
(c) 2001 Arthur Corliss (corliss@digitalmages.com)
| 2012-06-06 | perl v5.26.1 |