Curses::UI::Buttonbox

TriggerTek Logo
abcdefghijklmnopqrstuvwxyz_
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)