| Current Path : /usr/local/man/man3/ |
| Current File : //usr/local/man/man3/UI::Dialog::Backend::Whiptail.3pm |
.\" Automatically generated by Pod::Man 4.11 (Pod::Simple 3.35)
.\"
.\" 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 >0, 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
.\" ========================================================================
.\"
.IX Title "UI::Dialog::Backend::Whiptail 3pm"
.TH UI::Dialog::Backend::Whiptail 3pm "2016-02-03" "perl v5.30.0" "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"
.Vb 1
\& UI::Dialog::Backend::Whiptail \- Backend for the Whiptail dialog variant
.Ve
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
.Vb 3
\& use UI::Dialog::Backend::Whiptail;
\& my $d = new UI::Dialog::Backend::Whiptail ( backtitle => \*(AqDemo\*(Aq,
\& title => \*(AqDefault\*(Aq );
\&
\& $d\->msgbox( title => \*(AqWelcome!\*(Aq, text => \*(AqWelcome one and all!\*(Aq );
.Ve
.SH "ABSTRACT"
.IX Header "ABSTRACT"
UI::Dialog::Backend::Whiptail is the UI::Dialog backend for the Whiptail
dialog variant. While this module is used through UI::Dialog or any other loader
module only the compatible methods are ever accessible. However, when using
this module directly in your application (as in the \s-1SYNOPSIS\s0 example) you are
given access to all the options and features of the real \fBwhiptail\fR\|(1) application.
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
This dialog variant is the staple of the Debian console apt/dpkg interface. There
isn't very much interesting about this particular backend. This is very much a
basic dialog variant in comparison to things like Xdialog and cDialog.
.SH "EXPORT"
.IX Header "EXPORT"
.Vb 1
\& None
.Ve
.SH "INHERITS"
.IX Header "INHERITS"
.Vb 1
\& UI::Dialog::Backend
.Ve
.SH "CONSTRUCTOR"
.IX Header "CONSTRUCTOR"
.ie n .SS "new( @options )"
.el .SS "new( \f(CW@options\fP )"
.IX Subsection "new( @options )"
.IP "\s-1EXAMPLE\s0" 4
.IX Item "EXAMPLE"
.RS 4
.Vb 2
\& my $d = new( title => \*(AqDefault Title\*(Aq, backtitle => \*(AqBacktitle\*(Aq,
\& width => 65, height => 20, listheight => 5 );
.Ve
.RE
.RS 4
.RE
.IP "\s-1DESCRIPTION\s0" 4
.IX Item "DESCRIPTION"
.RS 4
.RS 6
This is the Class Constructor method. It accepts a list of key => value pairs
and uses them as the defaults when interacting with the various widgets.
.RE
.RE
.RS 4
.RE
.IP "\s-1RETURNS\s0" 4
.IX Item "RETURNS"
.RS 4
.Vb 1
\& A blessed object reference of the UI::Dialog::Backend::Whiptail class.
.Ve
.RE
.RS 4
.RE
.IP "\s-1OPTIONS\s0" 4
.IX Item "OPTIONS"
The (...)'s after each option indicate the default for the option. An * denotes
support by all the widget methods on a per-use policy defaulting to the values
decided during object creation.
.RS 4
.IP "\fBdebug = 0,1,2\fR (0)" 6
.IX Item "debug = 0,1,2 (0)"
.PD 0
.IP "\fBliteral = 0,1\fR (0)" 6
.IX Item "literal = 0,1 (0)"
.ie n .IP "\fBbacktitle = ""backtitle""\fR ('') *" 6
.el .IP "\fBbacktitle = ``backtitle''\fR ('') *" 6
.IX Item "backtitle = backtitle ('') *"
.ie n .IP "\fBtitle = ""title""\fR ('') *" 6
.el .IP "\fBtitle = ``title''\fR ('') *" 6
.IX Item "title = title ('') *"
.IP "\fBheight = \ed+\fR (0) *" 6
.IX Item "height = d+ (0) *"
.IP "\fBlistheight = \ed+\fR (5) *" 6
.IX Item "listheight = d+ (5) *"
.IP "\fBwidth = \ed+\fR (0) *" 6
.IX Item "width = d+ (0) *"
.IP "\fBbeepbefore = 0,1\fR (0) *" 6
.IX Item "beepbefore = 0,1 (0) *"
.IP "\fBbeepafter = 0,1\fR (0) *" 6
.IX Item "beepafter = 0,1 (0) *"
.RE
.RS 4
.RE
.PD
.SH "WIDGET METHODS"
.IX Header "WIDGET METHODS"
.SS "yesno( )"
.IX Subsection "yesno( )"
.IP "\s-1EXAMPLE\s0" 4
.IX Item "EXAMPLE"
.RS 4
.Vb 5
\& if ($d\->yesno( text => \*(AqA binary type question?\*(Aq) ) {
\& # user pressed yes
\& } else {
\& # user pressed no or cancel
\& }
.Ve
.RE
.RS 4
.RE
.IP "\s-1DESCRIPTION\s0" 4
.IX Item "DESCRIPTION"
.RS 4
.RS 6
Present the end user with a message box that has two buttons, yes and no.
.RE
.RE
.RS 4
.RE
.IP "\s-1RETURNS\s0" 4
.IX Item "RETURNS"
.RS 4
.Vb 1
\& TRUE (1) for a response of YES or FALSE (0) for anything else.
.Ve
.RE
.RS 4
.RE
.SS "msgbox( )"
.IX Subsection "msgbox( )"
.IP "\s-1EXAMPLE\s0" 4
.IX Item "EXAMPLE"
.RS 4
.Vb 1
\& $d\->msgbox( text => \*(AqA simple message\*(Aq );
.Ve
.RE
.RS 4
.RE
.IP "\s-1DESCRIPTION\s0" 4
.IX Item "DESCRIPTION"
.RS 4
.RS 6
Pesent the end user with a message box that has an \s-1OK\s0 button.
.RE
.RE
.RS 4
.RE
.IP "\s-1RETURNS\s0" 4
.IX Item "RETURNS"
.RS 4
.RS 6
\&\s-1TRUE\s0 (1) for a response of \s-1OK\s0 or \s-1FALSE\s0 (0) for anything else.
.RE
.RE
.RS 4
.RE
.SS "infobox( )"
.IX Subsection "infobox( )"
.IP "\s-1EXAMPLE\s0" 4
.IX Item "EXAMPLE"
.RS 4
.Vb 1
\& $d\->infobox( text => \*(AqA simple 6 second message.\*(Aq, timeout => 6000 );
.Ve
.RE
.RS 4
.RE
.IP "\s-1DESCRIPTION\s0" 4
.IX Item "DESCRIPTION"
.RS 4
.RS 6
Pesent the end user with a message box for a limited duration of time. The
timeout is specified in thousandths of a second, ie: 1000 = 1 second.
.RE
.RE
.RS 4
.RE
.IP "\s-1RETURNS\s0" 4
.IX Item "RETURNS"
.RS 4
.RS 6
\&\s-1TRUE\s0 (1) for a response of \s-1OK\s0 or \s-1FALSE\s0 (0) for anything else.
.RE
.RE
.RS 4
.RE
.SS "password( )"
.IX Subsection "password( )"
.IP "\s-1EXAMPLE\s0" 4
.IX Item "EXAMPLE"
.RS 4
.Vb 1
\& my $string = $d\->password( text => \*(AqEnter some (hidden) text.\*(Aq );
.Ve
.RE
.RS 4
.RE
.IP "\s-1DESCRIPTION\s0" 4
.IX Item "DESCRIPTION"
.RS 4
.RS 6
Present the end user with a text input field that doesn't reveal the input
(except to the script) and a message.
.RE
.RE
.RS 4
.RE
.IP "\s-1RETURNS\s0" 4
.IX Item "RETURNS"
.RS 4
.RS 6
a \s-1SCALAR\s0 if the response is \s-1OK\s0 and \s-1FALSE\s0 (0) for anything else.
.RE
.RE
.RS 4
.RE
.SS "inputbox( )"
.IX Subsection "inputbox( )"
.IP "\s-1EXAMPLE\s0" 4
.IX Item "EXAMPLE"
.RS 4
.Vb 2
\& my $string = $d\->inputbox( text => \*(AqEnter some text.\*(Aq,
\& entry => \*(Aqthis is the input field\*(Aq );
.Ve
.RE
.RS 4
.RE
.IP "\s-1DESCRIPTION\s0" 4
.IX Item "DESCRIPTION"
.RS 4
.RS 6
Present the end user with a text input field and a message.
.RE
.RE
.RS 4
.RE
.IP "\s-1RETURNS\s0" 4
.IX Item "RETURNS"
.RS 4
.RS 6
a \s-1SCALAR\s0 if the response is \s-1OK\s0 and \s-1FALSE\s0 (0) for anything else.
.RE
.RE
.RS 4
.RE
.SS "textbox( )"
.IX Subsection "textbox( )"
.IP "\s-1EXAMPLE\s0" 4
.IX Item "EXAMPLE"
.RS 4
.Vb 1
\& $d\->textbox( path => \*(Aq/path/to/a/text/file\*(Aq );
.Ve
.RE
.RS 4
.RE
.IP "\s-1DESCRIPTION\s0" 4
.IX Item "DESCRIPTION"
.RS 4
.RS 6
Present the end user with a simple scrolling box containing the contents
of the given text file.
.RE
.RE
.RS 4
.RE
.IP "\s-1RETURNS\s0" 4
.IX Item "RETURNS"
.RS 4
.RS 6
\&\s-1TRUE\s0 (1) if the response is \s-1OK\s0 and \s-1FALSE\s0 (0) for anything else.
.RE
.RE
.RS 4
.RE
.SS "menu( )"
.IX Subsection "menu( )"
.IP "\s-1EXAMPLE\s0" 4
.IX Item "EXAMPLE"
.RS 4
.Vb 5
\& my $selection1 = $d\->menu( text => \*(AqSelect one:\*(Aq,
\& list => [ \*(Aqtag1\*(Aq, \*(Aqitem1\*(Aq,
\& \*(Aqtag2\*(Aq, \*(Aqitem2\*(Aq,
\& \*(Aqtag3\*(Aq, \*(Aqitem3\*(Aq ]
\& );
.Ve
.RE
.RS 4
.RE
.IP "\s-1DESCRIPTION\s0" 4
.IX Item "DESCRIPTION"
.RS 4
.RS 6
Present the user with a selectable list.
.RE
.RE
.RS 4
.RE
.IP "\s-1RETURNS\s0" 4
.IX Item "RETURNS"
.RS 4
.RS 6
a \s-1SCALAR\s0 of the chosen tag if the response is \s-1OK\s0 and \s-1FALSE\s0 (0) for
anything else.
.RE
.RE
.RS 4
.RE
.SS "checklist( )"
.IX Subsection "checklist( )"
.IP "\s-1EXAMPLE\s0" 4
.IX Item "EXAMPLE"
.RS 4
.Vb 5
\& my @selection = $d\->checklist( text => \*(AqSelect one:\*(Aq,
\& list => [ \*(Aqtag1\*(Aq, [ \*(Aqitem1\*(Aq, 0 ],
\& \*(Aqtag2\*(Aq, [ \*(Aqitem2\*(Aq, 1 ],
\& \*(Aqtag3\*(Aq, [ \*(Aqitem3\*(Aq, 1 ] ]
\& );
.Ve
.RE
.RS 4
.RE
.IP "\s-1DESCRIPTION\s0" 4
.IX Item "DESCRIPTION"
.RS 4
.RS 6
Present the user with a selectable checklist.
.RE
.RE
.RS 4
.RE
.IP "\s-1RETURNS\s0" 4
.IX Item "RETURNS"
.RS 4
.RS 6
an \s-1ARRAY\s0 of the chosen tags if the response is \s-1OK\s0 and \s-1FALSE\s0 (0) for
anything else.
.RE
.RE
.RS 4
.RE
.SS "radiolist( )"
.IX Subsection "radiolist( )"
.IP "\s-1EXAMPLE\s0" 4
.IX Item "EXAMPLE"
.RS 4
.Vb 5
\& my $selection = $d\->radiolist( text => \*(AqSelect one:\*(Aq,
\& list => [ \*(Aqtag1\*(Aq, [ \*(Aqitem1\*(Aq, 0 ],
\& \*(Aqtag2\*(Aq, [ \*(Aqitem2\*(Aq, 1 ],
\& \*(Aqtag3\*(Aq, [ \*(Aqitem3\*(Aq, 0 ] ]
\& );
.Ve
.RE
.RS 4
.RE
.IP "\s-1DESCRIPTION\s0" 4
.IX Item "DESCRIPTION"
.RS 4
.RS 6
Present the user with a selectable radiolist.
.RE
.RE
.RS 4
.RE
.IP "\s-1RETURNS\s0" 4
.IX Item "RETURNS"
.RS 4
.RS 6
a \s-1SCALAR\s0 of the chosen tag if the response is \s-1OK\s0 and \s-1FALSE\s0 (0) for
anything else.
.RE
.RE
.RS 4
.RE
.SS "fselect( )"
.IX Subsection "fselect( )"
.IP "\s-1EXAMPLE\s0" 4
.IX Item "EXAMPLE"
.RS 4
.Vb 1
\& my $text = $d\->fselect( path => \*(Aq/path/to/a/file/or/directory\*(Aq );
.Ve
.RE
.RS 4
.RE
.IP "\s-1DESCRIPTION\s0" 4
.IX Item "DESCRIPTION"
.RS 4
.RS 6
Present the user with a file selection widget preset with the given path.
.RE
.RE
.RS 4
.RE
.IP "\s-1RETURNS\s0" 4
.IX Item "RETURNS"
.RS 4
.RS 6
a \s-1SCALAR\s0 if the response is \s-1OK\s0 and \s-1FALSE\s0 (0) for anything else.
.RE
.RE
.RS 4
.RE
.SS "dselect( )"
.IX Subsection "dselect( )"
.IP "\s-1EXAMPLE\s0" 4
.IX Item "EXAMPLE"
.RS 4
.Vb 1
\& my $text = $d\->dselect( path => \*(Aq/path/to/a/directory\*(Aq );
.Ve
.RE
.RS 4
.RE
.IP "\s-1DESCRIPTION\s0" 4
.IX Item "DESCRIPTION"
.RS 4
.RS 6
Present the user with a file selection widget preset with the given path.
Unlike \fBfselect()\fR this widget will only return a directory selection.
.RE
.RE
.RS 4
.RE
.IP "\s-1RETURNS\s0" 4
.IX Item "RETURNS"
.RS 4
.RS 6
a \s-1SCALAR\s0 if the response is \s-1OK\s0 and \s-1FALSE\s0 (0) for anything else.
.RE
.RE
.RS 4
.RE
.SS "gauge_start( )"
.IX Subsection "gauge_start( )"
.IP "\s-1EXAMPLE\s0" 4
.IX Item "EXAMPLE"
.RS 4
.Vb 1
\& $d\->gauge_start( text => \*(Aqgauge...\*(Aq, percentage => 1 );
.Ve
.RE
.RS 4
.RE
.IP "\s-1DESCRIPTION\s0" 4
.IX Item "DESCRIPTION"
.RS 4
.RS 6
Display a meter bar to the user. This get's the widget realized but requires
the use of the other gauge_*() methods for functionality.
.RE
.RE
.RS 4
.RE
.IP "\s-1RETURNS\s0" 4
.IX Item "RETURNS"
.RS 4
.RS 6
\&\s-1TRUE\s0 (1) if the widget loaded fine and \s-1FALSE\s0 (0) for anything else.
.RE
.RE
.RS 4
.RE
.SS "gauge_inc( )"
.IX Subsection "gauge_inc( )"
.IP "\s-1EXAMPLE\s0" 4
.IX Item "EXAMPLE"
.RS 4
.Vb 1
\& $d\->gauge_inc( 1 );
.Ve
.RE
.RS 4
.RE
.IP "\s-1DESCRIPTION\s0" 4
.IX Item "DESCRIPTION"
.RS 4
.RS 6
Increment the meter by the given amount.
.RE
.RE
.RS 4
.RE
.IP "\s-1RETURNS\s0" 4
.IX Item "RETURNS"
.RS 4
.RS 6
\&\s-1TRUE\s0 (1) if the widget incremented fine and \s-1FALSE\s0 (0) for anything else.
.RE
.RE
.RS 4
.RE
.SS "gauge_dec( )"
.IX Subsection "gauge_dec( )"
.IP "\s-1EXAMPLE\s0" 4
.IX Item "EXAMPLE"
.RS 4
.Vb 1
\& $d\->gauge_dec( 1 );
.Ve
.RE
.RS 4
.RE
.IP "\s-1DESCRIPTION\s0" 4
.IX Item "DESCRIPTION"
.RS 4
.RS 6
Decrement the meter by the given amount.
.RE
.RE
.RS 4
.RE
.IP "\s-1RETURNS\s0" 4
.IX Item "RETURNS"
.RS 4
.RS 6
\&\s-1TRUE\s0 (1) if the widget incremented fine and \s-1FALSE\s0 (0) for anything else.
.RE
.RE
.RS 4
.RE
.SS "gauge_set( )"
.IX Subsection "gauge_set( )"
.IP "\s-1EXAMPLE\s0" 4
.IX Item "EXAMPLE"
.RS 4
.Vb 1
\& $d\->gauge_set( 99 );
.Ve
.RE
.RS 4
.RE
.IP "\s-1DESCRIPTION\s0" 4
.IX Item "DESCRIPTION"
.RS 4
.RS 6
Set the meter bar to the given amount.
.RE
.RE
.RS 4
.RE
.IP "\s-1RETURNS\s0" 4
.IX Item "RETURNS"
.RS 4
.RS 6
\&\s-1TRUE\s0 (1) if the widget set fine and \s-1FALSE\s0 (0) for anything else.
.RE
.RE
.RS 4
.RE
.SS "gauge_text( )"
.IX Subsection "gauge_text( )"
.IP "\s-1EXAMPLE\s0" 4
.IX Item "EXAMPLE"
.RS 4
.Vb 1
\& $d\->gauge_text( \*(Aqstring\*(Aq );
.Ve
.RE
.RS 4
.RE
.IP "\s-1DESCRIPTION\s0" 4
.IX Item "DESCRIPTION"
.RS 4
.RS 6
Set the meter bar message to the given string.
.RE
.RE
.RS 4
.RE
.IP "\s-1RETURNS\s0" 4
.IX Item "RETURNS"
.RS 4
.RS 6
\&\s-1TRUE\s0 (1) if the widget set fine and \s-1FALSE\s0 (0) for anything else.
.RE
.RE
.RS 4
.RE
.SS "gauge_stop( )"
.IX Subsection "gauge_stop( )"
.IP "\s-1EXAMPLE\s0" 4
.IX Item "EXAMPLE"
.RS 4
.Vb 1
\& $d\->gauge_stop();
.Ve
.RE
.RS 4
.RE
.IP "\s-1DESCRIPTION\s0" 4
.IX Item "DESCRIPTION"
.RS 4
.RS 6
End the meter bar widget process.
.RE
.RE
.RS 4
.RE
.IP "\s-1RETURNS\s0" 4
.IX Item "RETURNS"
.RS 4
.RS 6
\&\s-1TRUE\s0 (1) if the widget closed fine and \s-1FALSE\s0 (0) for anything else.
.RE
.RE
.RS 4
.RE
.SH "SEE ALSO"
.IX Header "SEE ALSO"
.IP "\s-1PERLDOC\s0" 2
.IX Item "PERLDOC"
.Vb 3
\& UI::Dialog
\& UI::Dialog::Console
\& UI::Dialog::Backend
.Ve
.IP "\s-1MAN FILES\s0" 2
.IX Item "MAN FILES"
.Vb 1
\& whiptail(1)
.Ve
.SH "BUGS"
.IX Header "BUGS"
.Vb 2
\& Please email the author with any bug reports. Include the name of the
\& module in the subject line.
.Ve
.SH "AUTHOR"
.IX Header "AUTHOR"
.Vb 1
\& Kevin C. Krinke, E<lt>kevin@krinke.caE<gt>
.Ve
.SH "COPYRIGHT AND LICENSE"
.IX Header "COPYRIGHT AND LICENSE"
.Vb 1
\& Copyright (C) 2004\-2016 Kevin C. Krinke <kevin@krinke.ca>
\&
\& This library is free software; you can redistribute it and/or
\& modify it under the terms of the GNU Lesser General Public
\& License as published by the Free Software Foundation; either
\& version 2.1 of the License, or (at your option) any later version.
\&
\& 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
\& Lesser General Public License for more details.
\&
\& You should have received a copy of the GNU Lesser General Public
\& License along with this library; if not, write to the Free Software
\& Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111\-1307 USA
.Ve