1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
|
#!/usr/bin/perl
use v5.26;
use warnings;
use Test::More;
use Tickit::Test;
use Tickit::Widget::Static;
use Tickit::Widget::Tabbed;
my $win = mk_window;
my $widget = Tickit::Widget::Tabbed->new( tab_position => "top" );
my $tab = $widget->add_tab( Tickit::Widget::Static->new( text => "Widget" ), label => "tab" );
$widget->set_window( $win );
flush_tickit;
is_display( [ [TEXT("[",fg=>7,bg=>4), TEXT("tab",fg=>14,bg=>4), TEXT("]",fg=>7,bg=>4), TEXT("",bg=>4)],
[TEXT("Widget")] ],
'Display initially' );
$tab->set_label( "newlabel" );
flush_tickit;
is_display( [ [TEXT("[",fg=>7,bg=>4), TEXT("newlabel",fg=>14,bg=>4), TEXT("]",fg=>7,bg=>4), TEXT("",bg=>4)],
[TEXT("Widget")] ],
'Display after ->set_label' );
# Narrow rendering
$widget->set_window( undef );
my $subwin = $win->make_sub( 0, 0, 10, 30 );
$widget->add_tab( Tickit::Widget::Static->new( text => "Widget $_" ), label => "tab$_" ) for 1..10;
# Should be too narrow now
$widget->set_window( $subwin );
flush_tickit;
is_display( [ [TEXT("[",fg=>7,bg=>4),
TEXT("newlabel",fg=>14,bg=>4),
TEXT("]",fg=>7,bg=>4),
TEXT("tab1 tab2 tab3 ta",fg=>7,bg=>4),
TEXT("..>",fg=>6,bg=>4),
TEXT("",bg=>4)],
[TEXT("Widget")] ],
'Display with narrow truncation' );
$widget->activate_tab( 7 );
flush_tickit;
is_display( [ [TEXT("<..",fg=>6,bg=>4),
TEXT("5 tab6[",fg=>7,bg=>4),
TEXT("tab7",fg=>14,bg=>4),
TEXT("]tab8 tab9 tab10",fg=>7,bg=>4),
TEXT("",bg=>4)],
[TEXT("Widget 7")] ],
'Display scrolls ribbon to active tab' );
done_testing;
|