xref: /freebsd/contrib/bsddialog/lib/bsddialog.3 (revision bce40c0242b167a541cc051b6b0dbcc5f3d04319)
1d93b4d32SBaptiste Daroussin.\"
2263660c0SAlfonso Siciliano.\" Copyright (c) 2021-2022 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*bce40c02SAlfonso S. Siciliano.Dd February 9, 2022
26d93b4d32SBaptiste Daroussin.Dt BSDDIALOG 3
27f499134dSBaptiste Daroussin.Os
28f499134dSBaptiste Daroussin.Sh NAME
29d93b4d32SBaptiste Daroussin.Nm bsddialog_backtitle ,
30d93b4d32SBaptiste Daroussin.Nm bsddialog_clearterminal ,
31d93b4d32SBaptiste Daroussin.Nm bsddialog_color ,
32d93b4d32SBaptiste Daroussin.Nm bsddialog_checklist ,
33d93b4d32SBaptiste Daroussin.Nm bsddialog_datebox ,
34d93b4d32SBaptiste Daroussin.Nm bsddialog_end ,
35d93b4d32SBaptiste Daroussin.Nm bsddialog_form ,
36d93b4d32SBaptiste Daroussin.Nm bsddialog_gauge ,
37d93b4d32SBaptiste Daroussin.Nm bsddialog_geterror ,
38263660c0SAlfonso Siciliano.Nm bsddialog_get_theme ,
39d93b4d32SBaptiste Daroussin.Nm bsddialog_infobox ,
40d93b4d32SBaptiste Daroussin.Nm bsddialog_init ,
41d93b4d32SBaptiste Daroussin.Nm bsddialog_initconf ,
42d93b4d32SBaptiste Daroussin.Nm bsddialog_menu ,
43d93b4d32SBaptiste Daroussin.Nm bsddialog_mixedgauge ,
44d93b4d32SBaptiste Daroussin.Nm bsddialog_mixedlist ,
45d93b4d32SBaptiste Daroussin.Nm bsddialog_msgbox ,
46d93b4d32SBaptiste Daroussin.Nm bsddialog_pause ,
47d93b4d32SBaptiste Daroussin.Nm bsddialog_radiolist ,
48d93b4d32SBaptiste Daroussin.Nm bsddialog_rangebox ,
49d93b4d32SBaptiste Daroussin.Nm bsddialog_set_theme ,
50d93b4d32SBaptiste Daroussin.Nm bsddialog_set_default_theme ,
51d93b4d32SBaptiste Daroussin.Nm bsddialog_textbox ,
52d93b4d32SBaptiste Daroussin.Nm bsddialog_timebox ,
53d93b4d32SBaptiste Daroussin.Nm bsddialog_yesno
54263660c0SAlfonso Siciliano.Nd TUI dialogs
55d93b4d32SBaptiste Daroussin.Sh LIBRARY
56d93b4d32SBaptiste Daroussin.Lb libbsddialog
57f499134dSBaptiste Daroussin.Sh SYNOPSIS
58d93b4d32SBaptiste Daroussin.In bsddialog.h
59d93b4d32SBaptiste Daroussin.Ft int
60263660c0SAlfonso Siciliano.Fn bsddialog_backtitle "struct bsddialog_conf *conf" "const char *backtitle"
61d93b4d32SBaptiste Daroussin.Ft int
62d93b4d32SBaptiste Daroussin.Fo bsddialog_checklist
63d93b4d32SBaptiste Daroussin.Fa "struct bsddialog_conf *conf"
64263660c0SAlfonso Siciliano.Fa "const char *text"
65d93b4d32SBaptiste Daroussin.Fa "int rows"
66d93b4d32SBaptiste Daroussin.Fa "int cols"
67d93b4d32SBaptiste Daroussin.Fa "unsigned int menurows"
68263660c0SAlfonso Siciliano.Fa "unsigned int nitems"
69d93b4d32SBaptiste Daroussin.Fa "struct bsddialog_menuitem *items"
70d93b4d32SBaptiste Daroussin.Fa "int *focusitem"
71d93b4d32SBaptiste Daroussin.Fc
72d93b4d32SBaptiste Daroussin.Ft int
73d93b4d32SBaptiste Daroussin.Fn bsddialog_clearterminal "void"
74d93b4d32SBaptiste Daroussin.Ft int
75d93b4d32SBaptiste Daroussin.Fo bsddialog_datebox"
76d93b4d32SBaptiste Daroussin.Fa "struct bsddialog_conf *conf"
77263660c0SAlfonso Siciliano.Fa "const char *text"
78d93b4d32SBaptiste Daroussin.Fa "int rows"
79d93b4d32SBaptiste Daroussin.Fa "int cols"
80d93b4d32SBaptiste Daroussin.Fa "unsigned int *yy"
81d93b4d32SBaptiste Daroussin.Fa "unsigned int *mm"
82d93b4d32SBaptiste Daroussin.Fa "unsigned int *dd"
83d93b4d32SBaptiste Daroussin.Fc
84d93b4d32SBaptiste Daroussin.Ft int
85d93b4d32SBaptiste Daroussin.Fn bsddialog_end "void"
86d93b4d32SBaptiste Daroussin.Ft int
87d93b4d32SBaptiste Daroussin.Fo bsddialog_form
88d93b4d32SBaptiste Daroussin.Fa "struct bsddialog_conf *conf"
89263660c0SAlfonso Siciliano.Fa "const char *text"
90d93b4d32SBaptiste Daroussin.Fa "int rows"
91d93b4d32SBaptiste Daroussin.Fa "int cols"
92263660c0SAlfonso Siciliano.Fa "unsigned int formrows"
93d93b4d32SBaptiste Daroussin.Fa "unsigned int nitems"
94d93b4d32SBaptiste Daroussin.Fa "struct bsddialog_formitem *items"
95d93b4d32SBaptiste Daroussin.Fc
96d93b4d32SBaptiste Daroussin.Ft int
97d93b4d32SBaptiste Daroussin.Fo bsddialog_gauge
98d93b4d32SBaptiste Daroussin.Fa "struct bsddialog_conf *conf"
99263660c0SAlfonso Siciliano.Fa "const char *text"
100d93b4d32SBaptiste Daroussin.Fa "int rows"
101d93b4d32SBaptiste Daroussin.Fa "int cols"
102d93b4d32SBaptiste Daroussin.Fa "unsigned int perc"
103263660c0SAlfonso Siciliano.Fa "int fd"
104263660c0SAlfonso Siciliano.Fa "const char *sep"
105d93b4d32SBaptiste Daroussin.Fc
106d93b4d32SBaptiste Daroussin.Ft const char *
107d93b4d32SBaptiste Daroussin.Fn bsddialog_geterror "void"
108d93b4d32SBaptiste Daroussin.Ft int
109d93b4d32SBaptiste Daroussin.Fo bsddialog_infobox
110d93b4d32SBaptiste Daroussin.Fa "struct bsddialog_conf *conf"
111263660c0SAlfonso Siciliano.Fa "const char *text"
112d93b4d32SBaptiste Daroussin.Fa "int rows"
113d93b4d32SBaptiste Daroussin.Fa "int cols"
114d93b4d32SBaptiste Daroussin.Fc
115d93b4d32SBaptiste Daroussin.Ft int
116d93b4d32SBaptiste Daroussin.Fn bsddialog_init "void"
117d93b4d32SBaptiste Daroussin.Ft int
118d93b4d32SBaptiste Daroussin.Fn bsddialog_initconf "struct bsddialog_conf *conf"
119d93b4d32SBaptiste Daroussin.Ft int
120d93b4d32SBaptiste Daroussin.Fo bsddialog_menu
121d93b4d32SBaptiste Daroussin.Fa "struct bsddialog_conf *conf"
122263660c0SAlfonso Siciliano.Fa "const char *text"
123d93b4d32SBaptiste Daroussin.Fa "int rows"
124d93b4d32SBaptiste Daroussin.Fa "int cols"
125d93b4d32SBaptiste Daroussin.Fa "unsigned int menurows"
126263660c0SAlfonso Siciliano.Fa "unsigned int nitems"
127d93b4d32SBaptiste Daroussin.Fa "struct bsddialog_menuitem *items"
128d93b4d32SBaptiste Daroussin.Fa "int *focusitem"
129d93b4d32SBaptiste Daroussin.Fc
130d93b4d32SBaptiste Daroussin.Ft int
131d93b4d32SBaptiste Daroussin.Fo bsddialog_mixedgauge
132d93b4d32SBaptiste Daroussin.Fa "struct bsddialog_conf *conf"
133263660c0SAlfonso Siciliano.Fa "const char *text"
134d93b4d32SBaptiste Daroussin.Fa "int rows"
135d93b4d32SBaptiste Daroussin.Fa "int cols"
136d93b4d32SBaptiste Daroussin.Fa "unsigned int mainperc"
137d93b4d32SBaptiste Daroussin.Fa "unsigned int nminibars"
138d93b4d32SBaptiste Daroussin.Fa "char **minilabels"
139d93b4d32SBaptiste Daroussin.Fa "int *minipercs"
140d93b4d32SBaptiste Daroussin.Fc
141d93b4d32SBaptiste Daroussin.Ft int
142d93b4d32SBaptiste Daroussin.Fo bsddialog_mixedlist
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 ngroups"
149d93b4d32SBaptiste Daroussin.Fa "struct bsddialog_menugroup *groups"
150d93b4d32SBaptiste Daroussin.Fa "int *focuslist"
151d93b4d32SBaptiste Daroussin.Fa "int *focusitem"
152d93b4d32SBaptiste Daroussin.Fc
153d93b4d32SBaptiste Daroussin.Ft int
154d93b4d32SBaptiste Daroussin.Fo bsddialog_msgbox
155d93b4d32SBaptiste Daroussin.Fa "struct bsddialog_conf *conf"
156263660c0SAlfonso Siciliano.Fa "const char *text"
157d93b4d32SBaptiste Daroussin.Fa "int rows"
158d93b4d32SBaptiste Daroussin.Fa "int cols"
159d93b4d32SBaptiste Daroussin.Fc
160d93b4d32SBaptiste Daroussin.Ft int
161d93b4d32SBaptiste Daroussin.Fo bsddialog_pause
162d93b4d32SBaptiste Daroussin.Fa "struct bsddialog_conf *conf"
163263660c0SAlfonso Siciliano.Fa "const char *text"
164d93b4d32SBaptiste Daroussin.Fa "int rows"
165d93b4d32SBaptiste Daroussin.Fa "int cols"
166263660c0SAlfonso Siciliano.Fa "unsigned int seconds"
167d93b4d32SBaptiste Daroussin.Fc
168d93b4d32SBaptiste Daroussin.Ft int
169d93b4d32SBaptiste Daroussin.Fo bsddialog_radiolist
170d93b4d32SBaptiste Daroussin.Fa "struct bsddialog_conf *conf"
171263660c0SAlfonso Siciliano.Fa "const char *text"
172d93b4d32SBaptiste Daroussin.Fa "int rows"
173d93b4d32SBaptiste Daroussin.Fa "int cols"
174d93b4d32SBaptiste Daroussin.Fa "unsigned int menurows"
175263660c0SAlfonso Siciliano.Fa "unsigned int nitems"
176d93b4d32SBaptiste Daroussin.Fa "struct bsddialog_menuitem *items"
177d93b4d32SBaptiste Daroussin.Fa "int *focusitem"
178d93b4d32SBaptiste Daroussin.Fc
179d93b4d32SBaptiste Daroussin.Ft int
180d93b4d32SBaptiste Daroussin.Fo bsddialog_rangebox
181d93b4d32SBaptiste Daroussin.Fa "struct bsddialog_conf *conf"
182263660c0SAlfonso Siciliano.Fa "const char *text"
183d93b4d32SBaptiste Daroussin.Fa "int rows"
184d93b4d32SBaptiste Daroussin.Fa "int cols"
185d93b4d32SBaptiste Daroussin.Fa "int min"
186d93b4d32SBaptiste Daroussin.Fa "int max"
187d93b4d32SBaptiste Daroussin.Fa "int *value"
188d93b4d32SBaptiste Daroussin.Fc
189d93b4d32SBaptiste Daroussin.Ft int
190d93b4d32SBaptiste Daroussin.Fo bsddialog_textbox
191d93b4d32SBaptiste Daroussin.Fa "struct bsddialog_conf *conf"
192263660c0SAlfonso Siciliano.Fa "const char *file"
193d93b4d32SBaptiste Daroussin.Fa "int rows"
194d93b4d32SBaptiste Daroussin.Fa "int cols"
195d93b4d32SBaptiste Daroussin.Fc
196d93b4d32SBaptiste Daroussin.Ft int
197d93b4d32SBaptiste Daroussin.Fo bsddialog_timebox
198d93b4d32SBaptiste Daroussin.Fa "struct bsddialog_conf *conf"
199263660c0SAlfonso Siciliano.Fa "const char *text"
200d93b4d32SBaptiste Daroussin.Fa "int rows"
201d93b4d32SBaptiste Daroussin.Fa "int cols"
202d93b4d32SBaptiste Daroussin.Fa "unsigned int *hh"
203d93b4d32SBaptiste Daroussin.Fa "unsigned int *mm"
204d93b4d32SBaptiste Daroussin.Fa "unsigned int *ss"
205d93b4d32SBaptiste Daroussin.Fc
206d93b4d32SBaptiste Daroussin.Ft int
207d93b4d32SBaptiste Daroussin.Fo bsddialog_yesno
208d93b4d32SBaptiste Daroussin.Fa "struct bsddialog_conf *conf"
209263660c0SAlfonso Siciliano.Fa "const char *text"
210d93b4d32SBaptiste Daroussin.Fa "int rows"
211d93b4d32SBaptiste Daroussin.Fa "int cols"
212d93b4d32SBaptiste Daroussin.Fc
213d93b4d32SBaptiste Daroussin.In bsddialog_theme.h
214d93b4d32SBaptiste Daroussin.Ft int
215d93b4d32SBaptiste Daroussin.Fo bsddialog_color
216d93b4d32SBaptiste Daroussin.Fa "enum bsddialog_color foreground"
217263660c0SAlfonso Siciliano.Fa "enum bsddialog_color background"
218d93b4d32SBaptiste Daroussin.Fa "unsigned int flags"
219d93b4d32SBaptiste Daroussin.Fc
220d93b4d32SBaptiste Daroussin.Ft int
221d93b4d32SBaptiste Daroussin.Fn bsddialog_get_theme "struct bsddialog_theme *theme"
222d93b4d32SBaptiste Daroussin.Ft int
223d93b4d32SBaptiste Daroussin.Fn bsddialog_set_default_theme "enum bsddialog_default_theme theme"
224d93b4d32SBaptiste Daroussin.Ft int
225d93b4d32SBaptiste Daroussin.Fn bsddialog_set_theme "struct bsddialog_theme *theme"
226f499134dSBaptiste Daroussin.Sh DESCRIPTION
227f499134dSBaptiste DaroussinThe
228263660c0SAlfonso Siciliano.Nm bsddialog
229263660c0SAlfonso Sicilianolibrary provides an API to build Text User Interface dialogs and widgets: to
230263660c0SAlfonso Sicilianodisplay messages, to get input and to inform about a computation status.
231263660c0SAlfonso Siciliano.Pp
232263660c0SAlfonso Siciliano.Fn bsddialog_init
233263660c0SAlfonso Sicilianoinitializes the library, the only functions that can be called before is
234263660c0SAlfonso Siciliano.Fn bsddialog_initconf
235263660c0SAlfonso Sicilianodescribed later.
236263660c0SAlfonso SicilianoAfter the initialization the input and output should be handled via the library
237263660c0SAlfonso SicilianoAPI.
238263660c0SAlfonso Siciliano.Fn bsddialog_end
239263660c0SAlfonso Sicilianorestores the screen like before
240263660c0SAlfonso Siciliano.Fn bsddialog_init ,
241263660c0SAlfonso Sicilianothen it is not possible to use the library functions.
242263660c0SAlfonso Siciliano.Pp
243263660c0SAlfonso Siciliano.Fn bsddialog_error
244263660c0SAlfonso Sicilianoreturns a string to describe the last error, it should be called after a
245263660c0SAlfonso Siciliano.Dv BSDDIALOG_ERROR
246263660c0SAlfonso Sicilianoreturned value.
247263660c0SAlfonso Siciliano.Fn bsddialog_clearterminal
248263660c0SAlfonso Sicilianoclears the screen.
249263660c0SAlfonso Siciliano.Fn bsddialog_backtitle
250263660c0SAlfonso Sicilianoprints
251263660c0SAlfonso Siciliano.Fa backtitle
252263660c0SAlfonso Sicilianoon the top of the screen, it is possible to set
253263660c0SAlfonso Siciliano.Fa conf.ascii_lines
254263660c0SAlfonso Sicilianoand
255263660c0SAlfonso Siciliano.Fa conf.no_lines ;
256263660c0SAlfonso Siciliano.Fa conf
257263660c0SAlfonso Sicilianois described later.
258263660c0SAlfonso Siciliano.Pp
259263660c0SAlfonso SicilianoEach
260263660c0SAlfonso Siciliano.Fa char*
261263660c0SAlfonso Sicilianoargument has to be a well terminated string, can be empty
262263660c0SAlfonso Siciliano.Pq Dq
263263660c0SAlfonso Sicilianobut not
264263660c0SAlfonso Siciliano.Dv NULL .
265263660c0SAlfonso Siciliano.Ss Dialogs
266263660c0SAlfonso SicilianoThe dialogs have common arguments.
267263660c0SAlfonso Siciliano.Fa text
268263660c0SAlfonso Sicilianois a string printed inside the dialog.
269263660c0SAlfonso Siciliano.Fa rows
270263660c0SAlfonso Sicilianoand
271263660c0SAlfonso Siciliano.Fa cols
272263660c0SAlfonso Sicilianoare height and width, their value can be between 2 and the screen size,
273263660c0SAlfonso Siciliano.Dv BSDDIALOG_AUTOSIZE
274263660c0SAlfonso Sicilianoor
275263660c0SAlfonso Siciliano.Dv BSDDIALOG_FULLSCREEN .
276263660c0SAlfonso Siciliano.Fa conf
277263660c0SAlfonso Sicilianois a struct to customize the dialog, it does not set global properties to the
278263660c0SAlfonso Sicilianolibrary.
279d93b4d32SBaptiste Daroussin.Pp
280d93b4d32SBaptiste Daroussin.Bd -literal -offset indent -compact
281d93b4d32SBaptiste Daroussinstruct bsddialog_conf {
282d93b4d32SBaptiste Daroussin	bool ascii_lines;
283d93b4d32SBaptiste Daroussin	unsigned int auto_minheight;
284d93b4d32SBaptiste Daroussin	unsigned int auto_minwidth;
285263660c0SAlfonso Siciliano	const char *bottomtitle;
286d93b4d32SBaptiste Daroussin	bool clear;
287d93b4d32SBaptiste Daroussin	int *get_height;
288d93b4d32SBaptiste Daroussin	int *get_width;
289d93b4d32SBaptiste Daroussin	bool no_lines;
290d93b4d32SBaptiste Daroussin	bool shadow;
291d93b4d32SBaptiste Daroussin	unsigned int sleep;
292263660c0SAlfonso Siciliano	const char *title;
293d93b4d32SBaptiste Daroussin	int y;
294d93b4d32SBaptiste Daroussin	int x;
295d93b4d32SBaptiste Daroussin	struct {
296263660c0SAlfonso Siciliano		bool enable_esc;
297*bce40c02SAlfonso S. Siciliano		const char *f1_file;
298*bce40c02SAlfonso S. Siciliano		const char *f1_message;
299263660c0SAlfonso Siciliano	} key;
300263660c0SAlfonso Siciliano	struct {
301263660c0SAlfonso Siciliano		bool highlight;
302263660c0SAlfonso Siciliano		unsigned int tablen;
303d93b4d32SBaptiste Daroussin	} text;
304d93b4d32SBaptiste Daroussin	struct {
305d93b4d32SBaptiste Daroussin		bool align_left;
306d93b4d32SBaptiste Daroussin		bool no_desc;
307d93b4d32SBaptiste Daroussin		bool no_name;
308*bce40c02SAlfonso S. Siciliano		bool on_without_ok;
309d93b4d32SBaptiste Daroussin		bool shortcut_buttons;
310d93b4d32SBaptiste Daroussin	} menu;
311d93b4d32SBaptiste Daroussin	struct {
312*bce40c02SAlfonso S. Siciliano		bool enable_wchar;
313d93b4d32SBaptiste Daroussin		int  securech;
314*bce40c02SAlfonso S. Siciliano		bool value_without_ok;
315d93b4d32SBaptiste Daroussin	} form;
316d93b4d32SBaptiste Daroussin	struct {
317d93b4d32SBaptiste Daroussin		bool without_ok;
318263660c0SAlfonso Siciliano		const char *ok_label;
319d93b4d32SBaptiste Daroussin		bool with_extra;
320263660c0SAlfonso Siciliano		const char *extra_label;
321d93b4d32SBaptiste Daroussin		bool without_cancel;
322263660c0SAlfonso Siciliano		const char *cancel_label;
323d93b4d32SBaptiste Daroussin		bool default_cancel;
324d93b4d32SBaptiste Daroussin		bool with_help;
325263660c0SAlfonso Siciliano		const char *help_label;
326263660c0SAlfonso Siciliano		const char *generic1_label;
327263660c0SAlfonso Siciliano		const char *generic2_label;
328263660c0SAlfonso Siciliano		const char *default_label;
329d93b4d32SBaptiste Daroussin	} button;
330d93b4d32SBaptiste Daroussin};
331d93b4d32SBaptiste Daroussin.Ed
332d93b4d32SBaptiste Daroussin.Pp
333263660c0SAlfonso Siciliano.Bl -column -compact
334263660c0SAlfonso Siciliano.It Fa conf.ascii_lines
335263660c0SAlfonso Sicilianoascii characters to draw lines, default wide characters.
336263660c0SAlfonso Siciliano.It Fa conf.auto_minheight
337263660c0SAlfonso Sicilianominimum height if
338263660c0SAlfonso Siciliano.Fa rows
339263660c0SAlfonso Sicilianois
340263660c0SAlfonso Siciliano.Dv BSDDIALOG_AUTOSIZE .
341263660c0SAlfonso Siciliano.It Fa conf.auto_minwidth
342263660c0SAlfonso Sicilianominimum width if
343263660c0SAlfonso Siciliano.Fa cols
344263660c0SAlfonso Sicilianois
345263660c0SAlfonso Siciliano.Dv BSDDIALOG_AUTOSIZE .
346263660c0SAlfonso Siciliano.It Fa conf.bottomtitle
347263660c0SAlfonso Sicilianosubtitle at the dialog bottom side.
348263660c0SAlfonso Siciliano.It Fa conf.clear
349263660c0SAlfonso Sicilianohide the dialog at exit.
350263660c0SAlfonso Siciliano.It Fa conf.get_height
351263660c0SAlfonso Sicilianoif not
352263660c0SAlfonso Siciliano.Dv NULL
353263660c0SAlfonso Sicilianois set like the dialog height.
354263660c0SAlfonso Siciliano.It Fa conf.get_width
355263660c0SAlfonso Sicilianoif not
356263660c0SAlfonso Siciliano.Dv NULL
357263660c0SAlfonso Sicilianois set like the dialog width.
358263660c0SAlfonso Siciliano.It Fa conf.no_lines
359263660c0SAlfonso Sicilianonot draw lines.
360263660c0SAlfonso Siciliano.It Fa conf.shadow
361263660c0SAlfonso Sicilianodraw shadow.
362263660c0SAlfonso Siciliano.It Fa conf.sleep
363263660c0SAlfonso Sicilianowait before to return, the value is in seconds.
364263660c0SAlfonso Siciliano.It Fa conf.title
365263660c0SAlfonso Sicilianotitle at the top dialog side.
366263660c0SAlfonso Siciliano.It Fa conf.y
367263660c0SAlfonso Sicilianovertical position, 0 is top screen size, can be
368263660c0SAlfonso Siciliano.Dv BSDDIALOG_CENTER .
369263660c0SAlfonso Siciliano.It Fa conf.x
370263660c0SAlfonso Sicilianohorizontal position, 0 is left screen side, can be
371263660c0SAlfonso Siciliano.Dv BSDDIALOG_CENTER .
372263660c0SAlfonso Siciliano.El
373263660c0SAlfonso Siciliano.Pp
374*bce40c02SAlfonso S. Siciliano.Bl -column -compact
375*bce40c02SAlfonso S. Siciliano.It Fa conf.key.enable_esc
376263660c0SAlfonso Sicilianoenables
377263660c0SAlfonso Siciliano.Dv ESC
378263660c0SAlfonso Sicilianokey to close the dialog.
379*bce40c02SAlfonso S. Siciliano.It Fa conf.key.f1_file
380*bce40c02SAlfonso S. Sicilianofile to open if F1 is pressed.
381*bce40c02SAlfonso S. Siciliano.It Fa conf.key.f1_message
382*bce40c02SAlfonso S. Sicilianomessage to display if F1 is pressed.
383*bce40c02SAlfonso S. Siciliano.El
384263660c0SAlfonso Siciliano.Pp
385263660c0SAlfonso Siciliano.Fa conf.text.highlight
386263660c0SAlfonso Sicilianoenables highlights for
387263660c0SAlfonso Siciliano.Fa text ,
388263660c0SAlfonso Sicilianoproperly the following sequences are considered escapes:
389263660c0SAlfonso Siciliano.Bl -column -compact
390263660c0SAlfonso Siciliano.It Dq \eZ0
391263660c0SAlfonso Sicilianoblack.
392263660c0SAlfonso Siciliano.It Dq \eZ1
393263660c0SAlfonso Sicilianored.
394263660c0SAlfonso Siciliano.It Dq \eZ2
395263660c0SAlfonso Sicilianogreen.
396263660c0SAlfonso Siciliano.It Dq \eZ3
397263660c0SAlfonso Sicilianoyellow.
398263660c0SAlfonso Siciliano.It Dq \eZ4
399263660c0SAlfonso Sicilianoblue.
400263660c0SAlfonso Siciliano.It Dq \eZ5
401263660c0SAlfonso Sicilianomagenta.
402263660c0SAlfonso Siciliano.It Dq \eZ6
403263660c0SAlfonso Sicilianocyan.
404263660c0SAlfonso Siciliano.It Dq \eZ7
405263660c0SAlfonso Sicilianowhite.
406263660c0SAlfonso Siciliano.It Dq \eZr
407263660c0SAlfonso Sicilianoreverse colors between foreground and background.
408263660c0SAlfonso Siciliano.It Dq \eZR
409263660c0SAlfonso Sicilianodisable reverse.
410263660c0SAlfonso Siciliano.It Dq \eZb
411263660c0SAlfonso Sicilianobold.
412263660c0SAlfonso Siciliano.It Dq \eZB
413263660c0SAlfonso Sicilianodisable bold.
414263660c0SAlfonso Siciliano.It Dq \eZu
415263660c0SAlfonso Sicilianounderline.
416263660c0SAlfonso Siciliano.It Dq \eZU
417263660c0SAlfonso Sicilianodisable underline.
418263660c0SAlfonso Siciliano.It Dq \eZn
419263660c0SAlfonso Sicilianodisable each customization.
420263660c0SAlfonso Siciliano.El
421263660c0SAlfonso Siciliano.Fa conf.text.tablen
422263660c0SAlfonso Sicilianotab length.
423263660c0SAlfonso Siciliano.Pp
424263660c0SAlfonso Siciliano.Bl -column -compact
425263660c0SAlfonso Siciliano.It Fa conf.button.without_ok
426263660c0SAlfonso Sicilianodisable OK button.
427263660c0SAlfonso Siciliano.It Fa conf.button.ok_label
428263660c0SAlfonso Sicilianoset label for OK button.
429263660c0SAlfonso Siciliano.It Fa conf.button.with_extra
430263660c0SAlfonso Sicilianoadd Extra button.
431263660c0SAlfonso Siciliano.It Fa conf.button.extra_label
432263660c0SAlfonso Sicilianoset a label for Extra button.
433263660c0SAlfonso Siciliano.It Fa conf.button.without_cancel
434263660c0SAlfonso Sicilianodisable Cancel button.
435263660c0SAlfonso Siciliano.It Fa conf.button.cancel_label
436263660c0SAlfonso Sicilianosets a label for Cancel button.
437263660c0SAlfonso Siciliano.It Fa conf.button.default_cancel
438263660c0SAlfonso Sicilianoon startup focus on the Cancel button.
439263660c0SAlfonso Siciliano.It Fa conf.button.with_help
440263660c0SAlfonso Sicilianoadd Help button.
441263660c0SAlfonso Siciliano.It Fa conf.button.help_label
442263660c0SAlfonso Sicilianoset a label for Help button.
443263660c0SAlfonso Siciliano.It Fa conf.button.generic1_label
444263660c0SAlfonso Sicilianoadd a button with the specified label.
445263660c0SAlfonso Siciliano.It Fa conf.button.generic2_label
446263660c0SAlfonso Sicilianoadd a button with the specified label.
447263660c0SAlfonso Siciliano.It Fa conf.button.default_label
448263660c0SAlfonso Sicilianofocus on the button with the specified label.
449263660c0SAlfonso Siciliano.El
450263660c0SAlfonso Siciliano.Pp
451263660c0SAlfonso Siciliano.Fn bsddialog_initconf
452263660c0SAlfonso Sicilianoinitializes
453263660c0SAlfonso Siciliano.Fa conf
454263660c0SAlfonso Sicilianodisabling each property, except
455263660c0SAlfonso Siciliano.Fa conf.shadow
456263660c0SAlfonso Sicilianoto true,
457263660c0SAlfonso Siciliano.Fa conf.y
458263660c0SAlfonso Sicilianoand
459263660c0SAlfonso Siciliano.Fa conf.x
460263660c0SAlfonso Sicilianoto
461263660c0SAlfonso Siciliano.Dv BSDDIALOG_CENTER .
462263660c0SAlfonso Siciliano.Pp
463263660c0SAlfonso Siciliano.Fn bsddialog_infobox
464263660c0SAlfonso Sicilianobuilds a dialog without buttons and returns instantly.
465263660c0SAlfonso Siciliano.Fn bsddialog_msgbox
466263660c0SAlfonso Sicilianobuilds a dialog with OK button.
467263660c0SAlfonso Siciliano.Fn bsddialog_yesno
468263660c0SAlfonso Sicilianoprovides a dialog for a
469263660c0SAlfonso Siciliano.Dq Yes-No Question ,
470263660c0SAlfonso Sicilianothe labels on buttons are Yes and No.
471263660c0SAlfonso Siciliano.Pp
472263660c0SAlfonso Siciliano.Fn bsddialog_pause
473263660c0SAlfonso Sicilianobuilds a dialog waiting until the timeout in
474263660c0SAlfonso Siciliano.Fa seconds
475263660c0SAlfonso Sicilianoexpires or a button is pressed.
476263660c0SAlfonso Siciliano.Pp
477263660c0SAlfonso Siciliano.Fn bsddialog_datebox
478263660c0SAlfonso Sicilianobuilds a dialog to select a date,
479263660c0SAlfonso Siciliano.Fa yy ,
480263660c0SAlfonso Siciliano.Fa mm ,
481263660c0SAlfonso Sicilianoand
482263660c0SAlfonso Siciliano.Fa dd
483263660c0SAlfonso Sicilianoare default values on startup, selected date at exit.
484263660c0SAlfonso Siciliano.Fn bsddialog_timebox
485263660c0SAlfonso Sicilianobuilds a dialog to choose a time,
486263660c0SAlfonso Siciliano.Fa hh ,
487263660c0SAlfonso Siciliano.Fa mm ,
488263660c0SAlfonso Sicilianoand
489263660c0SAlfonso Siciliano.Fa ss
490263660c0SAlfonso Sicilianoare default values on startup, selected time at exit.
491263660c0SAlfonso Siciliano.Pp
492263660c0SAlfonso Siciliano.Fn bsddialog_checklist ,
493263660c0SAlfonso Siciliano.Fn bsddialog_menu
494263660c0SAlfonso Sicilianoand
495263660c0SAlfonso Siciliano.Fn bsddialog_radiolist
496263660c0SAlfonso Sicilianobuild dialogs to select some item from a list via the SPACE key, an item is
497263660c0SAlfonso Sicilianodefined like:
498d93b4d32SBaptiste Daroussin.Pp
499d93b4d32SBaptiste Daroussin.Bd -literal -offset indent -compact
500d93b4d32SBaptiste Daroussinstruct bsddialog_menuitem {
501263660c0SAlfonso Siciliano	const char *prefix;
502d93b4d32SBaptiste Daroussin	bool on;
503d93b4d32SBaptiste Daroussin	unsigned int depth;
504263660c0SAlfonso Siciliano	const char *name;
505263660c0SAlfonso Siciliano	const char *desc;
506263660c0SAlfonso Siciliano	const char *bottomdesc;
507d93b4d32SBaptiste Daroussin};
508263660c0SAlfonso Siciliano.Ed
509263660c0SAlfonso Siciliano.Pp
510263660c0SAlfonso Siciliano.Fa prefix ,
511263660c0SAlfonso Siciliano.Fa name
512263660c0SAlfonso Sicilianoand
513263660c0SAlfonso Siciliano.Fa desc
514263660c0SAlfonso Sicilianoare strings to describe the item and are printed on its row,
515263660c0SAlfonso Siciliano.Fa bottomdesc
516263660c0SAlfonso Sicilianois printed on the bottom side of the screen,
517263660c0SAlfonso Siciliano.Fa depth
518263660c0SAlfonso Sicilianois a margin between the
519263660c0SAlfonso Siciliano.Fa prefix
520263660c0SAlfonso Sicilianoand
521263660c0SAlfonso Siciliano.Fa name
522263660c0SAlfonso Sicilianouseful to implement a
523263660c0SAlfonso Siciliano.Dq treeview,
524263660c0SAlfonso Siciliano.Fa on
525263660c0SAlfonso Sicilianois set to
526263660c0SAlfonso Siciliano.Dv true
527263660c0SAlfonso Sicilianoif the item is selected,
528263660c0SAlfonso Siciliano.Dv false
529263660c0SAlfonso Sicilianootherwise.
530263660c0SAlfonso Siciliano.Fa items
531263660c0SAlfonso Sicilianois an array of items of
532263660c0SAlfonso Siciliano.Fa nitem
533263660c0SAlfonso Sicilianoelements,
534263660c0SAlfonso Siciliano.Fa menurows
535263660c0SAlfonso Sicilianospecifies the graphical fixed height of the list, if
536263660c0SAlfonso Siciliano.Fa cols
537263660c0SAlfonso Sicilianois set to
538263660c0SAlfonso Siciliano.Dv BSDDIALOG_AUTOSIZE
539263660c0SAlfonso Siciliano.Fa menurows
540263660c0SAlfonso Sicilianospecifies a maximum value.
541263660c0SAlfonso SicilianoFinally, if not
542263660c0SAlfonso Siciliano.Dv NULL ,
543263660c0SAlfonso Siciliano.Fa focusitem
544263660c0SAlfonso Sicilianospecifies the default item on startup and the last focused item at exit, could
545263660c0SAlfonso Sicilianobe a negative value if no item is focused.
546263660c0SAlfonso Siciliano.Pp
547263660c0SAlfonso Siciliano.Fn bsddialog_mixedlist
548263660c0SAlfonso Sicilianobuilds a dialog with collections of checklists, radiolists and separators.
549263660c0SAlfonso SicilianoA collection is a set defined like:
550263660c0SAlfonso Siciliano.Pp
551263660c0SAlfonso Siciliano.Bd -literal -offset indent -compact
552d93b4d32SBaptiste Daroussinenum bsddialog_grouptype {
553d93b4d32SBaptiste Daroussin	BSDDIALOG_CHECKLIST,
554d93b4d32SBaptiste Daroussin	BSDDIALOG_RADIOLIST,
555d93b4d32SBaptiste Daroussin	BSDDIALOG_SEPARATOR,
556d93b4d32SBaptiste Daroussin};
557d93b4d32SBaptiste Daroussin
558d93b4d32SBaptiste Daroussinstruct bsddialog_menugroup {
559d93b4d32SBaptiste Daroussin	enum bsddialog_grouptype type;
560d93b4d32SBaptiste Daroussin	unsigned int nitems;
561d93b4d32SBaptiste Daroussin	struct bsddialog_menuitem *items;
562d93b4d32SBaptiste Daroussin};
563263660c0SAlfonso Siciliano.Ed
564263660c0SAlfonso Siciliano.Pp
565263660c0SAlfonso Siciliano.Fa groups
566263660c0SAlfonso Sicilianois an array of sets of
567263660c0SAlfonso Siciliano.Fa ngroups
568263660c0SAlfonso Sicilianoelements.
569263660c0SAlfonso Siciliano.Fa menurows
570263660c0SAlfonso Sicilianois the graphical height size for the list.
571263660c0SAlfonso SicilianoIf not
572263660c0SAlfonso Siciliano.Dv NULL ,
573263660c0SAlfonso Siciliano.Fa focuslist
574263660c0SAlfonso Sicilianoand
575263660c0SAlfonso Siciliano.Fa focusitem
576263660c0SAlfonso Sicilianospecify the default item on startup and the last focused item at exit, could be
577263660c0SAlfonso Sicilianoa negative value if no item is focused.
578263660c0SAlfonso Siciliano.Pp
579263660c0SAlfonso Siciliano.Fn bsddialog_checklist ,
580263660c0SAlfonso Siciliano.Fn bsddialog_menu ,
581263660c0SAlfonso Siciliano.Fn bsddialog_mixedlist
582263660c0SAlfonso Sicilianoand
583263660c0SAlfonso Siciliano.Fn bsddialog_radiolist
584263660c0SAlfonso Sicilianocan be costomizated by:
585263660c0SAlfonso Siciliano.Bl -column -compact
586263660c0SAlfonso Siciliano.It Fa conf.menu.align_left
587263660c0SAlfonso Sicilianoaligns items to left, default center.
588263660c0SAlfonso Siciliano.It Fa conf.menu.no_desc
589263660c0SAlfonso Sicilianohide description.
590263660c0SAlfonso Siciliano.It Fa conf.menu.no_name
591263660c0SAlfonso Sicilianohide names.
592263660c0SAlfonso Siciliano.It Fa conf.menu.on_without_ok
593263660c0SAlfonso Sicilianoset items
594263660c0SAlfonso Siciliano.Fa on
595263660c0SAlfonso Sicilianoalso if the OK button is not pressed.
596263660c0SAlfonso Siciliano.It Fa conf.menu.shortcut_buttons
597263660c0SAlfonso Sicilianoenable shortcut keys on buttons, default on items.
598263660c0SAlfonso Siciliano.El
599263660c0SAlfonso Siciliano.Pp
600263660c0SAlfonso Siciliano.Fn bsddialog_form
601263660c0SAlfonso Sicilianobuilds a dialog to display a list of items to get strings in input, an item is
602263660c0SAlfonso Sicilianodefined like:
603263660c0SAlfonso Siciliano.Pp
604263660c0SAlfonso Siciliano.Bd -literal -offset indent -compact
605d93b4d32SBaptiste Daroussinstruct bsddialog_formitem {
606263660c0SAlfonso Siciliano	const char *label;
607d93b4d32SBaptiste Daroussin	unsigned int ylabel;
608d93b4d32SBaptiste Daroussin	unsigned int xlabel;
609d93b4d32SBaptiste Daroussin
610263660c0SAlfonso Siciliano	const char *init;
611d93b4d32SBaptiste Daroussin	unsigned int yfield;
612d93b4d32SBaptiste Daroussin	unsigned int xfield;
613d93b4d32SBaptiste Daroussin	unsigned int fieldlen;
614d93b4d32SBaptiste Daroussin	unsigned int maxvaluelen;
615263660c0SAlfonso Siciliano	char *value;
616263660c0SAlfonso Siciliano
617d93b4d32SBaptiste Daroussin	unsigned int flags;
618d93b4d32SBaptiste Daroussin
619263660c0SAlfonso Siciliano	const char *bottomdesc;
620d93b4d32SBaptiste Daroussin};
621d93b4d32SBaptiste Daroussin.Ed
622d93b4d32SBaptiste Daroussin.Pp
623263660c0SAlfonso Siciliano.Fa label
624263660c0SAlfonso Sicilianodescribes the request, it is printed at the position
625263660c0SAlfonso Siciliano.Fa ylabel
626263660c0SAlfonso Sicilianoand
627263660c0SAlfonso Siciliano.Fa xlabel .
628263660c0SAlfonso SicilianoThe field for the input is at the position
629263660c0SAlfonso Siciliano.Fa yfield
630263660c0SAlfonso Sicilianoand
631263660c0SAlfonso Siciliano.Fa xfield ,
632263660c0SAlfonso Siciliano.Fa fieldlen
633263660c0SAlfonso Sicilianois its graphical width, while
634263660c0SAlfonso Siciliano.Fa maxvalelen
635263660c0SAlfonso Sicilianois the maximum length of the input string,
636263660c0SAlfonso Siciliano.Fa init
637263660c0SAlfonso Sicilianois the default value.
638263660c0SAlfonso SicilianoIf the OK button is pressed
639263660c0SAlfonso Siciliano.Fa value
640263660c0SAlfonso Sicilianois the allocated memory with the current field string.
641263660c0SAlfonso Siciliano.Fa flags
642263660c0SAlfonso Sicilianois an OR value to set the
643263660c0SAlfonso Siciliano.Dv BSDDIALOG_FIELDHIDDEN
644263660c0SAlfonso Sicilianoand
645263660c0SAlfonso Siciliano.Dv BSDDIALOG_FIELDREADONLY
646263660c0SAlfonso Sicilianoflags for the field.
647263660c0SAlfonso Siciliano.Fa bottomdesc
648263660c0SAlfonso Sicilianois printed on the bottom side of the screen if the item is focused.
649263660c0SAlfonso Siciliano.Fa items
650263660c0SAlfonso Sicilianois an array of items of
651263660c0SAlfonso Siciliano.Fa nitems
652263660c0SAlfonso Sicilianoelements,
653263660c0SAlfonso Siciliano.Fa formrows
654263660c0SAlfonso Sicilianospecifies the graphical fixed height for the items list;
655263660c0SAlfonso Siciliano.Fa ylabel
656263660c0SAlfonso Sicilianoand
657263660c0SAlfonso Siciliano.Fa yfield
658263660c0SAlfonso Sicilianohave to be between 1 and
659263660c0SAlfonso Siciliano.Fa formrows .
660263660c0SAlfonso Siciliano.Pp
661263660c0SAlfonso Siciliano.Fn bsddialog_form
662263660c0SAlfonso Sicilianocan be customized by:
663263660c0SAlfonso Siciliano.Bl -column -compact
664*bce40c02SAlfonso S. Siciliano.It Fa conf.form.enable_wchar
665*bce40c02SAlfonso S. Sicilianoenables characters greater than 127 in the field,
666*bce40c02SAlfonso S. Siciliano.Fa value
667*bce40c02SAlfonso S. Sicilianois a pointer to allocated memory for a
668*bce40c02SAlfonso S. Siciliano.Em wchar_t
669*bce40c02SAlfonso S. Sicilianostring.
670263660c0SAlfonso Siciliano.It Fa conf.form.securech
671263660c0SAlfonso Sicilianocharachter to hide the input
672263660c0SAlfonso Sicilianowith
673263660c0SAlfonso Siciliano.Dv BSDDIALOG_FIELDHIDDEN .
674263660c0SAlfonso Siciliano.It Fa conf.form.value_without_ok
675263660c0SAlfonso Sicilianoallocate memory and set
676263660c0SAlfonso Siciliano.Fa value
677263660c0SAlfonso Sicilianoalso if the OK button is not pressed.
678263660c0SAlfonso Siciliano.El
679263660c0SAlfonso Siciliano.Pp
680263660c0SAlfonso Siciliano.Fn bsddialog_gauge
681263660c0SAlfonso Sicilianobuilds a dialog with a bar to shows
682263660c0SAlfonso Siciliano.Fa perc ,
683263660c0SAlfonso Sicilianoif the file descriptor
684263660c0SAlfonso Siciliano.Fa fd
685263660c0SAlfonso Sicilianois greater or equal to 0 the dialog waits to read
686263660c0SAlfonso Siciliano.Fa separator
687263660c0SAlfonso Sicilianofrom it, then the first string replaces
688263660c0SAlfonso Siciliano.Fa perc
689263660c0SAlfonso Sicilianoand the following strings replace
690263660c0SAlfonso Siciliano.Fa text
691263660c0SAlfonso Sicilianountil the next
692263660c0SAlfonso Siciliano.Fa separator ,
693263660c0SAlfonso Sicilianothe loop ends reading
694263660c0SAlfonso Siciliano.Dv EOF .
695263660c0SAlfonso Siciliano.Pp
696263660c0SAlfonso Siciliano.Fn bsddialog_mixedgauge
697263660c0SAlfonso Sicilianodraws a main bar with the
698263660c0SAlfonso Siciliano.Fa mainperc
699263660c0SAlfonso Sicilianopercentage and
700263660c0SAlfonso Siciliano.Fa nminibars
701263660c0SAlfonso Sicilianoeach one with a
702263660c0SAlfonso Siciliano.Fa minilabel
703263660c0SAlfonso Sicilianoand a
704263660c0SAlfonso Siciliano.Fa miniperc
705263660c0SAlfonso Sicilianowith a value between 0 and 100 or
706263660c0SAlfonso Siciliano.Dv BSDDIALOG_MG_SUCCEEDED ,
707263660c0SAlfonso Siciliano.Dv BSDDIALOG_MG_FAILED ,
708263660c0SAlfonso Siciliano.Dv BSDDIALOG_MG_PASSED ,
709263660c0SAlfonso Siciliano.Dv BSDDIALOG_MG_COMPLETED ,
710263660c0SAlfonso Siciliano.Dv BSDDIALOG_MG_CHECKED ,
711263660c0SAlfonso Siciliano.Dv BSDDIALOG_MG_DONE ,
712263660c0SAlfonso Siciliano.Dv BSDDIALOG_MG_SKIPPED ,
713263660c0SAlfonso Siciliano.Dv BSDDIALOG_MG_INPROGRESS ,
714263660c0SAlfonso Siciliano.Dv BSDDIALOG_MG_BLANK ,
715263660c0SAlfonso Siciliano.Dv BSDDIALOG_MG_NA
716263660c0SAlfonso Sicilianoor
717263660c0SAlfonso Siciliano.Dv BSDDIALOG_MG_PENDING
718263660c0SAlfonso Sicilianoto print a descriptive string.
719263660c0SAlfonso Siciliano.Pp
720263660c0SAlfonso Siciliano.Fn bsddialog_rangebox
721263660c0SAlfonso Sicilianoto select a value between
722263660c0SAlfonso Siciliano.Fa min
723263660c0SAlfonso Sicilianoand
724263660c0SAlfonso Siciliano.Fa max .
725263660c0SAlfonso Siciliano.Fa value
726263660c0SAlfonso Sicilianois the default value on startup and the selected value at exit.
727263660c0SAlfonso SicilianoThe current value is printed inside a bar, the keys UP, DOWN, HOME, END, PAGEUP
728263660c0SAlfonso Sicilianoand PAGEDOWN can change it.
729263660c0SAlfonso Siciliano.Pp
730263660c0SAlfonso Siciliano.Fn bsddialog_textbox
731263660c0SAlfonso Sicilianoopens and prints
732263660c0SAlfonso Siciliano.Fa file
733263660c0SAlfonso Sicilianoin a dialog, the UP, DOWN, HOME, END, PAGEUP and PAGEDOWN keys are availble to
734263660c0SAlfonso Sicilianonavigate the file.
735263660c0SAlfonso SicilianoOK button is renamed EXIT.
736d93b4d32SBaptiste Daroussin.Ss Theme
737263660c0SAlfonso SicilianoThe graphical properties are global to the library, they are represented by
738263660c0SAlfonso Siciliano.Fa struct bsddialog_theme
739263660c0SAlfonso Sicilianoand can be customized at runtime via the
740263660c0SAlfonso Siciliano.In bsddialog_theme.h
741263660c0SAlfonso SicilianoAPI.
742d93b4d32SBaptiste Daroussin.Pp
743d93b4d32SBaptiste Daroussin.Bd -literal -offset indent -compact
744d93b4d32SBaptiste Daroussinstruct bsddialog_theme {
745d93b4d32SBaptiste Daroussin	struct {
746d93b4d32SBaptiste Daroussin		int color;
747263660c0SAlfonso Siciliano	} screen;
748d93b4d32SBaptiste Daroussin	struct {
749d93b4d32SBaptiste Daroussin		int color;
750d93b4d32SBaptiste Daroussin		unsigned int h;
751d93b4d32SBaptiste Daroussin		unsigned int w;
752d93b4d32SBaptiste Daroussin	} shadow;
753d93b4d32SBaptiste Daroussin	struct {
754d93b4d32SBaptiste Daroussin		int  color;
755d93b4d32SBaptiste Daroussin		bool delimtitle;
756d93b4d32SBaptiste Daroussin		int  titlecolor;
757d93b4d32SBaptiste Daroussin		int  lineraisecolor;
758d93b4d32SBaptiste Daroussin		int  linelowercolor;
759d93b4d32SBaptiste Daroussin		int  bottomtitlecolor;
760*bce40c02SAlfonso S. Siciliano		int  arrowcolor;
761d93b4d32SBaptiste Daroussin	} dialog;
762d93b4d32SBaptiste Daroussin	struct {
763*bce40c02SAlfonso S. Siciliano		int f_selectorcolor;
764d93b4d32SBaptiste Daroussin		int selectorcolor;
765d93b4d32SBaptiste Daroussin		int f_namecolor;
766d93b4d32SBaptiste Daroussin		int namecolor;
767d93b4d32SBaptiste Daroussin		int f_desccolor;
768d93b4d32SBaptiste Daroussin		int desccolor;
769d93b4d32SBaptiste Daroussin		int namesepcolor;
770d93b4d32SBaptiste Daroussin		int descsepcolor;
771d93b4d32SBaptiste Daroussin		int f_shortcutcolor;
772d93b4d32SBaptiste Daroussin		int shortcutcolor;
773d93b4d32SBaptiste Daroussin	} menu;
774d93b4d32SBaptiste Daroussin	struct {
775d93b4d32SBaptiste Daroussin		int f_fieldcolor;
776d93b4d32SBaptiste Daroussin		int fieldcolor;
777d93b4d32SBaptiste Daroussin		int readonlycolor;
778d93b4d32SBaptiste Daroussin	} form;
779d93b4d32SBaptiste Daroussin	struct {
780d93b4d32SBaptiste Daroussin		int f_color;
781d93b4d32SBaptiste Daroussin		int color;
782d93b4d32SBaptiste Daroussin	} bar;
783d93b4d32SBaptiste Daroussin	struct {
784*bce40c02SAlfonso S. Siciliano		unsigned int hmargin;
785*bce40c02SAlfonso S. Siciliano		int leftdelim;
786*bce40c02SAlfonso S. Siciliano		int rightdelim;
787d93b4d32SBaptiste Daroussin		int delimcolor;
788d93b4d32SBaptiste Daroussin		int f_delimcolor;
789d93b4d32SBaptiste Daroussin		int color;
790d93b4d32SBaptiste Daroussin		int f_color;
791d93b4d32SBaptiste Daroussin		int shortcutcolor;
792d93b4d32SBaptiste Daroussin		int f_shortcutcolor;
793d93b4d32SBaptiste Daroussin	} button;
794d93b4d32SBaptiste Daroussin};
795d93b4d32SBaptiste Daroussin.Ed
796d93b4d32SBaptiste Daroussin.Pp
797263660c0SAlfonso SicilianoA member with the
798263660c0SAlfonso Siciliano.Dq f_
799263660c0SAlfonso Sicilianoprefix refers to an element with focus.
800263660c0SAlfonso Siciliano.Pp
801263660c0SAlfonso Siciliano.Fn bsddialog_get_theme
802263660c0SAlfonso Sicilianosets
803263660c0SAlfonso Siciliano.Fa theme
804263660c0SAlfonso Sicilianolike the current theme.
805263660c0SAlfonso Siciliano.Pp
806263660c0SAlfonso SicilianoA color can be set by the value returned by
807263660c0SAlfonso Siciliano.Fn bsddialog_color ,
808263660c0SAlfonso SicilianoPossible values for
809263660c0SAlfonso Siciliano.Fa background
810263660c0SAlfonso Sicilianoand
811263660c0SAlfonso Siciliano.Fa foreground
812263660c0SAlfonso Sicilianoare:
813263660c0SAlfonso Siciliano.Dv BSDDIALOG_BLACK ,
814263660c0SAlfonso Siciliano.Dv BSDDIALOG_RED ,
815263660c0SAlfonso Siciliano.Dv BSDDIALOG_GREEN ,
816263660c0SAlfonso Siciliano.Dv BSDDIALOG_YELLOW ,
817263660c0SAlfonso Siciliano.Dv BSDDIALOG_BLUE ,
818263660c0SAlfonso Siciliano.Dv BSDDIALOG_MAGENTA ,
819263660c0SAlfonso Siciliano.Dv BSDDIALOG_CYAN ,
820263660c0SAlfonso Sicilianoand
821263660c0SAlfonso Siciliano.Dv BSDDIALOG_WHITE ,
822263660c0SAlfonso Siciliano.Fa flags
823263660c0SAlfonso Sicilianospecifies OR-flags, possible values:
824263660c0SAlfonso Siciliano.Dv BSDDIALOG_BOLD ,
825263660c0SAlfonso Siciliano.Dv BSDDIALOG_REVERSE
826263660c0SAlfonso Sicilianoand
827263660c0SAlfonso Siciliano.Dv BSDDIALOG_UNDERLINE .
828263660c0SAlfonso Siciliano.Pp
829263660c0SAlfonso Siciliano.Fn bsddialog_set_theme
830263660c0SAlfonso Sicilianosets
831263660c0SAlfonso Siciliano.Fa theme
832263660c0SAlfonso Sicilianolike current theme, the changes takes effect only for dialogs built after the
833263660c0SAlfonso Sicilianocall.
834263660c0SAlfonso Siciliano.Pp
835263660c0SAlfonso SicilianoThe library provides predefined themes:
836263660c0SAlfonso Siciliano.Dv BSDDIALOG_THEME_BLACKWHITE ,
837263660c0SAlfonso Siciliano.Dv BSDDIALOG_THEME_BSDDIALOG ,
838*bce40c02SAlfonso S. Siciliano.Dv BSDDIALOG_THEME_FLAT
839263660c0SAlfonso Sicilianoand
840263660c0SAlfonso Siciliano.Dv BSDDIALOG_THEME_DIALOG ,
841263660c0SAlfonso Sicilianothey can be set via
842263660c0SAlfonso Siciliano.Fn bsddialog_set_default_theme .
843d93b4d32SBaptiste Daroussin.Sh RETURN VALUES
844263660c0SAlfonso SicilianoThe functions return the value
845263660c0SAlfonso Siciliano.Dv BSDDIALOG_ERROR
846263660c0SAlfonso Sicilianoif unsuccessful;
847263660c0SAlfonso Sicilianootherwise, depending on the pressed button, the following values can be
848263660c0SAlfonso Sicilianoreturned:
849263660c0SAlfonso Siciliano.Dv BSDDIALOG_OK ,
850263660c0SAlfonso Siciliano.Dv BSDDIALOG_CANCEL ,
851263660c0SAlfonso Siciliano.Dv BSDDIALOG_HELP ,
852263660c0SAlfonso Siciliano.Dv BSDDIALOG_EXTRA ,
853263660c0SAlfonso Siciliano.Dv BSDDIALOG_GENERIC1
854263660c0SAlfonso Sicilianoor
855263660c0SAlfonso Siciliano.Dv BSDDIALOG_GENERIC2 .
856263660c0SAlfonso Siciliano.Dv BSDDIALOG_YES
857263660c0SAlfonso Sicilianoand
858263660c0SAlfonso Siciliano.Dv BSDDIALOG_NO
859263660c0SAlfonso Sicilianoare aliases for
860263660c0SAlfonso Siciliano.Dv BSDDIALOG_OK
861263660c0SAlfonso Sicilianoand
862263660c0SAlfonso Siciliano.Dv BSDDIALOG_CANCEL ,
863263660c0SAlfonso Sicilianorespectively.
864263660c0SAlfonso Siciliano.Pp
865263660c0SAlfonso SicilianoThe functions return
866263660c0SAlfonso Siciliano.Dv BSDDIALOG_ESC
867263660c0SAlfonso Sicilianoif
868263660c0SAlfonso Siciliano.Fa conf.key.enable_esc
869263660c0SAlfonso Sicilianois enabled and the ESC key is pressed.
870263660c0SAlfonso Siciliano.Pp
871263660c0SAlfonso Siciliano.Fn bsddialog_pause
872263660c0SAlfonso Sicilianoreturns
873263660c0SAlfonso Siciliano.Dv BSDDIALOG_TIMEOUT
874263660c0SAlfonso Sicilianoif the timeout expires.
875d93b4d32SBaptiste Daroussin.Sh EXAMPLES
876263660c0SAlfonso Siciliano.Dq Yes-No Question
877263660c0SAlfonso SicilianoExample:
878d93b4d32SBaptiste Daroussin.Pp
879d93b4d32SBaptiste Daroussin.Bd -literal -offset indent -compact
880d93b4d32SBaptiste Daroussinint output;
881d93b4d32SBaptiste Daroussinstruct bsddialog_conf conf;
882d93b4d32SBaptiste Daroussin
883d93b4d32SBaptiste Daroussinif (bsddialog_init() == BSDDIALOG_ERROR)
884d93b4d32SBaptiste Daroussin	return (1);
885d93b4d32SBaptiste Daroussin
886263660c0SAlfonso Sicilianobsddialog_initconf(&conf);
887263660c0SAlfonso Sicilianoconf.title = "yesno";
888d93b4d32SBaptiste Daroussinoutput = bsddialog_yesno(&conf, "Example", 7, 25);
889d93b4d32SBaptiste Daroussin
890d93b4d32SBaptiste Daroussinbsddialog_end();
891d93b4d32SBaptiste Daroussin
892d93b4d32SBaptiste Daroussinswitch (output) {
893d93b4d32SBaptiste Daroussincase BSDDIALOG_YES:
894263660c0SAlfonso Siciliano	printf("Yes\\n");
895d93b4d32SBaptiste Daroussin	break;
896d93b4d32SBaptiste Daroussincase BSDDIALOG_NO
897d93b4d32SBaptiste Daroussin	printf("NO\\n");
898d93b4d32SBaptiste Daroussin	break;
899d93b4d32SBaptiste Daroussincase BSDDIALOG_ERROR:
900d93b4d32SBaptiste Daroussin	printf("Error: %s\\n", bsddialog_geterror());
901d93b4d32SBaptiste Daroussin}
902d93b4d32SBaptiste Daroussin.Ed
903263660c0SAlfonso Siciliano.Pp
904263660c0SAlfonso SicilianoTheme Example:
905263660c0SAlfonso Siciliano.Pp
906263660c0SAlfonso Siciliano.Bd -literal -offset indent -compact
907263660c0SAlfonso Sicilianostruct bsddialog_conf conf;
908263660c0SAlfonso Sicilianostruct bsddialog_theme theme;
909263660c0SAlfonso Siciliano
910*bce40c02SAlfonso S. Sicilianobsddialog_init();
911263660c0SAlfonso Siciliano
912263660c0SAlfonso Sicilianobsddialog_initconf(&conf);
913263660c0SAlfonso Sicilianobsddialog_msgbox(&conf, "Default theme", 7, 25);
914263660c0SAlfonso Siciliano
915263660c0SAlfonso Sicilianobsddialog_get_theme(&theme);
916263660c0SAlfonso Sicilianotheme.screen.color = bsddialog_color(BSDDIALOG_RED, BSDDIALOG_GREEN,
917263660c0SAlfonso Siciliano    BSDDIALOG_BOLD);
918263660c0SAlfonso Sicilianobsddialog_set_theme(&theme);
919263660c0SAlfonso Sicilianobsddialog_backtitle(&conf, "Red foreground and Green background");
920263660c0SAlfonso Sicilianobsddialog_msgbox(&conf, "Change screen color", 7, 25);
921263660c0SAlfonso Siciliano
922263660c0SAlfonso Sicilianobsddialog_set_default_theme(BSDDIALOG_THEME_BLACKWHITE);
923263660c0SAlfonso Sicilianobsddialog_msgbox(&conf, "Black and White theme", 7, 25);
924263660c0SAlfonso Siciliano
925263660c0SAlfonso Sicilianobsddialog_end();
926263660c0SAlfonso Siciliano.Ed
927263660c0SAlfonso Siciliano.Pp
928263660c0SAlfonso SicilianoMixedlist Example:
929263660c0SAlfonso Siciliano.Pp
930263660c0SAlfonso Siciliano.Bd -literal -offset indent -compact
931263660c0SAlfonso Sicilianounsigned int i, j;
932263660c0SAlfonso Sicilianostruct bsddialog_conf conf;
933263660c0SAlfonso Sicilianostruct bsddialog_menuitem item;
934263660c0SAlfonso Sicilianostruct bsddialog_menuitem check[2] = {
935263660c0SAlfonso Siciliano    { "1", true,  0, "Name 1", "Desc 1", "Check Bottom Desc 1" },
936263660c0SAlfonso Siciliano    { "2", false, 0, "Name 2", "Desc 2", "Check Bottom Desc 2" }
937263660c0SAlfonso Siciliano};
938263660c0SAlfonso Sicilianostruct bsddialog_menuitem sep[1] = {
939263660c0SAlfonso Siciliano    { "3", true, 0, "Radiolist", "(desc)", "" }
940263660c0SAlfonso Siciliano};
941263660c0SAlfonso Sicilianostruct bsddialog_menuitem radio[5] = {
942263660c0SAlfonso Siciliano    { "4", true,  0, "Name 1", "Desc 1", "Radio Bottom Desc 1" },
943263660c0SAlfonso Siciliano    { "5", false, 0, "Name 2", "Desc 2", "Radio Bottom Desc 2" }
944263660c0SAlfonso Siciliano};
945263660c0SAlfonso Sicilianostruct bsddialog_menugroup group[3] = {
946263660c0SAlfonso Siciliano    { BSDDIALOG_CHECKLIST, 2, check },
947263660c0SAlfonso Siciliano    { BSDDIALOG_SEPARATOR, 1, sep   },
948263660c0SAlfonso Siciliano    { BSDDIALOG_RADIOLIST, 2, radio }
949263660c0SAlfonso Siciliano};
950263660c0SAlfonso Siciliano
951263660c0SAlfonso Sicilianobsddialog_init();
952263660c0SAlfonso Sicilianobsddialog_initconf(&conf);
953263660c0SAlfonso Sicilianobsddialog_mixedlist(&conf, "Example", 20, 30, 11, 3, group, NULL,
954263660c0SAlfonso Siciliano    NULL);
955263660c0SAlfonso Sicilianobsddialog_end();
956263660c0SAlfonso Siciliano
957263660c0SAlfonso Sicilianofor (i = 0; i < 3; i++) {
958263660c0SAlfonso Siciliano	for (j = 0; j < group[i].nitems; j++) {
959263660c0SAlfonso Siciliano		item = group[i].items[j];
960263660c0SAlfonso Siciliano		switch (item.type) {
961263660c0SAlfonso Siciliano		case BSDDIALOG_SEPARATOR:
962263660c0SAlfonso Siciliano			printf("---- %s ----\\n", item.name);
963263660c0SAlfonso Siciliano			break;
964263660c0SAlfonso Siciliano		case BSDDIALOG_RADIOLIST:
965263660c0SAlfonso Siciliano			printf(" (%c) %s\\n",
966263660c0SAlfonso Siciliano			    item.on ? '*' : ' ', item.name);
967263660c0SAlfonso Siciliano			break;
968263660c0SAlfonso Siciliano		case BSDDIALOG_CHECKLIST:
969263660c0SAlfonso Siciliano			printf(" [%c] %s\\n",
970263660c0SAlfonso Siciliano			    item.on ? 'X' : ' ', item.name);
971263660c0SAlfonso Siciliano			break;
972263660c0SAlfonso Siciliano		}
973263660c0SAlfonso Siciliano	}
974263660c0SAlfonso Siciliano}
975263660c0SAlfonso Siciliano.Ed
976d93b4d32SBaptiste Daroussin.Sh SEE ALSO
977263660c0SAlfonso Siciliano.Xr bsddialog 1 ,
978263660c0SAlfonso Siciliano.Xr curses 3 ,
979263660c0SAlfonso Siciliano.Xr ncurses 3
980d93b4d32SBaptiste Daroussin.Sh HISTORY
981d93b4d32SBaptiste DaroussinThe
982d93b4d32SBaptiste Daroussin.Nm bsddialog
983d93b4d32SBaptiste Daroussinlibrary first appeared in
984d93b4d32SBaptiste Daroussin.Fx 14.0 .
985d93b4d32SBaptiste Daroussin.Sh AUTHORS
986d93b4d32SBaptiste Daroussin.Nm bsddialog
987d93b4d32SBaptiste Daroussinwas written by
988d93b4d32SBaptiste Daroussin.An Alfonso Sabato Siciliano Aq Mt alf.siciliano@gmail.com .
989d93b4d32SBaptiste Daroussin.Sh BUGS
990263660c0SAlfonso Siciliano.Fn bsddialog_form
991263660c0SAlfonso Sicilianodoes not resize the dialog after a terminal resize and does not provide
992263660c0SAlfonso Sicilianoscrolling for items.