xref: /freebsd/contrib/bsddialog/lib/bsddialog.3 (revision a6d8be451f62d425b71a4874f7d4e133b9fb393c)
1d93b4d32SBaptiste Daroussin.\"
2*a6d8be45SAlfonso S. Siciliano.\" Copyright (c) 2021-2024 Alfonso Sabato Siciliano
3d93b4d32SBaptiste Daroussin.\"
4d93b4d32SBaptiste Daroussin.\" Redistribution and use in source and binary forms, with or without
5d93b4d32SBaptiste Daroussin.\" modification, are permitted provided that the following conditions
6d93b4d32SBaptiste Daroussin.\" are met:
7d93b4d32SBaptiste Daroussin.\" 1. Redistributions of source code must retain the above copyright
8d93b4d32SBaptiste Daroussin.\"    notice, this list of conditions and the following disclaimer.
9d93b4d32SBaptiste Daroussin.\" 2. Redistributions in binary form must reproduce the above copyright
10d93b4d32SBaptiste Daroussin.\"    notice, this list of conditions and the following disclaimer in the
11d93b4d32SBaptiste Daroussin.\"    documentation and/or other materials provided with the distribution.
12d93b4d32SBaptiste Daroussin.\"
13d93b4d32SBaptiste Daroussin.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
14d93b4d32SBaptiste Daroussin.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15d93b4d32SBaptiste Daroussin.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
16d93b4d32SBaptiste Daroussin.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
17d93b4d32SBaptiste Daroussin.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18d93b4d32SBaptiste Daroussin.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
19d93b4d32SBaptiste Daroussin.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20d93b4d32SBaptiste Daroussin.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
21d93b4d32SBaptiste Daroussin.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
22d93b4d32SBaptiste Daroussin.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
23d93b4d32SBaptiste Daroussin.\" SUCH DAMAGE.
24d93b4d32SBaptiste Daroussin.\"
25*a6d8be45SAlfonso S. Siciliano.Dd March 16, 2024
26d93b4d32SBaptiste Daroussin.Dt BSDDIALOG 3
27f499134dSBaptiste Daroussin.Os
28f499134dSBaptiste Daroussin.Sh NAME
29d93b4d32SBaptiste Daroussin.Nm bsddialog_backtitle ,
3084823cc7SAlfonso S. Siciliano.Nm bsddialog_calendar ,
3161ba55bcSBaptiste Daroussin.Nm bsddialog_clear ,
32d93b4d32SBaptiste Daroussin.Nm bsddialog_color ,
33b319d934SAlfonso S. Siciliano.Nm bsddialog_color_attrs ,
34d93b4d32SBaptiste Daroussin.Nm bsddialog_checklist ,
35d93b4d32SBaptiste Daroussin.Nm bsddialog_datebox ,
36d93b4d32SBaptiste Daroussin.Nm bsddialog_end ,
37d93b4d32SBaptiste Daroussin.Nm bsddialog_form ,
38d93b4d32SBaptiste Daroussin.Nm bsddialog_gauge ,
39d93b4d32SBaptiste Daroussin.Nm bsddialog_geterror ,
40263660c0SAlfonso Siciliano.Nm bsddialog_get_theme ,
41b319d934SAlfonso S. Siciliano.Nm bsddialog_hascolors ,
42d93b4d32SBaptiste Daroussin.Nm bsddialog_infobox ,
43d93b4d32SBaptiste Daroussin.Nm bsddialog_init ,
44b319d934SAlfonso S. Siciliano.Nm bsddialog_init_notheme ,
45d93b4d32SBaptiste Daroussin.Nm bsddialog_initconf ,
4661ba55bcSBaptiste Daroussin.Nm bsddialog_inmode ,
47d93b4d32SBaptiste Daroussin.Nm bsddialog_menu ,
48d93b4d32SBaptiste Daroussin.Nm bsddialog_mixedgauge ,
49d93b4d32SBaptiste Daroussin.Nm bsddialog_mixedlist ,
50d93b4d32SBaptiste Daroussin.Nm bsddialog_msgbox ,
51d93b4d32SBaptiste Daroussin.Nm bsddialog_pause ,
52d93b4d32SBaptiste Daroussin.Nm bsddialog_radiolist ,
53d93b4d32SBaptiste Daroussin.Nm bsddialog_rangebox ,
5461ba55bcSBaptiste Daroussin.Nm bsddialog_refresh ,
55d93b4d32SBaptiste Daroussin.Nm bsddialog_set_theme ,
56d93b4d32SBaptiste Daroussin.Nm bsddialog_set_default_theme ,
57d93b4d32SBaptiste Daroussin.Nm bsddialog_textbox ,
58d93b4d32SBaptiste Daroussin.Nm bsddialog_timebox ,
59d93b4d32SBaptiste Daroussin.Nm bsddialog_yesno
60263660c0SAlfonso Siciliano.Nd TUI dialogs
61d93b4d32SBaptiste Daroussin.Sh LIBRARY
62d93b4d32SBaptiste Daroussin.Lb libbsddialog
63f499134dSBaptiste Daroussin.Sh SYNOPSIS
64d93b4d32SBaptiste Daroussin.In bsddialog.h
65d93b4d32SBaptiste Daroussin.Ft int
66263660c0SAlfonso Siciliano.Fn bsddialog_backtitle "struct bsddialog_conf *conf" "const char *backtitle"
67d93b4d32SBaptiste Daroussin.Ft int
6884823cc7SAlfonso S. Siciliano.Fo bsddialog_calendar
6984823cc7SAlfonso S. Siciliano.Fa "struct bsddialog_conf *conf"
7084823cc7SAlfonso S. Siciliano.Fa "const char *text"
7184823cc7SAlfonso S. Siciliano.Fa "int rows"
7284823cc7SAlfonso S. Siciliano.Fa "int cols"
7361ba55bcSBaptiste Daroussin.Fa "unsigned int *year"
7461ba55bcSBaptiste Daroussin.Fa "unsigned int *month"
7561ba55bcSBaptiste Daroussin.Fa "unsigned int *day"
7684823cc7SAlfonso S. Siciliano.Fc
7784823cc7SAlfonso S. Siciliano.Ft int
78d93b4d32SBaptiste Daroussin.Fo bsddialog_checklist
79d93b4d32SBaptiste Daroussin.Fa "struct bsddialog_conf *conf"
80263660c0SAlfonso Siciliano.Fa "const char *text"
81d93b4d32SBaptiste Daroussin.Fa "int rows"
82d93b4d32SBaptiste Daroussin.Fa "int cols"
83d93b4d32SBaptiste Daroussin.Fa "unsigned int menurows"
84263660c0SAlfonso Siciliano.Fa "unsigned int nitems"
85d93b4d32SBaptiste Daroussin.Fa "struct bsddialog_menuitem *items"
86d93b4d32SBaptiste Daroussin.Fa "int *focusitem"
87d93b4d32SBaptiste Daroussin.Fc
8861ba55bcSBaptiste Daroussin.Ft void
8961ba55bcSBaptiste Daroussin.Fn bsddialog_clear "unsigned int y"
90d93b4d32SBaptiste Daroussin.Ft int
9184823cc7SAlfonso S. Siciliano.Fo bsddialog_datebox
92d93b4d32SBaptiste Daroussin.Fa "struct bsddialog_conf *conf"
93263660c0SAlfonso Siciliano.Fa "const char *text"
94d93b4d32SBaptiste Daroussin.Fa "int rows"
95d93b4d32SBaptiste Daroussin.Fa "int cols"
9661ba55bcSBaptiste Daroussin.Fa "unsigned int *year"
9761ba55bcSBaptiste Daroussin.Fa "unsigned int *month"
9861ba55bcSBaptiste Daroussin.Fa "unsigned int *day"
99d93b4d32SBaptiste Daroussin.Fc
100d93b4d32SBaptiste Daroussin.Ft int
101d93b4d32SBaptiste Daroussin.Fn bsddialog_end "void"
102d93b4d32SBaptiste Daroussin.Ft int
103d93b4d32SBaptiste Daroussin.Fo bsddialog_form
104d93b4d32SBaptiste Daroussin.Fa "struct bsddialog_conf *conf"
105263660c0SAlfonso Siciliano.Fa "const char *text"
106d93b4d32SBaptiste Daroussin.Fa "int rows"
107d93b4d32SBaptiste Daroussin.Fa "int cols"
108263660c0SAlfonso Siciliano.Fa "unsigned int formrows"
109d93b4d32SBaptiste Daroussin.Fa "unsigned int nitems"
110d93b4d32SBaptiste Daroussin.Fa "struct bsddialog_formitem *items"
11161ba55bcSBaptiste Daroussin.Fa "int *focusitem"
112d93b4d32SBaptiste Daroussin.Fc
113d93b4d32SBaptiste Daroussin.Ft int
114d93b4d32SBaptiste Daroussin.Fo bsddialog_gauge
115d93b4d32SBaptiste Daroussin.Fa "struct bsddialog_conf *conf"
116263660c0SAlfonso Siciliano.Fa "const char *text"
117d93b4d32SBaptiste Daroussin.Fa "int rows"
118d93b4d32SBaptiste Daroussin.Fa "int cols"
119d93b4d32SBaptiste Daroussin.Fa "unsigned int perc"
120263660c0SAlfonso Siciliano.Fa "int fd"
121263660c0SAlfonso Siciliano.Fa "const char *sep"
12261ba55bcSBaptiste Daroussin.Fa "const char *end"
123d93b4d32SBaptiste Daroussin.Fc
124d93b4d32SBaptiste Daroussin.Ft const char *
125d93b4d32SBaptiste Daroussin.Fn bsddialog_geterror "void"
126d93b4d32SBaptiste Daroussin.Ft int
127d93b4d32SBaptiste Daroussin.Fo bsddialog_infobox
128d93b4d32SBaptiste Daroussin.Fa "struct bsddialog_conf *conf"
129263660c0SAlfonso Siciliano.Fa "const char *text"
130d93b4d32SBaptiste Daroussin.Fa "int rows"
131d93b4d32SBaptiste Daroussin.Fa "int cols"
132d93b4d32SBaptiste Daroussin.Fc
133d93b4d32SBaptiste Daroussin.Ft int
134d93b4d32SBaptiste Daroussin.Fn bsddialog_init "void"
135d93b4d32SBaptiste Daroussin.Ft int
136b319d934SAlfonso S. Siciliano.Fn bsddialog_init_notheme "void"
13761ba55bcSBaptiste Daroussin.Ft bool
13861ba55bcSBaptiste Daroussin.Fn bsddialog_inmode "void"
139b319d934SAlfonso S. Siciliano.Ft int
140d93b4d32SBaptiste Daroussin.Fn bsddialog_initconf "struct bsddialog_conf *conf"
141d93b4d32SBaptiste Daroussin.Ft int
142d93b4d32SBaptiste Daroussin.Fo bsddialog_menu
143d93b4d32SBaptiste Daroussin.Fa "struct bsddialog_conf *conf"
144263660c0SAlfonso Siciliano.Fa "const char *text"
145d93b4d32SBaptiste Daroussin.Fa "int rows"
146d93b4d32SBaptiste Daroussin.Fa "int cols"
147d93b4d32SBaptiste Daroussin.Fa "unsigned int menurows"
148263660c0SAlfonso Siciliano.Fa "unsigned int nitems"
149d93b4d32SBaptiste Daroussin.Fa "struct bsddialog_menuitem *items"
150d93b4d32SBaptiste Daroussin.Fa "int *focusitem"
151d93b4d32SBaptiste Daroussin.Fc
152d93b4d32SBaptiste Daroussin.Ft int
153d93b4d32SBaptiste Daroussin.Fo bsddialog_mixedgauge
154d93b4d32SBaptiste Daroussin.Fa "struct bsddialog_conf *conf"
155263660c0SAlfonso Siciliano.Fa "const char *text"
156d93b4d32SBaptiste Daroussin.Fa "int rows"
157d93b4d32SBaptiste Daroussin.Fa "int cols"
158d93b4d32SBaptiste Daroussin.Fa "unsigned int mainperc"
159d93b4d32SBaptiste Daroussin.Fa "unsigned int nminibars"
160d93b4d32SBaptiste Daroussin.Fa "char **minilabels"
161d93b4d32SBaptiste Daroussin.Fa "int *minipercs"
162d93b4d32SBaptiste Daroussin.Fc
163d93b4d32SBaptiste Daroussin.Ft int
164d93b4d32SBaptiste Daroussin.Fo bsddialog_mixedlist
165d93b4d32SBaptiste Daroussin.Fa "struct bsddialog_conf *conf"
166263660c0SAlfonso Siciliano.Fa "const char *text"
167d93b4d32SBaptiste Daroussin.Fa "int rows"
168d93b4d32SBaptiste Daroussin.Fa "int cols"
169d93b4d32SBaptiste Daroussin.Fa "unsigned int menurows"
170263660c0SAlfonso Siciliano.Fa "unsigned int ngroups"
171d93b4d32SBaptiste Daroussin.Fa "struct bsddialog_menugroup *groups"
172d93b4d32SBaptiste Daroussin.Fa "int *focuslist"
173d93b4d32SBaptiste Daroussin.Fa "int *focusitem"
174d93b4d32SBaptiste Daroussin.Fc
175d93b4d32SBaptiste Daroussin.Ft int
176d93b4d32SBaptiste Daroussin.Fo bsddialog_msgbox
177d93b4d32SBaptiste Daroussin.Fa "struct bsddialog_conf *conf"
178263660c0SAlfonso Siciliano.Fa "const char *text"
179d93b4d32SBaptiste Daroussin.Fa "int rows"
180d93b4d32SBaptiste Daroussin.Fa "int cols"
181d93b4d32SBaptiste Daroussin.Fc
182d93b4d32SBaptiste Daroussin.Ft int
183d93b4d32SBaptiste Daroussin.Fo bsddialog_pause
184d93b4d32SBaptiste Daroussin.Fa "struct bsddialog_conf *conf"
185263660c0SAlfonso Siciliano.Fa "const char *text"
186d93b4d32SBaptiste Daroussin.Fa "int rows"
187d93b4d32SBaptiste Daroussin.Fa "int cols"
18861ba55bcSBaptiste Daroussin.Fa "unsigned int *seconds"
189d93b4d32SBaptiste Daroussin.Fc
190d93b4d32SBaptiste Daroussin.Ft int
191d93b4d32SBaptiste Daroussin.Fo bsddialog_radiolist
192d93b4d32SBaptiste Daroussin.Fa "struct bsddialog_conf *conf"
193263660c0SAlfonso Siciliano.Fa "const char *text"
194d93b4d32SBaptiste Daroussin.Fa "int rows"
195d93b4d32SBaptiste Daroussin.Fa "int cols"
196d93b4d32SBaptiste Daroussin.Fa "unsigned int menurows"
197263660c0SAlfonso Siciliano.Fa "unsigned int nitems"
198d93b4d32SBaptiste Daroussin.Fa "struct bsddialog_menuitem *items"
199d93b4d32SBaptiste Daroussin.Fa "int *focusitem"
200d93b4d32SBaptiste Daroussin.Fc
201d93b4d32SBaptiste Daroussin.Ft int
202d93b4d32SBaptiste Daroussin.Fo bsddialog_rangebox
203d93b4d32SBaptiste Daroussin.Fa "struct bsddialog_conf *conf"
204263660c0SAlfonso Siciliano.Fa "const char *text"
205d93b4d32SBaptiste Daroussin.Fa "int rows"
206d93b4d32SBaptiste Daroussin.Fa "int cols"
207d93b4d32SBaptiste Daroussin.Fa "int min"
208d93b4d32SBaptiste Daroussin.Fa "int max"
209d93b4d32SBaptiste Daroussin.Fa "int *value"
210d93b4d32SBaptiste Daroussin.Fc
21161ba55bcSBaptiste Daroussin.Ft void
21261ba55bcSBaptiste Daroussin.Fn bsddialog_refresh "void"
213d93b4d32SBaptiste Daroussin.Ft int
214d93b4d32SBaptiste Daroussin.Fo bsddialog_textbox
215d93b4d32SBaptiste Daroussin.Fa "struct bsddialog_conf *conf"
216263660c0SAlfonso Siciliano.Fa "const char *file"
217d93b4d32SBaptiste Daroussin.Fa "int rows"
218d93b4d32SBaptiste Daroussin.Fa "int cols"
219d93b4d32SBaptiste Daroussin.Fc
220d93b4d32SBaptiste Daroussin.Ft int
221d93b4d32SBaptiste Daroussin.Fo bsddialog_timebox
222d93b4d32SBaptiste Daroussin.Fa "struct bsddialog_conf *conf"
223263660c0SAlfonso Siciliano.Fa "const char *text"
224d93b4d32SBaptiste Daroussin.Fa "int rows"
225d93b4d32SBaptiste Daroussin.Fa "int cols"
226d93b4d32SBaptiste Daroussin.Fa "unsigned int *hh"
227d93b4d32SBaptiste Daroussin.Fa "unsigned int *mm"
228d93b4d32SBaptiste Daroussin.Fa "unsigned int *ss"
229d93b4d32SBaptiste Daroussin.Fc
230d93b4d32SBaptiste Daroussin.Ft int
231d93b4d32SBaptiste Daroussin.Fo bsddialog_yesno
232d93b4d32SBaptiste Daroussin.Fa "struct bsddialog_conf *conf"
233263660c0SAlfonso Siciliano.Fa "const char *text"
234d93b4d32SBaptiste Daroussin.Fa "int rows"
235d93b4d32SBaptiste Daroussin.Fa "int cols"
236d93b4d32SBaptiste Daroussin.Fc
237d93b4d32SBaptiste Daroussin.In bsddialog_theme.h
238d93b4d32SBaptiste Daroussin.Ft int
239d93b4d32SBaptiste Daroussin.Fo bsddialog_color
240d93b4d32SBaptiste Daroussin.Fa "enum bsddialog_color foreground"
241263660c0SAlfonso Siciliano.Fa "enum bsddialog_color background"
242d93b4d32SBaptiste Daroussin.Fa "unsigned int flags"
243d93b4d32SBaptiste Daroussin.Fc
244d93b4d32SBaptiste Daroussin.Ft int
245b319d934SAlfonso S. Siciliano.Fo bsddialog_color_attrs
246b319d934SAlfonso S. Siciliano.Fa "int color"
247b319d934SAlfonso S. Siciliano.Fa "enum bsddialog_color *foreground"
248b319d934SAlfonso S. Siciliano.Fa "enum bsddialog_color *background"
249b319d934SAlfonso S. Siciliano.Fa "unsigned int *flags"
250b319d934SAlfonso S. Siciliano.Fc
251b319d934SAlfonso S. Siciliano.Ft int
252d93b4d32SBaptiste Daroussin.Fn bsddialog_get_theme "struct bsddialog_theme *theme"
253b319d934SAlfonso S. Siciliano.Ft bool
254b319d934SAlfonso S. Siciliano.Fn bsddialog_hascolors "void"
255d93b4d32SBaptiste Daroussin.Ft int
256d93b4d32SBaptiste Daroussin.Fn bsddialog_set_default_theme "enum bsddialog_default_theme theme"
257d93b4d32SBaptiste Daroussin.Ft int
258d93b4d32SBaptiste Daroussin.Fn bsddialog_set_theme "struct bsddialog_theme *theme"
259f499134dSBaptiste Daroussin.Sh DESCRIPTION
260f499134dSBaptiste DaroussinThe
261263660c0SAlfonso Siciliano.Nm bsddialog
26261ba55bcSBaptiste Daroussinlibrary provides an API to build Text User Interface dialogs and widgets.
263263660c0SAlfonso Siciliano.Pp
264263660c0SAlfonso Siciliano.Fn bsddialog_init
265263660c0SAlfonso Sicilianoinitializes the library, the only functions that can be called before is
266263660c0SAlfonso Siciliano.Fn bsddialog_initconf
267263660c0SAlfonso Sicilianodescribed later.
268263660c0SAlfonso SicilianoAfter the initialization the input and output should be handled via the library
269263660c0SAlfonso SicilianoAPI.
27061ba55bcSBaptiste Daroussin.Pp
271b319d934SAlfonso S. Siciliano.Fn bsddialog_init_notheme
272b319d934SAlfonso S. Sicilianois equivalent to
273b319d934SAlfonso S. Siciliano.Fn bsddialog_init
274b319d934SAlfonso S. Sicilianoexcept it does not set the default graphical theme; see
275b319d934SAlfonso S. Siciliano.Sx Theme
276b319d934SAlfonso S. Sicilianosubsection to set a theme explicitly.
277263660c0SAlfonso Siciliano.Pp
27861ba55bcSBaptiste Daroussin.Fn bsddialog_end
27961ba55bcSBaptiste Daroussinrestores the screen like before
28061ba55bcSBaptiste Daroussin.Fn bsddialog_init .
28161ba55bcSBaptiste DaroussinAfter the call is not possible to use the library functions.
28261ba55bcSBaptiste Daroussin.Pp
28361ba55bcSBaptiste Daroussin.Fn bsddialog_inmode
28461ba55bcSBaptiste Daroussinreturns
28561ba55bcSBaptiste Daroussin.Dv true
28661ba55bcSBaptiste Daroussinafter
28761ba55bcSBaptiste Daroussin.Fn bsddialog_init
28861ba55bcSBaptiste Daroussinor
28961ba55bcSBaptiste Daroussin.Fn bsddialog_init_notheme
29061ba55bcSBaptiste Daroussinand before
29161ba55bcSBaptiste Daroussin.Fn bsddialog_end ,
29261ba55bcSBaptiste Daroussin.Dv false
29361ba55bcSBaptiste Daroussinotherwise.
29461ba55bcSBaptiste Daroussin.Pp
295263660c0SAlfonso Siciliano.Fn bsddialog_backtitle
296263660c0SAlfonso Sicilianoprints
297263660c0SAlfonso Siciliano.Fa backtitle
29861ba55bcSBaptiste Daroussinon the top of the screen.
29961ba55bcSBaptiste DaroussinThe function handles
300263660c0SAlfonso Siciliano.Fa conf.ascii_lines
301263660c0SAlfonso Sicilianoand
30261ba55bcSBaptiste Daroussin.Fa conf.no_lines
30361ba55bcSBaptiste Daroussindescribed later.
304263660c0SAlfonso Siciliano.Pp
30561ba55bcSBaptiste Daroussin.Fn bsddialog_error
30661ba55bcSBaptiste Daroussinreturns a string to describe the last error.
30761ba55bcSBaptiste DaroussinThe function should be called after a
30861ba55bcSBaptiste Daroussin.Dv BSDDIALOG_ERROR
30961ba55bcSBaptiste Daroussinreturned value.
31061ba55bcSBaptiste Daroussin.Pp
31161ba55bcSBaptiste Daroussin.Fn bsddialog_clear
31261ba55bcSBaptiste Daroussinclears the screen from
31361ba55bcSBaptiste Daroussin.Fa y .
31461ba55bcSBaptiste Daroussin.Pp
31561ba55bcSBaptiste Daroussin.Fn bsddialog_refresh
31661ba55bcSBaptiste Daroussinuseful to refresh the screen after a terminal mode change, see
31761ba55bcSBaptiste Daroussin.Xr terminfo 5 .
318263660c0SAlfonso Siciliano.Ss Dialogs
319263660c0SAlfonso SicilianoThe dialogs have common arguments.
320263660c0SAlfonso Siciliano.Fa text
321263660c0SAlfonso Sicilianois a string printed inside the dialog.
32261ba55bcSBaptiste DaroussinEach
32361ba55bcSBaptiste Daroussin.Fa char*
32461ba55bcSBaptiste Daroussinparameter can be a multibyte character string depending on current locale, see
32561ba55bcSBaptiste Daroussin.Xr setlocale 3 .
326263660c0SAlfonso Siciliano.Fa rows
327263660c0SAlfonso Sicilianoand
328263660c0SAlfonso Siciliano.Fa cols
32961ba55bcSBaptiste Daroussinare height and width, their value can be a fixed size,
330263660c0SAlfonso Siciliano.Dv BSDDIALOG_AUTOSIZE
331263660c0SAlfonso Sicilianoor
332263660c0SAlfonso Siciliano.Dv BSDDIALOG_FULLSCREEN .
333263660c0SAlfonso Siciliano.Fa conf
33461ba55bcSBaptiste Daroussinis a struct to customize the current dialog, it does not set global properties
33561ba55bcSBaptiste Daroussinto the library.
336d93b4d32SBaptiste Daroussin.Pp
337d93b4d32SBaptiste Daroussin.Bd -literal -offset indent -compact
338d93b4d32SBaptiste Daroussinstruct bsddialog_conf {
339d93b4d32SBaptiste Daroussin	bool ascii_lines;
340d93b4d32SBaptiste Daroussin	unsigned int auto_minheight;
341d93b4d32SBaptiste Daroussin	unsigned int auto_minwidth;
342b319d934SAlfonso S. Siciliano	unsigned int auto_topmargin;
343b319d934SAlfonso S. Siciliano	unsigned int auto_downmargin;
344263660c0SAlfonso Siciliano	const char *bottomtitle;
345d93b4d32SBaptiste Daroussin	bool clear;
346d93b4d32SBaptiste Daroussin	int *get_height;
347d93b4d32SBaptiste Daroussin	int *get_width;
348d93b4d32SBaptiste Daroussin	bool no_lines;
349d93b4d32SBaptiste Daroussin	bool shadow;
350d93b4d32SBaptiste Daroussin	unsigned int sleep;
351263660c0SAlfonso Siciliano	const char *title;
352d93b4d32SBaptiste Daroussin	int y;
353d93b4d32SBaptiste Daroussin	int x;
354d93b4d32SBaptiste Daroussin	struct {
355263660c0SAlfonso Siciliano		bool enable_esc;
356bce40c02SAlfonso S. Siciliano		const char *f1_file;
357bce40c02SAlfonso S. Siciliano		const char *f1_message;
358263660c0SAlfonso Siciliano	} key;
359263660c0SAlfonso Siciliano	struct {
360b319d934SAlfonso S. Siciliano		unsigned int cols_per_row;
36161ba55bcSBaptiste Daroussin		bool escape;
362263660c0SAlfonso Siciliano		unsigned int tablen;
363d93b4d32SBaptiste Daroussin	} text;
364d93b4d32SBaptiste Daroussin	struct {
365d93b4d32SBaptiste Daroussin		bool align_left;
366d93b4d32SBaptiste Daroussin		bool no_desc;
367d93b4d32SBaptiste Daroussin		bool no_name;
368d93b4d32SBaptiste Daroussin		bool shortcut_buttons;
369d93b4d32SBaptiste Daroussin	} menu;
370d93b4d32SBaptiste Daroussin	struct {
371b319d934SAlfonso S. Siciliano		char securech;
372b319d934SAlfonso S. Siciliano		char *securembch;
373b319d934SAlfonso S. Siciliano		bool value_wchar;
374d93b4d32SBaptiste Daroussin	} form;
375d93b4d32SBaptiste Daroussin	struct {
37661ba55bcSBaptiste Daroussin		const char *format;
37761ba55bcSBaptiste Daroussin	} date;
37861ba55bcSBaptiste Daroussin	struct {
379b319d934SAlfonso S. Siciliano		bool always_active;
38061ba55bcSBaptiste Daroussin		const char *left1_label;
38161ba55bcSBaptiste Daroussin		const char *left2_label;
38261ba55bcSBaptiste Daroussin		const char *left3_label;
383d93b4d32SBaptiste Daroussin		bool without_ok;
384263660c0SAlfonso Siciliano		const char *ok_label;
385d93b4d32SBaptiste Daroussin		bool with_extra;
386263660c0SAlfonso Siciliano		const char *extra_label;
387d93b4d32SBaptiste Daroussin		bool without_cancel;
388263660c0SAlfonso Siciliano		const char *cancel_label;
389d93b4d32SBaptiste Daroussin		bool default_cancel;
390d93b4d32SBaptiste Daroussin		bool with_help;
391263660c0SAlfonso Siciliano		const char *help_label;
39261ba55bcSBaptiste Daroussin		const char *right1_label;
39361ba55bcSBaptiste Daroussin		const char *right2_label;
39461ba55bcSBaptiste Daroussin		const char *right3_label;
395263660c0SAlfonso Siciliano		const char *default_label;
396d93b4d32SBaptiste Daroussin	} button;
397d93b4d32SBaptiste Daroussin};
398d93b4d32SBaptiste Daroussin.Ed
399d93b4d32SBaptiste Daroussin.Pp
400263660c0SAlfonso Siciliano.Bl -column -compact
401263660c0SAlfonso Siciliano.It Fa conf.ascii_lines
402263660c0SAlfonso Sicilianoascii characters to draw lines, default wide characters.
403263660c0SAlfonso Siciliano.It Fa conf.auto_minheight
404263660c0SAlfonso Sicilianominimum height if
405263660c0SAlfonso Siciliano.Fa rows
406263660c0SAlfonso Sicilianois
407263660c0SAlfonso Siciliano.Dv BSDDIALOG_AUTOSIZE .
408263660c0SAlfonso Siciliano.It Fa conf.auto_minwidth
409263660c0SAlfonso Sicilianominimum width if
410263660c0SAlfonso Siciliano.Fa cols
411263660c0SAlfonso Sicilianois
412263660c0SAlfonso Siciliano.Dv BSDDIALOG_AUTOSIZE .
413b319d934SAlfonso S. Siciliano.It Fa conf.auto_topmargin
414b319d934SAlfonso S. Sicilianotop margin if
415b319d934SAlfonso S. Siciliano.Fa rows
416b319d934SAlfonso S. Sicilianois
417b319d934SAlfonso S. Siciliano.Dv BSDDIALOG_AUTOSIZE
418b319d934SAlfonso S. Sicilianoor
419b319d934SAlfonso S. Siciliano.Dv BSDDIALOG_FULLSCREEN ,
420b319d934SAlfonso S. Siciliano.Fa conf.y
421b319d934SAlfonso S. Sicilianohas to be
422b319d934SAlfonso S. Siciliano.Dv BSDDIALOG_CENTER .
423b319d934SAlfonso S. Siciliano.It Fa conf.auto_downmargin
424b319d934SAlfonso S. Sicilianodown margin if
425b319d934SAlfonso S. Siciliano.Fa rows
426b319d934SAlfonso S. Sicilianois
427b319d934SAlfonso S. Siciliano.Dv BSDDIALOG_AUTOSIZE
428b319d934SAlfonso S. Sicilianoor
429b319d934SAlfonso S. Siciliano.Dv BSDDIALOG_FULLSCREEN .
430263660c0SAlfonso Siciliano.It Fa conf.bottomtitle
43161ba55bcSBaptiste Daroussindialog subtitle.
432263660c0SAlfonso Siciliano.It Fa conf.clear
433263660c0SAlfonso Sicilianohide the dialog at exit.
434263660c0SAlfonso Siciliano.It Fa conf.get_height
435263660c0SAlfonso Sicilianoif not
436263660c0SAlfonso Siciliano.Dv NULL
437263660c0SAlfonso Sicilianois set like the dialog height.
438263660c0SAlfonso Siciliano.It Fa conf.get_width
439263660c0SAlfonso Sicilianoif not
440263660c0SAlfonso Siciliano.Dv NULL
441263660c0SAlfonso Sicilianois set like the dialog width.
442263660c0SAlfonso Siciliano.It Fa conf.no_lines
443263660c0SAlfonso Sicilianonot draw lines.
444263660c0SAlfonso Siciliano.It Fa conf.shadow
445263660c0SAlfonso Sicilianodraw shadow.
446263660c0SAlfonso Siciliano.It Fa conf.sleep
447263660c0SAlfonso Sicilianowait before to return, the value is in seconds.
448263660c0SAlfonso Siciliano.It Fa conf.title
44961ba55bcSBaptiste Daroussindialog title.
450263660c0SAlfonso Siciliano.It Fa conf.y
45161ba55bcSBaptiste Daroussindialog vertical position, 0 is top screen, can be
452263660c0SAlfonso Siciliano.Dv BSDDIALOG_CENTER .
453263660c0SAlfonso Siciliano.It Fa conf.x
45461ba55bcSBaptiste Daroussindialog horizontal position, 0 is left screen, can be
455263660c0SAlfonso Siciliano.Dv BSDDIALOG_CENTER .
456263660c0SAlfonso Siciliano.El
457263660c0SAlfonso Siciliano.Pp
458bce40c02SAlfonso S. Siciliano.Bl -column -compact
459bce40c02SAlfonso S. Siciliano.It Fa conf.key.enable_esc
46061ba55bcSBaptiste Daroussinenable
461263660c0SAlfonso Siciliano.Dv ESC
462263660c0SAlfonso Sicilianokey to close the dialog.
463bce40c02SAlfonso S. Siciliano.It Fa conf.key.f1_file
46461ba55bcSBaptiste Daroussinopen a file in a textbox if F1 is pressed.
465bce40c02SAlfonso S. Siciliano.It Fa conf.key.f1_message
46661ba55bcSBaptiste Daroussinbuild a msgbox with message if F1 is pressed.
467bce40c02SAlfonso S. Siciliano.El
468263660c0SAlfonso Siciliano.Pp
469b319d934SAlfonso S. Siciliano.Bl -column -compact
470b319d934SAlfonso S. Siciliano.It Fa conf.text.cols_per_row
471b319d934SAlfonso S. SicilianoTry to set the number of columns for a row of
472b319d934SAlfonso S. Siciliano.Fa text
47361ba55bcSBaptiste Daroussinwith autosizing, default
474b319d934SAlfonso S. Siciliano.Dv 10 .
47561ba55bcSBaptiste Daroussin.It Fa conf.text.escape
47661ba55bcSBaptiste Daroussinenable escapes in
47761ba55bcSBaptiste Daroussin.Fa text :
478263660c0SAlfonso Siciliano.It Dq \eZ0
479263660c0SAlfonso Sicilianoblack.
480263660c0SAlfonso Siciliano.It Dq \eZ1
481263660c0SAlfonso Sicilianored.
482263660c0SAlfonso Siciliano.It Dq \eZ2
483263660c0SAlfonso Sicilianogreen.
484263660c0SAlfonso Siciliano.It Dq \eZ3
485263660c0SAlfonso Sicilianoyellow.
486263660c0SAlfonso Siciliano.It Dq \eZ4
487263660c0SAlfonso Sicilianoblue.
488263660c0SAlfonso Siciliano.It Dq \eZ5
489263660c0SAlfonso Sicilianomagenta.
490263660c0SAlfonso Siciliano.It Dq \eZ6
491263660c0SAlfonso Sicilianocyan.
492263660c0SAlfonso Siciliano.It Dq \eZ7
493263660c0SAlfonso Sicilianowhite.
494263660c0SAlfonso Siciliano.It Dq \eZb
495263660c0SAlfonso Sicilianobold.
496263660c0SAlfonso Siciliano.It Dq \eZB
497263660c0SAlfonso Sicilianodisable bold.
49861ba55bcSBaptiste Daroussin.It Dq \eZd
49961ba55bcSBaptiste DaroussinHalf bright.
50061ba55bcSBaptiste Daroussin.It Dq \eZD
50161ba55bcSBaptiste Daroussindisable half bright.
50261ba55bcSBaptiste Daroussin.It Dq \eZk
50361ba55bcSBaptiste DaroussinBlink.
50461ba55bcSBaptiste Daroussin.It Dq \eZK
50561ba55bcSBaptiste Daroussindisable blinking.
50661ba55bcSBaptiste Daroussin.It Dq \eZr
50761ba55bcSBaptiste Daroussinreverse foreground and background.
50861ba55bcSBaptiste Daroussin.It Dq \eZR
50961ba55bcSBaptiste Daroussindisable reverse.
51061ba55bcSBaptiste Daroussin.It Dq \eZs
51161ba55bcSBaptiste DaroussinHighlight.
51261ba55bcSBaptiste Daroussin.It Dq \eZS
51361ba55bcSBaptiste Daroussindisable highlighting.
514263660c0SAlfonso Siciliano.It Dq \eZu
515263660c0SAlfonso Sicilianounderline.
516263660c0SAlfonso Siciliano.It Dq \eZU
517263660c0SAlfonso Sicilianodisable underline.
518263660c0SAlfonso Siciliano.It Dq \eZn
519263660c0SAlfonso Sicilianodisable each customization.
520b319d934SAlfonso S. Siciliano.It Fa conf.text.tablen
521b319d934SAlfonso S. Sicilianotab length for
522b319d934SAlfonso S. Siciliano.Fa text
523b319d934SAlfonso S. Sicilianoargument and
524b319d934SAlfonso S. Siciliano.Fn bsddialog_textbox
525b319d934SAlfonso S. Sicilianofunction.
526263660c0SAlfonso Siciliano.El
527263660c0SAlfonso Siciliano.Pp
528263660c0SAlfonso Siciliano.Bl -column -compact
529b319d934SAlfonso S. Siciliano.It Fa conf.button.always_active
53061ba55bcSBaptiste Daroussinbuttons always active, avoiding focus switch between buttons and input fields or
531b319d934SAlfonso S. Sicilianoinput boxes in
532b319d934SAlfonso S. Siciliano.Fn bsddialog_form ,
53384823cc7SAlfonso S. Siciliano.Fn bsddialog_datebox ,
53484823cc7SAlfonso S. Siciliano.Fn bsddialog_calendar
535b319d934SAlfonso S. Sicilianoand
536b319d934SAlfonso S. Siciliano.Fn bsddialog_timebox .
53761ba55bcSBaptiste Daroussin.It Fa conf.button.left1_label
53861ba55bcSBaptiste Daroussinadd a button with the specified label.
53961ba55bcSBaptiste Daroussin.It Fa conf.button.left2_label
54061ba55bcSBaptiste Daroussinadd a button with the specified label.
54161ba55bcSBaptiste Daroussin.It Fa conf.button.left3_label
54261ba55bcSBaptiste Daroussinadd a button with the specified label.
543263660c0SAlfonso Siciliano.It Fa conf.button.without_ok
544263660c0SAlfonso Sicilianodisable OK button.
545263660c0SAlfonso Siciliano.It Fa conf.button.ok_label
546263660c0SAlfonso Sicilianoset label for OK button.
547263660c0SAlfonso Siciliano.It Fa conf.button.with_extra
548263660c0SAlfonso Sicilianoadd Extra button.
549263660c0SAlfonso Siciliano.It Fa conf.button.extra_label
550263660c0SAlfonso Sicilianoset a label for Extra button.
551263660c0SAlfonso Siciliano.It Fa conf.button.without_cancel
552263660c0SAlfonso Sicilianodisable Cancel button.
553263660c0SAlfonso Siciliano.It Fa conf.button.cancel_label
554263660c0SAlfonso Sicilianosets a label for Cancel button.
555263660c0SAlfonso Siciliano.It Fa conf.button.default_cancel
556263660c0SAlfonso Sicilianoon startup focus on the Cancel button.
557263660c0SAlfonso Siciliano.It Fa conf.button.with_help
558263660c0SAlfonso Sicilianoadd Help button.
559263660c0SAlfonso Siciliano.It Fa conf.button.help_label
560263660c0SAlfonso Sicilianoset a label for Help button.
56161ba55bcSBaptiste Daroussin.It Fa conf.button.right1_label
562263660c0SAlfonso Sicilianoadd a button with the specified label.
56361ba55bcSBaptiste Daroussin.It Fa conf.button.right2_label
56461ba55bcSBaptiste Daroussinadd a button with the specified label.
56561ba55bcSBaptiste Daroussin.It Fa conf.button.right3_label
566263660c0SAlfonso Sicilianoadd a button with the specified label.
567263660c0SAlfonso Siciliano.It Fa conf.button.default_label
568263660c0SAlfonso Sicilianofocus on the button with the specified label.
569263660c0SAlfonso Siciliano.El
570263660c0SAlfonso Siciliano.Pp
571263660c0SAlfonso Siciliano.Fn bsddialog_initconf
572263660c0SAlfonso Sicilianoinitializes
573263660c0SAlfonso Siciliano.Fa conf
574263660c0SAlfonso Sicilianodisabling each property, except
575263660c0SAlfonso Siciliano.Fa conf.shadow
576263660c0SAlfonso Sicilianoto true,
577263660c0SAlfonso Siciliano.Fa conf.y
578263660c0SAlfonso Sicilianoand
579263660c0SAlfonso Siciliano.Fa conf.x
580263660c0SAlfonso Sicilianoto
58184823cc7SAlfonso S. Siciliano.Dv BSDDIALOG_CENTER ,
58284823cc7SAlfonso S. Siciliano.Fa conf.text.cols_per_row
58384823cc7SAlfonso S. Sicilianoto
58484823cc7SAlfonso S. Siciliano.Dv 10 .
585263660c0SAlfonso Siciliano.Pp
58684823cc7SAlfonso S. Siciliano.Fn bsddialog_calendar
58761ba55bcSBaptiste Daroussinbuilds a dialog to select a date.
58861ba55bcSBaptiste Daroussin.Fa year ,
58961ba55bcSBaptiste Daroussin.Fa month ,
59084823cc7SAlfonso S. Sicilianoand
59161ba55bcSBaptiste Daroussin.Fa day
592263660c0SAlfonso Sicilianoare default values on startup, selected date at exit.
59361ba55bcSBaptiste Daroussin.Pp
59461ba55bcSBaptiste Daroussin.Fn bsddialog_checklist
59561ba55bcSBaptiste Daroussinbuilds dialogs to select some item from a list via the SPACE key, can be
59661ba55bcSBaptiste Daroussincustomized by
59761ba55bcSBaptiste Daroussin.Fa conf.menu.* .
59861ba55bcSBaptiste DaroussinSee
59961ba55bcSBaptiste Daroussin.Fn bsddialog_menu .
60061ba55bcSBaptiste Daroussin.Pp
60161ba55bcSBaptiste Daroussin.Fn bsddialog_datebox
60261ba55bcSBaptiste Daroussinbuilds a dialog to select a date.
60361ba55bcSBaptiste Daroussin.Fa year ,
60461ba55bcSBaptiste Daroussin.Fa month ,
605263660c0SAlfonso Sicilianoand
60661ba55bcSBaptiste Daroussin.Fa day
60761ba55bcSBaptiste Daroussinare default values on startup, selected date at exit.
60861ba55bcSBaptiste DaroussinThe function can be customized by:
609263660c0SAlfonso Siciliano.Bl -column -compact
61061ba55bcSBaptiste Daroussin.It Fa conf.date.format
61161ba55bcSBaptiste Daroussindate format user interface, possible values:
61261ba55bcSBaptiste Daroussin.Dq d/m/y ,
61361ba55bcSBaptiste Daroussin.Dq m/d/y ,
61461ba55bcSBaptiste Daroussin.Dq y/m/d .
615263660c0SAlfonso Siciliano.El
616263660c0SAlfonso Siciliano.Pp
617263660c0SAlfonso Siciliano.Fn bsddialog_form
618b319d934SAlfonso S. Sicilianobuilds a dialog to display an array of
619b319d934SAlfonso S. Siciliano.Fa items
620b319d934SAlfonso S. Sicilianoof
621b319d934SAlfonso S. Siciliano.Fa nitems
62261ba55bcSBaptiste Daroussinelements to get input strings.
623b319d934SAlfonso S. Siciliano.Fa formrows
62461ba55bcSBaptiste Daroussinis the graphical height for the items inside the dialog,
625b319d934SAlfonso S. Siciliano.Dv 0
626b319d934SAlfonso S. Sicilianofor autosizing.
62761ba55bcSBaptiste DaroussinIf not
62861ba55bcSBaptiste Daroussin.Dv NULL
62961ba55bcSBaptiste Daroussin.Fa focusitem
63061ba55bcSBaptiste Daroussinis the default item index on startup and the last focused item at exit, a
63161ba55bcSBaptiste Daroussinnegative value if no item is focused.
632b319d934SAlfonso S. SicilianoAn item is defined like:
633263660c0SAlfonso Siciliano.Pp
634263660c0SAlfonso Siciliano.Bd -literal -offset indent -compact
635d93b4d32SBaptiste Daroussinstruct bsddialog_formitem {
636263660c0SAlfonso Siciliano	const char *label;
637d93b4d32SBaptiste Daroussin	unsigned int ylabel;
638d93b4d32SBaptiste Daroussin	unsigned int xlabel;
639d93b4d32SBaptiste Daroussin
640263660c0SAlfonso Siciliano	const char *init;
641d93b4d32SBaptiste Daroussin	unsigned int yfield;
642d93b4d32SBaptiste Daroussin	unsigned int xfield;
643d93b4d32SBaptiste Daroussin	unsigned int fieldlen;
644d93b4d32SBaptiste Daroussin	unsigned int maxvaluelen;
645263660c0SAlfonso Siciliano	char *value;
646263660c0SAlfonso Siciliano
647d93b4d32SBaptiste Daroussin	unsigned int flags;
648d93b4d32SBaptiste Daroussin
649263660c0SAlfonso Siciliano	const char *bottomdesc;
650d93b4d32SBaptiste Daroussin};
651d93b4d32SBaptiste Daroussin.Ed
652d93b4d32SBaptiste Daroussin.Pp
653263660c0SAlfonso Siciliano.Fa label
65461ba55bcSBaptiste Daroussinis a string to describe the request at the position
655263660c0SAlfonso Siciliano.Fa ylabel
656263660c0SAlfonso Sicilianoand
657263660c0SAlfonso Siciliano.Fa xlabel .
658263660c0SAlfonso SicilianoThe field for the input is at the position
659263660c0SAlfonso Siciliano.Fa yfield
660263660c0SAlfonso Sicilianoand
661263660c0SAlfonso Siciliano.Fa xfield ,
662263660c0SAlfonso Siciliano.Fa fieldlen
663263660c0SAlfonso Sicilianois its graphical width, while
664263660c0SAlfonso Siciliano.Fa maxvalelen
665b319d934SAlfonso S. Sicilianois the maximum number of characters of the input string.
666263660c0SAlfonso Siciliano.Fa init
667b319d934SAlfonso S. Sicilianois the default field value.
66861ba55bcSBaptiste DaroussinIf no error occurs
669263660c0SAlfonso Siciliano.Fa value
67061ba55bcSBaptiste Daroussinis the allocated memory with the current field string at exit, its size depends
67161ba55bcSBaptiste Daroussinon the current locale.
672263660c0SAlfonso Siciliano.Fa flags
67361ba55bcSBaptiste Daroussinis an OR value to set the field:
674b319d934SAlfonso S. Siciliano.Dv BSDDIALOG_FIELDHIDDEN ,
675b319d934SAlfonso S. Siciliano.Dv BSDDIALOG_FIELDREADONLY ,
676b319d934SAlfonso S. Siciliano.Dv BSDDIALOG_FIELDNOCOLOR ,
677b319d934SAlfonso S. Siciliano.Dv BSDDIALOG_FIELDCURSOREND ,
67861ba55bcSBaptiste Daroussin.Dv BSDDIALOG_FIELDEXTEND ,
679b319d934SAlfonso S. Siciliano.Dv BSDDIALOG_FIELDSINGLEBYTE .
680263660c0SAlfonso Siciliano.Fa bottomdesc
68161ba55bcSBaptiste Daroussinis printed at bottom screen if the item is focused.
682263660c0SAlfonso Siciliano.Pp
683263660c0SAlfonso Siciliano.Fn bsddialog_form
684263660c0SAlfonso Sicilianocan be customized by:
685263660c0SAlfonso Siciliano.Bl -column -compact
686263660c0SAlfonso Siciliano.It Fa conf.form.securech
687b319d934SAlfonso S. Sicilianocharachter to hide the input with
688263660c0SAlfonso Siciliano.Dv BSDDIALOG_FIELDHIDDEN .
689b319d934SAlfonso S. Siciliano.It Fa conf.form.securembch
690b319d934SAlfonso S. Sicilianomultibyte charachter to hide the input with
691b319d934SAlfonso S. Siciliano.Dv BSDDIALOG_FIELDHIDDEN ,
692b319d934SAlfonso S. Siciliano.Fa conf.form.securech
693b319d934SAlfonso S. Sicilianois ignored.
694b319d934SAlfonso S. Siciliano.It Fa conf.form.value_wchar
695b319d934SAlfonso S. Sicilianothe allocated
696b319d934SAlfonso S. Siciliano.Fa value
697b319d934SAlfonso S. Sicilianois a
698b319d934SAlfonso S. Siciliano.Em wchar_t*
699b319d934SAlfonso S. Sicilianostring.
700263660c0SAlfonso Siciliano.El
701263660c0SAlfonso Siciliano.Pp
702263660c0SAlfonso Siciliano.Fn bsddialog_gauge
70361ba55bcSBaptiste Daroussinbuilds a dialog with a bar to show
70461ba55bcSBaptiste Daroussin.Fa perc .
70561ba55bcSBaptiste DaroussinIf the file descriptor
706263660c0SAlfonso Siciliano.Fa fd
707263660c0SAlfonso Sicilianois greater or equal to 0 the dialog waits to read
70861ba55bcSBaptiste Daroussin.Fa sep
709263660c0SAlfonso Sicilianofrom it, then the first string replaces
710263660c0SAlfonso Siciliano.Fa perc
711263660c0SAlfonso Sicilianoand the following strings replace
712263660c0SAlfonso Siciliano.Fa text
713263660c0SAlfonso Sicilianountil the next
71461ba55bcSBaptiste Daroussin.Fa sep ,
715263660c0SAlfonso Sicilianothe loop ends reading
71661ba55bcSBaptiste Daroussin.Fa end .
71761ba55bcSBaptiste Daroussin.Pp
71861ba55bcSBaptiste Daroussin.Fn bsddialog_infobox
71961ba55bcSBaptiste Daroussinbuilds a dialog without buttons and returns instantly.
72061ba55bcSBaptiste Daroussin.Pp
72161ba55bcSBaptiste Daroussin.Fn bsddialog_menu
722*a6d8be45SAlfonso S. Sicilianobuilds a dialog to select an item from a list via SPACE and ENTER.
723*a6d8be45SAlfonso S. SicilianoAn item is defined like:
72461ba55bcSBaptiste Daroussin.Pp
72561ba55bcSBaptiste Daroussin.Bd -literal -offset indent -compact
72661ba55bcSBaptiste Daroussinstruct bsddialog_menuitem {
72761ba55bcSBaptiste Daroussin	const char *prefix;
72861ba55bcSBaptiste Daroussin	bool on;
72961ba55bcSBaptiste Daroussin	unsigned int depth;
73061ba55bcSBaptiste Daroussin	const char *name;
73161ba55bcSBaptiste Daroussin	const char *desc;
73261ba55bcSBaptiste Daroussin	const char *bottomdesc;
73361ba55bcSBaptiste Daroussin};
73461ba55bcSBaptiste Daroussin.Ed
73561ba55bcSBaptiste Daroussin.Pp
73661ba55bcSBaptiste Daroussin.Fa prefix ,
73761ba55bcSBaptiste Daroussin.Fa name
73861ba55bcSBaptiste Daroussinand
73961ba55bcSBaptiste Daroussin.Fa desc
74061ba55bcSBaptiste Daroussinare printed at the item row.
74161ba55bcSBaptiste Daroussin.Fa bottomdesc
74261ba55bcSBaptiste Daroussinis printed at bottom screen if the item is focused.
74361ba55bcSBaptiste Daroussin.Fa depth
74461ba55bcSBaptiste Daroussinis a margin between
74561ba55bcSBaptiste Daroussin.Fa prefix
74661ba55bcSBaptiste Daroussinand
74761ba55bcSBaptiste Daroussin.Fa name .
74861ba55bcSBaptiste DaroussinAt exit
74961ba55bcSBaptiste Daroussin.Fa on
75061ba55bcSBaptiste Daroussinis set to
75161ba55bcSBaptiste Daroussin.Dv true
75261ba55bcSBaptiste Daroussinif the item is selected,
75361ba55bcSBaptiste Daroussin.Dv false
75461ba55bcSBaptiste Daroussinotherwise.
75561ba55bcSBaptiste Daroussin.Fa items
75661ba55bcSBaptiste Daroussinis an array of items of
75761ba55bcSBaptiste Daroussin.Fa nitem
75861ba55bcSBaptiste Daroussinelements.
75961ba55bcSBaptiste Daroussin.Fa menurows
76061ba55bcSBaptiste Daroussinis the graphical height of the list inside the dialog, if
76161ba55bcSBaptiste Daroussin.Fa cols
76261ba55bcSBaptiste Daroussinis
76361ba55bcSBaptiste Daroussin.Dv BSDDIALOG_AUTOSIZE
76461ba55bcSBaptiste Daroussin.Fa menurows
76561ba55bcSBaptiste Daroussinspecifies a maximum value.
76661ba55bcSBaptiste Daroussinif not
76761ba55bcSBaptiste Daroussin.Dv NULL
76861ba55bcSBaptiste Daroussin.Fa focusitem
76961ba55bcSBaptiste Daroussinis the default item index on startup and the last focused item at exit, a
77061ba55bcSBaptiste Daroussinnegative value if no item is focused.
77161ba55bcSBaptiste Daroussin.Pp
77261ba55bcSBaptiste Daroussin.Fn bsddialog_checklist ,
77361ba55bcSBaptiste Daroussin.Fn bsddialog_menu ,
77461ba55bcSBaptiste Daroussin.Fn bsddialog_mixedlist
77561ba55bcSBaptiste Daroussinand
77661ba55bcSBaptiste Daroussin.Fn bsddialog_radiolist
77761ba55bcSBaptiste Daroussincan be customized by:
77861ba55bcSBaptiste Daroussin.Bl -column -compact
77961ba55bcSBaptiste Daroussin.It Fa conf.menu.align_left
78061ba55bcSBaptiste Daroussinalign items to left, default center.
78161ba55bcSBaptiste Daroussin.It Fa conf.menu.no_desc
78261ba55bcSBaptiste Daroussinhide items description.
78361ba55bcSBaptiste Daroussin.It Fa conf.menu.no_name
78461ba55bcSBaptiste Daroussinhide items name, mutually exclusive with
78561ba55bcSBaptiste Daroussin.Fa conf.menu.no_desc .
78661ba55bcSBaptiste Daroussin.It Fa conf.menu.shortcut_buttons
78761ba55bcSBaptiste Daroussinenable shortcut keys on buttons, default on items.
78861ba55bcSBaptiste Daroussin.El
789263660c0SAlfonso Siciliano.Pp
790263660c0SAlfonso Siciliano.Fn bsddialog_mixedgauge
79161ba55bcSBaptiste Daroussinbuilds a dialog with a main bar with the
792263660c0SAlfonso Siciliano.Fa mainperc
793263660c0SAlfonso Sicilianopercentage and
794263660c0SAlfonso Siciliano.Fa nminibars
795263660c0SAlfonso Sicilianoeach one with a
796263660c0SAlfonso Siciliano.Fa minilabel
797263660c0SAlfonso Sicilianoand a
79861ba55bcSBaptiste Daroussin.Fa miniperc .
799263660c0SAlfonso Siciliano.Fa miniperc
80061ba55bcSBaptiste Daroussincan be: a positive value to print a bar with a percentace, a negative constant
801263660c0SAlfonso Siciliano.Dv BSDDIALOG_MG_SUCCEEDED ,
802263660c0SAlfonso Siciliano.Dv BSDDIALOG_MG_FAILED ,
803263660c0SAlfonso Siciliano.Dv BSDDIALOG_MG_PASSED ,
804263660c0SAlfonso Siciliano.Dv BSDDIALOG_MG_COMPLETED ,
805263660c0SAlfonso Siciliano.Dv BSDDIALOG_MG_CHECKED ,
806263660c0SAlfonso Siciliano.Dv BSDDIALOG_MG_DONE ,
807263660c0SAlfonso Siciliano.Dv BSDDIALOG_MG_SKIPPED ,
808263660c0SAlfonso Siciliano.Dv BSDDIALOG_MG_INPROGRESS ,
80961ba55bcSBaptiste Daroussin.Dv BSDDIALOG_MG_BLANK
81061ba55bcSBaptiste Daroussinto hide
81161ba55bcSBaptiste Daroussin.Fa miniperc ,
81261ba55bcSBaptiste Daroussin.Dv BSDDIALOG_MG_NA ,
813263660c0SAlfonso Siciliano.Dv BSDDIALOG_MG_PENDING
81461ba55bcSBaptiste Daroussinto print a descriptive string, otherwise
81561ba55bcSBaptiste Daroussin.Dq "UNKNOWN"
81661ba55bcSBaptiste Daroussinis printed.
81761ba55bcSBaptiste Daroussin.Pp
81861ba55bcSBaptiste Daroussin.Fn bsddialog_mixedlist
81961ba55bcSBaptiste Daroussinbuilds a dialog with collections of checklists, radiolists and separators.
82061ba55bcSBaptiste DaroussinA collection is a set defined like:
82161ba55bcSBaptiste Daroussin.Pp
82261ba55bcSBaptiste Daroussin.Bd -literal -offset indent -compact
82361ba55bcSBaptiste Daroussinenum bsddialog_menutype {
82461ba55bcSBaptiste Daroussin	BSDDIALOG_CHECKLIST,
82561ba55bcSBaptiste Daroussin	BSDDIALOG_RADIOLIST,
82661ba55bcSBaptiste Daroussin	BSDDIALOG_SEPARATOR,
82761ba55bcSBaptiste Daroussin};
82861ba55bcSBaptiste Daroussin
82961ba55bcSBaptiste Daroussinstruct bsddialog_menugroup {
83061ba55bcSBaptiste Daroussin	enum bsddialog_menutype type;
83161ba55bcSBaptiste Daroussin	unsigned int nitems;
83261ba55bcSBaptiste Daroussin	struct bsddialog_menuitem *items;
83361ba55bcSBaptiste Daroussin	unsigned int min_on; /* unused for now */
83461ba55bcSBaptiste Daroussin};
83561ba55bcSBaptiste Daroussin.Ed
83661ba55bcSBaptiste Daroussin.Pp
83761ba55bcSBaptiste Daroussin.Fa groups
83861ba55bcSBaptiste Daroussinis an array of sets of
83961ba55bcSBaptiste Daroussin.Fa ngroups
84061ba55bcSBaptiste Daroussinelements.
84161ba55bcSBaptiste Daroussin.Fa menurows
84261ba55bcSBaptiste Daroussinis the graphical height size for the list.
84361ba55bcSBaptiste DaroussinIf not
84461ba55bcSBaptiste Daroussin.Dv NULL ,
84561ba55bcSBaptiste Daroussin.Fa focuslist
84661ba55bcSBaptiste Daroussinand
84761ba55bcSBaptiste Daroussin.Fa focusitem
84861ba55bcSBaptiste Daroussinspecify the default item on startup and the last focused item at exit, could be
84961ba55bcSBaptiste Daroussina negative value if no item is focused.
85061ba55bcSBaptiste DaroussinThe dialog can be customized by
85161ba55bcSBaptiste Daroussin.Fa conf.menu.* ,
85261ba55bcSBaptiste Daroussinsee
85361ba55bcSBaptiste Daroussin.Fn bsddialog_menu .
85461ba55bcSBaptiste Daroussin.Pp
85561ba55bcSBaptiste Daroussin.Fn bsddialog_msgbox
85661ba55bcSBaptiste Daroussinbuilds a dialog with OK button.
85761ba55bcSBaptiste Daroussin.Pp
85861ba55bcSBaptiste Daroussin.Fn bsddialog_pause
85961ba55bcSBaptiste Daroussinbuilds a dialog waiting until the timeout in
86061ba55bcSBaptiste Daroussin.Fa seconds
86161ba55bcSBaptiste Daroussinexpires or a button is pressed.
86261ba55bcSBaptiste DaroussinAt exit
86361ba55bcSBaptiste Daroussin.Fa seconds
86461ba55bcSBaptiste Daroussinis set like remaining time.
86561ba55bcSBaptiste Daroussin.Pp
86661ba55bcSBaptiste Daroussin.Fn bsddialog_radiolist
86761ba55bcSBaptiste Daroussinbuilds dialogs to select at most an item from a list via the SPACE key, can be
86861ba55bcSBaptiste Daroussincustomized by
86961ba55bcSBaptiste Daroussin.Fa conf.menu.* .
87061ba55bcSBaptiste DaroussinSee
87161ba55bcSBaptiste Daroussin.Fn bsddialog_menu .
872263660c0SAlfonso Siciliano.Pp
873263660c0SAlfonso Siciliano.Fn bsddialog_rangebox
874263660c0SAlfonso Sicilianoto select a value between
875263660c0SAlfonso Siciliano.Fa min
876263660c0SAlfonso Sicilianoand
877263660c0SAlfonso Siciliano.Fa max .
878263660c0SAlfonso Siciliano.Fa value
879263660c0SAlfonso Sicilianois the default value on startup and the selected value at exit.
880*a6d8be45SAlfonso S. SicilianoThe current value is printed inside a bar.
881263660c0SAlfonso Siciliano.Pp
882263660c0SAlfonso Siciliano.Fn bsddialog_textbox
883263660c0SAlfonso Sicilianoopens and prints
88461ba55bcSBaptiste Daroussin.Fa file .
885*a6d8be45SAlfonso S. SicilianoTAB key changes button.
886*a6d8be45SAlfonso S. SicilianoExtra keys 0, h, l, k, j are available to navigate the text.
88761ba55bcSBaptiste Daroussin.Dq OK
88861ba55bcSBaptiste Daroussinbutton is renamed
88961ba55bcSBaptiste Daroussin.Dq EXIT .
89061ba55bcSBaptiste Daroussin.Pp
89161ba55bcSBaptiste Daroussin.Fn bsddialog_timebox
89261ba55bcSBaptiste Daroussinbuilds a dialog to choose a time.
89361ba55bcSBaptiste Daroussin.Fa hh ,
89461ba55bcSBaptiste Daroussin.Fa mm ,
89561ba55bcSBaptiste Daroussinand
89661ba55bcSBaptiste Daroussin.Fa ss
89761ba55bcSBaptiste Daroussinare default values on startup, selected time at exit.
89861ba55bcSBaptiste Daroussin.Pp
89961ba55bcSBaptiste Daroussin.Fn bsddialog_yesno
90061ba55bcSBaptiste Daroussinprovides a dialog for a
90161ba55bcSBaptiste Daroussin.Dq Yes-No Question ,
902*a6d8be45SAlfonso S. Sicilianothe labels on buttons are
903*a6d8be45SAlfonso S. Siciliano.Dq Yes
904*a6d8be45SAlfonso S. Sicilianoand
905*a6d8be45SAlfonso S. Siciliano.Dq No .
906*a6d8be45SAlfonso S. Siciliano.Ss Keys
907*a6d8be45SAlfonso S. Siciliano.Bl -tag -width Ds
908*a6d8be45SAlfonso S. Siciliano.It Ctrl-l
909*a6d8be45SAlfonso S. SicilianoRedraw the dialog.
910*a6d8be45SAlfonso S. Siciliano.It F1
911*a6d8be45SAlfonso S. SicilianoRefer to
912*a6d8be45SAlfonso S. Siciliano.Fa conf.key.f1_file
913*a6d8be45SAlfonso S. Sicilianoand
914*a6d8be45SAlfonso S. Siciliano.Fa conf.key.f1_message .
915*a6d8be45SAlfonso S. Siciliano.It SPACE
916*a6d8be45SAlfonso S. SicilianoSelect menu item.
917*a6d8be45SAlfonso S. Siciliano.It UP DOWN LEFT RIGHT - + HOME END PAGEUP PAGEDOWN Ctrl-p Ctrl-n TAB
918*a6d8be45SAlfonso S. SicilianoNavigate elements and set value, depending on the dialog.
919*a6d8be45SAlfonso S. Siciliano.El
920d93b4d32SBaptiste Daroussin.Ss Theme
92161ba55bcSBaptiste DaroussinThe graphical properties are global to the library.
92261ba55bcSBaptiste DaroussinThey are represented by
923263660c0SAlfonso Siciliano.Fa struct bsddialog_theme
924263660c0SAlfonso Sicilianoand can be customized at runtime via the
925263660c0SAlfonso Siciliano.In bsddialog_theme.h
926263660c0SAlfonso SicilianoAPI.
927d93b4d32SBaptiste Daroussin.Pp
928d93b4d32SBaptiste Daroussin.Bd -literal -offset indent -compact
929d93b4d32SBaptiste Daroussinstruct bsddialog_theme {
930d93b4d32SBaptiste Daroussin	struct {
931d93b4d32SBaptiste Daroussin		int color;
932263660c0SAlfonso Siciliano	} screen;
933d93b4d32SBaptiste Daroussin	struct {
934d93b4d32SBaptiste Daroussin		int color;
935b319d934SAlfonso S. Siciliano		unsigned int y;
936b319d934SAlfonso S. Siciliano		unsigned int x;
937d93b4d32SBaptiste Daroussin	} shadow;
938d93b4d32SBaptiste Daroussin	struct {
939d93b4d32SBaptiste Daroussin		int  color;
940d93b4d32SBaptiste Daroussin		bool delimtitle;
941d93b4d32SBaptiste Daroussin		int  titlecolor;
942d93b4d32SBaptiste Daroussin		int  lineraisecolor;
943d93b4d32SBaptiste Daroussin		int  linelowercolor;
944d93b4d32SBaptiste Daroussin		int  bottomtitlecolor;
945bce40c02SAlfonso S. Siciliano		int  arrowcolor;
946d93b4d32SBaptiste Daroussin	} dialog;
947d93b4d32SBaptiste Daroussin	struct {
94861ba55bcSBaptiste Daroussin		int f_prefixcolor;
94961ba55bcSBaptiste Daroussin		int prefixcolor;
950bce40c02SAlfonso S. Siciliano		int f_selectorcolor;
951d93b4d32SBaptiste Daroussin		int selectorcolor;
952d93b4d32SBaptiste Daroussin		int f_namecolor;
953d93b4d32SBaptiste Daroussin		int namecolor;
954d93b4d32SBaptiste Daroussin		int f_desccolor;
955d93b4d32SBaptiste Daroussin		int desccolor;
956d93b4d32SBaptiste Daroussin		int f_shortcutcolor;
957d93b4d32SBaptiste Daroussin		int shortcutcolor;
958b319d934SAlfonso S. Siciliano		int bottomdesccolor;
95961ba55bcSBaptiste Daroussin		int sepnamecolor;
96061ba55bcSBaptiste Daroussin		int sepdesccolor;
961d93b4d32SBaptiste Daroussin	} menu;
962d93b4d32SBaptiste Daroussin	struct {
963d93b4d32SBaptiste Daroussin		int f_fieldcolor;
964d93b4d32SBaptiste Daroussin		int fieldcolor;
965d93b4d32SBaptiste Daroussin		int readonlycolor;
966b319d934SAlfonso S. Siciliano		int bottomdesccolor;
967d93b4d32SBaptiste Daroussin	} form;
968d93b4d32SBaptiste Daroussin	struct {
969d93b4d32SBaptiste Daroussin		int f_color;
970d93b4d32SBaptiste Daroussin		int color;
971d93b4d32SBaptiste Daroussin	} bar;
972d93b4d32SBaptiste Daroussin	struct {
973b319d934SAlfonso S. Siciliano		unsigned int minmargin;
974b319d934SAlfonso S. Siciliano		unsigned int maxmargin;
975b319d934SAlfonso S. Siciliano		char leftdelim;
976b319d934SAlfonso S. Siciliano		char rightdelim;
977d93b4d32SBaptiste Daroussin		int f_delimcolor;
97861ba55bcSBaptiste Daroussin		int delimcolor;
979d93b4d32SBaptiste Daroussin		int f_color;
98061ba55bcSBaptiste Daroussin		int color;
981d93b4d32SBaptiste Daroussin		int f_shortcutcolor;
98261ba55bcSBaptiste Daroussin		int shortcutcolor;
983d93b4d32SBaptiste Daroussin	} button;
984d93b4d32SBaptiste Daroussin};
985d93b4d32SBaptiste Daroussin.Ed
986d93b4d32SBaptiste Daroussin.Pp
987263660c0SAlfonso SicilianoA member with the
988263660c0SAlfonso Siciliano.Dq f_
98961ba55bcSBaptiste Daroussinrefers to focus when an element can be in selected or not selected state.
990263660c0SAlfonso Siciliano.Pp
99161ba55bcSBaptiste Daroussin.Fn bsddialog_color
99261ba55bcSBaptiste Daroussingenerates and returns a color to set a
99361ba55bcSBaptiste Daroussin.Fa struct bsddialog_theme
99461ba55bcSBaptiste Daroussincolor member.
99561ba55bcSBaptiste DaroussinAn
99661ba55bcSBaptiste Daroussin.Fa enum bsddialog_color
99761ba55bcSBaptiste Daroussincan be:
998263660c0SAlfonso Siciliano.Dv BSDDIALOG_BLACK ,
999263660c0SAlfonso Siciliano.Dv BSDDIALOG_RED ,
1000263660c0SAlfonso Siciliano.Dv BSDDIALOG_GREEN ,
1001263660c0SAlfonso Siciliano.Dv BSDDIALOG_YELLOW ,
1002263660c0SAlfonso Siciliano.Dv BSDDIALOG_BLUE ,
1003263660c0SAlfonso Siciliano.Dv BSDDIALOG_MAGENTA ,
1004263660c0SAlfonso Siciliano.Dv BSDDIALOG_CYAN ,
100561ba55bcSBaptiste Daroussin.Dv BSDDIALOG_WHITE .
1006263660c0SAlfonso Siciliano.Fa flags
100761ba55bcSBaptiste Daroussinis an OR value:
100861ba55bcSBaptiste Daroussin.Dv BSDDIALOG_BLINK ,
1009263660c0SAlfonso Siciliano.Dv BSDDIALOG_BOLD ,
101061ba55bcSBaptiste Daroussin.Dv BSDDIALOG_HALFBRIGHT ,
101161ba55bcSBaptiste Daroussin.Dv BSDDIALOG_HIGHLIGHT ,
101261ba55bcSBaptiste Daroussin.Dv BSDDIALOG_REVERSE ,
1013263660c0SAlfonso Siciliano.Dv BSDDIALOG_UNDERLINE .
1014263660c0SAlfonso Siciliano.Pp
101561ba55bcSBaptiste Daroussin.Fn bsddialog_color_attrs
101661ba55bcSBaptiste Daroussinsets, if not NULL,
101761ba55bcSBaptiste Daroussin.Fa foreground ,
101861ba55bcSBaptiste Daroussin.Fa background ,
101961ba55bcSBaptiste Daroussin.Fa flags ,
102061ba55bcSBaptiste Daroussinlike the properties of
102161ba55bcSBaptiste Daroussin.Fa color ,
102261ba55bcSBaptiste Daroussinsee
102361ba55bcSBaptiste Daroussin.Fn bsddialog_color .
102461ba55bcSBaptiste Daroussin.Pp
102561ba55bcSBaptiste Daroussin.Fn bsddialog_get_theme
1026263660c0SAlfonso Sicilianosets
1027263660c0SAlfonso Siciliano.Fa theme
102861ba55bcSBaptiste Daroussinlike the current runtime theme.
1029b319d934SAlfonso S. Siciliano.Pp
1030b319d934SAlfonso S. Siciliano.Fn bsddialog_hascolors
1031b319d934SAlfonso S. Sicilianoreturns
1032b319d934SAlfonso S. Siciliano.Dv true
1033b319d934SAlfonso S. Sicilianoif the terminal provides colors,
1034b319d934SAlfonso S. Siciliano.Dv false
1035b319d934SAlfonso S. Sicilianootherwise.
103661ba55bcSBaptiste Daroussin.Pp
103761ba55bcSBaptiste Daroussin.Fn bsddialog_set_theme
103861ba55bcSBaptiste Daroussinsets
103961ba55bcSBaptiste Daroussin.Fa theme
104061ba55bcSBaptiste Daroussinlike current runtime theme.
104161ba55bcSBaptiste DaroussinChanges take effect only for dialogs built after
104261ba55bcSBaptiste Daroussinthe call.
104361ba55bcSBaptiste Daroussin.Pp
104461ba55bcSBaptiste Daroussin.Fn bsddialog_set_default_theme
104561ba55bcSBaptiste Daroussinsets a library default theme like current theme, possible values:
104661ba55bcSBaptiste Daroussin.Dv BSDDIALOG_THEME_BLACKWHITE ,
104761ba55bcSBaptiste Daroussin.Dv BSDDIALOG_THEME_FLAT ,
104861ba55bcSBaptiste Daroussin.Dv BSDDIALOG_THEME_3D .
104961ba55bcSBaptiste DaroussinChanges take effect only for dialogs built after the call.
1050d93b4d32SBaptiste Daroussin.Sh RETURN VALUES
1051263660c0SAlfonso SicilianoThe functions return the value
1052263660c0SAlfonso Siciliano.Dv BSDDIALOG_ERROR
1053263660c0SAlfonso Sicilianoif unsuccessful;
1054263660c0SAlfonso Sicilianootherwise, depending on the pressed button, the following values can be
1055263660c0SAlfonso Sicilianoreturned:
1056263660c0SAlfonso Siciliano.Dv BSDDIALOG_OK ,
1057263660c0SAlfonso Siciliano.Dv BSDDIALOG_CANCEL ,
1058263660c0SAlfonso Siciliano.Dv BSDDIALOG_HELP ,
1059263660c0SAlfonso Siciliano.Dv BSDDIALOG_EXTRA ,
106061ba55bcSBaptiste Daroussin.Dv BSDDIALOG_LEFT1 ,
106161ba55bcSBaptiste Daroussin.Dv BSDDIALOG_LEFT2 ,
106261ba55bcSBaptiste Daroussin.Dv BSDDIALOG_LEFT3 ,
106361ba55bcSBaptiste Daroussin.Dv BSDDIALOG_RIGHT1 ,
106461ba55bcSBaptiste Daroussin.Dv BSDDIALOG_RIGHT2 ,
106561ba55bcSBaptiste Daroussin.Dv BSDDIALOG_RIGHT3 .
1066263660c0SAlfonso Siciliano.Dv BSDDIALOG_YES
1067263660c0SAlfonso Sicilianoand
1068263660c0SAlfonso Siciliano.Dv BSDDIALOG_NO
1069263660c0SAlfonso Sicilianoare aliases for
1070263660c0SAlfonso Siciliano.Dv BSDDIALOG_OK
1071263660c0SAlfonso Sicilianoand
1072263660c0SAlfonso Siciliano.Dv BSDDIALOG_CANCEL ,
1073263660c0SAlfonso Sicilianorespectively.
1074263660c0SAlfonso Siciliano.Pp
1075263660c0SAlfonso SicilianoThe functions return
1076263660c0SAlfonso Siciliano.Dv BSDDIALOG_ESC
1077263660c0SAlfonso Sicilianoif
1078263660c0SAlfonso Siciliano.Fa conf.key.enable_esc
1079263660c0SAlfonso Sicilianois enabled and the ESC key is pressed.
1080263660c0SAlfonso Siciliano.Pp
1081263660c0SAlfonso Siciliano.Fn bsddialog_pause
1082263660c0SAlfonso Sicilianoreturns
1083263660c0SAlfonso Siciliano.Dv BSDDIALOG_TIMEOUT
1084263660c0SAlfonso Sicilianoif the timeout expires.
1085d93b4d32SBaptiste Daroussin.Sh EXAMPLES
1086263660c0SAlfonso Siciliano.Dq Yes-No Question
1087263660c0SAlfonso SicilianoExample:
1088d93b4d32SBaptiste Daroussin.Pp
1089d93b4d32SBaptiste Daroussin.Bd -literal -offset indent -compact
1090d93b4d32SBaptiste Daroussinint output;
1091d93b4d32SBaptiste Daroussinstruct bsddialog_conf conf;
1092d93b4d32SBaptiste Daroussin
1093d93b4d32SBaptiste Daroussinif (bsddialog_init() == BSDDIALOG_ERROR)
1094d93b4d32SBaptiste Daroussin	return (1);
1095d93b4d32SBaptiste Daroussin
1096263660c0SAlfonso Sicilianobsddialog_initconf(&conf);
1097263660c0SAlfonso Sicilianoconf.title = "yesno";
1098d93b4d32SBaptiste Daroussinoutput = bsddialog_yesno(&conf, "Example", 7, 25);
1099d93b4d32SBaptiste Daroussin
1100d93b4d32SBaptiste Daroussinbsddialog_end();
1101d93b4d32SBaptiste Daroussin
1102d93b4d32SBaptiste Daroussinswitch (output) {
1103d93b4d32SBaptiste Daroussincase BSDDIALOG_YES:
1104263660c0SAlfonso Siciliano	printf("Yes\\n");
1105d93b4d32SBaptiste Daroussin	break;
1106d93b4d32SBaptiste Daroussincase BSDDIALOG_NO
1107*a6d8be45SAlfonso S. Siciliano	printf("No\\n");
1108d93b4d32SBaptiste Daroussin	break;
1109d93b4d32SBaptiste Daroussincase BSDDIALOG_ERROR:
1110d93b4d32SBaptiste Daroussin	printf("Error: %s\\n", bsddialog_geterror());
111161ba55bcSBaptiste Daroussin	break;
1112d93b4d32SBaptiste Daroussin}
1113d93b4d32SBaptiste Daroussin.Ed
1114263660c0SAlfonso Siciliano.Pp
1115263660c0SAlfonso SicilianoTheme Example:
1116263660c0SAlfonso Siciliano.Pp
1117263660c0SAlfonso Siciliano.Bd -literal -offset indent -compact
1118263660c0SAlfonso Sicilianostruct bsddialog_conf conf;
1119263660c0SAlfonso Sicilianostruct bsddialog_theme theme;
1120263660c0SAlfonso Siciliano
1121bce40c02SAlfonso S. Sicilianobsddialog_init();
1122263660c0SAlfonso Siciliano
1123263660c0SAlfonso Sicilianobsddialog_initconf(&conf);
1124263660c0SAlfonso Sicilianobsddialog_msgbox(&conf, "Default theme", 7, 25);
1125263660c0SAlfonso Siciliano
1126263660c0SAlfonso Sicilianobsddialog_get_theme(&theme);
1127263660c0SAlfonso Sicilianotheme.screen.color = bsddialog_color(BSDDIALOG_RED, BSDDIALOG_GREEN,
1128263660c0SAlfonso Siciliano    BSDDIALOG_BOLD);
1129263660c0SAlfonso Sicilianobsddialog_set_theme(&theme);
1130263660c0SAlfonso Sicilianobsddialog_backtitle(&conf, "Red foreground and Green background");
1131263660c0SAlfonso Sicilianobsddialog_msgbox(&conf, "Change screen color", 7, 25);
1132263660c0SAlfonso Siciliano
1133263660c0SAlfonso Sicilianobsddialog_set_default_theme(BSDDIALOG_THEME_BLACKWHITE);
1134263660c0SAlfonso Sicilianobsddialog_msgbox(&conf, "Black and White theme", 7, 25);
1135263660c0SAlfonso Siciliano
1136263660c0SAlfonso Sicilianobsddialog_end();
1137263660c0SAlfonso Siciliano.Ed
1138263660c0SAlfonso Siciliano.Pp
1139263660c0SAlfonso SicilianoMixedlist Example:
1140263660c0SAlfonso Siciliano.Pp
1141263660c0SAlfonso Siciliano.Bd -literal -offset indent -compact
1142263660c0SAlfonso Sicilianounsigned int i, j;
1143263660c0SAlfonso Sicilianostruct bsddialog_conf conf;
1144263660c0SAlfonso Sicilianostruct bsddialog_menuitem item;
1145263660c0SAlfonso Sicilianostruct bsddialog_menuitem check[2] = {
1146263660c0SAlfonso Siciliano    { "1", true,  0, "Name 1", "Desc 1", "Check Bottom Desc 1" },
1147263660c0SAlfonso Siciliano    { "2", false, 0, "Name 2", "Desc 2", "Check Bottom Desc 2" }
1148263660c0SAlfonso Siciliano};
1149263660c0SAlfonso Sicilianostruct bsddialog_menuitem sep[1] = {
1150263660c0SAlfonso Siciliano    { "3", true, 0, "Radiolist", "(desc)", "" }
1151263660c0SAlfonso Siciliano};
115284823cc7SAlfonso S. Sicilianostruct bsddialog_menuitem radio[2] = {
1153263660c0SAlfonso Siciliano    { "4", true,  0, "Name 1", "Desc 1", "Radio Bottom Desc 1" },
1154263660c0SAlfonso Siciliano    { "5", false, 0, "Name 2", "Desc 2", "Radio Bottom Desc 2" }
1155263660c0SAlfonso Siciliano};
1156263660c0SAlfonso Sicilianostruct bsddialog_menugroup group[3] = {
1157263660c0SAlfonso Siciliano    { BSDDIALOG_CHECKLIST, 2, check },
1158263660c0SAlfonso Siciliano    { BSDDIALOG_SEPARATOR, 1, sep   },
1159263660c0SAlfonso Siciliano    { BSDDIALOG_RADIOLIST, 2, radio }
1160263660c0SAlfonso Siciliano};
1161263660c0SAlfonso Siciliano
1162263660c0SAlfonso Sicilianobsddialog_init();
1163263660c0SAlfonso Sicilianobsddialog_initconf(&conf);
1164263660c0SAlfonso Sicilianobsddialog_mixedlist(&conf, "Example", 20, 30, 11, 3, group, NULL,
1165263660c0SAlfonso Siciliano    NULL);
1166263660c0SAlfonso Sicilianobsddialog_end();
1167263660c0SAlfonso Siciliano
1168263660c0SAlfonso Sicilianofor (i = 0; i < 3; i++) {
1169263660c0SAlfonso Siciliano	for (j = 0; j < group[i].nitems; j++) {
1170263660c0SAlfonso Siciliano		item = group[i].items[j];
1171263660c0SAlfonso Siciliano		switch (item.type) {
1172263660c0SAlfonso Siciliano		case BSDDIALOG_SEPARATOR:
1173263660c0SAlfonso Siciliano			printf("---- %s ----\\n", item.name);
1174263660c0SAlfonso Siciliano			break;
1175263660c0SAlfonso Siciliano		case BSDDIALOG_RADIOLIST:
1176263660c0SAlfonso Siciliano			printf(" (%c) %s\\n",
1177263660c0SAlfonso Siciliano			    item.on ? '*' : ' ', item.name);
1178263660c0SAlfonso Siciliano			break;
1179263660c0SAlfonso Siciliano		case BSDDIALOG_CHECKLIST:
1180263660c0SAlfonso Siciliano			printf(" [%c] %s\\n",
1181263660c0SAlfonso Siciliano			    item.on ? 'X' : ' ', item.name);
1182263660c0SAlfonso Siciliano			break;
1183263660c0SAlfonso Siciliano		}
1184263660c0SAlfonso Siciliano	}
1185263660c0SAlfonso Siciliano}
1186263660c0SAlfonso Siciliano.Ed
1187d93b4d32SBaptiste Daroussin.Sh SEE ALSO
1188263660c0SAlfonso Siciliano.Xr bsddialog 1 ,
1189b319d934SAlfonso S. Siciliano.Xr curses 3
1190d93b4d32SBaptiste Daroussin.Sh HISTORY
1191d93b4d32SBaptiste DaroussinThe
1192d93b4d32SBaptiste Daroussin.Nm bsddialog
1193d93b4d32SBaptiste Daroussinlibrary first appeared in
1194d93b4d32SBaptiste Daroussin.Fx 14.0 .
1195d93b4d32SBaptiste Daroussin.Sh AUTHORS
1196d93b4d32SBaptiste Daroussin.Nm bsddialog
1197d93b4d32SBaptiste Daroussinwas written by
1198b319d934SAlfonso S. Siciliano.An Alfonso Sabato Siciliano Aq Mt asiciliano@FreeBSD.org .
1199