NAME
Tickit::Widget::Term - a widget containing a virtual terminal
SYNOPSIS
use Tickit;
use Tickit::Widget::Term;
my $tickit = Tickit->new(
root => my $term = Tickit::Widget::Term->new,
);
$term->set_on_output( sub {
my ( $bytes ) = @_;
## some application logic here to handle the bytes
});
## some application logic here to invoke $term->write_input
$tickit->run;
DESCRIPTION
This widget class uses Term::VTerm to provide a virtual terminal,
receiving bytes containing terminal sequences which are used to draw
the content to the screen.
Typically this would be used connected to some external process via a
PTY device. The "use_pty" method can be used to connect this PTY device
to the widget. Alternatively, the application can perform this bytewise
IO itself, via the "write_input" method and "set_on_output" event
handler.
METHODS
write_input
$term->write_input( $bytes )
Push more bytes into the terminal state.
on_output
set_on_output
$on_output = $term->on_output
$term->set_on_output( $on_output )
$on_output->( $bytes )
Accessors for the on_output event callback, which is invoked by the
terminal engine when more bytes of response have been generated.
Typically this is caused by keyboard or mouse events, but it can also
be generated in response to some received query sequences.
flush
$term->flush
Finishes a round of screen update events, ensuring that any pending
screen damage is handled. Also flushes the output buffer, invoking the
on_event handler if required.
on_resize
set_on_resize
$on_resize = $term->on_resize
$term->set_on_resize( $on_resize )
$on_resize->( $lines, $cols )
Accessors for the on_resize event callback, which is invoked after a
resize of the displayed widget. This may be required to inform the
appliction driving the terminal of its new output size.
use_pty
$term->use_pty( $pty )
Takes an opened PTY device and sets up an IO watcher on it to receive
bytes of input. Additionally, arranges for output bytes to be sent to
the handle.
This is a convenient alternative to feeding in bytes by calling
"input_write" and receiving them with a callback set by
"set_on_output".
The $pty handle should be an IO::Pty instance; or at least,
well-behaved as an IO handle and support the following methods:
$pty->blocking( 0 );
$pty->set_winsize( $lines, $cols );
$pty->sysread( $buf, $len );
$pty->syswrite( $buf );
AUTHOR
Paul Evans <leonerd@leonerd.org.uk>