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
  $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>

