#!/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 qw(../../../lib);
open STDERR, '>>/dev/null';
main() unless caller;
sub main {
use POE::Component::Curses;
use Curses::Toolkit::Widget::Window;
use Curses::Toolkit::Widget::Label;
use Curses::Toolkit::Widget::HBox;
use Curses::Toolkit::Widget::VBox;
use Curses::Toolkit::Widget::Border;
use Curses::Toolkit::Widget::Button;
use Curses::Toolkit::Widget::HProgressBar;
use Curses::Toolkit::Widget::VProgressBar;
my $root = POE::Component::Curses->spawn;
my $hbar;
my $vbar;
{
my $window1 =
Curses::Toolkit::Widget::Window->new->set_name('window')->set_title("manual progress bar")
->set_coordinates( x1 => 0, y1 => 0, x2 => '100%', y2 => 30 );
$root->add_window($window1);
$window1->add_widget(
Curses::Toolkit::Widget::VBox->new
->pack_end(
Curses::Toolkit::Widget::HBox->new
->pack_end(
Curses::Toolkit::Widget::Border->new
->add_widget(
Curses::Toolkit::Widget::VBox->new
->pack_end(
Curses::Toolkit::Widget::Label->new->set_text('Click to decrease'),
{ expand => 0 },
)
->pack_end(
Curses::Toolkit::Widget::Button->new_with_label('-')->signal_connect( clicked =>
sub {
$hbar->set_position( $hbar->get_position - 1 );
$vbar->set_position( $hbar->get_position - 1 );
}),
{ expand => 0 },
)
),
{ expand => 0 },
)
->pack_end(
Curses::Toolkit::Widget::VBox->new
->pack_end(
$hbar = Curses::Toolkit::Widget::HProgressBar->new,
{ expand => 1 },
)
->pack_end(
$vbar = Curses::Toolkit::Widget::VProgressBar->new,
{ expand => 1 },
),
{ expand => 1 },
)
->pack_end(
Curses::Toolkit::Widget::Border->new
->add_widget(
Curses::Toolkit::Widget::VBox->new
->pack_end(
Curses::Toolkit::Widget::Label->new->set_text('Click to increase'),
{ expand => 0 },
)
->pack_end(
Curses::Toolkit::Widget::Button->new_with_label('+')->signal_connect( clicked =>
sub {
$hbar->set_position( $hbar->get_position + 1 );
$vbar->set_position( $hbar->get_position + 1 );
}),
{ expand => 0 },
)
),
{ expand => 0 },
),
{ expand => 1 },
)
->pack_end(
Curses::Toolkit::Widget::Button->new_with_label('Exit')->signal_connect( clicked => sub {exit} ),
{ expand => 0 }
)
);
}
POE::Kernel->run();
}