Curses::UI::Buttonbox
Curses::UI::ButtonboxUser Contributed Perl DocumentatCurses::UI::Buttonbox(3)
NAME
Curses::UI::Buttonbox - Create and manipulate button widgets
CLASS HIERARCHY
Curses::UI::Widget
│
+----Curses::UI::Buttonbox
SYNOPSIS
use Curses::UI;
my $cui = new Curses::UI;
my $win = $cui->add(’window_id’, ’Window’);
my $buttons = $win->add(
’mybuttons’, ’Buttonbox’,
-buttons => [
{
-label => ’< Button 1 >’,
-value => 1,
-shortcut => 1
},{
-label => ’< Button 2 >’,
-value => 2,
-shortcut => 2
}
]
);
$buttons->focus();
my $value = $buttons->get();
DESCRIPTION
Curses::UI::Buttonbox is a widget that can be used to create an array
of buttons (or, of course, only one button).
STANDARD OPTIONS
-parent, -x, -y, -width, -height, -pad, -padleft, -padright, -padtop,
-padbottom, -ipad, -ipadleft, -ipadright, -ipadtop, -ipadbottom,
-title, -titlefullwidth, -titlereverse, -onfocus, -onblur
For an explanation of these standard options, see Curses::UI::Widget.
WIDGET-SPECIFIC OPTIONS
* -buttons < ARRAYREF >
This option takes a reference to a list of buttons. The list may
contain both predefined button types and complete button defini-
tions of your own.
* Your own button definition
A button definition is a reference to a hash. This
hash can have the following key-value pairs:
obligatory:
-----------
-label This determines what text should be drawn
on the button.
optional:
---------
-value This determines the returnvalue for the
get() method. If the value is not defined,
the get() method will return the index
of the button.
-shortcut The button will act as if it was pressed
if the key defined by -shortcut is pressed
-onpress If the value for -onpress is a CODE reference,
this code will be executes if the button
is pressed, before the buttons widget loses
focus and returns.
* Predefined button type
This module has a predefined list of frequently used button
types. Using these in B<-buttons> makes things a lot
easier. The predefined button types are:
ok -label => ’< OK >’
-shortcut => ’o’
-value => 1
-onpress => undef
cancel -label => ’< Cancel >’
-shortcut => ’c’
-value => 0
-onpress => undef
yes -label => ’< Yes >’
-shortcut => ’y’
-value => 1
-onpress => undef
no -label => ’< No >’
-shortcut => ’n’
-value => 0
-onpress => undef
Example:
....
-buttons => [
{ -label => ’< My own button >’,
-value => ’mine!’,
-shortcut => ’m’ },
’ok’,
’cancel’,
{ -label => ’< My second button >’,
-value => ’another one’,
-shortcut => ’s’,
-onpress => sub { die "Do not press this button!\n" } }
]
....
* -selected < INDEX >
By default the first button (index = 0) is active. If you want
another button to be active at creation time, add this option. The
INDEX is the index of the button you want to make active.
* -buttonalignment < VALUE >
You can specify how the buttons should be aligned in the widget.
Available values for VALUE are ’left’, ’middle’ and ’right’.
* -vertical < BOOLEAN >
When set to a true value, it will cause the buttons to be rendered
with vertical instead of horizontal alignment.
METHODS
* new ( OPTIONS )
* layout ( )
* draw ( BOOLEAN )
* focus ( )
* onFocus ( CODEREF )
* onBlur ( CODEREF )
* draw_if_visible ( )
These are standard methods. See Curses::UI::Widget for an explana-
tion of these.
* get ( )
This method will return the index of the currently active button.
If a value is given for that index (using the -value option, see
-buttons above), that value will be returned.
DEFAULT BINDINGS
* <enter>, <space>
TODO: Fix dox Call the ’loose-focus’ routine. By default this rou-
tine will have the container in which the widget is loose its
focus. If you do not like this behaviour, then you can have it
loose focus itself by calling:
$buttonswidget->set_routine(’loose-focus’, ’RETURN’);
For an explanation of set_routine, see Curses::UI::Widget.
* <cursor left>, <h>
Call the ’previous’ routine. This will make the previous button
the active button. If the active button already is the first but-
ton, nothing will be done.
* <cursor right>, <l
Call the ’next’ routine. This will make the next button the active
button. If the next button already is the last button, nothing
will be done.
* <any other key>
This will call the ’shortcut’ routine. This routine will handle
the shortcuts that are set by the -shortcuts option.
SEE ALSO
Curses::UI, Curses::UI::Widget, Curses::UI::Common
AUTHOR
Copyright (c) 2001-2002 Maurice Makaay. All rights reserved.
Maintained by Marcus Thiesen (marcus@cpan.thiesenweb.de)
This package is free software and is provided "as is" without express
or implied warranty. It may be used, redistributed and/or modified
under the same terms as perl itself.
perl v5.8.8 2008-12-21 Curses::UI::Buttonbox(3)