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
- Curses
- Curses::Widgets
- Curses::Widgets::ListBox
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 keystrokesFOREGROUND undef Default foreground colourBACKGROUND 'black' Default background colourFOCUSSWITCH "\t" Characters which signify end of inputMENUS {} Menu structureCURSORPOS '' Current position of the cursorBORDER 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 ([email protected])