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.