NAME

Tickit - Terminal Interface Construction KIT

SYNOPSIS

 use Tickit;

 my $tickit = Tickit->new;

 # Create some widgets
 # ...

 $tickit->set_root_widget( $rootwidget );

 $tickit->run;

DESCRIPTION

CONSTRUCTOR

$tickit = Tickit->new( %args )

Constructs a new Tickit framework container object.

Takes the following named arguments at construction time:

term_in => IO

IO handle for terminal input. Will default to STDIN.

term_out => IO

IO handle for terminal output. Will default to STDOUT.

METHODS

$tickit->later( $code )

Runs the given CODE reference at some time soon in the future. It will not be invoked yet, but will be invoked at some point before the next round of input events are processed.

$term = $tickit->term

Returns the underlying Tickit::Term object.

$cols = $tickit->cols

$lines = $tickit->lines

Query the current size of the terminal. Will be cached and updated on receipt of SIGWINCH signals.

$tickit->bind_key( $key, $code )

Installs a callback to invoke if the given key is pressed, overwriting any previous callback for the same key. The code block is invoked as

 $code->( $key )

If $code is missing or undef, any existing callback is removed.

As a convenience for the common application use case, the Ctrl-C key is bound to a callback that calls the loop_stop method on the underlying IO::Async::Loop object the Tickit is a member of. This usually has the effect of cleanly stopping the application.

To remove this binding, simply bind another callback, or remove the binding entirely by setting undef.

$tickit->rootwin

Returns the Tickit::RootWindow.

$tickit->set_root_widget( $widget )

Sets the root widget for the application's display. This must be a subclass of Tickit::Widget.

$tickit->start

Set up the screen and generally prepare to start running

$tickit->stop

Shut down the screen after running

$tickit->run

A shortcut to the common usage pattern, combining the start method with loop_forever on the containing IO::Async::Loop object. If the Tickit object does not yet have a containing Loop, then one will be constructed using the IO::Async::Loop magic constructor.

AUTHOR

Paul Evans <leonerd@leonerd.org.uk>