NAME

EBook::Gutenberg::Dialog - Interface to dialog command.

SYNOPSIS

use EBook::Gutenberg::Dialog;

my $dialog = EBook::Gutenberg::Dialog->new(backtitle => 'gutenberg');

DESCRIPTION

EBook::Gutenberg::Dialog is the gutenberg interface to the Unix dialog(1) program. This is developer documentation, for user documentation you should consult the gutenberg manual.

METHODS

$dialog = EBook::Gutenberg::Dialog->new(%params)

Returns a newly blessed EBook::Gutenberg::Dialog object.

The following are valid %params fields.

backend

The backend dialog command to use. Defaults to dialog(1).

backtitle

String to use for the --backtitle option. Unset by default.

Accessors

$backend = $dialog->backend
$dialog->set_backend($backend)

Getter/setter for the backend attribute.

$backtitle = $dialog->backtitle
$dialog->set_backtitle($backtitle)

Getter/setter for the backtitle attribute.

Widgets

These methods correspond to dialog(1) widget options. Each method accepts a hashref as an optional final argument that can contain the following fields:

title
ok_label
yes_label
cancel_label
no_label
extra_button
extra_label
help_button
help_label
erase_on_exit

Each correspond to a dialog(1) option.

($rv, $forms) = $dialog->form($text, $height, $width, $list_height, [ $ly, $lx, $i1, $iy, $ix, $flen, $ilen ] ..., [ \%param ])
$rv = $dialog->infobox($text, $height, $width, [ $init ], [ \%param ])
($rv, $in) = $dialog->inputbox($text, $height, $width, $menu_height, [ $tag, $item ] ..., [ \%param ])
($rv, $item) = $dialog->menu($text, $height, $width, $menu_height, [ $tag, $item ] ..., [ \%param ])
$rv = $dialog->msgbox($text, $height, $width, [ \%param ])
$rv = $dialog->textbox($file, $height, $width, [ \%param ])
$rv = $dialog->yesno($text, $height, $width, [ \%param ])
$rv = $dialog->pager($file, [ $pgr ])

pager() uses a given pager to read $file. It does not actually correspond to a dialog(1) widget.

EXPORTS

:codes

dialog(1) return code constants.

DIALOG_OK
DIALOG_CANCEL
DIALOG_HELP
DIALOG_EXTRA
DIALOG_ITEM_HELP
DIALOG_TIMEOUT
DIALOG_ERROR
DIALOG_ESC

AUTHOR

Written by Samuel Young, <samyoung12788@gmail.com>.

This project's source can be found on its Codeberg page. Comments and pull requests are welcome!

COPYRIGHT

Copyright (C) 2025 Samuel Young

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

SEE ALSO

gutenberg, dialog(1)