The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Curses::Widgets::ButtonSet - Button Set Widgets

MODULE VERSION

$Id: ButtonSet.pm,v 1.99 2001/12/05 09:53:44 corliss Exp $

SYNOPSIS

        use Curses::Widgets::ButtonSet;

        $btns = Curses::Widgets::ButtonSet->({
                LENGTH                  => 10,
                VALUE                   => 0,
                INPUTFUNC               => \&scankey,
                FOREGROUND              => undef,
                BACKGROUND              => 'black',
                BORDER                  => 1,
                BORDERCOL               => undef,
                FOCUSSWITCH             => "\t\n",
                HORIZONTAL              => 1,
                PADDING                 => 1,
                X                       => 1,
                Y                       => 1,
                LABELS                  => [ qw( OK CANCEL ) ],
                });

        $btns->draw($mwh, 1);

        See the Curses::Widgets pod for other methods.

REQUIREMENTS

Curses Curses::Widgets

DESCRIPTION

Curses::Widgets::ButtonSet provides simplified OO access to Curses-based button sets. Each object maintains it's own state information.

METHODS

new (inherited from Curses::Widgets)

        $btns = Curses::Widgets::ButtonSet->({
                LENGTH                  => 10,
                VALUE                   => 0,
                INPUTFUNC               => \&scankey,
                FOREGROUND              => undef,
                BACKGROUND              => 'black',
                BORDER                  => 1,
                BORDERCOL               => undef,
                FOCUSSWITCH             => "\t\n",
                HORIZONTAL              => 1,
                PADDING                 => 1,
                X                       => 1,
                Y                       => 1,
                LABELS                  => [ qw( OK CANCEL ) ],
                });

The new method instantiates a new ButtonSet object. The only mandatory key/value pairs in the configuration hash are X, Y, and LABELS. All others have the following defaults:

        Key             Default         Description
        ============================================================
        LENGTH          10              Number of columns for each 
                                        button label
        VALUE           0               Button selected (0-based 
                                        indexing)
        INPUTFUNC       \&scankey       Function to use to scan for 
                                        keystrokes
        FOREGROUND      undef           Default foreground colour
        BACKGROUND      'black'         Default blackground colour
        BORDER          1               Display border around the set
        BORDERCOL       undef           Foreground colour for border
        FOCUSSWITCH     "\t\n"          Characters which signify end of 
                                        input
        HORIZONTAL      1               Horizontal orientation for set
        PADDING         1               Number of spaces between buttons

The last option, PADDING, is only applicable to horizontal sets without borders.

draw

        $btns->draw($mwh, 1);

The draw method renders the button set in its current state. This requires a valid handle to a curses window in which it will render itself. The optional second argument, if true, will cause the set's selected button to be rendered in standout mode (inverse video).

HISTORY

1999/12/29 -- Original button set widget in functional model 2001/07/05 -- First incarnation in OO architecture

AUTHOR/COPYRIGHT

(c) 2001 Arthur Corliss (corliss@digitalmages.com)