Alt-Tickit-Widgets-ObjectPad
view release on metacpan or search on metacpan
lib/Tickit/Widget/RadioButton.pm view on Meta::CPAN
# You may distribute under the terms of either the GNU General Public License
# or the Artistic License (the same terms as Perl itself)
#
# (C) Paul Evans, 2013-2019 -- leonerd@leonerd.org.uk
use Object::Pad 0.09;
class Tickit::Widget::RadioButton 0.29
extends Tickit::Widget;
use Tickit::Style;
use Carp;
use Tickit::Utils qw( textwidth );
use List::Util 1.33 qw( any );
use constant CAN_FOCUS => 1;
=head1 NAME
C<Tickit::Widget::RadioButton> - a widget allowing a selection from multiple
options
=head1 SYNOPSIS
use Tickit;
use Tickit::Widget::RadioButton;
use Tickit::Widget::VBox;
my $group = Tickit::Widget::RadioButton::Group->new;
my $vbox = Tickit::Widget::VBox->new;
$vbox->add( Tickit::Widget::RadioButton->new(
caption => "Radio button $_",
group => $group,
) ) for 1 .. 5;
Tickit->new( root => $vbox )->run;
=head1 DESCRIPTION
This class provides a widget which allows a selection of one value from a
group of related options. It provides a clickable area and a visual indication
of which button in the group is the one currently active. Selecting a new
button within a group will unselect the previously-selected one.
This widget is part of an experiment in evolving the design of the
L<Tickit::Style> widget integration code, and such is subject to change of
details.
=head1 STYLE
The default style pen is used as the widget pen. The following style pen
prefixes are also used:
=over 4
=item tick => PEN
The pen used to render the tick marker
=back
The following style keys are used:
=over 4
=item tick => STRING
The text used to indicate the active button
=item spacing => INT
Number of columns of spacing between the tick mark and the caption text
=back
The following style tags are used:
=over 4
=item :active
Set when this button is the active one of the group.
=back
The following style actions are used:
=over 4
=item activate
The main action to activate the C<on_click> handler.
=back
=cut
style_definition base =>
tick_fg => "hi-white",
tick_b => 1,
tick => "( )",
spacing => 2,
'<Space>' => "activate";
( run in 0.523 second using v1.01-cache-2.11-cpan-39bf76dae61 )