The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/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 lib qw(../../../lib);
main() unless caller;

sub main {

	use POE::Component::Curses;

	#	use Curses::Toolkit;
	use Curses::Toolkit::Widget::Window;
	use Curses::Toolkit::Widget::Border;
	use Curses::Toolkit::Widget::Label;
	use Curses::Toolkit::Widget::VBox;
	use Curses::Toolkit::Widget::HBox;
	use Curses::Toolkit::Widget::Button;

	my $root = POE::Component::Curses->spawn();

	#	my $root = Curses::Toolkit->init_root_window();

	local $| = 1;
	open STDERR, '/dev/null';

	$root->add_window(
		Curses::Toolkit::Widget::Window->new()->add_widget(
			Curses::Toolkit::Widget::Border->new()->add_widget(
				Curses::Toolkit::Widget::Border->new() # space
					->set_visible(0)->add_widget(
					Curses::Toolkit::Widget::VBox->new()->pack_end(
						Curses::Toolkit::Widget::HBox->new()->pack_end(
							my $button01 =
								Curses::Toolkit::Widget::Button->new_with_label('This button is focused !')
								->set_name('button1'),
							{ expand => 1 }
							)

							->pack_end(
							my $button02 =
								Curses::Toolkit::Widget::Button->new_with_label('This button is not focused !')
								->set_name('button2'),
							{ expand => 1 }
							),

						{ expand => 1 }
						)->pack_end(
						Curses::Toolkit::Widget::Border->new()->add_widget(
							Curses::Toolkit::Widget::Label->new()
								->set_text('expanding border with a label (this text) in it')
						),
						{ expand => 1 }
						)->pack_end(
						Curses::Toolkit::Widget::HBox->new()->pack_end(
							my $button1 =
								Curses::Toolkit::Widget::Button->new_with_label('This button is focused !')
								->set_name('button1'),
							{ expand => 1 }
							)

							->pack_end(
							my $button2 =
								Curses::Toolkit::Widget::Button->new_with_label('This button is not focused !')
								->set_name('button2'),
							{ expand => 1 }
							),

						{ expand => 1 }
						)
					)
			)
			)->set_coordinates(
			x1 => 0,
			y1 => 0,
			x2 => '100%',
			y2 => '100%',
			)
	);
	$button1->set_focus(1);

	#	$button1->register_event( type => keyboard

	#$root
	#      ->render()
	#      ->display();
	#sleep 5;
	POE::Kernel->run();
}