This repository has been archived on 2023-08-20. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files

850 lines
31 KiB
Groff

.\" $Id: dialog.3,v 1.12 2005/01/16 16:59:48 tom Exp $
.\" Copyright 2005 Thomas E. Dickey
.\"
.\" This program is free software; you can redistribute it and/or
.\" modify it under the terms of the GNU General Public License
.\" as published by the Free Software Foundation; either version 2
.\" of the License, or (at your option) any later version.
.\"
.\" This program 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 General Public License for more details.
.\"
.\" You should have received a copy of the GNU General Public License
.\" along with this program; if not, write to the Free Software
.\" Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
.TH DIALOG 3 "" "$Date: 2005/01/16 16:59:48 $"
.SH NAME
dialog \- widgets and utilities for the dialog program
.SH SYNOPSIS
.B cc [ flag ... ] file ... -ldialog [ library ... ]
.B #include <dialog.h>
.PP
\fBDialog\fP
is a program that will let you to present a variety of questions or
display messages using dialog boxes from a shell script.
It is built from the \fBdialog\fP library,
which consists of several widgets
as well as utility functions that are used by the widgets
or the main program.
.
.SH DESCRIPTION
This manpage documents the features from \fI<dialog.h>\fP which
are likely to be important to developers using the widgets directly.
Some hints are also given for developing new widgets.
.
.\" ************************************************************************
.SS DEFINITIONS
Exit codes (passed back to the main program for its use)
are defined with a "\fIDLG_EXIT_\fP prefix.
The defined constants can be mapped using environment variables
as described in \fBdialog\fP(1),
e.g., \fIDLG_EXIT_OK\fP corresponds to \fI$DIALOG_OK\fP.
.PP
Useful character constants which correspond to user input
are named with the "\fICHR_\fP" prefix, e.g.,
\fICHR_BACKSPACE\fP.
.PP
Colors and video attributes are categorized and associated with
settings in the configuration file
(see the discussion of \fI$DIALOGRC\fP in \fBdialog\fP(1)).
The \fIDIALOG_ATR(n)\fP macro is used for defining the references
to the combined color and attribute table \fIdlg_color_table[]\fP.
.PP
The \fBdialog\fP application passes its command-line parameters
to the widget functions. Some of those parameters are single values,
but some of the widgets accept data as an array of values.
Those include checklist/radiobox, menubox and formbox.
When the \fB--item-help\fP option is given, an extra column
of data is expected.
The USE_ITEM_HELP(), CHECKBOX_TAGS, MENUBOX_TAGS and FORMBOX_TAGS
macros are used to hide this difference from the calling application.
.PP
Most of the other definitions found in \fI<dialog.h>\fP
are used for convenience in building the library or main program.
These include definitions based on the generated \fI<dlg_config.h>\fP header.
.\" ************************************************************************
.SS DATA STRUCTURES
All of the global data for the \fBdialog\fP library is stored in
a few structures: \fIDIALOG_STATE\fP, \fIDIALOG_VARS\fP and \fIDIALOG_COLORS\fP.
The corresponding \fIdialog_state\fP, \fIdialog_vars\fP and \fIdlg_color_table\fP
global variables should be initialized to zeros,
and then populated with the data to use.
A few of these must be nonzero for the corresponding widgets to function.
As as the case with function names,
variables beginning with "\fIdialog_\fP"
are designed for use by the calling application
while variables beginning with "\fIdlg_\fP"
are intended for lower levels, e.g., by the \fBdialog\fP library.
.
.IP \fIDIALOG_STATE.all_windows
This is a linked list of all windows created by the library.
The \fBdlg_del_window\fP function uses this to locate windows which
may be redrawn after deleting a window.
.
.IP \fIDIALOG_STATE.aspect_ratio
This corresponds to the command-line option "\fB--aspect-ratio\fP".
The value gives the application
some control over the box dimensions when using auto
sizing (specifying 0 for height and width).
It represents width / height.
The default is 9, which means 9 characters wide to every 1 line high.
.
.IP \fIDIALOG_STATE.getc_callbacks
This is setup in \fIui_getc.c\fP to record windows which must be polled
for input, e.g,. to handle the background tailbox widget.
One window is designated as the foreground or control window.
.
.IP \fIDIALOG_STATE.getc_redirect
If the control window for \fIDIALOG_STATE.getc_callbacks\fP is
closed, the list is transferred to this variable.
Closing all windows causes the application to exit.
.
.IP \fIDIALOG_STATE.output
This is set in the \fBdialog\fP application to the stream on
which the application and library functions may write text results.
Normally that is the standard error,
since the curses library prefers to write its data to the standard output.
Some scripts, trading portability for convenience,
prefer to write results to the standard output,
e.g., by using the "\fB--stdout\fP" option.
.
.IP \fIDIALOG_STATE.output_count
This is incremented by \fIdlg_does_output\fP,
which is called by each widget that writes text to the output.
The \fBdialog\fP application uses that to decide if it should
also write a separator, i.e.,
\fIDIALOG_STATE.separate_str\fP,
between calls to each widget.
.
.IP \fIDIALOG_STATE.pipe_input
This is set in \fIinit_dialog\fP to a stream which can be used by the
\fBgauge\fP widget, which must be the application's standard input.
The \fBdialog\fP application calls \fIinit_dialog\fP normally with
\fIinput\fP set to the standard input, but optionally based on the
"\fB--input-fd\fP" option.
Since the application cannot read from
a pipe (standard input) and at the same time read
the curses input from the standard input,
it must allow for reopening the latter from either
a specific file descriptor,
or directly from the terminal.
The adjusted pipe stream value is stored in this variable.
.
.IP \fIDIALOG_STATE.screen_initialized
This is set in \fIinit_dialog\fP and
reset in \fIend_dialog\fP.
It is used to check if curses has been initialized,
and if the \fIendwin\fP function must be called on exit.
.
.IP \fIDIALOG_STATE.screen_output
This is set in \fIinit_dialog\fP to the output stream used
by the curses library.
Normally that is the standard output,
unless that happens to not be a terminal (and if \fIinit_dialog\fP can
successfully open the terminal directly).
.
.IP \fIDIALOG_STATE.separate_str
This corresponds to the command-line option "\fB--separate-widget\fP".
The given string
specifies a string that will separate the output on \fBdialog\fP's output from
each widget.
This is used to simplify parsing the result of a dialog with several widgets.
If this option is not given,
the default separator string is a tab character.
.
.IP \fIDIALOG_STATE.tab_len
This corresponds to the command-line option "\fB--tab-len\fP \fInumber\fP".
Specify the number of spaces that a tab character occupies if the
"\fB--tab-correct\fP"
option is given.
The default is 8.
.
.IP \fIDIALOG_STATE.use_colors
This is set in \fIinit_dialog\fP if the curses implementation supports color.
.
.IP \fIDIALOG_STATE.use_shadow
This corresponds to the command-line option "\fB--no-shadow\fP".
This is set in \fIinit_dialog\fP if the curses implementation supports color.
If true,
suppress shadows that would be drawn to the right and bottom of each dialog box.
.
.\" not implemented
.\" .IP \fIDIALOG_STATE.visit_items
.\" This corresponds to the command-line option "\fB--visit-items\fP".
.
.PP
The \fBdialog\fP application resets the \fIdialog_vars\fP data before
accepting options to invoke each widget.
Most of the \fIDIALOG_VARS\fP members are set directly from \fBdialog\fP's
command-line options:
.
.IP \fIDIALOG_VARS.backtitle
This corresponds to the command-line option "\fB--backtitle\fP \fIbacktitle\fP".
It specifies a
\fIbacktitle\fP
string to be displayed on the backdrop, at the top of the screen.
.
.IP \fIDIALOG_VARS.beep_after_signal
This corresponds to the command-line option "\fB--beep-after\fP".
If true, beep after a user has completed a widget by pressing one of the buttons.
.
.IP \fIDIALOG_VARS.beep_signal
This corresponds to the command-line option "\fB--beep\fP".
It is obsolete.
.
.IP \fIDIALOG_VARS.begin_set
This is true if the command-line option "\fB--begin y x\fP" was used.
It specifies the position of the upper left corner of a dialog box on the screen.
.
.IP \fIDIALOG_VARS.begin_x
This corresponds to the \fIx\fP value from
the command-line option "\fB--begin\fP \fIy x\fP" (second value).
.
.IP \fIDIALOG_VARS.begin_y
This corresponds to the \fIy\fP value from
the command-line option "\fB--begin\fP \fIy x\fP" (first value).
.
.IP \fIDIALOG_VARS.cancel_label
This corresponds to the command-line option "\fB--cancel-label\fP \fIstring\fP".
The given \fIstring\fP overrides the label used for "Cancel" buttons.
.
.IP \fIDIALOG_VARS.cant_kill
This corresponds to the command-line option "\fB--no-kill\fP".
If true, this tells
\fBdialog\fP
to put the
\fBtailboxbg\fP
box in the background,
printing its process id to \fBdialog\fP's output.
SIGHUP is disabled for the background process.
.
.IP \fIDIALOG_VARS.colors
This corresponds to the command-line option "\fB--colors\fP".
If true, interpret embedded "\\Z" sequences in the dialog text
by the following character,
which tells dialog to set colors or video attributes:
0 through 7 are the ANSI used in curses:
black,
red,
green,
yellow,
blue,
magenta,
cyan and
white respectively.
Bold is set by 'b', reset by 'B'.
Reverse is set by 'r', reset by 'R'.
Underline is set by 'u', reset by 'U'.
The settings are cumulative, e.g., "\\Zb\\Z1" makes the following text
bright red.
Restore normal settings with "\\Zn".
.
.IP \fIDIALOG_VARS.cr_wrap
This corresponds to the command-line option "\fB--cr-wrap\fP".
If true,
interpret embedded newlines in the dialog text as a newline on the screen.
Otherwise, \fBdialog\fR will only wrap lines where needed to fit inside the text box.
Even though you can control line breaks with this,
\fBdialog\fR will still wrap any lines that are too long for the width of the box.
Without cr-wrap, the layout of your text may be formatted to look nice
in the source code of your script without affecting the way it will
look in the dialog.
.
.IP \fIDIALOG_VARS.default_item
This corresponds to the command-line option "\fB--default-item\fP \fIstring\fP".
The given string is used as
the default item in a checklist, form or menu box.
Normally the first item in the box is the default.
.IP \fIDIALOG_VARS.defaultno
This corresponds to the command-line option "\fB--defaultno\fP".
If true,
make the default value of the
\fByes/no\fP
box a
.BR No .
Likewise, make the default button of widgets that provide "OK" and "Cancel"
a \fBCancel\fP.
If \fB--nocancel\fP was given that option overrides this,
making the default button always "Yes" (internally the same as "OK").
.
.IP \fIDIALOG_VARS.dlg_clear_screen
This corresponds to the command-line option "\fB--clear\fP".
This option is implemented in the main program, not the library.
If true,
the screen will be cleared on exit.
This may be used alone, without other options.
.
.IP \fIDIALOG_VARS.exit_label
This corresponds to the command-line option "\fB--exit-label string\fP".
The given string overrides the label used for "EXIT" buttons.
.
.IP \fIDIALOG_VARS.extra_button
This corresponds to the command-line option "\fB--extra-button\fP".
If true, some widgets show an extra button,
between "OK" and "Cancel" buttons.
.
.IP \fIDIALOG_VARS.extra_label
This corresponds to the command-line option "\fB--extra-label\fP \fIstring\fP".
The given string overrides the label used for "Extra" buttons.
Note: for inputmenu widgets, this defaults to "Rename".
.
.IP \fIDIALOG_VARS.help_button
This corresponds to the command-line option "\fB--help-button\fP".
If true, some widgets show a help-button after "OK" and "Cancel" buttons,
i.e., in checklist, radiolist and menu boxes.
If \fB--item-help\fR is also given, on exit
the return status will be the same as for the "OK" button,
and the item-help text will be written to \fBdialog\fP's output after the token "HELP".
Otherwise, the return status will indicate that the Help button was pressed,
and no message printed.
.
.IP \fIDIALOG_VARS.help_label
This corresponds to the command-line option "\fB--help-label\fP \fIstring\fP".
The given string overrides the label used for "Help" buttons.
.
.IP \fIDIALOG_VARS.help_status
This corresponds to the command-line option "\fB--help-status\fP".
If true, and the the help-button is selected,
writes the checklist or radiolist information
after the item-help "HELP" information.
This can be used to reconstruct the state of a checklist after processing
the help request.
.
.IP \fIDIALOG_VARS.input_length
This is nonzero if \fIDIALOG_VARS.input_result\fP is allocated,
versus being a pointer to the user's local variables.
.
.IP \fIDIALOG_VARS.input_menu
This flag is set to denote whether the menubox widget
implements a menu versus a inputmenu widget.
.
.IP \fIDIALOG_VARS.input_result
This is a dynamically-allocated buffer used by the widgets to return
printable results to the calling application.
.
.IP \fIDIALOG_VARS.insecure
This corresponds to the command-line option "\fB--insecure\fP".
If true, make the password widget friendlier but less secure,
by echoing asterisks for each character.
.
.IP \fIDIALOG_VARS.item_help
This corresponds to the command-line option "\fB--item-help\fP".
If true,
interpret the tags data for checklist, radiolist and menu boxes
adding a column whose text is displayed in the bottom line of the
screen, for the currently selected item.
.
.IP \fIDIALOG_VARS.keep_window
This corresponds to the command-line option "\fB--keep-window\fP".
If true, do not remove/repaint the window on exit.
This is useful for keeping the window contents visible when several
widgets are run in the same process.
Note that curses will clear the screen when starting a new process.
.
.IP \fIDIALOG_VARS.max_input
This corresponds to the command-line option "\fB--max-input\fP \fIsize\fP".
Limit input strings to the given size.
If not specified, the limit is 2048.
.
.IP \fIDIALOG_VARS.no_label
This corresponds to the command-line option "\fB--no-label\fP \fIstring\fP".
The given string overrides the label used for "No" buttons.
.
.IP \fIDIALOG_VARS.nocancel
This corresponds to the command-line option "\fB--no-cancel\fP".
If true,
suppress the "Cancel" button in checklist, inputbox and menu box modes.
A script can still test if the user pressed the ESC key to cancel to quit.
.
.IP \fIDIALOG_VARS.nocollapse
This corresponds to the command-line option "\fB--no-collapse\fP".
Normally \fBdialog\fR converts tabs to spaces and reduces multiple
spaces to a single space for text which is displayed in a message boxes, etc.
It true, that feature is disabled.
Note that \fBdialog\fR will still wrap text, subject to the \fB--cr-wrap\fR
option.
.
.IP \fIDIALOG_VARS.ok_label
This corresponds to the command-line option "\fB--ok-label\fP \fIstring\fP".
The given string overrides the label used for "OK" buttons.
.
.IP \fIDIALOG_VARS.print_siz
This corresponds to the command-line option "\fB--print-size\fP".
If true,
each widget prints its size to \fBdialog\fP's output when it is invoked.
.
.IP \fIDIALOG_VARS.separate_output
This corresponds to the command-line option "\fB--separate-output\fP".
If true,
checklist widgets output result one line at a time, with no quoting.
This facilitates parsing by another program.
.
.IP \fIDIALOG_VARS.single_quoted
This corresponds to the command-line option "\fB--single-quoted\fP".
If true,
Use single-quoting as needed (and no quotes if unneeded) for the
output of checklist's as well as the item-help text.
If this option is not set, \fBdialog\fP uses double quotes around each item.
That requires occasional use of backslashes to make the output useful in
shell scripts.
.IP \fIDIALOG_VARS.size_err
This corresponds to the command-line option "\fB--size-err\fP".
If true,
check the resulting size of a dialog box before trying to use it,
printing the resulting size if it is larger than the screen.
(This option is obsolete, since all new-window calls are checked).
.
.IP \fIDIALOG_VARS.sleep_secs
This corresponds to the command-line option "\fB--sleep\fP \fIsecs\fP".
This option is implemented in the main program, not the library.
If nonzero, this is the number of seconds after to delay after processing a dialog box.
.
.IP \fIDIALOG_VARS.tab_correct
This corresponds to the command-line option "\fB--tab-correct\fP".
If true, convert each tab character of the text to one or more spaces.
Otherwise, tabs are rendered according to the curses library's interpretation.
.
.IP \fIDIALOG_VARS.timeout_secs
This corresponds to the command-line option "\fB--timeout\fP \fIsecs\fP".
If nonzero, timeout input requests (exit with error code)
if no user response within the given number of seconds.
.
.IP \fIDIALOG_VARS.title
This corresponds to the command-line option "\fB--title\fP \fItitle\fP".
Specifies a
\fItitle\fP
string to be displayed at the top of the dialog box.
.
.IP \fIDIALOG_VARS.trim_whitespace
This corresponds to the command-line option "\fB--trim\fP".
If true, eliminate leading blanks,
trim literal newlines and repeated blanks from message text.
.
.IP \fIDIALOG_VARS.visit_items
This corresponds to the command-line option "\fB--visit-items\fP".
Modify the tab-traversal of checklist, radiobox, menubox and inputmenu
to include the list of items as one of the states.
This is useful as a visual aid,
i.e., the cursor position helps some users.
.
.IP \fIDIALOG_VARS.yes_label
This corresponds to the command-line option "\fB--yes-label\fP \fIstring\fP".
The given string overrides the label used for "Yes" buttons.
.
.\" ************************************************************************
.\" ************************************************************************
.SS WIDGETS
Functions that implement major functionality for the command-line \fBdialog\fP
program, e.g., widgets, have names beginning "\fIdialog_\fP".
All dialog boxes have at least three parameters:
.TP 5
\fItitle\fP
the caption for the box, shown on its top border.
.TP 5
\fIheight\fP
the height of the dialog box.
.TP 5
\fIwidth\fP
the width of the dialog box.
.PP
Other parameters depend on the box type.
.
.\" ************************************************************************
.IP dialog_calendar
implements the "\fB--calendar\fP option.
.RS
.IP title
is the title on the top of the widget.
.IP subtitle
is the prompt text shown within the widget.
.IP height
is the height excluding the fixed-height calendar grid.
.IP width
is the overall width of the box,
which is adjusted up to the calendar grid's minimum width if needed.
.IP day
is the initial day of the week shown,
counting zero as Sunday.
If the value is negative,
the current day of the week is used.
.IP month
is the initial month of the year shown,
counting one as January.
If the value is negative,
the current month of the year is used.
.IP year
is the initial year shown.
If the value is negative,
the current year is used.
.RE
.\" ************************************************************************
.IP dialog_checklist
implements the "\fB--checklist\fP and "\fB--radiolist\fP options
depending on the \fIflag\fP parameter.
.RS
.IP title
is the title on the top of the widget.
.IP cprompt
is the prompt text shown within the widget.
.IP height
is the desired height of the box.
If zero, the height is adjusted to use the available screen size.
.IP width
is the desired width of the box.
If zero, the height is adjusted to use the available screen size.
.IP list_height
is the minimum height to reserve for displaying the list.
If zero, it is computed based on the given \fIheight\fP and \fIwidth\fP.
.IP item_no
is the number of rows in \fIitems\fP.
.IP items
is an array of strings which is viewed either as a list of rows
.RS
\fItag item status \fR
.RE
.IP
or
.RS
\fItag item status help\fR
.RE
.IP
depending on whether \fIdialog_vars.item_help\fP is set.
.IP flag
is either \fIFLAG_CHECK\fP, for checklists,
or \fIFLAG_RADIO\fP for radiolists.
.RE
.\" ************************************************************************
.IP dialog_form
implements the "\fB--form\fP option.
.RS
.IP title
is the title on the top of the widget.
.IP cprompt
is the prompt text shown within the widget.
.IP height
is the desired height of the box.
If zero, the height is adjusted to use the available screen size.
.IP width
is the desired width of the box.
If zero, the height is adjusted to use the available screen size.
.IP form_height
is the minimum height to reserve for displaying the list.
If zero, it is computed based on the given \fIheight\fP and \fIwidth\fP.
.IP item_no
is the number of rows in \fIitems\fP.
.IP items
is an array of strings which is viewed either as a list of rows
.RS
\fIName NameY NameX Text TextY TextX FLen ILen\fR
.RE
.IP
or
.RS
\fIName NameY NameX Text TextY TextX FLen ILen Help\fR
.RE
.IP
depending on whether \fIdialog_vars.item_help\fP is set.
.RE
.\" ************************************************************************
.IP dialog_fselect
implements the "\fB--fselect\fP option.
.RS
.IP title
is the title on the top of the widget.
.IP path
is the preselected value to show in the input-box,
which is used also to set the directory- and file-windows.
.IP height
is the height excluding the minimum needed to show the dialog box framework.
If zero, the height is based on the screen size.
.IP width
is the desired width of the box.
If zero, the height is based on the screen size.
.RE
.\" ************************************************************************
.IP dialog_gauge
implements the "\fB--gauge\fP option.
.RS
.IP title
is the title on the top of the widget.
.IP cprompt
is the prompt text shown within the widget.
.IP height
is the desired height of the box.
If zero, the height is based on the screen size.
.IP width
is the desired width of the box.
If zero, the height is based on the screen size.
.IP percent
is the percentage to show in the progress bar.
.RE
.\" ************************************************************************
.IP dialog_inputbox
implements the "\fB--inputbox\fP or
"\fB--password\fP option, depending on the value of \fIpassword\fP.
.RS
.IP title
is the title on the top of the widget.
.IP cprompt
is the prompt text shown within the widget.
.IP height
is the desired height of the box.
If zero, the height is based on the screen size.
.IP width
is the desired width of the box.
If zero, the height is based on the screen size.
.IP init
is the initial value of the input box, whose length is taken into account
when auto-sizing the width of the dialog box.
.IP password
if true, causes typed input to be echoed as asterisks.
.RE
.\" ************************************************************************
.IP dialog_menu
implements the "\fB--menu\fP or "\fB--inputmenu\fP option
depending on whether \fIdialog_vars.input_menu\fP is set.
.RS
.IP title
is the title on the top of the widget.
.IP cprompt
is the prompt text shown within the widget.
.IP height
is the desired height of the box.
If zero, the height is based on the screen size.
.IP width
is the desired width of the box.
If zero, the height is based on the screen size.
.IP menu_height
is the minimum height to reserve for displaying the list.
If zero, it is computed based on the given \fIheight\fP and \fIwidth\fP.
.IP item_no
is the number of rows in \fIitems\fP.
.IP items
is an array of strings which is viewed either as a list of rows
.RS
\fItag item\fR
.RE
.IP
or
.RS
\fItag item help\fR
.RE
.IP
depending on whether \fIdialog_vars.item_help\fP is set.
.RE
.\" ************************************************************************
.IP dialog_msgbox
implements the "\fB--msgbox\fP or "\fB--infobox\fP option
depending on whether \fIpauseopt\fP is set.
.RS
.IP title
is the title on the top of the widget.
.IP cprompt
is the prompt text shown within the widget.
.IP height
is the desired height of the box.
If zero, the height is based on the screen size.
.IP width
is the desired width of the box.
If zero, the height is based on the screen size.
.IP pauseopt
if true, an "OK" button will be shown,
and the dialog will wait for it to complete.
With an "OK" button, it is denoted a "msgbox",
without an "OK" button, it is denoted an "infobox".
.RE
.\" ************************************************************************
.IP dialog_pause
implements the "\fB--pause\fP option.
.RS
.IP title
is the title on the top of the widget.
.IP height
is the desired height of the box.
If zero, the height is based on the screen size.
.IP width
is the desired width of the box.
If zero, the height is based on the screen size.
.IP seconds
is the timeout to use for the progress bar.
.RE
.\" ************************************************************************
.IP dialog_tailbox
implements the "\fB--tailbox\fP or "\fB--tailboxbg\fP option
depending on whether \fIbg_task\fP is set.
.RS
.IP title
is the title on the top of the widget.
.IP file
is the name of the file to display in the dialog.
.IP height
is the desired height of the box.
If zero, the height is based on the screen size.
.IP width
is the desired width of the box.
If zero, the height is based on the screen size.
.IP bg_task
if true,
the window is added to the callback list in \fIdialog_state\fP,
and the application will poll for the window to be updated.
Otherwise an "OK" button is added to the window,
and it will be closed when the button is activated.
.RE
.\" ************************************************************************
.IP dialog_textbox
implements the "\fB--textbox\fP option.
.RS
.IP title
is the title on the top of the widget.
.IP file
is the name of the file to display in the dialog.
.IP height
is the desired height of the box.
If zero, the height is based on the screen size.
.IP width
is the desired width of the box.
If zero, the height is based on the screen size.
.RE
.\" ************************************************************************
.IP dialog_timebox
implements the "\fB--timebox\fP option.
.RS
.IP title
is the title on the top of the widget.
.IP subtitle
is the prompt text shown within the widget.
.IP height
is the desired height of the box.
If zero, the height is based on the screen size.
.IP width
is the desired width of the box.
If zero, the height is based on the screen size.
.IP hour
is the initial hour shown.
If the value is negative,
the current hour is used.
.IP minute
is the initial minute shown.
If the value is negative,
the current minute is used.
.IP second
is the initial second shown.
If the value is negative,
the current second is used.
.RE
.\" ************************************************************************
.IP dialog_yesno
implements the "\fB--yesno\fP option.
.RS
.IP title
is the title on the top of the widget.
.IP cprompt
is the prompt text shown within the widget.
.IP height
is the desired height of the box.
If zero, the height is based on the screen size.
.IP width
is the desired width of the box.
If zero, the height is based on the screen size.
.RE
.
.\" ************************************************************************
.SS UTILITY FUNCTIONS
Most functions that implement lower-level
functionality for the command-line \fBdialog\fP
program or widgets, have names beginning "\fIdlg_\fP".
Bowing to longstanding usage, the functions that initialize the
display and end it are named \fIinit_dialog\fP and \fIend_dialog\fP.
.PP
The only non-widget function whose name begins with "\fIdialog_\fP"
is \fIdialog_version\fP, which returns the version number of the
library as a string.
.
.\" dlg_add_callback(DIALOG_CALLBACK *p);
.\" dlg_add_quoted(char *string);
.\" dlg_add_result(char *string);
.\" dlg_attr_clear(WINDOW * win, int height, int width, chtype attr);
.\" dlg_auto_size(const char * title, const char *prompt, int *height, int *width, int boxlines, int mincols);
.\" dlg_auto_sizefile(const char * title, const char *file, int *height, int *width, int boxlines, int mincols);
.\" dlg_beeping(void);
.\" dlg_box_x_ordinate(int width);
.\" dlg_box_y_ordinate(int height);
.\" dlg_button_count(const char **labels);
.\" dlg_button_layout(const char **labels, int *limit);
.\" dlg_button_sizes(const char **labels, int vertical, int *longest, int *length);
.\" dlg_button_x_step(const char **labels, int limit, int *gap, int *margin, int *step);
.\" dlg_calc_listh(int *height, int *list_height, int item_no);
.\" dlg_calc_listw(int item_no, char **items, int group);
.\" dlg_char_to_button(int ch, const char **labels);
.\" dlg_clear(void);
.\" dlg_color_count(void);
.\" dlg_color_setup(void);
.\" dlg_count_columns(const char *string);
.\" dlg_count_wchars(const char *string);
.\" dlg_create_rc(const char *filename);
.\" dlg_ctl_size(int height, int width);
.\" dlg_default_item(char **items, int llen);
.\" dlg_defaultno_button(void);
.\" dlg_del_window(WINDOW *win);
.\" dlg_does_output(void);
.\" dlg_draw_arrows(WINDOW *dialog, int top_arrow, int bottom_arrow, int x, int top, int bottom);
.\" dlg_draw_bottom_box(WINDOW *win);
.\" dlg_draw_box(WINDOW * win, int y, int x, int height, int width, chtype boxchar, chtype borderchar);
.\" dlg_draw_buttons(WINDOW *win, int y, int x, const char **labels, int selected, int vertical, int limit);
.\" dlg_draw_shadow(WINDOW * win, int height, int width, int y, int x);
.\" dlg_draw_title(WINDOW *win, const char *title);
.\" dlg_edit_offset(char *string, int offset, int x_last);
.\" dlg_edit_string(char *string, int *offset, int key, int fkey, bool force);
.\" dlg_exit(int code) GCC_NORETURN;
.\" dlg_exit_label(void);
.\" dlg_exiterr(const char *, ...)
.\" dlg_flush_getc(void);
.\" dlg_getc(WINDOW *win, int *fkey);
.\" dlg_getc_callbacks(int ch, int fkey, int *result);
.\" dlg_index_columns(const char *string);
.\" dlg_index_wchars(const char *string);
.\" dlg_item_help(char *txt);
.\" dlg_killall_bg(int *retval);
.\" dlg_last_getc(void);
.\" dlg_limit_columns(const char *string, int limit, int offset);
.\" dlg_match_char(int ch, const char *string);
.\" dlg_mouse_bigregion (int y, int x);
.\" dlg_mouse_free_regions (void);
.\" dlg_mouse_mkbigregion (int y, int x, int height, int width, int code, int step_x, int step_y, int mode);
.\" dlg_mouse_mkregion (int y, int x, int height, int width, int code);
.\" dlg_mouse_region (int y, int x);
.\" dlg_mouse_setbase (int x, int y);
.\" dlg_mouse_wgetch (WINDOW *, int *);
.\" dlg_mouse_wgetch_nowait (WINDOW *, int *);
.\" dlg_new_window(int height, int width, int y, int x);
.\" dlg_next_button(const char **labels, int button);
.\" dlg_next_ok_buttonindex(int current, int extra);
.\" dlg_ok_buttoncode(int button);
.\" dlg_ok_label(void);
.\" dlg_ok_labels(void);
.\" dlg_parse_rc(void);
.\" dlg_prev_button(const char **labels, int button);
.\" dlg_prev_ok_buttonindex(int current, int extra);
.\" dlg_print_autowrap(WINDOW *win, const char *prompt, int height, int width);
.\" dlg_print_size(int height, int width);
.\" dlg_print_text(WINDOW *win, const char *txt, int len, chtype *attr);
.\" dlg_put_backtitle(void);
.\" dlg_remove_callback(DIALOG_CALLBACK *p);
.\" dlg_set_focus(WINDOW *parent, WINDOW *win);
.\" dlg_show_string(WINDOW *win, const char *string, int offset, chtype attr, int y_base, int x_base, int x_last, bool hidden, bool force);
.\" dlg_strclone(const char *cprompt);
.\" dlg_strcmp(const char *a, const char *b);
.\" dlg_sub_window(WINDOW *win, int height, int width, int y, int x);
.\" dlg_tab_correct_str(char *prompt);
.\" dlg_trim_string(char *src);
.\" dlg_yes_labels(void);
.
.\" ************************************************************************
.SH AUTHOR
Thomas E. Dickey