logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

UI::Dialog::Backend::ASCII - Dialog backend for the native Perl mode of basic text.

Abstract

       UI::Dialog::Backend::ASCII is the UI::Dialog backend for the native Perl mode of basic text. The widgets
       are very much "rigid" in that the width and height arguments are completely ignored.

Author

       Kevin C. Krinke, <kevin@krinke.ca>

Bugs

       Please email the author with any bug reports. Include the name of the module in the subject line.

Constructor

new(@options)
       EXAMPLE
            my $d = new UI::Dialog::Backend::ASCII ( title => 'Default Title',
                                                     backtitle => 'Backtitle'
                                                   );

       DESCRIPTION
                 This  is the Class Constructor method. It accepts a list of key => value pairs and uses them as
                 the defaults when interacting with the various widgets.

       RETURNS
                 A blessed object reference of the UI::Dialog::Backend::ASCII class.

       OPTIONS
           The (...)'s after each option indicate the default for the option.

           debug=0,1,2 (0)
           literal=0,1 (0)
           backtitle="backtitle" ('')
           title="title" ('')
           nocancel=0,1 (0)
           defaultno=0,1 (0)
           beepbefore=0,1 (0)
           beepafter=0,1 (0)
           extra-button=0,1 (0)
           extra-label="extralabel" (0)
           help-button=0,1 (0)
           help-label="helplabel" (0)
           maxinput=\d+ (0)
           autoclear=0,1 (0)
           pager="/usr/bin/pager" ('/usr/bin/pager')
           stty="/usr/bin/stty" ('/usr/bin/stty')

Description

       This backend is intended as a last resort mechanism in that no other dialog variant has been found and so
       this, the most absolute of bargain basement dialog variant interfaces, is used instead.

Export

       None

Inherits

       UI::Dialog::Backend

Name

       UI::Dialog::Backend::ASCII - Dialog backend for the native Perl mode of basic text.

See Also

       PERLDOC
          UI::Dialog
          UI::Dialog::Backend
          UI::Dialog::Console

       MAN FILES
         pager(1), less(1), more(1), stty(1)

Synopsis

         use UI::Dialog::Backend::ASCII;
         my $d = new UI::Dialog::Backend::ASCII ( backtitle => 'Demo',
                                                  title => 'Default' );

         $d->msgbox( title => 'Welcome!', text => 'Welcome one and all!' );

Widget Methods

yesno()
       EXAMPLE
            if ($d->yesno( text => 'A binary type question?') ) {
                # user pressed yes
            } else {
                # user pressed no or cancel
            }

       DESCRIPTION
                 Present the end user with a message box that has two buttons, yes and no.

       RETURNS
                 TRUE (1) for a response of YES or FALSE (0) for anything else.

   msgbox()
       EXAMPLE
            $d->msgbox( text => 'A simple message' );

       DESCRIPTION
                 Pesent the end user with a message box that has an OK button.

       RETURNS
                 TRUE (1) for a response of OK or FALSE (0) for anything else.

   infobox()
       EXAMPLE
            $d->infobox( text => 'A simple 6 second message.', timeout => 6000 );

       DESCRIPTION
                 Pesent the end user with a message box for a limited duration of time. The timeout is specified
                 in thousandths of a second, ie: 1000 = 1 second.

       RETURNS
                 TRUE (1) for a response of OK or FALSE (0) for anything else.

   password()
       EXAMPLE
            my $string = $d->password( text => 'Enter some (hidden) text.' );

       DESCRIPTION
                 Present the end user with a text input field that doesn't  reveal  the  input  (except  to  the
                 script) and a message.

       RETURNS
                 a SCALAR if the response is OK and FALSE (0) for anything else.

   inputbox()
       EXAMPLE
            my $string = $d->inputbox( text => 'Please enter some text...',
                                       entry => 'this is the input field' );

       DESCRIPTION
                 Present the end user with a text input field and a message.

       RETURNS
                 a SCALAR if the response is OK and FALSE (0) for anything else.

   textbox()
       EXAMPLE
            $d->textbox( path => '/path/to/a/text/file' );

       DESCRIPTION
                 Present  the  end  user  with  a simple scrolling box containing the contents of the given text
                 file.

       RETURNS
                 TRUE (1) if the response is OK and FALSE (0) for anything else.

   menu()
       EXAMPLE
            my $selection1 = $d->menu( text => 'Select one:',
                                       list => [ 'tag1', 'item1',
                                                 'tag2', 'item2',
                                                 'tag3', 'item3' ]
                                     );

       DESCRIPTION
                 Present the user with a selectable list.

       RETURNS
                 a SCALAR of the chosen tag if the response is OK and FALSE (0) for anything else.

   checklist()
       EXAMPLE
            my @selection = $d->checklist( text => 'Select one:',
                                           list => [ 'tag1', [ 'item1', 0 ],
                                                     'tag2', [ 'item2', 1 ],
                                                     'tag3', [ 'item3', 1 ] ]
                                         );

       DESCRIPTION
                 Present the user with a selectable checklist.

       RETURNS
                 an ARRAY of the chosen tags if the response is OK and FALSE (0) for anything else.

   radiolist()
       EXAMPLE
            my $selection = $d->radiolist( text => 'Select one:',
                                           list => [ 'tag1', [ 'item1', 0 ],
                                                     'tag2', [ 'item2', 1 ],
                                                     'tag3', [ 'item3', 0 ] ]
                                         );

       DESCRIPTION
                 Present the user with a selectable radiolist.

       RETURNS
                 a SCALAR of the chosen tag if the response is OK and FALSE (0) for anything else.

   fselect()
       EXAMPLE
            my $text = $d->fselect( path => '/path/to/a/file/or/directory' );

       DESCRIPTION
                 Present the user with a file selection widget preset with the given path.

       RETURNS
                 a SCALAR if the response is OK and FALSE (0) for anything else.

   dselect()
       EXAMPLE
            my $text = $d->dselect( path => '/path/to/a/file/or/directory' );

       DESCRIPTION
                 Present the user with a file selection widget preset with the  given  path.   Unlike  fselect()
                 this widget will only return a directory selection.

       RETURNS
                 a SCALAR if the response is OK and FALSE (0) for anything else.

   spinner()
       EXAMPLE
            print STDOUT "spinner... ";
            for (20,40,60,80,100) { print $d->spinner(); sleep(1); }
            print STDOUT "\bdone.\n";

       DESCRIPTION
                 Return  the  next  character in the spin sequence prefixed with a backspace (\b) character. The
                 spinner is made up of four ASCII characters; | (pipe), \ (back slash),  /  (forward  slash),  -
                 (hyphen).

                 The complete sequence is as follows:

                  |
                  /
                  -
                  \
                  |
                  /
                  -
                  \

       RETURNS
                 A two character SCALAR.

   draw_gauge()
       EXAMPLE
            foreach my $i (20,40,60,80,100) {
              last unless $d->draw_gauge( bar => "-", mark => "|", length => 74,
                                          percent => $i );
              sleep(1);
            }

            foreach my $i (200,500,10000,12000,12345) {
              last unless $d->draw_gauge( bar => "-", mark => "|", length => 74,
                                          current => $i, total => 12345 );
              sleep(1);
            }

       DESCRIPTION
                 Draw a meter bar with a position indicator. You can specify alternate characters for use as the
                 meter  bar  itself  (default  is  "-") and the positional marker (default to "|") as well as an
                 arbitrary length to the bar itself.

                 There are two different ways to present the bar, either by specifying the percentage to display
                 or by specifying the current and total values and and the widget will figure out the percentage
                 for you.

       RETURNS
                 None.

   end_gauge()
       EXAMPLE
            $d->end_gauge();

       DESCRIPTION
                 Simply print a newline for use when the finished with the draw_gauge() widget  as  that  leaves
                 the cursor at the end of the last line of output.

       RETURNS
                 None.

See Also