.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings.  \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
.    ds -- \(*W-
.    ds PI pi
.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
.    ds L" ""
.    ds R" ""
.    ds C` ""
.    ds C' ""
'br\}
.el\{\
.    ds -- \|\(em\|
.    ds PI \(*p
.    ds L" ``
.    ds R" ''
.    ds C`
.    ds C'
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el       .ds Aq '
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD.  Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.\"
.\" Avoid warning from groff about undefined register 'F'.
.de IX
..
.nr rF 0
.if \n(.g .if rF .nr rF 1
.if (\n(rF:(\n(.g==0)) \{
.    if \nF \{
.        de IX
.        tm Index:\\$1\t\\n%\t"\\$2"
..
.        if !\nF==2 \{
.            nr % 0
.            nr F 2
.        \}
.    \}
.\}
.rr rF
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear.  Run.  Save yourself.  No user-serviceable parts.
.    \" fudge factors for nroff and troff
.if n \{\
.    ds #H 0
.    ds #V .8m
.    ds #F .3m
.    ds #[ \f1
.    ds #] \fP
.\}
.if t \{\
.    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
.    ds #V .6m
.    ds #F 0
.    ds #[ \&
.    ds #] \&
.\}
.    \" simple accents for nroff and troff
.if n \{\
.    ds ' \&
.    ds ` \&
.    ds ^ \&
.    ds , \&
.    ds ~ ~
.    ds /
.\}
.if t \{\
.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
.    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
.    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
.    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
.    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
.    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
.    \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
.    \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
.    \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
.    ds : e
.    ds 8 ss
.    ds o a
.    ds d- d\h'-1'\(ga
.    ds D- D\h'-1'\(hy
.    ds th \o'bp'
.    ds Th \o'LP'
.    ds ae ae
.    ds Ae AE
.\}
.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "Curses::UI::Popupmenu 3"
.TH Curses::UI::Popupmenu 3 "2011-09-01" "perl v5.16.3" "User Contributed Perl Documentation"
.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NAME"
Curses::UI::Popupmenu \- Create and manipulate popupbox widgets
.SH "CLASS HIERARCHY"
.IX Header "CLASS HIERARCHY"
.Vb 3
\& Curses::UI::Widget
\&    |
\&    +\-\-\-\-Curses::UI::Popupmenu
.Ve
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
.Vb 3
\&    use Curses::UI;
\&    my $cui = new Curses::UI;
\&    my $win = $cui\->add(\*(Aqwindow_id\*(Aq, \*(AqWindow\*(Aq);
\&
\&    my $popupbox = $win\->add(
\&        \*(Aqmypopupbox\*(Aq, \*(AqPopupmenu\*(Aq,
\&        \-values    => [1, 2, 3],
\&        \-labels    => { 1 => \*(AqOne\*(Aq, 
\&                        2 => \*(AqTwo\*(Aq, 
\&                        3 => \*(AqThree\*(Aq },
\&    );
\&
\&    $popupbox\->focus();
\&    my $value = $popupbox\->get();
.Ve
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
Curses::UI::Popupmenu is a widget that can be used to create 
something very similar to a basic Curses::UI::Listbox.
The difference is that the widget will show only the
currently selected value (or \*(L"\-\-\-\-\-\-\-\*(R" if no value is yet
selected). The list of possible values will be shown as a 
separate popup window if requested.
.PP
Normally the widget will look something like this:
.PP
.Vb 1
\& [Current value ]
.Ve
.PP
If the popup window is opened, it looks something like this:
.PP
.Vb 6
\& [Current value ]
\& +\-\-\-\-\-\-\-\-\-\-\-\-\-\-+
\& |Other value   |
\& |Current value | 
\& |Third value   |
\& +\-\-\-\-\-\-\-\-\-\-\-\-\-\-+
.Ve
.SH "STANDARD OPTIONS"
.IX Header "STANDARD OPTIONS"
\&\fB\-parent\fR, \fB\-x\fR, \fB\-y\fR, \fB\-width\fR, \fB\-height\fR, 
\&\fB\-pad\fR, \fB\-padleft\fR, \fB\-padright\fR, \fB\-padtop\fR, \fB\-padbottom\fR,
\&\fB\-ipad\fR, \fB\-ipadleft\fR, \fB\-ipadright\fR, \fB\-ipadtop\fR, \fB\-ipadbottom\fR,
\&\fB\-title\fR, \fB\-titlefullwidth\fR, \fB\-titlereverse\fR, \fB\-onfocus\fR,
\&\fB\-onblur\fR
.PP
For an explanation of these standard options, see 
Curses::UI::Widget.
.SH "WIDGET-SPECIFIC OPTIONS"
.IX Header "WIDGET-SPECIFIC OPTIONS"
.IP "\(bu" 4
\&\fB\-values\fR < \s-1LIST \s0>
.IP "\(bu" 4
\&\fB\-labels\fR < \s-1HASHREF \s0>
.IP "\(bu" 4
\&\fB\-selected\fR < \s-1INDEX \s0>
.IP "\(bu" 4
\&\fB\-wraparound\fR < \s-1BOOLEAN \s0>
.Sp
These options are exactly the same as the options for
the Listbox widget. So for an explanation of these,
take a look at Curses::UI::Listbox.
.IP "\(bu" 4
\&\fB\-onchange\fR < \s-1CODEREF \s0>
.Sp
This sets the onChange event handler for the popupmenu widget.
If a new item is selected, the code in \s-1CODEREF\s0 will be executed.
It will get the widget reference as its argument.
.SH "METHODS"
.IX Header "METHODS"
.IP "\(bu" 4
\&\fBnew\fR ( \s-1OPTIONS \s0)
.IP "\(bu" 4
\&\fBlayout\fR ( )
.IP "\(bu" 4
\&\fBdraw\fR ( \s-1BOOLEAN \s0)
.IP "\(bu" 4
\&\fBintellidraw\fR ( )
.IP "\(bu" 4
\&\fBfocus\fR ( )
.IP "\(bu" 4
\&\fBonFocus\fR ( \s-1CODEREF \s0)
.IP "\(bu" 4
\&\fBonBlur\fR ( \s-1CODEREF \s0)
.Sp
These are standard methods. See Curses::UI::Widget 
for an explanation of these.
.IP "\(bu" 4
\&\fBget\fR ( )
.Sp
This method will return the currently selected value.
.IP "\(bu" 4
\&\fBonChange\fR ( \s-1CODEREF \s0)
.Sp
This method can be used to set the \fB\-onchange\fR event handler
(see above) after initialization of the popupmenu.
.SH "DEFAULT BINDINGS"
.IX Header "DEFAULT BINDINGS"
There are bindings for the widget itself and bindings
for the popup listbox that can be opened by this widget.
.SS "The widget itself"
.IX Subsection "The widget itself"
.IP "\(bu" 4
<\fBtab\fR>
.Sp
Call the 'loose\-focus' routine. This will have the widget 
loose its focus.
.IP "\(bu" 4
<\fBenter\fR>, <\fBcursor-right\fR, <\fBl\fR>, <\fBspace\fR>
.Sp
Call the 'open\-popup' routine. This will show the 
popup listbox and bring the focus to this listbox. See
\&\fBThe popup listbox\fR below for a description of the bindings 
for this listbox.
.IP "\(bu" 4
<\fBcursor-down\fR>, <\fBj\fR>
.Sp
Call the 'select\-next' routine. This will select the 
item in the list that is after the currently selected
item (unless the last item is already selected). If 
no item is selected, the first item in the list will
get selected.
.IP "\(bu" 4
<\fBcursor-up\fR>, <\fBk\fR>
.Sp
Call the 'select\-prev' routine. This will select the 
item in the list that is before the currently selected
item (unless the first item is already selected). If 
no item is selected, the first item in the list will
get selected.
.SS "The popup listbox"
.IX Subsection "The popup listbox"
The bindings for the popup listbox are the same as the bindings
for the Listbox widget. So take a look at 
Curses::UI::Listbox for a description
of these. The difference is that the 'loose\-focus' and 'option\-select'
routine will have the popup listbox to close. If the routine
\&'option\-select' is called, the active item will get selected.
.SH "SEE ALSO"
.IX Header "SEE ALSO"
Curses::UI, 
Curses::UI::Listbox
Curses::UI::Widget, 
Curses::UI::Common
.SH "AUTHOR"
.IX Header "AUTHOR"
Copyright (c) 2001\-2002 Maurice Makaay. All rights reserved.
.PP
Maintained by Marcus Thiesen (marcus@cpan.thiesenweb.de)
.PP
This package is free software and is provided \*(L"as is\*(R" without express
or implied warranty. It may be used, redistributed and/or modified
under the same terms as perl itself.
