1#!/usr/bin/perl 2 3use strict; 4use warnings; 5 6use Tickit; 7use Tickit::Widgets qw( Border Button VBox RadioButton ); 8 9Tickit::Style->load_style( <<'EOF' ); 10Button { 11 fg: "black"; 12 bg: "white"; 13} 14EOF 15 16my $border = Tickit::Widget::Border->new( 17 h_border => 10, 18 v_border => 2, 19) 20 ->set_child( my $vbox = Tickit::Widget::VBox->new( spacing => 2, bg => "black" ) ); 21 22my @buttons; 23foreach my $colour (qw( red blue green yellow )) { 24 $vbox->add( 25 my $button = Tickit::Widget::Button->new( 26 label => $colour, 27 on_click => sub { $border->set_style( bg => $colour ) }, 28 ) 29 ); 30 push @buttons, $button; 31} 32 33my $tickit = Tickit->new( root => $border ); 34 35$vbox->add( 36 my $button = Tickit::Widget::Button->new( 37 label => "Quit", 38 on_click => sub { $tickit->stop }, 39 ) 40); 41push @buttons, $button; 42 43{ 44 my $group = Tickit::Widget::RadioButton::Group->new; 45 $group->set_on_changed( sub { 46 my ( undef, $type ) = @_; 47 $_->set_style( linetype => $type ) for @buttons; 48 }); 49 50 $vbox->add( Tickit::Widget::RadioButton->new( 51 label => $_, 52 value => $_, 53 group => $group, 54 ) ) for qw( none single double thick ); 55} 56 57$tickit->run; 58