=head1 NAME

C<Tickit::Widget::Scroller::Item> - interface for renderable scroller items

=head1 DESCRIPTION

Items added to a C<Tickit::Widget::Scroller> must adhere to the interface
documented here.

=head1 METHODS

=head2 $height = $item->height_for_width( $width )

Returns the number of screen lines the item would occupy if rendered to the
given width. 

=head2 $item->render( $win, %args )

Renders the item to the given window. C<%args> will contain the following
keys:

=over 8

=item firstline => INT

=item lastline => INT

The (inclusive) bounds of the line numbers to render. If these do not cover
the entire height of the item, then they imply that clipping should occur;
drawing only the lines indicated.

=item top => INT

The line of C<$win> to consider as the top of the item. Note that this will be
the line on which to draw line 0 of the item; not necessarily the line at
which to start drawing (if C<firstline> is greater than zero).

It is possible that C<top> will be a negative value, if the item is to be
drawn partially clipped by the top of the window, though the negative value
will never be more than C<firstline> is positive.

=item width => INT

=item height => INT

The width in columns and the height in lines to render the item. This will
correspond to the most recent call to C<height_for_width>, and is passed in
for consistency and convenience of the item's render method. This is given as
the full dimensions of the item, which may be larger than the subset of lines
requested by the C<firstline> and C<lastline> parameters.

=back

=head1 AUTHOR

Paul Evans <leonerd@leonerd.org.uk>

=cut
