DOKK / manpages / debian 12 / libtickit-widgets-perl / Tickit::Widget::RadioButton.3pm.en
Tickit::Widget::RadioButton(3pm) User Contributed Perl Documentation Tickit::Widget::RadioButton(3pm)

"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:

The pen used to render the tick marker

The following style keys are used:

The text used to indicate the active button
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:

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 <leonerd@leonerd.org.uk>

2022-12-17 perl v5.36.0