#!/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();
}