The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Tickit::Widget::Button - a widget displaying a clickable button

SYNOPSIS

use Tickit;
use Tickit::Widget::Button;

my $button = Tickit::Widget::Button->new(
   label => "Click Me!",
   on_click => sub {
      my ( $self ) = @_;

      # Do something!
   },
);

Tickit->new( root => $button )->run;

DESCRIPTION

This class provides a widget which displays a clickable area with a label. When the area is clicked, a callback is invoked.

STYLE

The default style pen is used as the widget pen. The following style keys are used:

linetype => STRING

What kind of border to draw around the button; one of

none single double thick
marker_left => STRING

A two-character string to place just before the button label

marker_right => STRING

A two-character string to place just after the button label

The following style tags are used:

:active

Set when the mouse is being held over the button, before it is released

The following style actions are used:

click

The main action to activate the on_click handler.

CONSTRUCTOR

new

$button = Tickit::Widget::Button->new( %args );

Constructs a new Tickit::Widget::Button object.

Takes the following named arguments:

label => STR

Text to display in the button area

on_click => CODE

Optional. Callback function to invoke when the button is clicked.

ACCESSORS

label

$label = $button->label;

set_label

$button->set_label( $label );

Return or set the text to display in the button area.

on_click

$on_click = $button->on_click;

set_on_click

$button->set_on_click( $on_click );

Return or set the CODE reference to be called when the button area is clicked.

$on_click->( $button );

click

$button->click;

Behave as if the button has been clicked; running its on_click handler. This is provided for convenience of activating its handler programmatically via other parts of code.

align

set_align

valign

set_valign

$align = $button->align;

$button->set_align( $align );

$valign = $button->valign;

$button->set_valign( $valign );

Accessors for the horizontal and vertical alignment of the label text within the button area. See also Tickit::WidgetRole::Alignable.

AUTHOR

Paul Evans <leonerd@leonerd.org.uk>