---
name: "Curses::Widgets::ButtonSet"
section: "3pm"
platform: "linux"
package: "libcurses-widgets-perl"
version: "1.997-8"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Curses::Widgets::ButtonSet"
---

# Curses::Widgets::ButtonSet(3pm)

Button Set Widgets

## NAME

Curses::Widgets::ButtonSet - Button Set Widgets

## MODULE VERSION

`$Id:` ButtonSet.pm,v 1.103 2002/11/03 23:31:26 corliss Exp corliss $

## SYNOPSIS

```
  use Curses::Widgets::ButtonSet;
  $btns = Curses::Widgets::ButtonSet->({
    LENGTH      => 10,
    VALUE       => 0,
    INPUTFUNC   => \&scankey,
    FOREGROUND  => 'white',
    BACKGROUND  => 'black',
    BORDER      => 1,
    BORDERCOL   => 'red',
    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  => 'white',
    BACKGROUND  => 'black',
    BORDER      => 1,
    BORDERCOL   => 'red',
    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      undef  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)
