Paul Evans


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


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.


$viewport = $extent->viewport

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

$total = $extent->total

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

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


$extent->scroll( $delta )

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

$extent->scroll_to( $new_start )

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

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


Paul Evans <>