"Tickit::Widget::RadioButton" − a widget allowing a selection from multiple options
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;
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 Tickit::Style widget integration code, and such is subject to change of details.
The default
style pen is used as the widget pen. The following style pen
prefixes are also used:
tick => PEN
The pen used to render the tick marker
The following
style keys are used:
tick => STRING
The text used to indicate the active button
spacing => INT
Number of columns of spacing between the tick mark and the caption text
The following
style tags are used:
:active
Set when this button is the active one of the group.
The following
style actions are used:
activate
The main action to activate the "on_click" handler.
$radiobutton = Tickit::Widget::RadioButton−>new( %args );
Constructs a new "Tickit::Widget::RadioButton" object.
Takes the
following named argmuents
label => STRING
The label text to display alongside this button.
group => Tickit::Widget::RadioButton::Group
Optional. If supplied, the group that the button should belong to. If not supplied, a new group will be constructed that can be accessed using the "group" accessor.
value => SCALAR
Optional. If supplied, used to set the button's identification value, which is passed to the group's "on_changed" callback.
$group = $radiobutton−>group;
Returns the "Tickit::Widget::RadioButton::Group" this button belongs to.
$label =
$radiobutton−>label;
$radiobutton−>set_label( $label );
Returns or sets the label text of the button.
$on_toggle = $radiobutton−>on_toggle;
$radiobutton−>set_on_toggle( $on_toggle );
Return or set the CODE reference to be called when the button state is changed.
$on_toggle−>( $radiobutton, $active );
When the radio tick mark moves from one button to another, the old button is marked unactive before the new one is marked active.
$value = $radiobutton−>value;
$radiobutton−>set_value( $value );
Return or set the scalar value used to identify the radio button to the group's "on_changed" callback. This can be any scalar value; it is simply stored by the button and not otherwise used.
$radiobutton−>activate;
Sets this button as the active member of the group, deactivating the previous one.
$active = $radiobutton−>is_active;
Returns true if this button is the active button of the group.
Every "Tickit::Widget::RadioButton" belongs to a group. Only one button can be active in a group at any one time. The "group" accessor returns the group the button is a member of. The following methods are available on it.
A group can be explicitly created to pass to a button's constructor, or one will be implicitly created for a button if none is passed.
$group = Tickit::Widget::RadioButton::Group−>new;
Returns a new group.
$radiobutton = $group−>active;
Returns the button which is currently active in the group
$on_changed = $group−>on_changed;
$group−>set_on_changed( $on_changed );
Return or set the CODE reference to be called when the active member of the group changes. This may be more convenient than setting the "on_toggle" callback of each button in the group.
The callback is passed the currently−active button, and its "value".
$on_changed−>( $active, $value );
Paul Evans <[email protected]>