NAME

Tickit::Widget::ScrollBox::Extent - represents the range of scrolling extent

DESCRIPTION

This small utility object stores the effective scrolling range for a Tickit::Widget::ScrollBox. They are not constructed directly, but instead returned by the hextent and vextent methods of the associated ScrollBox.

ACCESSORS

viewport

$viewport = $extent->viewport

Returns the size of the viewable portion of the scrollable area (the "viewport").

total

$total = $extent->total

Returns the total size of the scrollable area; which is always at least the size of the viewport.

set_total

$extent->set_total( $total )

Sets the total size of the scrollable area. This method should only be used by the child widget, when it is performing smart scrolling.

limit

$limit = $extent->limit

Returns the limit of the offset; the largest value the start offset may be. This is simply $total - $viewport, with a limit applied so that it returns zero rather than a negative value, in the case that the viewport is larger than the total.

start

$start = $extent->start

Returns the start position offset of the viewport within the total area. This is always at least zero, and no greater than the limit.

METHODS

scroll

$extent->scroll( $delta )

Requests to move the start by the amount given. This will be clipped if it moves outside the allowed range.

scroll_to

$extent->scroll_to( $new_start )

Requests to move the start to that given. This will be clipped if it is outside the allowed range.

scrollbar_geom

( $bar_top, $mark_top, $mark_bottom, $bar_bottom ) = $extent->scrollbar_geom( $top, $length )

Calculates the start and end positions of a scrollbar and the mark within it to represent the position of the extent. Returns four integer indexes within $length.

AUTHOR

Paul Evans <leonerd@leonerd.org.uk>