1#!/usr/bin/perl 2 3use strict; 4use warnings; 5 6use Tickit; 7 8use Tickit::Widgets qw( GridBox Frame HBox Entry Static Button CheckButton RadioButton ); 9Tickit::Style->load_style( <<'EOF' ); 10Entry:focus { 11 bg: "blue"; 12 b: 1; 13} 14 15Frame { 16 linetype: "single"; 17} 18Frame:focus-child { 19 frame-fg: "red"; 20} 21 22CheckButton:focus { 23 check-bg: "blue"; 24} 25 26RadioButton:focus { 27 tick-bg: "blue"; 28} 29EOF 30 31my $gridbox = Tickit::Widget::GridBox->new( 32 style => { 33 row_spacing => 1, 34 col_spacing => 2, 35 }, 36); 37 38foreach my $row ( 0 .. 2 ) { 39 $gridbox->add( $row, 0, Tickit::Widget::Static->new( text => "Entry $row" ) ); 40 $gridbox->add( $row, 1, Tickit::Widget::Entry->new, col_expand => 1 ); 41} 42 43{ 44 $gridbox->add( 3, 0, Tickit::Widget::Static->new( text => "Buttons" ) ); 45 $gridbox->add( 3, 1, Tickit::Widget::Frame->new( 46 child => my $hbox = Tickit::Widget::HBox->new( spacing => 2 ), 47 ) ); 48 49 foreach my $label (qw( One Two Three )) { 50 $hbox->add( Tickit::Widget::Button->new( label => $label, on_click => sub {} ), expand => 1 ); 51 } 52} 53 54{ 55 $gridbox->add( 4, 0, Tickit::Widget::Static->new( text => "Checks" ) ); 56 $gridbox->add( 4, 1, Tickit::Widget::Frame->new( 57 child => my $hbox = Tickit::Widget::HBox->new( spacing => 2 ), 58 ) ); 59 60 foreach ( 0 .. 2 ) { 61 $hbox->add( Tickit::Widget::CheckButton->new( label => "Check $_" ) ); 62 } 63} 64 65{ 66 $gridbox->add( 5, 0, Tickit::Widget::Static->new( text => "Radios" ) ); 67 $gridbox->add( 5, 1, Tickit::Widget::Frame->new( 68 child => my $hbox = Tickit::Widget::HBox->new( spacing => 2 ), 69 ) ); 70 71 my $group = Tickit::Widget::RadioButton::Group->new; 72 foreach ( 0 .. 2 ) { 73 $hbox->add( Tickit::Widget::RadioButton->new( label => "Radio $_", group => $group ) ); 74 } 75} 76 77Tickit->new( root => $gridbox )->run; 78