The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
package RT::Client::Console::Session::Status;

use strict;
use warnings;

use parent qw(RT::Client::Console::Session);

use Curses::Widgets::Label;
use Params::Validate qw(:all);
use POE;


# class method

### THIS MODULE IS NOT USED BY THE CORE, BUT SHOULD BE PROVIDED AS PLUGIN ###

# status session creation
sub create {
    my ($class) = @_;

    $class->SUPER::create(
        'status',
        inline_states => {
            init => sub {
                my ( $kernel, $heap ) = @_[ KERNEL, HEAP ];
                $heap->{pos_x} = 0;
                $heap->{height} = 1;
			},
			window_resize => sub {
				my ($kernel, $heap, $old_screen_h, $old_screen_w) = @_[ KERNEL, HEAP, ARG0, ARG1 ];
                $heap->{pos_y} = $heap->{screen_h} - 4;
                $heap->{width} = $heap->{screen_w} - 2;
            },
            set_message => sub {
                my ($kernel, $heap, $message) = @_[ KERNEL, HEAP, ARG0 ];
                $heap->{message} = $message;
            },
            draw => sub { 
                my ($kernel,$heap) = @_[ KERNEL, HEAP ];
                my $label;
    
                # Render the comment box
                $label = Curses::Widgets::Label->new({
                                                      CAPTION     => ' Keys ',
                                                      BORDER      => 1,
                                                      LINES       => $heap->{height},
                                                      COLUMNS     => $heap->{width},
                                                      Y           => $heap->{pos_y},
                                                      X           => $heap->{pos_x},
                                                      VALUE       => $heap->{message},
                                                      FOREGROUND  => 'white',
                                                      BACKGROUND  => 'blue',
                                                      BORDERCOL   => 'black',
                                                     });
                #refresh;
                $label->draw($class->get_curses_handler());
            },
        },
        heap => { 'pos_x' => 0,
                  'pos_y' => 0,
                  'width' => 0,
                  'height' => 0,
                  'message' => 'default',
                },
    );
}

1;