#!/usr/bin/env perl # # This file is part of Curses-Toolkit # # This software is copyright (c) 2011 by Damien "dams" Krotkine. # # This is free software; you can redistribute it and/or modify it under # the same terms as the Perl 5 programming language system itself. # use strict; use warnings; use FindBin qw( $Bin ); use lib "$Bin/../../../lib"; open STDERR, '>>/dev/null'; use relative -to => "Curses::Toolkit::Widget", -aliased => qw(Window Label VBox HBox Button); use relative -to => "Curses::Toolkit::Theme::Default::Color", -aliased => qw(BlueWhite Yellow Pink); use relative -to => "Curses::Toolkit::Theme", -aliased => qw(Default); main() unless caller; sub main { use POE::Component::Curses; my $root = POE::Component::Curses->spawn( args => { theme_name => BlueWhite } ); my ($button01, $button02, $button03, $button04); my $window1 = Window->new->set_name('window')->set_title("Curses::Toolkit Theme demonstration") ->set_coordinates( x1 => '5%', y1 => '30%', x2 => '95%', y2 => '70%' ); $root->add_window($window1); $window1->add_widget( VBox->new()->pack_end( Label->new->set_justify('center')->set_text("Click these buttons to change the theme"), { expand => 1 } )->pack_end( HBox->new() ->pack_end($button01 = Button->new_with_label('Default'), { expand => 1 } ) ->pack_end($button02 = Button->new_with_label('BlueWhite'), { expand => 1 } ) ->pack_end($button03 = Button->new_with_label('Yellow'), { expand => 1 } ) ->pack_end($button04 = Button->new_with_label('Pink'), { expand => 1 } ), { expand => 0 } ) ); $button01->signal_connect( clicked => sub { $window1->set_theme_name(Default, 1)} ); $button02->signal_connect( clicked => sub { $window1->set_theme_name(BlueWhite, 1)} ); $button03->signal_connect( clicked => sub { $window1->set_theme_name(Yellow, 1)} ); $button04->signal_connect( clicked => sub { $window1->set_theme_name(Pink, 1)} ); POE::Kernel->run(); }