The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl

use strict;
use warnings;

use Tickit;

use Tickit::Widget::Static;
use Tickit::Widget::Tabbed;

use Getopt::Long;
GetOptions(
        'position|p=s' => \(my $position = "bottom"),
) or exit(1);

my $tabbed = Tickit::Widget::Tabbed->new(
        tab_position => $position,
        style => {
                active_b => 1,
                active_u => 1,
        },
);

my $counter = 1;
sub add_tab
{
        $tabbed->add_tab(
                Tickit::Widget::Static->new( text => "Content for tab $counter" ),
                label => "tab$counter",
        );
        $counter++
}

add_tab for 1 .. 3;

my $tickit = Tickit->new();

$tickit->set_root_widget( $tabbed );

$tickit->bind_key(
        'C-a' => \&add_tab
);
$tickit->bind_key(
        'C-d' => sub {
                $tabbed->remove_tab( $tabbed->active_tab );
        },
);

$tickit->bind_key( 'M-Up'    => sub { $tabbed->tab_position( "top"    ) } );
$tickit->bind_key( 'M-Down'  => sub { $tabbed->tab_position( "bottom" ) } );
$tickit->bind_key( 'M-Left'  => sub { $tabbed->tab_position( "left"   ) } );
$tickit->bind_key( 'M-Right' => sub { $tabbed->tab_position( "right"  ) } );

$tickit->run;